附录 B. 与 Qwen Code 的兼容性
第二册描述了围绕 Qwen Code 的生产流程。这些流程一部分内置在 Qwen Code 中,一部分需要以自定义命令、技能(skills)、钩子(hooks)、MCP 服务器或普通脚本的形式在项目中实现。本附录明确了这层边界,以免读者把设计中的流程误当成现成的 CLI 命令。
规范分级
第二册采用三级成熟度。这不是对方案质量的评价,而是对读者期望的边界。
| 级别 | 含义 | 落地层 |
|---|---|---|
| 标准 | 可以在普通 Qwen Code 中直接复用,无需额外平台。是课程的基础内容。 | Qwen Code 内置能力 |
| 推荐 | 若该流程会重复出现,建议在项目中落实。需要仓库内的文件:自定义命令、技能、钩子或脚本。 | 自定义命令、项目脚本 |
| 前沿 | 围绕 Qwen Code 的生产编排。只有真正接入外部 API、SRE 流程和模型预算的团队才需要。 | 外部编排器、MCP、外部服务 |
与四层模型的关系是:Qwen Code 的内置能力属于标准;自定义命令和项目脚本属于推荐;外部编排器属于前沿。如果示例涉及 Kubernetes、Grafana、PagerDuty 或单独的文件仲裁执行者,这属于教学模型的前沿层,而不是通过本册的硬性要求。
Qwen Code 的内置层
请按原样使用这些能力:
/plan— 仅做规划、不做修改和 shell 执行。/review— 内置的代码评审,支持确定性检查与并行评审子代理。/skills— 查看并显式触发技能。/memory、/remember、/forget— 管理记忆与QWEN.md(/dream作为显式的整合命令可能出现在后续版本中;如果你的发行版里没有,请把整合封装为自定义命令)。/mcp与qwen mcp add— 接入 MCP 服务器。@path— 把文件或目录加入上下文。!command— 在交互会话中执行 shell 命令。qwen -p "..."— 用于 CI、批处理检查和脚本的无头(headless)运行。
自定义命令
如果你想要 /specify、/tasks、/validate、/constitution 或类似命令,请显式创建:
.qwen/
commands/
sdd/
specify.md
tasks.md
validate.md
constitution.md
这样就可以以 /sdd:specify、/sdd:tasks、/sdd:validate、/sdd:constitution 的形式调用。在 Markdown 文件中保存带 {{args}}、对 @specs/... 的引用以及停止规则的提示词。
/clarify 的处理方式相同:在第一册中该命令被用作规划前明确需求的步骤,但它并非 Qwen Code 内置。在第二册中针对同一场景,请在项目中定义自定义命令(例如 .qwen/commands/sdd/clarify.md),调用形式为 /sdd:clarify。行为和停止契约请在提示词中写明,以便第一册的 /clarify 步骤能够在不依赖隐性假设的情况下复现。
项目脚本
必须在不使用模型的情况下可重复执行的检查,请实现为普通脚本:
scripts/
spec_ci/
check_coverage.py
validate_schema.py
stress_mutator/
mutate_specs.py
fake_validator.py
immunity_score.py
tribunal/
run_duel.py
check_invariants.py
write_judgment.py
budget/
compile.py
simulate.py
inspect.py
Qwen Code 可以协助编写和运行这些脚本,但绿色状态必须取决于检查代码本身,而不是模型回答的说服力。
钩子
在设置护栏(guardrails)时请使用 Qwen Code 的官方事件:PreToolUse、PostToolUse、UserPromptSubmit、SessionStart、Stop、SubagentStop、Notification、PreCompact 等。在第二册的正文里请使用这些官方名称,不要使用像 pretooluse 这样的随意变体。准确的事件列表与配置格式请以 Qwen Code 的最新文档为准(参见本附录末尾的链接)。
MCP 与外部 API
生产环境的 API 不应变成无限制的 shell 命令。对于 Grafana、PagerDuty、Kubernetes、Jira 或内部 API,更好的做法是构建一个带有工具白名单(allowlist)的 MCP 服务器:
- 用于分诊和检查的只读工具;
- 用于安全操作的独立写工具;
- 显式的确认与回滚条件;
- 禁止在提示词、调用轨迹和
QWEN.md中传递密钥。
第二册术语
| 章节术语 | 在 Qwen 项目中的实现 |
|---|
| 验证者(Verifier)— 参与投票 | /review、单独的 Qwen 会话、子代理或项目脚本 | | 实现者(Implementor)— 参与投票 | 已批准计划后,Qwen Code 以 default/auto-edit 模式工作 | | 安全(Safety)— 在出现 critical_risk 时有一票否决权 | 单独的 Qwen 会话配合 safety_review,或检查爆炸半径与回滚条件的项目脚本 | | 协调者(Coordinator)— 不投票的协议主持者 | 人类、CI 任务或外部编排器 | | 文件仲裁(tribunal) | 非内置命令;是 /review、脚本、报告与 validation.md 中规则的组合 | | 规格守门(Spec CI) | GitHub Actions 或本地脚本,可以仅将 qwen -p 作为辅助层 | | 预算守护(budget keeper) | 外部服务或脚本;Qwen Code 本身并不管理各层级的每日配额 |
参考链接
应用册的 README 只作为简短的路线图,外部资料统一汇总到这里。
- Qwen Code commands: https://qwenlm.github.io/qwen-code-docs/en/users/features/commands/
- Qwen Code headless mode: https://qwenlm.github.io/qwen-code-docs/en/users/features/headless/
- Qwen Code hooks: https://qwenlm.github.io/qwen-code-docs/en/users/features/hooks/
- Qwen Code skills: https://qwenlm.github.io/qwen-code-docs/en/users/features/skills/
- Qwen Code memory: https://qwenlm.github.io/qwen-code-docs/en/users/features/memory/
- Qwen Code MCP: https://qwenlm.github.io/qwen-code-docs/en/users/features/mcp/
- Qwen Code approval mode: https://qwenlm.github.io/qwen-code-docs/en/users/features/approval-mode/
- Qwen Code code review: https://qwenlm.github.io/qwen-code-docs/en/users/features/code-review/
- GitHub Spec Kit: https://github.com/github/spec-kit
- AWS Kiro documentation overview: https://aws.amazon.com/documentation-overview/kiro/
- OWASP Top 10 for LLM Applications: https://owasp.org/www-project-top-10-for-large-language-model-applications/
- Google SRE book: https://sre.google/sre-book/
- Goodhart's law: https://en.wikipedia.org/wiki/Goodhart%27s_law