skills/doubt-driven-development/SKILL.md
Use when correctness matters more than speed, when working in unfamiliar code, when stakes are high (production, security-sensitive logic, irreversible operations), or any time a confident output would be cheaper to verify now than to debug later. Runs a CLAIM → EXTRACT → DOUBT → RECONCILE loop to adversarially challenge assumptions before committing.
npx skillsauth add paulund/ai doubt-driven-developmentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Apply DDD when:
Skip DDD when:
| Rationalization | Reality | |---|---| | "I'm confident this is right" | Confidence without verification is just bias. Prove it. | | "This is a simple change, it can't go wrong" | Simple changes compose into complex failures. The 2017 AWS S3 outage started with a typo in a simple command. | | "The tests pass, so the decision is correct" | Tests only verify what you thought to test. DDD finds things you didn't think to test. | | "I'll add the guard in the next PR" | Next PR never comes. Add it now or document why you accepted the risk. | | "The user approved it, so it must be right" | Users approve based on the information you gave them. Did you surface the assumptions and risks? |
development
Use when implementing any logic, fixing any bug, or changing any behaviour. Use when you need to prove code works, when a bug report arrives, or when modifying existing functionality. Do NOT use for config changes, data migrations, or dependency updates.
development
Use when starting a new feature, when requirements are unclear, when asked to write code without a clear spec, or before any non-trivial implementation. Do NOT use for trivial bug fixes or one-line changes.
development
Use when you want authoritative, source-cited code free from outdated patterns. Use when building with any framework or library where correctness matters. Detects the stack from dependency files, fetches official documentation, implements following documented patterns, and cites sources for every framework-specific decision.
development
Use when preparing to ship a feature, release, or deployment. Use before merging to main, creating a release, or deploying to production. Do NOT use for CI-only changes or internal refactors that don't reach production.