/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
$ npx -y skills add frenzymath/Danus --skill consult --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
/consult
Context preview
The summary Claude sees to decide when to auto-load this skill.
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
SKILL.md
consult.SKILL.mdname: consult
description: 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 transport (a paid API, default), the claude_api transport (the Anthropic API, per-token BYO key), or the claude_code transport (your Claude subscription); if no key/login is configured it degrades to off, where the main agent reasons on its own. Use it each strategic cycle, on events (a worker finished a round / real new progress), not a blind timer.
Consult for strategy
You are the **main agent**. Workers do the proving; **you do the high-level thinking by consulting a strong reasoning model and turning its reply into dispatch.** This is the strategic core of the loop: distil state (the `elaboration` skill) → consult → record the reply as `master_guidance` → assign workers from it.
The consult is the **core direction-guidance mechanism** — it is how the swarm gets steered — and the **only step that costs money** (codex workers + the verify service are free). Treat it as central, not optional.
When to consult (events, not a timer)
The gate is **judgment about new state**, not the clock. Consult only when there is genuinely new state to reason over:
- a worker **finished a round** and produced real new state;
- a **substantive new finding / dead end / verified fact** changed the picture;
- the swarm is **stuck** and needs a new direction.
Do **not** re-consult when nothing material has changed since the last `master_guidance`. A sensible cadence is **at most once every ~2 hours** — a consult itself takes minutes, and you want real state to reason over, not churn. Drive cadence off main-agent events (or your own `/loop`), never a blind timer.
**Spend discipline.** Each API consult costs money and accrues to the project's running total. Prefer `--effort high` (the workhorse); reserve `xhigh` for genuine forks. As project spend approaches the operator's ceiling, **surface it — that is a load-bearing fork** (see the main-agent contract).
**Project start (no record, no direction yet):** do not launch blind. First **discuss the problem with both the model AND the human**, get direction from both sides, then start the workers.
How to consult
1. **Prepare the elaboration first** (the `elaboration` skill): read global memory
- the fact graph (never worker local memory), produce the five-section
synthesis, and publish it with `gm_add` (kind `elaboration`). That published document is the consult prompt — never consult on an empty or stale prompt.
2. **Call the consult CLI** with the elaboration as input:
consult --file <elaboration.md> --project <project_dir> --out <reply.md>
- `consult` is the wrapper on PATH — it sources the deployment env and execs
the strategy consult CLI (in `danus/strategy`) with the right Python.
- **Transport** comes from config (`DANUS_CONSULT_TRANSPORT`, default `gpt_pro`); a
per-call override is `--transport gpt_pro|claude_api|claude_code|off`. `gpt_pro` runs the paid OpenAI-compatible endpoint; `claude_api` runs the native Anthropic API (per-token, BYO key); `claude_code` runs the consult through the Claude Code CLI (`claude -p`); `off` short-circuits (see the `off` path below).
- **Effort** (`--effort high|xhigh|max`, default `high`): `high` is the
workhorse; reserve stronger levels for the hardest forks. All transports support through `max`; on `gpt_pro`, `max` fails rather than silently running without the requested reasoning effort when an endpoint rejects it.
- `--project` records the spend: one line per call appended to
`<project_dir>/spend/consult.jsonl`, and the CLI returns the running `project_total_usd`. **Always pass `--project`.**
- It prints a one-line JSON envelope (`transport`, `reply`, `usage.input` /
`usage.output` / `usage.reasoning`, `cost_usd`, `seconds`, `project_total_usd`) and, with `--out`, writes the full reply as markdown. Field shapes and pricing are owned by `danus/strategy` — read them there; do not re-derive them here.
- It is a **stateless gateway**: prompt in, reply out. It does **not** write the
stores — you do, in the next step.
- **If the consult could not run**, the envelope comes back `status="failed"`
with an `error` and an empty `reply` (exit non-zero) — e.g. the endpoint rejected the requested effort. There is nothing to record: do **not** publish an empty `master_guidance` and do **not** invent direction. Report the `error` to the operator, then either retry at a level the endpoint accepts or reason on your own for this cycle — and say which you did. **If the `error` names a parameter the endpoint refuses, re-run the call with that parameter changed** — the error tells you which: `background` → add `--background off`; `store` → `--store on`; `max_output_tokens` → `--max-output-tokens 0` (omits it entirely, for an endpoint that rejects the parameter rather than the value); the reasoning effort → a level it accepts. Nothing to edit, just the next invocation. If the same override keeps being needed on this deployment, tell the operator to pin it in `config/danus.env` (`DANUS_CONSULT_BACKGROUND` / `DANUS_CONSULT_STORE`) so you stop passing it.
3. **Record the reply as `master_guidance`, VERBATIM.** Take the reply as the direction and publish it unedited:
gm_add(kind="master_guidance", claim=<one-line gist of the direction>,
evidence=<the full, unedited reply>,
links={"elaboration_id": <the gm_add id from step 1>},
input_tokens=<usage.input>, output_tokens=<usage.output>, cost_usd=<cost_usd>)The call's `input_tokens` / `output_tokens` / `cost_usd` from the envelope ride
Read more
name: consult description: 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 transport (a paid API, default), the claude_api transport (the Anthropic API, per-token BYO key), or the claude_code transport (your Claude subscription); if no key/login is configured it degrades to off, where the main agent reasons on its own. Use it each strategic cycle, on events (a worker finished a round / real new progress), not a blind timer.
Consult for strategy
You are the **main agent**. Workers do the proving; **you do the high-level thinking by consulting a strong reasoning model and turning its reply into dispatch.** This is the strategic core of the loop: distil state (the `elaboration` skill) → consult → record the reply as `master_guidance` → assign workers from it.
The consult is the **core direction-guidance mechanism** — it is how the swarm gets steered — and the **only step that costs money** (codex workers + the verify service are free). Treat it as central, not optional.
When to consult (events, not a timer)
The gate is **judgment about new state**, not the clock. Consult only when there is genuinely new state to reason over:
- a worker **finished a round** and produced real new state;
- a **substantive new finding / dead end / verified fact** changed the picture;
- the swarm is **stuck** and needs a new direction.
Do **not** re-consult when nothing material has changed since the last `master_guidance`. A sensible cadence is **at most once every ~2 hours** — a consult itself takes minutes, and you want real state to reason over, not churn. Drive cadence off main-agent events (or your own `/loop`), never a blind timer.
**Spend discipline.** Each API consult costs money and accrues to the project's running total. Prefer `--effort high` (the workhorse); reserve `xhigh` for genuine forks. As project spend approaches the operator's ceiling, **surface it — that is a load-bearing fork** (see the main-agent contract).
**Project start (no record, no direction yet):** do not launch blind. First **discuss the problem with both the model AND the human**, get direction from both sides, then start the workers.
How to consult
1. **Prepare the elaboration first** (the `elaboration` skill): read global memory
- the fact graph (never worker local memory), produce the five-section
synthesis, and publish it with `gm_add` (kind `elaboration`). That published document is the consult prompt — never consult on an empty or stale prompt.
2. **Call the consult CLI** with the elaboration as input:
consult --file <elaboration.md> --project <project_dir> --out <reply.md>
- `consult` is the wrapper on PATH — it sources the deployment env and execs
the strategy consult CLI (in `danus/strategy`) with the right Python.
- **Transport** comes from config (`DANUS_CONSULT_TRANSPORT`, default `gpt_pro`); a
per-call override is `--transport gpt_pro|claude_api|claude_code|off`. `gpt_pro` runs the paid OpenAI-compatible endpoint; `claude_api` runs the native Anthropic API (per-token, BYO key); `claude_code` runs the consult through the Claude Code CLI (`claude -p`); `off` short-circuits (see the `off` path below).
- **Effort** (`--effort high|xhigh|max`, default `high`): `high` is the
workhorse; reserve stronger levels for the hardest forks. All transports support through `max`; on `gpt_pro`, `max` fails rather than silently running without the requested reasoning effort when an endpoint rejects it.
- `--project` records the spend: one line per call appended to
`<project_dir>/spend/consult.jsonl`, and the CLI returns the running `project_total_usd`. **Always pass `--project`.**
- It prints a one-line JSON envelope (`transport`, `reply`, `usage.input` /
`usage.output` / `usage.reasoning`, `cost_usd`, `seconds`, `project_total_usd`) and, with `--out`, writes the full reply as markdown. Field shapes and pricing are owned by `danus/strategy` — read them there; do not re-derive them here.
- It is a **stateless gateway**: prompt in, reply out. It does **not** write the
stores — you do, in the next step.
- **If the consult could not run**, the envelope comes back `status="failed"`
with an `error` and an empty `reply` (exit non-zero) — e.g. the endpoint rejected the requested effort. There is nothing to record: do **not** publish an empty `master_guidance` and do **not** invent direction. Report the `error` to the operator, then either retry at a level the endpoint accepts or reason on your own for this cycle — and say which you did. **If the `error` names a parameter the endpoint refuses, re-run the call with that parameter changed** — the error tells you which: `background` → add `--background off`; `store` → `--store on`; `max_output_tokens` → `--max-output-tokens 0` (omits it entirely, for an endpoint that rejects the parameter rather than the value); the reasoning effort → a level it accepts. Nothing to edit, just the next invocation. If the same override keeps being needed on this deployment, tell the operator to pin it in `config/danus.env` (`DANUS_CONSULT_BACKGROUND` / `DANUS_CONSULT_STORE`) so you stop passing it.
3. **Record the reply as `master_guidance`, VERBATIM.** Take the reply as the direction and publish it unedited:
gm_add(kind="master_guidance", claim=<one-line gist of the direction>,
evidence=<the full, unedited reply>,
links={"elaboration_id": <the gm_add id from step 1>},
input_tokens=<usage.input>, output_tokens=<usage.output>, cost_usd=<cost_usd>)The call's `input_tokens` / `output_tokens` / `cost_usd` from the envelope ride
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.
- /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 - /synthesize-verification-report
Aggregate all detected errors and gaps into the final verification report, apply strict accept/reject logic, and produce repair hints when rejected.
Open skill

