challenge-plans
NewBefore you execute a drafted plan/spec/design doc, run a multi-agent adversarial cross-review to surface the flaws that cause downstream rework, aggregating "evidenced, cross-family-verified" objections into a verdict. Use when the user asks to "review this plan/spec", "can this approach be executed", "poke holes / adversarial review / QA this", "harden before executing", or when an agent is about to hand a drafted decision/QA back to the user — first run this skill and present the cross-review recommendation plus surviving objections. Runs on local subscription CLIs (claude/codex), no per-token API cost. Not for "help me pick among options" — that's the weigh-options deliberation skill.
Summary
This skill performs a multi-agent adversarial cross-review on a drafted plan, spec, design doc, or diff to surface flaws that cause downstream rework.
- It aggregates evidenced, cross-family-verified objections into a verdict, helping teams harden artifacts before execution and reduce costly rework.
Overview
challenge-plans
Harden a plan/spec in multi-agent adversarial review before execution, to reduce rework. Slots into writing-plans → challenge-plans → executing-plans.
When to use (routing signals)
- •Input is a single drafted artifact (spec/plan/diff/design doc/adr) + intent "review / find flaws / can this execute / harden / QA" → use this skill.
- •An agent has finished something and is about to ask the user to decide or QA → run this first and present the cross-review recommendation.
- •Input is ≥2 options to choose from → use the sibling
weigh-options(deliberation/voting), not this.
Run
# Installed from PyPI (pip install challenge-plans) — the console command is available directly:
challenge-plans doctor # check adapter login state first
challenge-plans run <artifact> --type spec --profile standard --sink markdown # review a plan/spec
challenge-plans run <artifact> --type spec --profile standard --sink markdown --lang zh # localized output
# code-diff gate: git diff > change.diff && challenge-plans run change.diff --type diff --sink markdown
# From a source checkout instead (not pip-installed): PYTHONPATH=src python3 -m challenge_plans.cli <args>| - `--type spec | diff | plan (decision rubric still pending — exits 2 by design). diff reviews a raw git diff; **plan` reviews ANY plan (a trip, a launch, a hire — not just dev specs)** with domain-neutral failure types (missing success criteria / ignored constraint / unaddressed risk / sequencing gap / unstated assumption / goal misalignment / irreversibility / no fallback) and feasibility·risk·goal-alignment lenses. All run the same verdict pipeline. | |
|---|---|---|---|
| - `--profile fast | standard | deep, --sink stdout | markdown, --enforce` (non-approve verdicts exit non-zero; default advisory exits 0). |
- •
--lang <code>(defaulten): write the review prose in the user's language, e.g.--lang zh. Set this from the user's language so the whole review comes back localized; JSON keys / enums /L12-15anchors stay stable. Equivalent to exportingCHALLENGE_PLANS_LANG. - •Output: a 6-state verdict + surviving objections.
[sev✓]= cross-family Verifier-confirmed, may hard-gate;[sev?]= unverified, advisory only.
If no backend is ready
challenge-plans needs at least one logged-in subscription CLI (it has no model of its own and uses no API keys). If doctor shows nothing ready, don't retry blindly — ask the user, then route:
- Has a Claude or ChatGPT subscription, but the CLI is missing / logged out → walk them through the exact step
doctorprints (install it, orclaude→/login, or sign in tocodex). - No subscription yet but wants one → point them to subscribe (Claude Pro/Max or ChatGPT), then install + log in the CLI.
- No subscription and doesn't want one → explain challenge-plans cannot run without one, and stop — don't loop.
doctor already prints the per-backend fix plus this guidance; surface it to the user rather than failing silently.
Presenting to the user
Surface the verdict + surviving objections (✓ verified vs ? unverified) + missing required fields as "my cross-review recommendation", then let the user decide — rather than handing them a bare decision. See README.md for the full picture.
Composing with planning skills
- •superpowers (
writing-plans → executing-plans): afterwriting-planssaves a plan file (defaultdocs/superpowers/plans/<date>-<feature>.md— read the actual path), runchallenge-plans run <plan> --type specbeforeexecuting-plans. It occupies the same pre-execution review seam as superpowers' built-inplan-document-reviewer, but as a multi-CLI cross-family pass. Route surviving objections back into the plan, then execute. - •grill-me (mattpocock/skills): complementary and earlier — it interactively aligns the user while the plan forms (no file output). Run challenge-plans after a written plan/PRD exists.
- •Nothing auto-invokes challenge-plans; the calling agent wires it into the seam.
--type plan/decisionrubrics are pending — use--type specfor plan-like prose today.
Install & Usage
mkdir -p .claude/skillsmkdir -p .claude/skills && curl -o .claude/skills/challenge-plans.md https://raw.githubusercontent.com/hiadrianchen/challenge-plans/main/SKILL.md/challenge-plansUse Cases
Usage Examples
/challenge-plans run spec.md --type spec --profile standard --sink markdown
Review this launch plan for flaws before I present it to the team: /challenge-plans run launch_plan.md --type plan
/challenge-plans run change.diff --type diff --sink markdown
Security Audits
Frequently Asked Questions
What is challenge-plans?
This skill performs a multi-agent adversarial cross-review on a drafted plan, spec, design doc, or diff to surface flaws that cause downstream rework. It aggregates evidenced, cross-family-verified objections into a verdict, helping teams harden artifacts before execution and reduce costly rework.
How to install challenge-plans?
To install challenge-plans: create the skills directory (mkdir -p .claude/skills), then run: mkdir -p .claude/skills && curl -o .claude/skills/challenge-plans.md https://raw.githubusercontent.com/hiadrianchen/challenge-plans/main/SKILL.md. Finally, /challenge-plans in Claude Code.
What is challenge-plans best for?
challenge-plans is a skill categorized under General. It is designed for: code-review, api, design, agent. Created by hiadrianchen.
What can I use challenge-plans for?
challenge-plans is useful for: Review a product spec for hidden assumptions or missing edge cases before engineering starts.; Harden a launch plan by having adversarial agents poke holes in the timeline and risk mitigations.; QA a git diff before merging to catch logic errors or security regressions overlooked by the author.; Validate a design document for architectural inconsistencies or scalability bottlenecks.; Check a hiring plan for unrealistic candidate sourcing assumptions or biased evaluation criteria.; Cross-check a migration plan for data integrity risks or rollback gaps..