zixun-github/ai-dlc · Archived

spec-plan

Use when 需要在 dlc-dev 的 Spec Pack 中执行 I1(实现计划),把 requirements/design 转成 `{FEATURE_DIR}/implementation/plan.md`(Spec 级编排 SSOT),并在多任务协作场景下可选初始化 Task Pack(`implementation/tasks/*`);阶段与状态词汇见 `./assets/collaboration_stages_and_states.md`。

First seen Jul 28, 2026

Installation

$ npx skills add zixun-github/ai-dlc --skill spec-plan

Summary

Use when 需要在 dlc-dev 的 Spec Pack 中执行 I1(实现计划),把 requirements/design 转成 `{FEATURE_DIR}/implementation/plan.md`(Spec 级编排 SSOT),并在多任务协作场景下可选初始化 Task Pack(`implementation/tasks/*`);阶段与状态词汇见 `./assets/collaboration_stages_and_states.md`。

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from zixun-github/ai-dlc · top by installs.

npx skills add zixun-github/ai-dlc

Browse all from zixun-github/ai-dlc

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 4
Default branch master
Open issues 1
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 15,813 B
  • docs SUMMARY.md 349 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 4 installs

SKILL.md

spec-plan(I1:实现计划 / plan.md SSOT)

概览

I1 的目标是把 {FEATUREDIR}/requirements/{FEATUREDIR}/design/ 转换为可直接执行的实现编排:主产物为 {FEATUREDIR}/implementation/plan.mdSpec 级 SSOT:任务列表、依赖、AC 映射、分支映射、Phase C 门禁、整体进度摘要)。 启用 Task Pack / 多任务协作 时,同步在 {FEATUREDIR}/implementation/tasks/<TASK_DIR>/ 落盘任务级 SSOT(task.mdstatus.yamlreview.md,按需 research.mddesign.md),将高频执行态plan.md 下沉,避免多人争抢单文件。 单人单分支退化:可不创建 implementation/tasks/,仍在 plan.md 内展开完整步骤与勾选(与历史 I1 兼容)。

开始时宣布:「我正在使用 spec-plan 技能创建实现计划(plan.md SSOT)。」

何时使用 / 不使用

  • 使用时机

- 你需要产出或更新 {FEATURE_DIR}/implementation/plan.md(I1 必做)。 - 你准备进入 I2 执行,但当前没有“可勾选 + 可执行”的任务清单。

  • 不要用在

- spec-context 失败、拿不到 FEATURE_DIR(此时必须停止)。 - 输入侧 SSOT 不足:requirements/solution.mdrequirements/prd.md 都不存在,且无法追溯范围/验收(必须在 plan.md 标注 NEEDS CLARIFICATION 并阻断进入 I2)。

门禁 / 停止(严格执行)

REQUIRED SUB-SKILL:正在执行 spec-context 获取上下文,并在对话中回显 FEATURE_DIR=...(允许 (reuse))。

