挑战计划
在执行前通过多智能体对抗性审查来强化计划/规格说明,从而减少返工。嵌入流程为:编写计划 → 挑战计划 → 执行计划。
何时使用(路由信号)
- 输入是单个已起草的产物(规格说明/计划/差异/设计文档/架构决策记录)+ 意图为“审查/查找缺陷/能否执行/强化/质量保证”→ 使用此技能。
- 智能体已完成某项工作并即将询问用户决策或质量保证→ 先运行此技能,然后展示交叉审查建议。
- 输入是 ≥2 个待选项→ 使用同级的
weigh-options(审议/投票),而非此技能。
运行
# 从 PyPI 安装 (pip install challenge-plans) — 控制台命令可直接使用:
challenge-plans doctor # 首先检查适配器登录状态
challenge-plans run <artifact> --type spec --profile standard --sink markdown # 审查一个计划/规格说明
challenge-plans run <artifact> --type spec --profile standard --sink markdown --lang zh # 本地化输出
# code-diff 门控: git diff > change.diff && challenge-plans run change.diff --type diff --sink markdown
# 从源代码检出版本(非 pip 安装):PYTHONPATH=src python3 -m challenge_plans.cli <args>
--type spec|diff|plan(decision评价标准尚未实现 — 设计上会以退出码 2 退出)。diff审查原始git diff;plan审查任何计划(旅行、发布、招聘 — 不限于开发规格说明),使用领域无关的失败类型(缺失成功标准/忽略约束/未处理风险/排序缺口/未声明的假设/目标错位/不可逆性/无回退方案),以及可行性·风险·目标一致性视角。所有类型均运行相同的裁决管道。--profile fast|standard|deep,--sink stdout|markdown,--enforce(非批准裁决以非零退出;默认建议退出码为 0)。--lang <code>(默认为en):以用户语言编写审查报告,例如--lang zh。根据用户语言设置此项,以便整个审查结果本地化;JSON 键 / 枚举 /L12-15锚点保持不变。等同于导出环境变量CHALLENGE_PLANS_LANG。- 输出:一个包含 6 种状态的裁决 + 未解决的反对意见。
[sev✓]= 跨系列验证者确认,可能严格门控;[sev?]= 未验证,仅为建议。
如果没有可用的后端
challenge-plans 需要至少一个已登录的订阅 CLI(它自身没有模型,且不使用任何 API 密钥)。如果 doctor 显示没有任何内容 ready,请不要盲目重试 — 询问用户,然后路由:
- 拥有 Claude 或 ChatGPT 订阅,但 CLI 缺失或未登录→ 引导用户执行
doctor打印的确切步骤(安装或claude→/login,或登录到codex)。 - 尚未有订阅但希望获得→ 引导用户订阅(Claude Pro/Max 或 ChatGPT),然后安装并登录 CLI。
- 无订阅且不希望订阅→ 解释 challenge-plans 无法在没有订阅的情况下运行,并停止 — 不要循环。
doctor 已经打印了每个后端的修复方法以及此指南;将其呈现给用户,而不是静默失败。
向用户呈现
向用户展示裁决结果 + 未解决的反对意见(✓ 已验证 vs ? 未验证) + 缺失的必填字段,作为“我的交叉审查建议”,然后让用户决定 — 而不是直接将空白的决策交给他们。详见 README.md。
与规划技能组合使用
- superpowers(
编写计划 → 执行计划):在writing-plans保存计划文件(默认为docs/superpowers/plans/<date>-<feature>.md— 读取实际路径)后,在executing-plans之前运行challenge-plans run <plan> --type spec。它占据与 superpowers 内置plan-document-reviewer相同的执行前审查环节,但作为多 CLI 跨系列通道。将未解决的反对意见反馈到计划中,然后执行。 - grill-me(mattpocock/skills):互补且更早 — 它在计划形成时与用户互动对齐(无文件输出)。在已书面的计划/PRD 存在之后再运行 challenge-plans。
- 没有自动调用 challenge-plans 的机制;调用智能体将其手动接入环节。
--type plan/decision评价标准尚未实现 — 对于类似计划的文本,目前请使用--type spec。