Five-phase self-review protocol for academic papers and formal documents. Use when: the user says '/self-symbolic-consistency-check', asks to 'review the paper', 'check consistency', 'find tensions', 'validate the document', or any request to verify internal coherence of a multi-chapter written work. Also trigger when a major writing milestone is reached (new chapter committed, full rewrite completed) and the user wants to know if everything still holds together.
A five-phase protocol for verifying internal coherence of a formal document. Each phase produces concrete outputs that feed the next. Phases 1-2 are parallel; phases 3-5 are sequential.
The target throughout is the document's central claim — whatever the paper asserts as its main result. You must identify this from the abstract and introduction before beginning. Every tension, every confusion, every broken symbol is measured against: does this threaten the central claim?
Mode: Parallel subagents, one per chapter/appendix.
Dispatch: For each chapter file, launch a subagent with:
Read [chapter file]. Identify the 1-3 points of MAXIMUM TENSION:
where the argument is most vulnerable, most dependent on unstated
assumptions, most likely to break under scrutiny. For each:
- Quote the exact passage (file:line)
- State what it claims
- State what could break it
- Rate severity: LOAD-BEARING / STRUCTURAL / COSMETIC
Return as structured list. Do not suggest fixes.
LOAD-BEARING = if this breaks, the central claim falls. STRUCTURAL = the local argument fails but the central claim survives via other paths. COSMETIC = awkward, misleading, or ugly, but logically sound.
Output: A tension manifest — one entry per identified point, sorted by severity.
Mode: Parallel subagents, one per LOAD-BEARING tension.
Each LOAD-BEARING tension from Phase 1 gets tested against every other chapter. The question is not "does this chapter mention the same thing?" but rather: does the tension survive contact with independent arguments elsewhere in the document?
Dispatch: For each LOAD-BEARING tension T_i found in chapter C_j:
Tension T_i (from [C_j], line [N]):
Claim: [what it claims]
Vulnerability: [what could break it]
Read [all other chapter files]. For each:
- Does this chapter independently support or undermine T_i?
- Does it provide evidence that resolves the vulnerability?
- Does it introduce a CONTRADICTION with T_i?
Return verdict: REINFORCED / UNRESOLVED / CONTRADICTED
with evidence (file:line quotes).
Outcome rules:
Mode: Sequential. Requires git history.
Compare the current document against the most recent prior commit (or a user-specified baseline). The question: did recent changes introduce inconsistencies with the rest of the document?
Steps:
git log --oneline -10 to identify the baseline commit.git diff <baseline>..HEAD -- <all .tex files> to get the delta.Output: A list of temporal inconsistencies, each with:
BREAKING = the document will not compile or the logic is now invalid. DRIFT = still compiles, still technically correct, but the narrative flow or emphasis shifted and surrounding text hasn't adapted. HARMLESS = cosmetic delta, no downstream effects.
Mode: Sequential. Single subagent with NO prior context.
This is the most important phase. Launch a subagent that has NOT seen the development history, the research notes, or any conversation context. It reads the document cold.
Dispatch:
You are a reader encountering this document for the first time.
Read the entire document from abstract to final appendix.
As you read, note every point where you are CONFUSED.
For each confusion:
1. Quote the confusing passage (file:line)
2. State what you don't understand
3. Search the REST of the document for the answer
4. Verdict:
- RESOLVED (answer found at file:line — quote it)
- UNRESOLVED (no answer exists in the document)
Only UNRESOLVED confusions are failures. A document may be
difficult, but every difficulty it introduces must be resolved
within its own pages.
Do not suggest fixes. Report findings only.
Key constraint: The subagent must attempt to resolve each confusion by searching the document before marking it UNRESOLVED. A confusion is only a real problem if the document itself cannot answer it.
Mode: Parallel subagents for mechanical checks.
Five parallel checks:
Scan all files for mathematical notation. Flag:
K means both "viability kernel" and "compact set")\newcommand or in-text definition)# Find all \cref, \ref, \eqref targets
grep -roh '\\cref{[^}]*}\|\\ref{[^}]*}\|\\eqref{[^}]*}' *.tex **/*.tex | sort -u
# Find all \label definitions
grep -roh '\\label{[^}]*}' *.tex **/*.tex | sort -u
# Cross-check: every referenced label must be defined
Flag: dangling references (label used but not defined), orphan labels (defined but never referenced — lower severity).
# Find all \cite keys
grep -roh '\\cite{[^}]*}' *.tex **/*.tex | tr ',' '\n' | sed 's/.*{//;s/}.*//' | sort -u
# Find all \bibitem keys
grep -roh '\\bibitem{[^}]*}' *.tex **/*.tex | sed 's/.*{//;s/}.*//' | sort -u
# Cross-check
Flag: cited but not in bibliography, in bibliography but never cited.
Build the dependency graph: which theorems cite which definitions, lemmas, and propositions. Check:
If the document uses semantic colors (e.g., specific colors for specific concepts), verify they are used consistently. Flag any instance where a concept appears in the wrong color or without its designated color.
After all five phases, produce a single consolidated report:
# Self-Symbolic Consistency Check
## Summary
- LOAD-BEARING tensions: N (M reinforced, K unresolved, J contradicted)
- Time-axis issues: N (breaking/drift/harmless)
- Unresolved confusions: N
- Symbolic issues: N (notation/reference/citation/dependency/style)
## Critical Findings (requires action)
[Only LOAD-BEARING + UNRESOLVED/CONTRADICTED from Phase 2]
[Only BREAKING from Phase 3]
[Only UNRESOLVED from Phase 4]
## Structural Findings (author's discretion)
[STRUCTURAL tensions, DRIFT issues, RESOLVED confusions worth noting]
## Cosmetic Findings
[Everything else, briefly]
## Symbolic Integrity
[Phase 5 results, grouped by type]
Write the report to agent_workspace/consistency_check_<ISO-date>.md.
Explore or general-purpose subagent types.haiku model for speed — these are mechanical checks.