plugins/dp-cto/skills/challenge/SKILL.md
Use when a draft spec is ready for adversarial review from multiple critical perspectives — requires completed draft phase.
npx skillsauth add raisedadead/dotplugins challengeInstall 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.
Running: challenge — Adversarial review of the draft from multiple critical lenses. Expect: A findings table with severity ratings, a pre-mortem summary, and an approve/revise/reject gate.
Use ultrathink for this review — adversarial lenses demand deep reasoning, not surface pattern-matching.
Read references/anti-rationalization.md before proceeding.
Stage must be drafted (document authored by /dp-cto:draft). The stage machine hook enforces this.
.claude/dp-cto/*.spec-stage.json) to find the current session contextdocs/, specs/, rfcs/, or project root)Read references/adversarial-lenses.md to discover the available lenses, contradiction detection protocol, pre-mortem format, and finding format.
Determine which lenses to apply:
challenge scale security): run only those lenses. Validate each name against the lenses defined in adversarial-lenses.md. If any name does not match, report the invalid name and list the available lenses. STOP.adversarial-lenses.md.Spawn exactly 1 dp-cto:challenger named Agent with a prompt constructed from:
The agent prompt must include:
After the agent completes:
[CRITICAL], [WARNING], and [SUGGESTION] findingsreferences/findings-template.md for the consolidated findings table format.Review pre-mortem scenarios from the agent output. Read references/pre-mortem-template.md for the scenario format. If the agent did not produce scenarios, synthesize them from the findings.
Present the consolidated findings table, pre-mortem scenarios, and a summary:
## Challenge Complete
**Document**: {document_path}
**Lenses applied**: {comma-separated list of lenses applied}
**Findings**: {critical_count} critical, {warning_count} warnings, {suggestion_count} suggestions
**Pre-mortem scenarios**: {scenario_count} identified
Use AskUserQuestion with exactly three options:
If the user selects Reject, stop and print: "Challenge rejected. Should I return to draft to revise the document?"
If the user selects Approve, print: "Challenge complete. Should I continue with handoff to produce the implementation-ready package?"
Do NOT invoke handoff. The user decides when to proceed.
<CHAIN> Challenge complete. The next step is /dp-cto:handoff. The user decides when to run it. </CHAIN>| # | Rule | | --- | ------------------------------------------------------------------------- | | 1 | NEVER review the document yourself — the agent applies the lenses | | 2 | NEVER skip default lenses unless user explicitly passes a lens subset | | 3 | NEVER accept all findings uncritically — present for user approval | | 4 | NEVER dismiss all findings — each was found for a reason | | 5 | NEVER skip the pre-mortem — it catches systemic risks lenses miss | | 6 | NEVER auto-invoke handoff — the user decides when to proceed | | 7 | NEVER allow more than 2 revision rounds — after 2, only approve or reject |
Read references/red-flags.md before proceeding. It contains the stop conditions for this skill.
development
Use when the user shares a URL, names a resource from SOURCES.md, shares operational feedback, says 'adopt', 'learn from', 'what can we steal from', 'compare with', 'self-develop', or 'how do we get better'.
tools
Use when you need to set up or rebuild the dp-lsp Docker image after installing the plugin — 'set up LSP', 'build the image', 'install language servers'.
development
Use when you want to write tests first, enforce test-driven development, or add test coverage — 'write tests for this', 'TDD this feature', 'add test coverage'. Strict RED-GREEN-REFACTOR discipline.
testing
Use when starting major work that needs formal design review — cross-team changes, architectural decisions, or complex features where requirements need discovery before implementation.