/verify-sequential-statements
Verify a markdown proof in the order it is written. Use when the task is to check local correctness, theorem applicability, and reasoning gaps statement by statement through a paper-style proof.
$ npx -y skills add frenzymath/Danus --skill verify-sequential-statements --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/verify-sequential-statements
Context preview
The summary Claude sees to decide when to auto-load this skill.
Verify a markdown proof in the order it is written. Use when the task is to check local correctness, theorem applicability, and reasoning gaps statement by statement through a paper-style proof.
SKILL.md
verify-sequential-statements.SKILL.mdname: verify-sequential-statements
description: Verify a markdown proof in the order it is written. Use when the task is to check local correctness, theorem applicability, and reasoning gaps statement by statement through a paper-style proof.
Verify Sequential Statements
Check each statement and subproof in order and log all local issues.
Input Contract
Assume:
- `Proof` is markdown text.
- The proof is written in good mathematical order.
- `Statement` contains the target theorem statement and its hypotheses.
Do not split the proof with utility code. Read the markdown in order and use its own structure.
Procedure
1. Extract the assumptions and hypotheses from `Statement` before checking the proof. 2. Iterate through the statements/subproofs in the order they appear in the markdown. 3. For each item, determine a location key:
- use the displayed theorem/lemma/claim heading if present,
- otherwise use a local textual locator such as `proof paragraph 2`.
4. Check local reasoning:
- Is the inference valid?
- Are assumptions stated and sufficient?
- Is each theorem application valid in context?
- Are there skipped or hand-wavy steps?
5. Pay special attention to assumptions that an object exists or satisfies a property — sometimes such an object has not been constructed, or it exists but has not been proved to satisfy the claimed property. 6. Audit whether the assumptions from `Statement` are actually used in the proof. 7. If some assumptions seem unused, do not assume they are harmless. Reason carefully about whether:
- the assumption is truly redundant, or
- the proof is silently omitting a necessary use of it and therefore has a gap or error.
8. Classify findings:
- `critical_error`: logical contradiction, invalid theorem use, false implication.
- `gap`: missing derivation, vague justification, unsupported step, or suspiciously unused assumptions whose role is not justified.
9. Also apply the **Hard Prohibitions** defined in the verifier contract (`agents/contracts/verifier.md`, "Hard Prohibitions to enforce"): P1 (citing `problem.md` / `data/<NAME>.md` as a substantive math source), P3 (an unproven conditional premise with no same-paragraph `fact_id` citation), P5 (a vague gesture at a "well-known"/"classical" result without a specific citation), and P6 (a statement that is not self-contained). Do not restate or fork the prohibition wording here — read and apply it from the contract so there is a single source of truth. These prohibitions are strictly additive: they only ever add findings (reject more), never remove them. 10. Keep each checked item in context for the synthesis step. You persist nothing — the verifier is stateless; the worker does all writing.
Output Contract
Produce one record per checked item, kept in context for synthesis:
{
"location": "Lemma 3",
"status": "checked",
"critical_errors": [
{"location": "Lemma 3", "issue": "Incorrect implication from A to B."}
],
"gaps": [
{"location": "Lemma 3", "issue": "Missing justification of boundedness."}
]
}Tools
- None — pure reasoning over the proof; findings stay in context.
Read more
name: verify-sequential-statements description: Verify a markdown proof in the order it is written. Use when the task is to check local correctness, theorem applicability, and reasoning gaps statement by statement through a paper-style proof.
Verify Sequential Statements
Check each statement and subproof in order and log all local issues.
Input Contract
Assume:
- `Proof` is markdown text.
- The proof is written in good mathematical order.
- `Statement` contains the target theorem statement and its hypotheses.
Do not split the proof with utility code. Read the markdown in order and use its own structure.
Procedure
1. Extract the assumptions and hypotheses from `Statement` before checking the proof. 2. Iterate through the statements/subproofs in the order they appear in the markdown. 3. For each item, determine a location key:
- use the displayed theorem/lemma/claim heading if present,
- otherwise use a local textual locator such as `proof paragraph 2`.
4. Check local reasoning:
- Is the inference valid?
- Are assumptions stated and sufficient?
- Is each theorem application valid in context?
- Are there skipped or hand-wavy steps?
5. Pay special attention to assumptions that an object exists or satisfies a property — sometimes such an object has not been constructed, or it exists but has not been proved to satisfy the claimed property. 6. Audit whether the assumptions from `Statement` are actually used in the proof. 7. If some assumptions seem unused, do not assume they are harmless. Reason carefully about whether:
- the assumption is truly redundant, or
- the proof is silently omitting a necessary use of it and therefore has a gap or error.
8. Classify findings:
- `critical_error`: logical contradiction, invalid theorem use, false implication.
- `gap`: missing derivation, vague justification, unsupported step, or suspiciously unused assumptions whose role is not justified.
9. Also apply the **Hard Prohibitions** defined in the verifier contract (`agents/contracts/verifier.md`, "Hard Prohibitions to enforce"): P1 (citing `problem.md` / `data/<NAME>.md` as a substantive math source), P3 (an unproven conditional premise with no same-paragraph `fact_id` citation), P5 (a vague gesture at a "well-known"/"classical" result without a specific citation), and P6 (a statement that is not self-contained). Do not restate or fork the prohibition wording here — read and apply it from the contract so there is a single source of truth. These prohibitions are strictly additive: they only ever add findings (reject more), never remove them. 10. Keep each checked item in context for the synthesis step. You persist nothing — the verifier is stateless; the worker does all writing.
Output Contract
Produce one record per checked item, kept in context for synthesis:
{
"location": "Lemma 3",
"status": "checked",
"critical_errors": [
{"location": "Lemma 3", "issue": "Incorrect implication from A to B."}
],
"gaps": [
{"location": "Lemma 3", "issue": "Missing justification of boundedness."}
]
}Tools
- None — pure reasoning over the proof; findings stay in context.
Danus orchestrates mathematical reasoning agents with fact-graph memory. A main agent (Claude Code) steers a swarm of autonomous codex workers that prove; a cold-start verifier is the sole authority on correctness: a result becomes real only once it passes.
Other skills on danus.
- /consult
Consult a strong reasoning model for strategy — feed it the current elaboration, take its reply as the next master_guidance, and dispatch workers from it. This is the main agent's high-intelligence step (workers prove; the consult decomposes and steers). Runs over the gpt_pro
Open skill - /elaboration
Write a high-signal-to-noise mathematical progress synthesis of a project from the shared stores (global memory + fact graph), following a fixed verdict→routes→interfaces→dangers→bridges template and a strict honesty discipline. Use it each strategic cycle, right before the
Open skill - /human-summary
Write a human-readable mathematical progress report (compiled PDF) on a project for the operator / the mathematician who posed the problem. This is NOT `elaboration` (dense input for the strategy consult) and NOT the dashboard. Render from the fact graph's verified
Open skill - /initialize
First-run setup interview for a Danus deployment. Run it on the FIRST session, whenever runtime/.danus-initialized is absent or OPERATOR.md is still the blank template, or when the operator asks to set up / initialize / onboard / re-configure. It greets the operator, explains
Open skill - /write-paper
Turn a project's verified fact graph into a publishable LaTeX paper in a configurable house style — a standalone amsart .tex with a real bibliography, compiled to PDF. Use when a project's target theorem is established and the operator wants the paper, or asks to
Open skill - /check-referenced-statements
Validate externally referenced theorems by querying arXiv theorem search first and Codex's built-in web search second. Use when a markdown proof cites statements from external papers.
Open skill

