spec-plan
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesespec-plan(I1:实现计划 / plan.md SSOT)
spec-plan(I1: Implementation Plan / plan.md SSOT)
概览
Overview
I1 的目标是把 与 转换为可直接执行的实现计划 ,并将其作为唯一执行清单与状态 SSOT(checkbox 任务 + 每任务步骤 + 最小验证 + 提交点 + 按 repo 审计信息)。
{FEATURE_DIR}/requirements/*{FEATURE_DIR}/design/*{FEATURE_DIR}/implementation/plan.md开始时宣布:「我正在使用 spec-plan 技能创建实现计划(plan.md SSOT)。」
The goal of I1 is to convert and into a directly executable implementation plan , and use it as the only execution checklist and status SSOT (checkbox tasks + per-task steps + minimum verification + commit points + audit information by repository).
{FEATURE_DIR}/requirements/*{FEATURE_DIR}/design/*{FEATURE_DIR}/implementation/plan.mdAnnounce at start: "I am using the spec-plan skill to create the implementation plan (plan.md SSOT)."
何时使用 / 不使用
When to use / When not to use
- 使用时机
- 你需要产出或更新 (I1 必做)。
{FEATURE_DIR}/implementation/plan.md - 你准备进入 I2 执行,但当前没有“可勾选 + 可执行”的任务清单。
- 你需要产出或更新
- 不要用在
- 失败、拿不到
spec-context(此时必须停止)。FEATURE_DIR - 输入侧 SSOT 不足:与
requirements/solution.md都不存在,且无法追溯范围/验收(必须在 plan.md 标注 NEEDS CLARIFICATION 并阻断进入 I2)。requirements/prd.md
- Use cases
- You need to generate or update (mandatory for I1).
{FEATURE_DIR}/implementation/plan.md - You are ready to enter I2 execution, but there is no "checkable + executable" task list currently.
- You need to generate or update
- Do not use when
- fails and you cannot get
spec-context(you must stop at this point).FEATURE_DIR - Input side SSOT is insufficient: both and
requirements/solution.mddo not exist, and scope/acceptance criteria cannot be traced (you must mark NEEDS CLARIFICATION in plan.md and block entry into I2).requirements/prd.md
门禁 / 停止(严格执行)
Gate Check / Stop Rules (Strictly Enforced)
REQUIRED SUB-SKILL:正在执行 获取上下文,并在对话中回显 (允许 )。
spec-contextFEATURE_DIR=...(reuse)立刻停止(满足其一即可):
- 未得到
FEATURE_DIR - 分支/目录不确定(你发现自己想“猜 路径”)
.aisdlc/specs/... - 与
requirements/solution.md均缺失,导致目标/范围/验收口径无法追溯requirements/prd.md - 任何关键不确定性无法在输入中证据化(必须写入 ,并明确“阻断进入 I2”)
plan.md/## NEEDS CLARIFICATION
REQUIRED SUB-SKILL: You are executing to get context, and echoing in the conversation ( is allowed).
spec-contextFEATURE_DIR=...(reuse)Stop immediately (if any of the following is met):
- is not obtained
FEATURE_DIR - Branch/directory is uncertain (you find yourself wanting to "guess the path")
.aisdlc/specs/... - Both and
requirements/solution.mdare missing, making the goal/scope/acceptance criteria untraceablerequirements/prd.md - Any key uncertainty cannot be evidenced in the input (must be written into , and explicitly "block entry into I2")
plan.md/## NEEDS CLARIFICATION
输入 / 输出(落盘约定)
Input / Output (Persistence Conventions)
- 读取(渐进式披露,最少必要)
- 项目级(必读其索引或必要片段):、
project/memory/*、project/contracts/project/adr/ - Spec 级(按需最少读):或
{FEATURE_DIR}/requirements/solution.md(至少其一){FEATURE_DIR}/requirements/prd.md - 影响分析(强制,若有 solution.md):必须读取 ,提取受影响模块清单与需遵守的不变量,作为 I1 的约束输入(缺失则停止并回到 R1 补齐)
{FEATURE_DIR}/requirements/solution.md#impact-analysis - Spec 级(如存在且相关):、
{FEATURE_DIR}/design/design.md{FEATURE_DIR}/design/research.md - (如存在;用于识别可参与实现的 submodule 静态清单)
.gitmodules
- 项目级(必读其索引或必要片段):
- 写入(唯一)
{FEATURE_DIR}/implementation/plan.md
- Read (progressive disclosure, minimum necessary)
- Project level (must read its index or necessary fragments): ,
project/memory/*,project/contracts/project/adr/ - Spec level (read as little as needed): or
{FEATURE_DIR}/requirements/solution.md(at least one of them){FEATURE_DIR}/requirements/prd.md - Impact analysis (mandatory, if solution.md exists): Must read , extract the list of affected modules and invariants to be followed as constraint inputs for I1 (stop and go back to R1 to fill if missing)
{FEATURE_DIR}/requirements/solution.md#impact-analysis - Spec level (if exists and relevant): ,
{FEATURE_DIR}/design/design.md{FEATURE_DIR}/design/research.md - (if exists; used to identify the static list of submodules that can participate in the implementation)
.gitmodules
- Project level (must read its index or necessary fragments):
- Write (only one)
{FEATURE_DIR}/implementation/plan.md
小块任务粒度(重用 writing-plans)
Small Task Granularity (Reuse writing-plans)
每一步是一个动作(2–5 分钟),并在 中写到“任何人照抄即可执行”:
plan.md- 「写失败测试」(如适用)- 一步
- 「运行确保失败」- 一步
- 「实现让测试通过的最少代码」- 一步
- 「运行验证确保通过」- 一步
- 「提交」(频繁提交)- 一步
约束:I1 只写计划,不写代码;但每个任务必须声明其最小验证方式(命令 + 期望信号)。
Each step is an action (2-5 minutes), and written in to the extent that "anyone can execute it by copying":
plan.md- "Write failure test" (if applicable) - one step
- "Run to ensure it fails" - one step
- "Implement the minimum code that makes the test pass" - one step
- "Run verification to ensure it passes" - one step
- "Commit" (frequent commits) - one step
Constraint: I1 only writes plans, not code; but each task must state its minimum verification method (command + expected signal).
plan.md
头部(必须)
plan.mdplan.md
Header (Mandatory)
plan.md必须以该头部开头(模板见 ):
./assets/plan-template.mdmarkdown
undefinedMust start with this header (see for the template):
./assets/plan-template.mdmarkdown
undefined[需求名] 实现计划(SSOT)
[Requirement Name] Implementation Plan (SSOT)
必需技能:(按批次执行本计划) 上下文获取: 必须先执行spec-execute获取上下文,定位spec-context,失败即停止{FEATURE_DIR}
目标: [一句话描述要交付什么]
范围: In / Out
架构: [2–3 句方法说明 + 关键约束]
验收口径: [引用 requirements/solution.md 或 requirements/prd.md 的 AC/验收点]
影响范围: [引用 requirements/solution.md#impact-analysis 的受影响模块清单]
需遵守的不变量: [从 requirements/solution.md#impact-analysis 提取的关键 API/Data 契约不变量]
子仓范围: [若存在 ,列出本次需求涉及的 submodule;无则写“无”]
.gitmodulesundefinedRequired Skill:(execute this plan in batches) Context Acquisition: Must first executespec-executeto get context and locatespec-context, stop if failed{FEATURE_DIR}
Goal: [One sentence describing what to deliver]
Scope: In / Out
Architecture: [2-3 sentences describing the method + key constraints]
Acceptance Criteria: [Reference AC/acceptance points from requirements/solution.md or requirements/prd.md]
Impact Scope: [Reference the list of affected modules from requirements/solution.md#impact-analysis]
Invariants to Follow: [Key API/Data contract invariants extracted from requirements/solution.md#impact-analysis]
Submodule Scope: [If exists, list the submodules involved in this requirement; write "None" if there are none]
.gitmodulesundefined计划正文(必须)
Plan Body (Mandatory)
- TL;DR:一句话概括计划目标与范围
- 范围与边界:In/Out(对齐需求与设计)
- 影响范围与约束(必填):
- 受影响模块清单及影响类型(引用 )
requirements/solution.md#impact-analysis - 需遵守的 API/Data 契约不变量(逐条列出,标注来源模块/锚点)
- 跨模块影响与协调事项(基于依赖关系图/影响分析)
- 受影响模块清单及影响类型(引用
- 代码工作区清单(如适用,必填):
- 从 引用受影响子仓路径
.gitmodules - 标记每个子仓是否
required - 默认分支要求:与根项目 同名
CURRENT_BRANCH - 若存在例外,显式记录
exception_reason
- 从
- 里程碑与节奏:阶段拆分、时间预估、交付物清单
- 依赖与资源:外部系统/团队/权限/环境/数据依赖
- 风险与验证:风险清单、验证方式、Owner
- 验收口径:对应 PRD/方案的关键 AC 与验收人
- NEEDS CLARIFICATION(必须有):统一列出未消除的不确定项(未消除前不得进入 I2)
- TL;DR: One sentence summarizing the plan goal and scope
- Scope and Boundary: In/Out (aligned with requirements and design)
- Impact Scope and Constraints (required):
- List of affected modules and impact types (reference )
requirements/solution.md#impact-analysis - API/Data contract invariants to be followed (list one by one, mark source module/anchor)
- Cross-module impact and coordination matters (based on dependency graph/impact analysis)
- List of affected modules and impact types (reference
- Code Workspace List (if applicable, required):
- Reference affected submodule paths from
.gitmodules - Mark whether each submodule is
required - Default branch requirement: same name as the root project
CURRENT_BRANCH - If there are exceptions, explicitly record
exception_reason
- Reference affected submodule paths from
- Milestones and Rhythm: Phase split, time estimation, deliverable list
- Dependencies and Resources: External system/team/permission/environment/data dependencies
- Risks and Verification: Risk list, verification method, Owner
- Acceptance Criteria: Key AC and acceptor corresponding to PRD/solution
- NEEDS CLARIFICATION (mandatory): Uniformly list unresolved uncertainties (entry to I2 is not allowed before resolution)
任务结构(重用 writing-plans,但加入 SSOT/审计/门禁)
Task Structure (Reuse writing-plans, with SSOT/audit/gate check added)
plan.md- [ ]/- [x]每个任务必须包含:
- 精确文件路径(创建/修改/测试)
- 可验证验收点(可测试条件)
- 可执行步骤(命令 + 期望输出/信号)
- 提交点与最小审计信息(按 repo 记录 )
branch/commit/pr/changed_files
任务模板(示例骨架):
markdown
undefinedplan.md- [ ]/- [x]Each task must include:
- Exact file path (create/modify/test)
- Verifiable acceptance points (testable conditions)
- Executable steps (command + expected output/signal)
- Commit points and minimum audit information (record by repo)
branch/commit/pr/changed_files
Task template (example skeleton):
markdown
undefined任务清单(SSOT)
Task List (SSOT)
Task T1: [任务标题]
Task T1: [Task Title]
- 状态:未开始 / 进行中 / 完成 / 阻塞(阻塞必须写明取证路径)
代码仓范围:
- 根项目:
- 子仓:(如适用;填写 中的路径,并注明
.gitmodules)required=true/false
文件:
- 创建:
exact/path/to/new.file - 修改:(可选:精确到段落/函数)
exact/path/to/existing.file - 测试:(如适用)
tests/exact/path/to/test.file
验收点:
- [可验证条件 1]
- [可验证条件 2]
步骤 1:写失败测试(如适用)
- 修改点:
tests/... - Run:
[精确命令] - Expected: FAIL(写出期望看到的关键失败信号)
步骤 2:写最少实现
- 修改点:
path/to/file
步骤 3:运行验证
- Run:
[精确命令] - Expected: PASS(写出期望看到的关键通过信号)
步骤 4:提交(频繁提交;commit message 必须中文)
- Commit message:
[一句话说明 why(中文)] - 审计信息:
- repo: branch:
rootcommit:{CURRENT_BRANCH}pr:<TBD>changed_files:<TBD><TBD> - repo: (如适用) branch:
<submodule path>commit:{CURRENT_BRANCH}pr:<TBD>changed_files:<TBD><TBD>
- repo:
> 命令书写约定:默认面向 PowerShell;同一行多命令请用 `;` 分隔(不要用 `&&`)。- Status: Not started / In progress / Completed / Blocked (for blocking, the evidence path must be written)
Code Repository Scope:
- Root project:
- Submodule: (if applicable; fill in the path in and indicate
.gitmodules)required=true/false
Files:
- Create:
exact/path/to/new.file - Modify: (optional: accurate to paragraph/function)
exact/path/to/existing.file - Test: (if applicable)
tests/exact/path/to/test.file
Acceptance Points:
- [Verifiable condition 1]
- [Verifiable condition 2]
Step 1: Write failure test (if applicable)
- Modification point:
tests/... - Run:
[exact command] - Expected: FAIL (write the key failure signal you expect to see)
Step 2: Write minimum implementation
- Modification point:
path/to/file
Step 3: Run verification
- Run:
[exact command] - Expected: PASS (write the key pass signal you expect to see)
Step 4: Commit (frequent commits; commit message must be in Chinese)
- Commit message:
[One sentence explaining why (Chinese)] - Audit information:
- repo: branch:
rootcommit:{CURRENT_BRANCH}pr:<TBD>changed_files:<TBD><TBD> - repo: (if applicable) branch:
<submodule path>commit:{CURRENT_BRANCH}pr:<TBD>changed_files:<TBD><TBD>
- repo:
> Command writing convention: Default for PowerShell; use `;` to separate multiple commands on the same line (do not use `&&`).I1-DoD(门禁:缺一不可)
I1-DoD (Gate Check: No item is missing)
- 计划范围与 、
{FEATURE_DIR}/requirements/*一致且可追溯{FEATURE_DIR}/design/* - 里程碑明确且可验收(每一项有对应产物或可验证标准)
- 依赖与风险已列出,并有最小验证/缓解动作(含 Owner)
- 关键验收口径可追溯(至少引用 或
requirements/prd.md)requirements/solution.md - 影响范围与约束已注入:包含"影响范围与约束"段落,受影响模块与需遵守的不变量已从
plan.md提取并逐条列出requirements/solution.md#impact-analysis - 若 存在且影响分析命中子仓:
.gitmodules已声明受影响子仓、plan.md标记、默认同名分支要求与例外原因required - 内存在“任务清单(SSOT)”,且每个任务包含:文件路径、验收点、最小验证方式、提交点与审计信息
plan.md - 任何不确定项均进入 ,且未消除前不得进入 I2
NEEDS CLARIFICATION
- The plan scope is consistent and traceable with ,
{FEATURE_DIR}/requirements/*{FEATURE_DIR}/design/* - Milestones are clear and acceptable (each item has corresponding deliverables or verifiable standards)
- Dependencies and risks have been listed, and there are minimum verification/mitigation actions (including Owner)
- Key acceptance criteria are traceable (at least reference or
requirements/prd.md)requirements/solution.md - Impact scope and constraints have been injected: contains the "Impact Scope and Constraints" paragraph, and the affected modules and invariants to be followed have been extracted from
plan.mdand listed one by onerequirements/solution.md#impact-analysis - If exists and the impact analysis hits submodules:
.gitmoduleshas declared the affected submodules,plan.mdmark, default same-name branch requirement and exception reasonrequired - There is a "Task List (SSOT)" in , and each task includes: file path, acceptance point, minimum verification method, commit point and audit information
plan.md - Any uncertain items are included in , and entry to I2 is not allowed before resolution
NEEDS CLARIFICATION
牢记(高频规则速查)
Keep in Mind (Quick Reference for High-frequency Rules)
- 始终先执行 获取上下文,拿到
spec-context,失败就停止FEATURE_DIR=... - 始终写精确路径、精确命令与期望信号
- 不要把不确定性写成已知;统一进入 并阻断 I2
NEEDS CLARIFICATION - DRY、YAGNI、TDD、频繁提交(计划里也要体现提交节奏)
- 若本次实现涉及子仓:在 I1 中先写清受影响子仓与同名分支要求;子仓分支创建/校验发生在 I1 -> I2 之间
- Always execute first to get context, get
spec-context, stop if failedFEATURE_DIR=... - Always write exact path, exact command and expected signal
- Do not write uncertainty as known; uniformly include it in and block I2
NEEDS CLARIFICATION - DRY, YAGNI, TDD, frequent commits (the commit rhythm should also be reflected in the plan)
- If this implementation involves submodules: first write down the affected submodules and same-name branch requirements in I1; submodule branch creation/verification occurs between I1 -> I2
执行交接(写完 plan.md 之后)
Execution Handover (After writing plan.md)
保存计划后,本技能不再决定“下一步/执行方式”。统一做法:
- 宣布:已落盘,且是实现侧唯一 SSOT
{FEATURE_DIR}/implementation/plan.md - 提示:立即调用 路由下一步(通常路由到 I2:
using-aisdlc,再到 Finish:spec-execute)finishing-development - 若用户明确要求“本会话使用 subagent-driven-development 并行执行”,也应先调用 明确路由结论后再开始执行(避免出现第二个路由源)
using-aisdlc
After saving the plan, this skill no longer decides the "next step/execution method". Unified practice:
- Announce: has been persisted to disk and is the only SSOT on the implementation side
{FEATURE_DIR}/implementation/plan.md - Tip: Call immediately to route the next step (usually routed to I2:
using-aisdlc, then to Finish:spec-execute)finishing-development - If the user explicitly requires "this session uses subagent-driven-development for parallel execution", you should also call to clarify the routing conclusion before starting execution (to avoid a second routing source)
using-aisdlc
完成后输出与自动路由(必须执行)
Post-completion Output and Automatic Routing (Mandatory)
plan.md- 输出 ROUTER_SUMMARY(YAML 形态,供 Router 决策):
yaml
ROUTER_SUMMARY:
stage: I1
artifacts:
- "{FEATURE_DIR}/implementation/plan.md"
needs_human_review: false
blocked: false
block_reason: ""
notes: "软检查点:plan.md 建议评审;如不触发硬中断 Router 可继续自动推进"-
立即执行:将上述
using-aisdlc作为路由输入传递给 using-aisdlc,由 Router 判定下一步并自动推进(无需等待用户说「继续」)。ROUTER_SUMMARY- 若 Router 判定可自动续跑:在同一轮对话内继续执行下一步 worker skill(如 I2、Finish 等)
- 若 Router 触发硬中断:停下并输出阻断原因、需要的输入、候选下一步
-
对话输出:在调用 using-aisdlc 前,可简短说明「本阶段产物已落盘,正在调用 using-aisdlc 路由下一步。」
After is persisted to disk, must complete the following actions (in order, cannot be omitted):
plan.md- Output ROUTER_SUMMARY (YAML format, for Router decision making):
yaml
ROUTER_SUMMARY:
stage: I1
artifacts:
- "{FEATURE_DIR}/implementation/plan.md"
needs_human_review: false
blocked: false
block_reason: ""
notes: "Soft checkpoint: plan.md is recommended for review; if no hard interrupt is triggered, the Router can continue to advance automatically"-
Executeimmediately: Pass the above
using-aisdlcas routing input to using-aisdlc, and the Router will determine the next step and advance automatically (no need to wait for the user to say "continue").ROUTER_SUMMARY- If the Router determines that it can automatically continue: continue to execute the next worker skill in the same round of conversation (such as I2, Finish, etc.)
- If the Router triggers a hard interrupt: stop and output the blocking reason, required input, and candidate next steps
-
Conversation Output: Before calling using-aisdlc, you can briefly state "The product of this stage has been persisted to disk, and using-aisdlc is being called to route the next step."