Review mode
Check a text against the profile's rules, one rule at a time, and write a report. The reviewer never rewrites the text and never changes the profile.
The reviewer checks compliance with the user's actual rules. It does not grade general quality, and it does not judge whether the text "sounds like" the user. Those are separate evaluations (evaluate.md).
1. Inputs
The reviewer gets only these:
- The profile:
base.mdandprofiles/<name>/rules.md. Not lessons, rounds, samples or analyses. - The task: what the text is, who reads it, and any constraints the user gave (length, structure, "keep my wording").
- The text to review.
- The sources, when the text was edited from an original or written from notes, so meaning can be checked.
It does not get the writer's plan, notes or reasoning.
2. Independence
- If your agent can start a subagent with a fresh context (a separate agent that does not see this conversation), start one. Give it only the inputs above, this file and schema-nonfiction.md. Ask it to return the report and nothing else. Write
reviewer: independent subagentin the report. - Otherwise review the text yourself. Read it as if someone else wrote it; ignore what you meant to write. Write
reviewer: same agent (not independent).
Never claim independence you did not have.
3. Steps
-
Read "Reading a rule" in schema-nonfiction.md. It defines strength, kind, scope and exceptions. Use those meanings exactly.
-
Mechanical checks. If you can run a shell:
python3 <skill>/scripts/measure.py check --rules <rules.md> --base <base.md> --lang <en|es> <text>python3 <skill>/scripts/lint.py --lang <en|es> <text>
A
note:line about the old layout is not a failure: the other checks ran, and you judge that file's rules by reading them.A mechanical VIOLATION on a rule with
applies: all prose,except: noneandkind: constraintstands. A result markedleadneeds your judgment: look at each location and decide whether scope or an exception applies. -
Applicability. For each rule, decide if it applies to this task and this text: its
appliescovers the text, and the task makes it relevant. A rule for paper introductions does not apply to an email. A rule markedes-onlydoes not apply to English text, anden-onlynot to Spanish. If it does not apply, the verdict is NOT APPLICABLE, with a few words of reason. -
Judge each applicable rule with its
check:constraint: look at every instance. One clear breach is a VIOLATION.tendency: judge the text as a whole. Usemeasure.py statsnumbers when they help. A few deviations are not a VIOLATION.preference: VIOLATION only if you can quote the passage and say exactly why it breaks the rule. Otherwise PASS or UNCERTAIN.optionalrules: absence is never a VIOLATION.- If an
exceptcase covers an instance, that instance is not a violation. Say which exception. - UNCERTAIN means the text alone cannot settle it (for example, you need the sources, or the scope is unclear). Say what is missing.
-
Meaning. If sources were given, compare claim by claim, as meaning.md says. Any change in facts, numbers, names, quotes, attribution, negation, scope or certainty that the task did not ask for is a critical failure, whatever the style verdicts say.
-
Do not invent requirements. If no rule covers something, it is free. You may add up to 3 notes under "Outside the profile", but they never count as violations.
-
Write the report.
4. Report
Use this format exactly. List every rule of the profile and of base.md once, in the order of the file. Write base rules as base:B01.
# Review report
- profile: economics-en
- task: introduction of a working paper on rural poverty
- text: draft.md
- reviewer: independent subagent
- mechanical checks: run
## Verdicts
- R01: PASS
- R02: NOT APPLICABLE (short paper; no section map expected)
- R05: VIOLATION
- severity: medium
- where: paragraph 3, "In rural areas the rate went from 42 percent"
- why: An analytical paragraph gives its numbers before its claim; no exception applies.
- fix: Move the last sentence ("Rural households drove the decline.") to the start of the paragraph.
- R10: UNCERTAIN
- why: "may suggest" in paragraph 4 could be one hedge or two; the source would settle it.
- base:B01: PASS
## Meaning
- status: preserved
- issues: none
## Outside the profile
- none
## Summary
- violations: high 0, medium 1, low 0
- uncertain: 1
- not applicable: 1
- meaning: preserved
- Verdicts: PASS, VIOLATION, UNCERTAIN or NOT APPLICABLE.
- Severity comes from the rule's strength: high for
mandatoryandprohibited, medium forpreferred, low foroptional. Only meaning problems arecritical. - where: the paragraph number and a short exact quote.
- fix: the smallest change that would satisfy the rule, in one sentence. Never a full rewrite, and never a fix that deletes a claim or changes meaning; if no such fix exists, say so.
- Meaning status:
preserved,changed(list each issue ascritical: ...) ornot checked(no sources given).
The report is data. The writer decides what to fix; the user decides on the profile.