规范初始化Skill spec-init

spec-init(规范初始化)是一个统一技能,旨在通过结构化、交互式过程指导软件规范的创建。它集成了需求收集、规范验证和计划生成功能,帮助开发团队高效定义、验证和管理项目需求。关键词:规范创建、需求分析、软件规范、交互式流程、spec初始化。

需求分析 0 次安装 0 次浏览 更新于 3/10/2026

名称: 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

假设中断: 如果不在内存中,则未发生。