名称: spec-init 描述: 统一技能,通过结构化、交互式过程指导规范的创建。 版本: 1.0.0 模型: sonnet 调用者: 用户 用户可调用: true 工具: [读取, 写入, 编辑] 已验证: false 最后验证时间: 2026-02-19T05:29:09.098Z
技能: spec-init
概述
统一技能,通过结构化、交互式过程指导规范的创建。
包装以下现有技能:
- progressive-disclosure (需求收集)
- spec-validator (模式验证)
- plan-generator (从规范生成计划)
工作流程
1. 类型检测
问题: “你在构建什么?”
从描述自动检测:
- 功能: “构建 X 功能” →
类型: 功能 - 缺陷: “修复 X 问题” →
类型: 缺陷 - 杂项: “更新 X 组件” →
类型: 杂项 - 重构: “重新组织 X” →
类型: 重构 - 文档: “文档化 X” →
类型: 文档
2. 渐进式披露 v2 (自适应, 5-7 个问题)
使用自适应算法调用 progressive-disclosure:
const { AdaptiveQuestioner } = require('.claude/lib/utils/adaptive-discloser.cjs');
const { ContextAccumulator } = require('.claude/lib/utils/context-accumulator.cjs');
// 根据检测到的类型确定领域
const domainMap = {
功能: '通用',
缺陷: '调试',
杂项: '通用',
重构: '架构',
文档: '文档',
};
const domain = domainMap[detectedType] || '通用';
const aq = new AdaptiveQuestioner(domain);
const ca = new ContextAccumulator();
let history = [];
let questionCount = 0;
while (questionCount < 7) {
const context = ca.getContext();
const result = await aq.getNextQuestion(context, history);
// 检查是否应提前停止
const readiness = await aq.detectOptimalStop(history, context);
if (readiness.shouldStop) {
break;
}
// 提问
const answer = await AskUserQuestion({ question: result.question });
// 存储答案及元数据
ca.addAnswer(result.question, answer, { domain, priority: '高' });
history.push({ question: result.question, answer });
questionCount++;
}
// 从累积上下文中生成摘要
const summary = ca.buildSummary();
相对于 v1 的关键改进:
- 自适应提问 (跳过冗余问题)
- 上下文感知 (从答案中学习)
- 内存集成 (利用 learnings.md)
- 最优停止 (通常 5-7 个问题, 从 10-12 减少)
- 质量评分 (检测何时准备好生成规范)
3. 规范模板生成
从答案自动填充规范:
# 规范: [功能名称]
## 1. 概述
**标题**: [来自问题 1]
**类型**: [检测到的类型]
**目标**: [用户摘要]
**用户故事**: 作为一个 [用户类型], 我想要 [能力], 以便 [好处]
**接受标准**: [来自问题 5]
## 2. 问题陈述
- **当前状态**: [来自问题 1 答案]
- **痛点**: [从答案中提取]
- **影响**: [如果可能,量化]
## 3. 提议解决方案
- **方法**: [来自用户输入]
- **关键特性**: [来自答案]
- **范围**: [包含/排除的内容]
## 4. 实施方法
- **阶段 1**: [设计/探针如果需要]
- **阶段 2**: [核心实施]
- **阶段 3**: [测试]
- **阶段 4**: [文档]
## 5. 成功指标
- **定量**: [来自问题 3]
- **定性**: [用户满意度]
- **时间线**: [来自问题 4]
## 6. 工作量估计
- **设计**: 1 天
- **实施**: 3 天
- **测试**: 2 天
- **文档**: 1 天
- **总计**: 7 天
## 7. 依赖项
- **必需**: [从上下文中提取]
- **阻塞**: [必须首先完成的内容]
- **风险**: [识别的关键风险]
## 8. 接受标准检查清单
- [ ] 功能按照规范实施
- [ ] 所有测试通过
- [ ] 文档已更新
- [ ] 无破坏性更改
- [ ] 性能目标达到
4. 验证
根据模式验证规范:
- 调用 spec-validator 技能
- 检查: 所有必需部分存在
- 检查: 至少 3 个接受标准
- 检查: 工作量估计以天为单位
5. 计划建议
规范批准后:
- 建议: “准备好为规划器创建计划?”
- 如果 yes: 显示
技能({ skill: "plan-generator", args: { specPath: "..." } }) - 如果 no: 允许编辑规范
6. 存储
保存规范到:
.claude/context/artifacts/specs/[功能名称]-规范-YYYYMMDD.md
跟踪元数据:
- trackId: 自动生成
- 类型: 检测到的
- 状态: “新”
- 创建时间: 时间戳
使用示例
示例 1: 快速功能
用户: "我想在 UI 中添加暗模式"
spec-init 工作流程:
1. 检测: 类型 = "功能"
2. 提问: 5 个关于暗模式的问题
3. 用户在 <5 分钟内回答
4. 生成规范
5. 根据模式验证
6. 存储并提供计划生成
示例 2: 缺陷修复
用户: "调度器中存在内存泄漏"
spec-init 工作流程:
1. 检测: 类型 = "缺陷"
2. 提问: 5 个问题 (重现步骤, 影响等)
3. 生成缺陷修复规范
4. 建议接受标准
5. 准备好为规划器
输出
- 生成的规范 markdown (已保存)
- 跟踪元数据 JSON
- 计划生成建议
- 下一步指导
集成点
- progressive-disclosure (需求收集)
- spec-validator (模式验证)
- plan-generator (下一步)
- track-metadata 模式 (元数据)
内存协议 (强制)
开始前:
读取 .claude/context/memory/learnings.md
完成后:
- 新模式 ->
.claude/context/memory/learnings.md - 发现问题 ->
.claude/context/memory/issues.md - 决策 ->
.claude/context/memory/decisions.md
假设中断: 如果不在内存中,则未发生。