doubt-driven-development

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

1|Updated Mar 2, 2025
One-click install
npx skills add https://github.com/marjorg/setup --skill doubt-driven-development-marjorg
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: doubt-driven-development
Source: https://github.com/marjorg/setup/tree/main/home/.agents/skills/doubt-driven-development
Command: npx skills add https://github.com/marjorg/setup --skill doubt-driven-development-marjorg

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 forces every non-trivial decision through an adversarial fresh-context review while course-correction is still cheap, catching hidden failure modes before they reach production. ## Core Features & Use Cases - Structured Doubt Cycle: A five-step process (CLAIM, EXTRACT, DOUBT, RECONCILE, STOP) that isolates the artifact and contract, then cross-examines them with an adversarial reviewer prompt. - Cross-Model Escalation: Optionally routes the artifact to external CLI reviewers (Gemini CLI, Codex CLI) via stdin with read-only sandboxing to catch single-model blind spots. - Bounded Loop with Stop Conditions: Caps review at 3 cycles, classifies findings by precedence (contract misread, actionable, trade-off, noise), and escalates unresolved artifacts to the user. - Use Case: Before committing a thread-safety change to a caching layer, name the claim, extract the diff plus its contract, spawn a fresh-context reviewer with an issues-only prompt, reconcile findings, and ship only after a stop condition is met. ## Quick Start Ask the agent to apply doubt-driven development to the architectural decision or non-trivial code change you are about to commit.

Frequently Asked Questions about doubt-driven-development

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

FAQPage Schema
How do I stress-test a code decision before committing it?

Use the doubt cycle: write a compact CLAIM, extract the artifact and its contract, then spawn a fresh-context reviewer with an adversarial find-issues prompt. Classify each finding against the artifact text and stop after trivial findings, 3 cycles, or user override.

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 use Gemini CLI or Codex CLI for cross-model code review?

Yes, after verifying the binary works, write the adversarial prompt plus artifact and contract to a file and pipe it via stdin with a read-only sandbox, such as codex exec --sandbox read-only or gemini --approval-mode plan. Never interpolate artifacts into shell-quoted arguments.

Why should the reviewer not receive my original claim or reasoning?

Passing your conclusion biases the reviewer toward agreement, defeating the purpose of fresh-context review. The reviewer must independently determine whether the artifact satisfies the contract, so only ARTIFACT and CONTRACT are passed.

What are the limitations of doubt-driven development?

It cannot run nested inside a subagent context, where only a degraded self-questioning fallback is possible. It also adds latency and cost per decision, so it is scoped strictly to non-trivial decisions rather than every keystroke.