From workbench
把一次变更分阶段沉淀成可复读的产物。包含五个动作 — propose(写"为什么 / 改什么 / 影响什么")、plan(拆"怎么做 / 分几步")、apply(按 tasks 逐条实现并勾掉)、align(出现偏差或临时变更时纠偏并回写)、run(按现有进度一键跑完)。产物统一落到 nanospec/<YYYYMMDD-task-name>/。命令 `/propose` `/plan` `/apply` `/align` `/run` 进来时跳到对应 phase。
How this skill is triggered — by the user, by Claude, or both
Slash command
/workbench:nanospecThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- 需要在动手前把一次变更的范围与方案讲清楚
/propose /plan /apply /align /run 进来时直接走对应 phase不适用:
变更目录名一律为 YYYYMMDD-task-name:
20260506)add-user-auth)20260506-add-user-auth不要省略日期前缀。
nanospec/<name>/
├── brief.md # 用户原始需求(run 场景 A 自动写入)
├── proposal.md # propose 阶段:Why / What Changes / Impact
├── design.md # plan 阶段:Context / Goals / Decisions / Trade-offs
├── tasks.md # plan 阶段:可勾选任务清单(apply 阶段勾掉)
└── alignment.md # align 阶段:偏差日志(按需创建)
调用进来时,按 phase 跳到对应小节执行;如未指定 phase,先按以下规则推断:
/propose <args> → propose/plan → plan/apply → apply/align <args> → align/run <args> → run(编排器)把一次变更先写成 proposal,作为后续 plan + apply 的入口。
输入:
YYYYMMDD-task-name,或如果两个都没有,先用 AskUserQuestion 问"这次要做什么变更?",然后再继续。没问清楚之前不要往下做。
步骤:
确认变更名
YYYYMMDD-task-name;不符合就改成符合的并告知用户20260506-add-user-auth)建目录 nanospec/<name>/(不存在则 mkdir)
写 nanospec/<name>/proposal.md,结构:
## Why
<!-- 这个变更解决什么问题?为什么是现在做? -->
## What Changes
<!-- 具体要新增 / 修改 / 删除什么。要具体,不要"优化体验"。 -->
## Impact
<!-- 影响哪些代码 / API / 依赖 / 系统 -->
上下文里能推断的填进去;推断不出的关键点用 AskUserQuestion 问,再回填
报告:proposal 路径 + 一句话总结 Why/What + 提示"下一步可以跑 /plan"
纪律:
承接 proposal,把"怎么做"和"分几步做"分别落到 design.md 与 tasks.md。
输入:
<name>,对应 nanospec/<name>/proposal.md;若没有,先回去跑 propose 或当面跟用户确认 Why/What步骤:
读 nanospec/<name>/proposal.md 与 alignment.md(若有)
写 design.md:
## Context
<!-- 背景与现状:相关代码 / 既有约束 / 之前的相关变更 -->
## Goals / Non-Goals
**Goals:**
<!-- 这次设计要达成什么 -->
**Non-Goals:**
<!-- 明确不在本次范围内的事 -->
## Decisions
<!-- 关键技术决策与取舍理由。一个决策一段,先写结论再写为什么。 -->
## Risks / Trade-offs
<!-- 已知风险、回滚思路、性能 / 兼容性等取舍 -->
写 tasks.md:
## 1. <Task Group>
- [ ] 1.1 <task 描述,可执行、可验证>
- [ ] 1.2 ...
## 2. <Task Group>
- [ ] 2.1 ...
关键点缺信息时,用 AskUserQuestion 问,再回填——不要靠推测把 design 编圆
报告:产物路径 + Decisions/Non-Goals 各 1–2 条提要 + 任务总数 + 提示"下一步可以跑 /apply"
纪律:
n.m,按 Task Group 分组,便于 apply 按顺序勾掉按 tasks.md 逐条实现,每条做完立刻把 - [ ] 改成 - [x]。
输入:
<name>;如未给:
nanospec/ 下只有一个活跃变更时直接选它<name>,要切换其它变更请告诉我"步骤:
nanospec/<name>/proposal.md、design.md、tasks.md、alignment.md(存在的都读),没读完不要动代码- [ ] 改成 - [x]纪律:
- [x],不要攒到最后一起改横切阶段。出现"实现偏离预期 / 口径需要补充 / 临时变更"时,先把问题落到 alignment.md,再把影响传播到 proposal/design/tasks,最后把后续动作变成 tasks 中可勾选的任务。
何时切到 align:
步骤:
alignment.md(不存在则新建)
[偏差] [变更] [缺失] [歧义] [冲突]⏳ 待确认 标记需要用户确认的条目;用户确认后移除该标记并把条目改成 [x]@YYYY-MM-DDproposal.md / design.md 中受影响的段落,不能让产物互相打架design.md 的 Decisions 里加一条新决策,旧决策保留并标"已被 X 取代"tasks.md 里的新任务(编号续到现有组之后或新建组),不要只停留在 alignment.md 里alignment.md 默认结构:
# Alignment Log
- [ ] **[标签]** 问题描述。 `@YYYY-MM-DD`
- 详细说明 / 上下文
- [ ] **[标签]** `⏳ 待确认` 需要用户确认的问题。 `@YYYY-MM-DD`
- 选项 / 建议
- [x] **[标签]** 已解决的问题描述。 `@YYYY-MM-DD`
- **Resolved:** 最终结论或决策。 `@YYYY-MM-DD`
标签含义:
[偏差] 实现与口径不一致[变更] 用户主动改 / 加 / 减需求[缺失] 口径里漏了某个场景或边界[歧义] 表述不清,多种解读[冲突] proposal / design / tasks 之间互相矛盾纪律:
⏳ 待确认 是给用户的硬阻塞,没确认前不要替用户做决定编排器。一次性把 propose → plan → apply 串起来跑:检测 nanospec/<name>/ 里已有什么、缺什么,从缺口处接续。
两种场景:
例:/run 实现用户登录,支持手机号和邮箱两种方式。
判断:输入里带有较完整的功能描述(>10 个字 / 有动作 + 对象)。
执行:
add-user-login)<name> = YYYYMMDD-add-user-loginnanospec/<name>/nanospec/<name>/brief.md例:/run 或 /run 20260506-add-user-login。
执行:
<name>:
nanospec/ 下找唯一活跃变更;多个变更时用 AskUserQuestion 让用户选进度检测表:
| 检查项 | 文件 | 算"已完成"的标准 |
|---|---|---|
| Brief | brief.md | 文件存在且非空 |
| Proposal | proposal.md | 文件存在,且 Why / What Changes / Impact 三节都填了 |
| Plan | design.md + tasks.md | 两份都存在,design 有 Decisions,tasks 至少 1 条 |
| Apply | tasks.md | 全部任务勾成 [x] |
起始点判断:
有 brief 但没 proposal → 从 propose 开始
有 proposal 但没 plan → 从 plan 开始
有 plan 但 tasks 未跑完 → 从 apply 接续
全部完成 → 报告"全流程已完成"
brief 也没有 + 场景 A → 先写 brief,再从 propose 开始
brief 也没有 + 场景 B → 提示用户先给需求描述
执行:按起始点顺序调用对应 phase 的能力,每跑完一个阶段做阶段报告:
✅ <阶段名> 完成
产物:<文件路径>
下一步:<下一阶段> 或 全流程完成
完成汇总:
## 工作流完成
| 阶段 | 状态 | 产物 |
|------|------|------|
| propose | ✅ | nanospec/<name>/proposal.md |
| plan | ✅ | nanospec/<name>/design.md, tasks.md |
| apply | ✅ | tasks.md(N/N 完成) |
### 主要交付
- <列出本次会话动过的代码 / 文档 / 配置>
### 建议下一步
- 跑相关验证命令并提交
- 或者发现偏差时跑 `/align`
纪律:
/run 应当从上次断点继续——所以"每个阶段写完产物再进下一步"是硬约束nanospec/<name>/,不要只在回复里输出Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub xxih/ai-harness-zh --plugin xxih-kit