Skip to content

深入解析地图

这页面向已经跑通过 doctorinit 和第一个 workflow 的读者。它不再重复安装步骤,而是解释 spec-first 为什么这样设计、哪些边界不能混用、哪些证据可以信、哪些判断必须留给 LLM 与人

Spec-First workflow end-to-end

核心结论很简单:

text
Scripts prepare facts. LLM decides.
Source assets generate runtime mirrors.
Workflow artifacts carry evidence forward.

阅读路径

你想弄清楚推荐先读关键判断
spec-first 的底层设计观AI Coding Harness它不是 prompt collection,而是把 AI coding 放进可治理的工程闭环
CLI、init、runtime 之间的关系运行时治理package CLI 负责确定性维护;宿主 workflow 入口由 init 投递
需求、计划、执行、评审如何衔接工作流系统主链路按当前缺口进入,不是固定状态机
artifact、handoff、verification 为什么重要契约与质量门禁产物必须携带来源、freshness、限制和验证证据
provider、隐私、外部工具能不能当事实源安全与证据边界provider evidence 是候选线索,源码/测试/日志仍是确认依据

AI Coding Harness

spec-first 把 AI coding 拆成六层 harness,而不是把所有规则塞进一个超级 prompt:

Harness 层关注点在 spec-first 中的落点
Context Harness给 AI 正确上下文,不给无限上下文bounded direct reads、project guidance、summary-first handoff
Execution Harness把执行变成可跟踪流程spec-plan、task pack、spec-work
Evidence Harness结论必须能回到证据source refs、git diff、测试日志、review findings
Evaluation Harness记录有没有真的变好verification profile、content audit、release gates
Governance Harness权限、边界、降级和安全source/runtime gate、dispatch boundary、provider degraded mode
Knowledge Harness把经验沉淀给下一轮docs/solutions/、compound、compound-refresh

这也是官网叙事应避免的误区:spec-first 的卖点不是“更多 agent”,而是 agent 的输入、边界、产物和复用路径更可靠

运行时与 CLI

spec-first package CLI 与宿主 workflow 入口不是同一层:

Spec-First runtime assets

负责什么典型入口
Package CLI安装后可直接运行的确定性维护命令spec-first doctorinitupdatecleantasks validatesession
Source assetspackage 内维护的 skill、agent、template、contract 和 CLI sourceskills/(含 skill-local references/agents)、templates/src/cli/
Runtime mirrorsinit 投递到项目内、供宿主加载的副本.claude/.codex/.agents/skills/
Host workflowsClaude Code / Codex / preview hosts 会话内使用的公开入口spec-*

关键边界:

  • 不手改 .claude/.codex/.agents/skills/ 来“修 workflow 行为”;应改 source,再重新 init
  • spec-first update 是 package CLI,不是宿主 workflow;它会升级全局 npm CLI,并尝试重新运行 init 刷新 runtime。
  • doctorruntime-setup 准备运行事实,不替代需求、架构、review 判断。
  • 当前产品面统一使用 spec-*;不同宿主的 runtime 投递形态不同,workflow contract 应保持一致。

工作流系统

主链路可以从当前缺口进入:

text
Codebase -> Spec -> Plan -> Tasks -> Code -> Review -> Knowledge
当前缺口入口产物或结果
想法多、方向不明spec-ideate候选方向、取舍理由
WHAT 不清楚spec-brainstorm / spec-prdrequirements / PRD-grade change delta
HOW 不清楚spec-planimplementation units、风险、验证
大计划需要可交接spec-write-taskstask pack、dependencies、stop_iftest_focus
已经能执行spec-work / spec-debug / spec-optimizescoped diff、测试/日志/浏览器证据
需要质量判断spec-code-review / spec-doc-reviewstructured findings、residual risks
问题已解决spec-compound / spec-compound-refresh可复用 solution docs

不要把 workflow 误解为强状态机。小改可以直接从 work 或 review 进入;复杂改动才需要从 ideate、brainstorm 或 plan 起步。入口治理的目标是把任务送到当前最缺的层,而不是让每次对话跑完整流程。

契约与质量

spec-first 的产物不是“写给人看的日志”,而是下一步 workflow 可消费的 handoff:

契约对象必须回答
Workflow contract输入是什么、输出是什么、谁消费、失败时如何降级
Artifact summary这份产物说了什么、依据是什么、限制是什么、是否 fresh
Task pack从哪个 plan 派生、hash 是否匹配、文件边界和 stop_if 是什么
Verification profile这次改动应跑哪些检查、哪些通过、哪些未跑以及原因
Review finding严重级别、证据、影响面、修复建议和剩余风险

质量门禁的重点是防止 fake completion:不能因为 LLM 觉得“应该没问题”就宣称完成。完成声明应回到 source reads、diff、测试、构建、截图、日志或用户提供的证据。

安全与证据边界

外部工具和 provider 只提供候选证据:

  • CodeGraph / Graphify / MCP tools 可以帮助定位关系和影响面,但不拥有最终语义权威。
  • provider unavailable、stale、blocked 或 degraded 时,应显式说明并回到 direct source reads。
  • Slack、session history、release notes 是背景证据,不是当前代码事实。
  • 隐私和密钥边界由脚本、deny rules、redaction 和人工判断共同守住;不要把原始敏感数据写入 durable docs。

官网文档在表达 provider 能力时应保持克制:可以说“辅助定位”“候选 evidence”“提高输入质量”,不要说“自动证明”“完整理解代码库”或“替代 review”。

与现有指南的关系

这页是阅读地图,不替代操作指南:

编辑维护原则

后续官网同步时,把结构化生成产物、源码事实和发布记录当作 输入材料,不要直接变成官网页面。官网文档需要承担运营编辑职责:

  1. 先按读者任务组织信息,再映射内部模块。
  2. 只保留可验证、可解释、对使用决策有帮助的内容。
  3. 保持 source/runtime、script/LLM、provider/source truth 三组边界清晰。
  4. 对用户可见变化同步 CHANGELOG.md,并跑内容审计和构建检查。