doubt-driven-development

Subjects non-trivial decisions to fresh-context adversarial review before they stand.

1|Updated May 29, 2026
One-click install
npx skills add https://github.com/memasanz/agent-harness --skill doubt-driven-development-memasanz
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: doubt-driven-development
Source: https://github.com/memasanz/agent-harness/tree/main/.github/skills/doubt-driven-development
Command: npx skills add https://github.com/memasanz/agent-harness --skill doubt-driven-development-memasanz

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Confident answers are not always correct ones, and long sessions quietly turn assumptions into facts. This Skill catches wrong directions in non-trivial decisions — branching logic, cross-boundary changes, unverifiable claims like thread safety — while course-correction is still cheap, instead of discovering them in production. ## Core Features & Use Cases - Five-step doubt cycle: CLAIM the decision, EXTRACT the smallest reviewable artifact plus contract, DOUBT it with a fresh-context adversarial reviewer, RECONCILE findings by precedence (contract misread, actionable, trade-off, noise), and STOP within a bounded 3-cycle loop. - Adversarial reviewer prompting: Passes only the artifact and contract — never your conclusion — with an issues-only prompt so the reviewer disproves rather than validates. - Cross-model escalation: Optionally routes the artifact to an external CLI reviewer (Gemini CLI, Codex CLI) via stdin with read-only sandboxing, always with explicit user authorization. - Use Case: Before committing a new caching layer you believe is thread-safe, run the doubt cycle: a fresh-context reviewer probes for race conditions and unstated assumptions, and you reconcile each finding against the actual code before shipping. ## Quick Start Ask the agent to apply doubt-driven development to the caching layer change before committing it.

Frequently Asked Questions about doubt-driven-development

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I verify a non-trivial code decision before committing it?

Use the doubt cycle: state the claim, extract the smallest reviewable artifact plus its contract, and have a fresh-context reviewer attack it with an issues-only prompt. Classify each finding as contract misread, actionable, trade-off, or noise, then stop within three cycles.

What is the difference between doubt-driven development and code review?

Code review is a post-hoc verdict on a finished artifact like a pull request. Doubt-driven development is an in-flight posture that cross-examines individual non-trivial decisions while course-correction is still cheap, and the two are complementary.

When should I not use adversarial review on my changes?

Skip it for mechanical operations like renaming or formatting, one-line changes with obvious correctness, reading or summarizing code, pure tooling operations, and when the user explicitly prioritizes speed over verification.

Can I get a second opinion from a different AI model during review?

Yes, the skill supports cross-model escalation through external CLIs such as Gemini CLI or Codex CLI. The prompt is piped via stdin with a read-only sandbox, and every invocation requires explicit user authorization after verifying the tool works.

Why does the reviewer only receive the artifact and contract?

Passing your claim or reasoning biases the reviewer toward agreement with your conclusion. Supplying only the artifact and contract forces the reviewer to independently determine whether the artifact satisfies the contract.

What are the limitations of fresh-context adversarial review?

A fresh reviewer lacks session context and can produce noise or false flags, so findings must be re-classified against the artifact text rather than rubber-stamped. The loop is bounded at three cycles, after which unresolved issues are escalated to the user.