立刻停止(满足其一即可):

  • 未得到 FEATURE_DIR
  • 分支/目录不确定(你发现自己想“猜 .aidlc/specs/... 路径”)
  • requirements/solution.mdrequirements/prd.md 均缺失,导致目标/范围/验收口径无法追溯
  • 任何关键不确定性无法在输入中证据化(必须写入 plan.md/## NEEDS CLARIFICATION,并明确“阻断进入 I2”)

输入 / 输出(落盘约定)

  • 读取(渐进式披露,最少必要)

- 项目级(必读其索引或必要片段):project/memory/*project/contracts/project/adr/ - 优雅降级:若 .aidlc/project/ 不存在或上述索引文件缺失,标注 CONTEXT GAP不阻断 I1 流程;在 plan.md 的"影响范围与约束"段落中注明相应缺口来源为 CONTEXT GAP,并建议后续通过 Discover 或实际验证补齐 - Spec 级(按需最少读):{FEATUREDIR}/requirements/solution.md{FEATUREDIR}/requirements/prd.md(至少其一) - 影响分析(强制,若有 solution.md):必须读取 {FEATUREDIR}/requirements/solution.md#impact-analysis,提取受影响模块清单与需遵守的不变量,作为 I1 的约束输入(缺失则停止并回到 R1 补齐) - Spec 级(如存在且相关):{FEATUREDIR}/design/design.md{FEATURE_DIR}/design/research.md - .gitmodules(如存在;用于识别可参与实现的 submodule 静态清单)

  • 写入

- 必写{FEATUREDIR}/implementation/plan.md - 可选(多任务 / 协作):对每个任务目录 {FEATUREDIR}/implementation/tasks/<TASK_DIR>/ 初始化 Task Pack(从本技能 assets/ 模板复制并填实): - task.mdassets/task-template.md - status.yamlassets/task-status.template.yaml - review.mdassets/task-review-template.md - 按需:research.mdassets/task-research-template.mddesign.mdassets/task-design-template.md

协作脚本(设计稿 §13.2 / §13.3)

以下脚本位于本技能 ./scripts/源文件为 ASCII,避免 Windows PowerShell 5.1 在无 BOM 下解析 UTF-8 中文失败)。在消费仓库执行;当前分支可为 Spec 分支任务分支001-foo/T1-bar),亦可用 -FeatureDir 显式传入 Spec Pack 路径。

脚本 作用
task-collab-common.ps1 内部模块:点号加载,勿单独执行
init-task-pack.ps1 assets/ 模板生成 implementation/tasks/<TaskDir>/
new-task-branch.ps1 从 Spec 分支创建并切换 SpecBranch/TaskDir
sync-task-status-summary.ps1 只读汇总各 status.yaml(可加 -Json
test-phase-c-gate.ps1 Phase B→C 任务级门禁(routing_status 全为 done、无 blocked
validate-task-branch.ps1 §13.3:任务分支门禁(Task Pack 目录须存在,可挂 pre-push)
set-task-review-state.ps1 §13.3:写 in_review / task-review
update-task-status-after-merge.ps1 §13.3:合回 Spec 后将任务标为 done
test-spec-integration-gate.ps1 §13.3:调用 phase-c gate + 可选 -RequireCleanWorkingTree

Git hook 样例assets/githooks-pre-push-validate-task-branch.sample.ps1

示例(在消费仓库根目录,且已切到对应 Spec 或任务分支):

powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>/scripts/init-task-pack.ps1" -TaskDir T1-user-api -Title "Login API"
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>/scripts/new-task-branch.ps1" -TaskDir T1-user-api
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>/scripts/sync-task-status-summary.ps1"
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>/scripts/test-phase-c-gate.ps1"
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>/scripts/validate-task-branch.ps1"
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>/scripts/set-task-review-state.ps1" -TaskDir T1-user-api
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>/scripts/update-task-status-after-merge.ps1" -TaskDir T1-user-api -PrUrl "https://example.com/pr/1"
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_DIR>/scripts/test-spec-integration-gate.ps1" -RequireCleanWorkingTree

spec-context 的关系:spec-context 已支持任务分支并输出 TASKWORKBRANCH / TASKDIR / TASKPACKDIR;worker 仍须先 spec-contextFEATUREDIR。脚本面向人机 / CI,通过分支名或 -FeatureDir 解析,不替代 spec-context 门禁。Router 补充见 using-aidlcrouter/routing-collaboration.md

小块任务粒度(重用 writing-plans)

每一步是一个动作(2–5 分钟),并在 plan.md 中写到“任何人照抄即可执行”:

  • 「写失败测试」(如适用)- 一步
  • 「运行确保失败」- 一步
  • 「实现让测试通过的最少代码」- 一步
  • 「运行验证确保通过」- 一步
  • 「提交」(频繁提交;受 AUTOCOMMIT 控制,AUTOCOMMIT=false 时标记为"跳过(AUTO_COMMIT=false)"并列出变更文件清单)- 一步

约束:I1 只写计划,不写代码;但每个任务必须声明其最小验证方式(命令 + 期望信号)。

plan.md 头部(必须)

必须以该头部开头(完整结构见 ./assets/plan-template.md,含 AC 映射、任务依赖、任务索引、Phase C 门禁 等协作字段):

# [需求名] 实现计划(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 契约不变量]
**子仓范围:** [若存在 `.gitmodules`,列出本次需求涉及的 submodule;无则写“无”]

---

计划正文(必须)

  • TL;DR:一句话概括计划目标与范围
  • 范围与边界:In/Out(对齐需求与设计)
  • AC 映射:需求 AC → Task(协作模式推荐)
  • 任务依赖:依赖图或表(与各 Task Pack status.yaml 中的 depends_on 一致)
  • 任务索引:Task ID、Owner、任务分支、implementation/tasks/... 路径(启用 Task Pack 时推荐)
  • Phase C 进入条件:门禁勾选(见模板)
  • 影响范围与约束(必填)

- 受影响模块清单及影响类型(引用 requirements/solution.md#impact-analysis) - 需遵守的 API/Data 契约不变量(逐条列出,标注来源模块/锚点) - 跨模块影响与协调事项(基于依赖关系图/影响分析)

  • 代码工作区清单(如适用,必填)

- 从 .gitmodules 引用受影响子仓路径 - 标记每个子仓是否 required - 默认分支要求:与根项目 CURRENTBRANCH 同名 - 若存在例外,显式记录 exceptionreason

  • 里程碑与节奏:阶段拆分、时间预估、交付物清单
  • 依赖与资源:外部系统/团队/权限/环境/数据依赖
  • 风险与验证:风险清单、验证方式、Owner
  • 验收口径:对应 PRD/方案的关键 AC 与验收人
  • NEEDS CLARIFICATION(必须有):统一列出未消除的不确定项(未消除前不得进入 I2)

任务结构(重用 writing-plans,但加入 SSOT/审计/门禁)

plan.md 内必须包含可勾选的任务清单(- [ ]/- [x])。勾选粒度为任务完成(Task done),而非每一个微步骤。

  • 未启用 Task Pack:每个任务可在 plan.md 内写全量步骤、验证与审计(历史模式)。
  • 已启用 Task Packplan.md 保留任务级摘要、索引与完成勾选;完整步骤与高频状态写入对应目录的 task.mdstatus.yaml(详见 ./assets/task-template.md)。

每个任务必须包含(在 plan.md 和/或对应 task.md 中补全,整体不可缺):

  • 精确文件路径(创建/修改/测试)
  • 可验证验收点(可测试条件)
  • 可执行步骤(命令 + 期望输出/信号)
  • 提交点与最小审计信息(按 repo 记录 branch/commit/pr/changed_files

任务模板(示例骨架):

## 任务清单(SSOT)

### Task T1: [任务标题]

- [ ] **状态**:未开始 / 进行中 / 完成 / 阻塞(阻塞必须写明取证路径)

**代码仓范围:**
- 根项目:
- 子仓:(如适用;填写 `.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:提交(受 AUTO_COMMIT 控制)**
- `AUTO_COMMIT=true`(默认):频繁提交;commit message 必须中文
  - Commit message: `[一句话说明 why(中文)]`
- `AUTO_COMMIT=false`:跳过自动提交,输出"以下文件已变更,请手动提交:"及变更文件清单
- 审计信息:
  - repo: `root`
    branch: `{CURRENT_BRANCH}`
    commit: `<TBD>`(`AUTO_COMMIT=false` 时填"手动提交")
    pr: `<TBD>`
    changed_files: `<TBD>`
  - repo: `<submodule path>`(如适用)
    branch: `{CURRENT_BRANCH}`
    commit: `<TBD>`(`AUTO_COMMIT=false` 时填"手动提交")
    pr: `<TBD>`
    changed_files: `<TBD>`

命令书写约定:默认面向 PowerShell;同一行多命令请用 ; 分隔(不要用 &&)。

I1-DoD(门禁:缺一不可)

  • 计划范围与 {FEATUREDIR}/requirements/{FEATUREDIR}/design/ 一致且可追溯
  • 里程碑明确且可验收(每一项有对应产物或可验证标准)
  • 依赖与风险已列出,并有最小验证/缓解动作(含 Owner)
  • 关键验收口径可追溯(至少引用 requirements/prd.mdrequirements/solution.md
  • 影响范围与约束已注入plan.md 包含"影响范围与约束"段落,受影响模块与需遵守的不变量已从 requirements/solution.md#impact-analysis 提取并逐条列出
  • .gitmodules 存在且影响分析命中子仓:plan.md 已声明受影响子仓、required 标记、默认同名分支要求与例外原因
  • plan.md 内存在“任务清单(SSOT)”,且每个任务包含:文件路径、验收点、最小验证方式、提交点与审计信息(可分布在 plan.md 与 Task Pack task.md 中,但合并后须满足)
  • 若已创建 Task Pack:plan.md任务索引(指向 implementation/tasks/...),且各包内 status.yamlroutingstatus / activitystage / depends_on 与计划一致
  • 任何不确定项均进入 NEEDS CLARIFICATION,且未消除前不得进入 I2

牢记(高频规则速查)

  • 始终先执行 spec-context 获取上下文,拿到 FEATURE_DIR=...,失败就停止
  • 始终写精确路径精确命令期望信号
  • 不要把不确定性写成已知;统一进入 NEEDS CLARIFICATION 并阻断 I2
  • DRY、YAGNI、TDD、频繁提交(计划里也要体现提交节奏;AUTOCOMMIT=false 时提交步骤标记为"跳过(AUTOCOMMIT=false)"并改为列出变更文件清单)
  • 若本次实现涉及子仓:在 I1 中先写清受影响子仓与同名分支要求;子仓分支创建/校验发生在 I1 -> I2 之间

执行交接(写完 plan.md 之后)

保存计划后,本技能不再决定“下一步/执行方式”。统一做法:

  • 宣布:{FEATURE_DIR}/implementation/plan.md 已落盘,且是 Spec 级编排 SSOT(若已初始化 Task Pack,任务级执行 SSOT 在 implementation/tasks/*
  • 提示:立即调用 using-aidlc 路由下一步(通常路由到 I2:spec-execute,再到 Finish:finishing-development
  • 若用户明确要求“本会话使用 subagent-driven-development 并行执行”,也应先调用 using-aidlc 明确路由结论后再开始执行(避免出现第二个路由源)

完成后输出与自动路由(必须执行)

plan.md 落盘后,必须完成以下动作(按顺序,不可省略):

  1. 输出 ROUTER_SUMMARY(YAML 形态,供 Router 决策):
ROUTER_SUMMARY:
  stage: I1
  artifacts:
    - "{FEATURE_DIR}/implementation/plan.md"
  needs_human_review: false
  blocked: false
  block_reason: ""
  notes: "软检查点:plan.md 建议评审;如不触发硬中断 Router 可继续自动推进"
  1. 立即执行 using-aidlc:将上述 ROUTER_SUMMARY 作为路由输入传递给 using-aidlc,由 Router 判定下一步并自动推进(无需等待用户说「继续」)。

- 若 Router 判定可自动续跑:在同一轮对话内继续执行下一步 worker skill(如 I2、Finish 等) - 若 Router 触发硬中断:停下并输出阻断原因、需要的输入、候选下一步

  1. 对话输出:在调用 using-aidlc 前,可简短说明「本阶段产物已落盘,正在调用 using-aidlc 路由下一步。」