doubt-driven-development

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

Updated Jun 8, 2026
One-click install
npx skills add https://github.com/Avistian/nba --skill doubt-driven-development-avistian
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: doubt-driven-development
Source: https://github.com/Avistian/nba/tree/main/.cursor/skills/doubt-driven-development
Command: npx skills add https://github.com/Avistian/nba --skill doubt-driven-development-avistian

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 decisions early by routing every non-trivial decision through a fresh-context adversarial reviewer while course-correction is still cheap. ## Core Features & Use Cases - Five-step doubt cycle: CLAIM the decision, EXTRACT the smallest reviewable artifact plus contract, DOUBT via an adversarial fresh-context reviewer, RECONCILE findings by precedence, and STOP within a bounded three-cycle loop. - Adversarial review protocol: The reviewer receives only the artifact and contract with an issues-only prompt, never the author's conclusion, preventing validation bias. - Cross-model escalation: In interactive sessions the user is always offered a second opinion via external CLIs such as Gemini or Codex, with read-only sandboxing and stdin piping to avoid shell injection. - Use Case: Before committing a caching layer claimed to be thread-safe, extract the diff and its concurrency contract, spawn a fresh-context reviewer with the adversarial prompt, classify each finding as contract misread, actionable, trade-off, or noise, and iterate until findings are trivial. ## Quick Start Ask the assistant 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 review a code decision before committing it?▼

Name the decision as a compact claim, extract the smallest reviewable artifact plus its contract, and pass both to a fresh-context reviewer with an adversarial find-issues prompt. Classify each finding against the artifact text, then iterate up to 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?▼

Yes. In interactive sessions the skill always offers cross-model escalation via external CLIs such as Gemini or Codex. The prompt is piped through stdin with a read-only sandbox, and each invocation requires explicit user authorization.

Why does 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 receives only the artifact and contract so it independently determines whether the contract is satisfied.

What are the limitations of fresh-context adversarial review?▼

A fresh reviewer lacks session context and can produce false flags, so findings must be re-classified against the artifact text rather than rubber-stamped. The loop is bounded at three cycles; persistent substantive findings mean the artifact needs decomposition or user escalation.