Use this skill when facing complex problems requiring rigorous reasoning, systematic decomposition, or factual verification.
Activation triggers:
You orchestrate advanced reasoning through isolated, verified atomic solving.
<architecture_overview>
Traditional approaches have a critical flaw: the same agent that generates questions also sees all answers. This creates bias contamination - knowledge of other questions/answers influences each response.
Key insight: Only cove-verifier does actual research/fact-checking. All other agents either generate structure or process verified facts.
ORCHESTRATOR (you)
│
├─(1)─► cove-claim-qs
│ │ Input: ATOM_DIR
│ └──► reads question.md
│ writes claims.md
│ writes verifiers/{N}.md (ONLY question, no claim text)
│ returns "CLAIMS_GENERATED"
│
├─(2)─► reads claims.md frontmatter to get claim_count
│
├─(3)─► cove-verifier #1 ──► reads/overwrites verifiers/1.md, returns "VERIFIER_DONE"
├─(3)─► cove-verifier #2 ──► reads/overwrites verifiers/2.md, returns "VERIFIER_DONE" (PARALLEL)
├─(3)─► cove-verifier #N ──► reads/overwrites verifiers/N.md, returns "VERIFIER_DONE"
│ │ Input: VERIFIER_FILE (pre-created with ONLY the question)
│ └──► Verifier has ZERO context about the claim
│
└─(4)─► cove-verification-maintainer
│ Input: ATOM_DIR only
│ (reads claims.md + verifiers/*.md itself)
│
└──► creates answer.md (final answer + verification trace), returns "VERIFICATION_COMPLETE"
Key Principles:
question.md exists → atom createdclaims.md exists → claims generatedverifiers/{N}.md exists with question only → pre-created by cove-claim-qs, ready for verifierverifiers/{N}.md has "# Answer" section → verification question answeredanswer.md exists → verification complete, final answer synthesized</architecture_overview>
<background_execution>
You can run subagents in the background to advance multiple independent paths simultaneously instead of waiting sequentially. This dramatically improves throughput when processing multiple atoms.
Use run_in_background: true in Task tool calls when:
Instead of waiting for ALL verifiers to complete before moving to the next atom:
SEQUENTIAL (slow):
A1: claims → verifiers → wait → maintainer → done
A2: claims → verifiers → wait → maintainer → done
Use background execution for pipeline parallelism:
PARALLEL PIPELINE (fast):
A1: claims → verifiers (background)
A2: claims → verifiers (background)
A1: check verifier files → maintainer (when ready)
A2: check verifier files → maintainer (when ready)
Step 1: Spawn verifiers in background
Task tool:
- subagent_type: "questionably-ultrathink:cove-verifier"
- prompt: |
VERIFIER_FILE: .questionably-ultrathink/{session-id}/atoms/{atom-id}/verifiers/{N}.md
- run_in_background: true
This returns immediately with an output_file path and task ID.
Step 2: Continue to next atom
While verifiers run in background, spawn the next atom's claim generator and verifiers.
Step 3: Check on background tasks
Use TaskOutput tool or Read the output file to check if background tasks completed:
TaskOutput tool:
- task_id: "{task_id}"
- block: false # Non-blocking check
Or use Grep to check if verifier files have been completed (have "# Answer" section):
Grep: "# Answer" in .questionably-ultrathink/{session-id}/atoms/{atom-id}/verifiers/{N}.md
Step 4: Process completed verification
Once an atom's verifiers are all complete (all verifier files have "# Answer" sections), spawn its verification maintainer. You can do this while other atoms' verifiers are still running.
1. Spawn cove-claim-qs for A1 and A2 (parallel, blocking)
- This creates claims.md AND verifiers/{N}.md files (with just questions)
2. Read claims.md frontmatter from A1 → spawn N verifiers with VERIFIER_FILE paths (run_in_background: true)
3. Read claims.md frontmatter from A2 → spawn N verifiers with VERIFIER_FILE paths (run_in_background: true)
4. Check A1 verifiers (Grep for "# Answer" in verifier files)
- If all complete → spawn A1's cove-verification-maintainer
- If not → continue
5. Check A2 verifiers (Grep for "# Answer" in verifier files)
- If all complete → spawn A2's cove-verification-maintainer
- If not → continue
6. Repeat checks until all maintainers have run (all atoms have answer.md)
7. Proceed to contract and next level
claims.md to know the claim countanswer.md created before contracting</background_execution>
<clarification_first>
ALWAYS start by assessing if clarification is needed. Before invoking any agents, consider:
If ANY of these apply, use AskUserQuestion BEFORE proceeding.
Skip clarification ONLY when the user's intent is unambiguous. </clarification_first>
<rigor_selection>
After clarifying intent, determine the analysis depth:
question: "What level of analysis rigor do you need?"
header: "Rigor"
options:
- label: "Standard (Recommended)"
description: "Single pass through the DAG. Good for most questions."
- label: "Thorough"
description: "Re-solves atoms with LOW confidence. Takes longer but more reliable."
- label: "High-Stakes"
description: "Maximum rigor. Re-solves any atom below HIGH confidence. Use for security, architecture, or production decisions."
Skip this question if:
<available_agents>
CRITICAL WARNING: You are the orchestrator. NEVER invoke yourself. Only YOU can spawn agents via the Task tool.
Purpose: Build the DAG structure of atomic questions (NO solving)
Invoke: Task tool with subagent_type: "questionably-ultrathink:aot-graph-generator"
Input: Session ID, rigor level, clarified query
Output: Creates metadata.md + atoms/{id}/question.md for each atom
Purpose: Generate claims, verification questions, AND pre-create verifier files for ONE atomic question (NO fact-checking)
Invoke: Task tool with subagent_type: "questionably-ultrathink:cove-claim-qs"
Input: ATOM_DIR path (reads question.md itself)
Output: Creates claims.md AND verifiers/{N}.md files in atom directory, returns CLAIMS_GENERATED: {atom-id}
CRITICAL: This agent does NOT research or fact-check. It:
claims.mdverifiers/{N}.mdThe verifier files contain ONLY the verification question (no claim text). This ensures factored verification - verifiers can't be biased toward confirming claims they never see.
Purpose: Research and answer ONE verification question in complete isolation (no context about the claim being verified)
Invoke: Task tool with subagent_type: "questionably-ultrathink:cove-verifier"
Input: VERIFIER_FILE path (the pre-created file containing ONLY the verification question)
Output: Overwrites VERIFIER_FILE with question + answer + confidence + sources, returns VERIFIER_DONE
CRITICAL: The verifier reads ONLY its pre-created file which contains ONLY the verification question. It has ZERO knowledge of the claim text. This is the key to factored verification - the verifier cannot be biased toward confirming a claim it never sees.
Purpose: Cross-check claims against independent verifier answers; synthesize final answer
Invoke: Task tool with subagent_type: "questionably-ultrathink:cove-verification-maintainer"
Input: ATOM_DIR only (reads claims.md and verifiers/*.md itself)
Output: Creates answer.md in atom directory, returns VERIFICATION_COMPLETE: {atom-id}
Purpose: Contract unsolved atom questions with solved answers from dependencies
Invoke: Task tool with subagent_type: "questionably-ultrathink:aot-graph-maintainer"
Input: SESSION_DIR only (reads metadata.md and answer.md files to discover solved atoms)
Output: Updates question.md files for dependent atoms, returns CONTRACTION_COMPLETE: {count}
Purpose: Evaluate answer quality across atoms at a level (coherence, contradictions, completeness)
Invoke: Task tool with subagent_type: "questionably-ultrathink:aot-judge"
Input: Session ID and level number
Output: Returns JUDGE_RESULT: {PASS|ISSUES} and RE_SOLVE: [{atom-ids or "none"}]
Use when:
<full_pipeline>
You orchestrate the full pipeline by chaining agent calls. Follow these phases exactly.
<phase_1>
Step 1.1: Generate Session ID
Generate a short session ID (8 characters, alphanumeric):
Example: a1b2c3d4
Step 1.2: Create Session Directory
mkdir -p .questionably-ultrathink/{session-id}/atoms
Note: Verifier directories are created inside each atom folder by the verifier agents.
Step 1.3: Get Timestamp and Invoke Graph Generator
Task tool:
- subagent_type: "questionably-ultrathink:aot-graph-generator"
- prompt: |
SESSION_ID: {session-id}
TIMESTAMP: {ISO timestamp from `date -u`}
RIGOR: {rigor-level}
QUERY: {clarified query}
Expected response: GRAPH_CREATED: {atom-count}
What this produces:
.questionably-ultrathink/{session-id}/metadata.md with DAG structure (immutable).questionably-ultrathink/{session-id}/atoms/{id}/question.md for each atomStep 1.4: Read Metadata
Read the metadata file to get the solve order:
Read: .questionably-ultrathink/{session-id}/metadata.md
Extract solve_order - the list of atoms grouped by level.
</phase_1>
<phase_2>
Process each level in order. State is determined by file existence:
question.md exists → atom createdclaims.md exists → claims generated, ready for verificationanswer.md exists → verification completeFor each level in solve_order:
Step 2a: Check atom states using Glob
For each atom at the current level, check which files exist:
Glob: .questionably-ultrathink/{session-id}/atoms/{atom-id}/claims.md
Glob: .questionably-ultrathink/{session-id}/atoms/{atom-id}/answer.md
This determines where each atom is in the pipeline.
Step 2b: Spawn cove-claim-qs for atoms missing claims.md (PARALLEL)
For atoms where claims.md does NOT exist, spawn the claim generator:
Task tool:
- subagent_type: "questionably-ultrathink:cove-claim-qs"
- prompt: |
ATOM_DIR: .questionably-ultrathink/{session-id}/atoms/{atom-id}
Expected response: CLAIMS_GENERATED: {atom-id}
CRITICAL:
question.md and writes claims.md itselfInvoke ALL atoms at the same level in parallel (single message with multiple Task calls).
Step 2c: Read claims.md frontmatter to get claim count
For atoms with claims.md but missing answer.md, read ONLY the frontmatter to get claim_count:
Read: .questionably-ultrathink/{session-id}/atoms/{atom-id}/claims.md
Extract claim_count from frontmatter - this tells you how many verifiers to spawn.
Step 2d: Check which verifiers are complete and spawn for incomplete ones (PARALLEL or BACKGROUND)
The verifier files were pre-created by cove-claim-qs with ONLY the verification question. Check which have been completed (have an Answer section):
Grep: "# Answer" in .questionably-ultrathink/{session-id}/atoms/{atom-id}/verifiers/*.md
Or check file size - pre-created files are small (question only), completed files are larger.
For each INCOMPLETE verifier file (1 to claim_count), spawn a fresh verifier:
Task tool:
- subagent_type: "questionably-ultrathink:cove-verifier"
- prompt: |
VERIFIER_FILE: .questionably-ultrathink/{session-id}/atoms/{atom-id}/verifiers/{N}.md
- run_in_background: true # Optional: enables pipeline parallelism
Expected response: VERIFIER_DONE
CRITICAL:
Parallelization options:
Parallel within atom (blocking): Invoke ALL verifiers for one atom in parallel (single message with multiple Task calls). Wait for completion before moving to next atom.
Background for pipeline parallelism (recommended): Spawn verifiers with run_in_background: true. This lets you immediately start the next atom's verification while the first atom's verifiers run. Check on background tasks with TaskOutput (block: false) and spawn maintainers as each atom's verifiers complete. See <background_execution> section for details.
Step 2e: Wait for verifiers to complete
For blocking calls: Verifiers return VERIFIER_DONE when complete.
For background calls: Use TaskOutput tool to check completion:
TaskOutput tool:
- task_id: "{task_id from background spawn}"
- block: true # Wait for completion
- timeout: 30000 # 30 second timeout
Or use block: false to check without waiting (for pipeline advancement).
Checking verifier completion: Verifier files at .questionably-ultrathink/{session-id}/atoms/{atom-id}/verifiers/{N}.md are pre-created with just the question. A completed verifier file has an "# Answer" section added by the verifier agent.
Step 2f: Spawn verification maintainer when all verifiers are complete
When all verifier files have been completed (all have "# Answer" sections), spawn the maintainer:
Task tool:
- subagent_type: "questionably-ultrathink:cove-verification-maintainer"
- prompt: |
ATOM_DIR: .questionably-ultrathink/{session-id}/atoms/{atom-id}
Expected response: VERIFICATION_COMPLETE: {atom-id}
The maintainer will:
claims.md to get claims and verification questionsverifiers/*.md files from the atom directoryanswer.md with the full verification traceStep 2g: Contract dependent atoms
After ALL atoms at current level have answer.md, invoke the graph maintainer:
Task tool:
- subagent_type: "questionably-ultrathink:aot-graph-maintainer"
- prompt: |
SESSION_DIR: .questionably-ultrathink/{session-id}
Expected response: CONTRACTION_COMPLETE: {count}
The maintainer will:
metadata.md for the DAG structureanswer.md from solved atoms to get their answersquestion.md for next-level atoms with "Given..." contextStep 2h: Continue to next level
Repeat 2a-2g for each level until FINAL has answer.md.
</phase_2>
<phase_3>
After FINAL has answer.md:
Read: .questionably-ultrathink/{session-id}/atoms/FINAL/answer.md
The FINAL atom's answer IS your synthesis - it was designed as the synthesis question. Present this answer to the user with appropriate confidence markers.
You only read FINAL/answer.md - all other atom answers have already been incorporated through contraction. </phase_3>
<rigor_based_iteration>
After completing all levels, check confidence based on rigor:
| Rigor Level | Re-solve When | Confidence Threshold |
|---|---|---|
| Standard | Never (single pass) | N/A |
| Thorough | Any atom has LOW confidence | score < 0.4 |
| High-Stakes | Any atom below HIGH confidence | score < 0.7 |
Confidence Score Mapping:
Checking Confidence:
Read the answer.md frontmatter for each atom to get its confidence_score:
Read: .questionably-ultrathink/{session-id}/atoms/{atom-id}/answer.md
If re-solving needed:
claims.md and answer.md files (and verifiers/ directory) for atoms needing re-solveEarly Stop Conditions:
For High-Stakes rigor (optional judge step):
After solving all atoms at a level, you MAY invoke the optional judge agent:
Task tool:
- subagent_type: "questionably-ultrathink:aot-judge"
- prompt: "Session ID: {session-id}. Level: {level}. Evaluate answers for coherence, contradictions, and completeness."
The judge evaluates answer quality without re-answering. If issues found, delete the relevant files and re-run the pipeline for those atoms. </rigor_based_iteration>
</full_pipeline>
<pipeline_output_format>
Use this structure for your final output:
## UltraThink Analysis
### Original Query
{The user's question}
### Analysis Settings
- **Rigor Level**: {Standard | Thorough | High-Stakes}
- **Session ID**: {session-id}
### Phase 1: Graph Construction
**Dependency Graph:**
```
Level 0: A1, A2 (independent)
Level 1: A3 ← [A1, A2]
Level 2: FINAL ← [A3]
```
### Phase 2: Iterative Solving with Factored Verification
**Level 0** (parallel):
- [A1] {question}
- Initial answer: {answer}
- Verification: {N claims verified, M revised}
- Final confidence: HIGH
- [A2] {question}
- Initial answer: {answer}
- Verification: {N claims verified}
- Final confidence: MEDIUM
*Contracting A3 with A1, A2 answers...*
**Level 1**:
- [A3] "Given {A1}, {A2}, {question}?"
- Initial answer: {answer}
- Verification: {N claims verified}
- Final confidence: HIGH
*Contracting FINAL with A3 answer...*
**Level 2**:
- [FINAL] "Given {A3}, {synthesis question}?"
- Final answer: {answer}
### Phase 3: Synthesis
{The FINAL atom's verified answer}
### Final Response
{Clean presentation of the answer}
### Confidence Assessment
| Atom | Initial | After Verification | Notes |
|------|---------|-------------------|-------|
| A1 | 0.75 | 0.90 | All claims verified |
| A2 | 0.60 | 0.55 | 1 claim revised |
| A3 | 0.80 | 0.85 | All claims verified |
| FINAL | 0.85 | 0.85 | All claims verified |
**Overall Confidence:** {HIGH | MEDIUM | LOW}
### Uncertainty Flags
{Any remaining areas of uncertainty}
</pipeline_output_format>
<quick_reference>
| Situation | Action |
|---|---|
| Multi-part question | Run full pipeline |
| User requests verification | Run full pipeline |
| High-stakes decision | Run full pipeline with high-stakes rigor |
| Simple factual question | Skip UltraThink, answer directly |
</quick_reference>
<skip_ultrathink>
Skip UltraThink for:
<confidence_markers>
After using UltraThink, mark your confidence:
You must execute the questionably-ultrathink workflow.