spec-interview

通过系统性访谈完善技术规格文档,访谈完成后自动创建 OpenSpec proposal。适用于需求细化、技术方案设计、规范驱动开发等场景。

16 stars

Best use case

spec-interview is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

通过系统性访谈完善技术规格文档,访谈完成后自动创建 OpenSpec proposal。适用于需求细化、技术方案设计、规范驱动开发等场景。

Teams using spec-interview should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/spec-interview/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/documentation/spec-interview/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/spec-interview/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How spec-interview Compares

Feature / Agentspec-interviewStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

通过系统性访谈完善技术规格文档,访谈完成后自动创建 OpenSpec proposal。适用于需求细化、技术方案设计、规范驱动开发等场景。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 规格访谈技能

## 概述

通过深入的苏格拉底式访谈,将草稿规格说明转化为完整、可执行的技术文档。访谈完成后自动创建 OpenSpec proposal,实现规范驱动开发(Spec-Driven Development)。

## 核心功能

- 系统性需求访谈与细化
- 工程原则审查(KISS、YAGNI、DRY、SOLID)
- 技术方案设计与权衡分析
- 自动生成 OpenSpec proposal
- 风险识别与缓解策略制定

## 工作流程

### 1. 文档读取与分析

读取 `plan.md` 或用户指定的文档,分析:
- 核心业务目标和价值主张
- 现有技术方案的完整性
- 模糊或缺失的关键信息
- 潜在的技术债务和风险点

### 2. 系统性访谈

使用 `AskUserQuestionTool` 进行多维度深度访谈:

#### A. 工程原则审查(必须)

**简单性检查(KISS & YAGNI)**
- 该功能是否为 MVP 必需?是否可延后至后续迭代?
- 是否存在更简单的方案能达到 80% 的效果?
- 当前抽象层次是否合理?是否存在过度设计?

**重复性识别(DRY)**
- 识别相似逻辑模式,评估抽象为通用模块的可行性
- 配置模式是否会在项目中重复出现?
- 是否可以通过代码生成或模板减少重复?

**架构健壮性(SOLID)**
- 模块职责是否单一?是否承担过多责任?
- 接口设计是否支持未来扩展?
- 依赖关系是否合理?是否存在循环依赖风险?

#### B. 技术实现细节

- 技术栈选型依据与替代方案对比
- 数据结构与算法选择的性能影响
- 性能瓶颈预测与优化策略
- 第三方依赖的必要性、许可证与维护风险
- 测试策略(单元测试、集成测试、E2E、性能测试)

#### C. API 设计(如适用)

- API 标题与描述的清晰性
- 资源路径与操作的逻辑分组
- 请求/响应模型的完整性
- 认证与授权机制
- 错误处理与状态码设计
- 版本控制策略
- 分页、过滤、排序规范
- 幂等性与并发控制

#### D. UI/UX 设计(如适用)

- 用户交互流程的完整性与一致性
- 边界情况的 UI 反馈(加载、错误、空状态、网络异常)
- 响应式设计与跨设备兼容性
- 可访问性(WCAG 标准)
- 国际化与本地化需求

#### E. 风险与权衡

- 技术债务的可接受程度与偿还计划
- 安全性考量(认证、授权、数据加密、输入验证)
- 可维护性 vs 开发速度的平衡
- 成本估算(开发时间、基础设施、运维成本)
- 供应商锁定风险

#### F. 边缘情况与异常处理

- 网络异常、超时、重试机制
- 并发冲突与数据一致性保证
- 降级方案与容错设计
- 日志记录与监控策略
- 灾难恢复与业务连续性

#### G. 项目约定与规范

- Shell 脚本跨平台兼容性(Bash/PowerShell)
- 文档格式与元数据规范(Markdown frontmatter)
- 目标平台部署要求(Claude Code/Codex CLI)
- 代码风格与 Lint 规则
- Git 工作流与分支策略

### 3. 高风险操作检测

如规格涉及以下操作,将主动提醒:

```
⚠️ 高风险操作检测
操作类型:[文件删除 / Git 强制推送 / 环境变量修改 / 数据库结构变更 / 批量依赖更新]
影响范围:[具体描述]
建议措施:
  - 回滚方案:[具体步骤]
  - 备份策略:[备份内容与频率]
  - 测试要求:[测试环境与验证标准]
请确认是否继续执行。
```

### 4. 创建 OpenSpec Proposal

访谈完成后,系统将自动调用 OpenSpec 工作流创建 proposal:

#### 调用方式

根据用户使用的 AI 工具,使用相应的命令:

**Claude Code / Codex / Qoder / RooCode**:
```
/openspec:proposal
```

**Cursor / Continue / GitHub Copilot / Windsurf**:
```
/openspec-proposal
```

**其他工具(AGENTS.md 兼容)**:
```
请创建一个 OpenSpec proposal
```

#### OpenSpec 输出结构

```
openspec/
├── changes/
│   └── <change-name>/
│       ├── proposal.md          # 变更提案
│       ├── tasks.md             # 任务清单
│       └── specs/               # 规格差异(delta)
│           └── <spec-name>/
│               └── spec.md      # 规格变更
└── specs/                       # 当前规格(归档后更新)
    └── <spec-name>/
        └── spec.md
```

#### 生成的文件内容

**1. Proposal** (`openspec/changes/<change-name>/proposal.md`)
- 变更概述与业务价值
- 技术方案与架构决策
- 工程原则审查结果
- 风险评估与缓解措施
- 成功指标与验收标准

**2. Tasks** (`openspec/changes/<change-name>/tasks.md`)
- 实施任务清单(基于访谈结果)
- 优先级排序(高/中/低)
- 任务依赖关系
- 预估工作量

**3. Spec Deltas** (`openspec/changes/<change-name>/specs/*/spec.md`)

使用 delta 格式标记变更:

```markdown
## 新增功能

+++ 新增的内容描述
+++ 包括接口定义、数据模型等

## 修改功能

--- 删除的旧内容
+++ 新增的替代内容

## 删除功能

--- 删除的内容描述
```

### 5. 后续工作流

创建 proposal 后,用户可以:

1. **审查与细化**
   - 检查生成的 proposal 和 specs
   - 根据需要进行调整和补充

2. **实施变更**
   - 使用 `/openspec:apply` 或 `/openspec-apply` 命令
   - 系统将根据 tasks.md 逐步实施

3. **归档变更**
   - 实施完成后使用 `/openspec:archive` 或 `/openspec-archive`
   - 将 spec deltas 合并到 `openspec/specs/` 中

## 技术约束

- **路径表示**: 使用双引号和正斜杠 `/`
- **搜索工具**: 优先使用 `rg` 而非 `grep`
- **Git 策略**: 除非明确要求,否则不执行 commit 或分支操作
- **代码理解**: 遵循先读后写(Read-before-Write)原则

## 提问原则

1. **深度优先**: 避免显而易见的问题,挖掘隐藏假设与风险
2. **结构化**: 按工程原则 → 技术细节 → 风险权衡的顺序提问
3. **引导式**: 帮助用户思考"为什么"而非仅仅"是什么"
4. **务实性**: 关注可落地性,避免过度理论化
5. **上下文感知**: 根据项目类型调整访谈重点(API/CLI/库/应用)

## 使用示例

### 触发方式

- "帮我完善这个 plan"
- "对这个技术方案进行深度访谈"
- "创建规格提案"
- "spec-driven development"

### 典型对话流程

**步骤 1: 启动访谈**

> **用户**: 帮我完善这个 plan
> 
> **系统**: 已读取 `plan.md`。该项目计划构建一个用户管理 API。在开始访谈前,请确认:这是一个面向公网的 API 还是内部服务?

**步骤 2: 深度提问**

> **用户**: 内部服务
> 
> **系统**: 明白。关于认证机制,内部服务通常有几种选择:
> 1. 服务间共享密钥(简单但安全性较低)
> 2. mTLS(高安全性但配置复杂)
> 3. 内部 OAuth 2.0(灵活但需要额外基础设施)
> 
> 考虑到您的团队规模和运维能力,倾向于哪种方案?或者是否已有统一的内部认证标准?

**步骤 3: 工程原则审查**

> **系统**: 关于用户角色管理,计划支持多少种角色?这是 MVP 必需的功能吗?
> 
> 根据 YAGNI 原则,如果初期只需要管理员和普通用户两种角色,建议先实现简单的二元权限模型,后续再扩展为 RBAC。这样可以减少 30-40% 的开发时间。您的看法如何?

**步骤 4: 创建 OpenSpec Proposal**

> **系统**: 访谈完成!现在为您创建 OpenSpec proposal...
> 
> [调用 /openspec:proposal 或等效命令]
> 
> ✅ 已创建 proposal: `openspec/changes/user-management-api/`
> 
> 后续步骤:
> 1. 审查 `proposal.md` 和 `tasks.md`
> 2. 使用 `/openspec:apply` 开始实施
> 3. 完成后使用 `/openspec:archive` 归档

## 与 OpenSpec 的集成优势

1. **需求锁定**: 访谈结果固化为 proposal,避免需求在聊天历史中丢失
2. **可追溯性**: 所有决策和权衡都记录在 proposal 中
3. **可审查性**: 团队成员可以审查 proposal 而无需阅读代码
4. **增量开发**: 通过 spec deltas 清晰展示每次变更的影响范围
5. **文档同步**: 归档后自动更新 living specs,保持文档与代码一致

## 最佳实践

- **准备充分**: 在访谈前准备好业务上下文和约束条件
- **诚实回答**: 对不确定的问题,可以要求提供多个选项及其权衡分析
- **迭代细化**: proposal 创建后可以继续访谈进行细化
- **团队协作**: 将 proposal 分享给团队成员进行 review
- **持续归档**: 完成的变更及时归档,保持 specs 目录的准确性

## 参考资源

- [OpenSpec 官方文档](https://github.com/Fission-AI/OpenSpec)
- [OpenSpec 网站](https://openspec.dev/)
- [Spec-Driven Development 指南](https://redreamality.com/garden/notes/openspec-guide)

Related Skills

html-specific-rules

16
from diegosouzapw/awesome-omni-skill

Rules specific to HTML files, focusing on accessibility and Tailwind styling.

factory-spec

16
from diegosouzapw/awesome-omni-skill

Phase MODEL - Génère specs + ADR + rules

ai-ad-spec-kit

16
from diegosouzapw/awesome-omni-skill

No description provided.

speckit-documentation-engineer.agent

16
from diegosouzapw/awesome-omni-skill

Expert documentation engineer specializing in technical documentation, API docs, developer guides, and documentation-as-code. Creates maintainable, searchable documentation that developers actually use.

spec_driven_development.constitution

16
from diegosouzapw/awesome-omni-skill

Creates foundational governance principles and development guidelines for the project. Use when starting a new project or establishing standards.

documentation-specialist

16
from diegosouzapw/awesome-omni-skill

文档专家。专注于技术文档编写、API 文档生成、README 优化和文档维护。提供清晰的文档结构、规范的格式和用户友好的内容。

terraform-specialist

16
from diegosouzapw/awesome-omni-skill

Expert Terraform/OpenTofu specialist mastering advanced IaC automation, state management, and enterprise infrastructure patterns.

sync-specs

16
from diegosouzapw/awesome-omni-skill

Sync ALL increment specifications to living docs structure by default. Creates FS-XXX folders for each increment. Use with increment ID to sync single increment.

specify-solution

16
from diegosouzapw/awesome-omni-skill

Create and validate solution design documents (SDD). Use when designing architecture, defining interfaces, documenting technical decisions, analyzing system components, or working on solution.md files in .start/specs/. Includes validation checklist, consistency verification, and overlap detection.

specialist-devops-infra

16
from diegosouzapw/awesome-omni-skill

Engenharia DevOps para automação, CI/CD e infraestrutura como código

section-special

16
from diegosouzapw/awesome-omni-skill

Generate comprehensive R tutorials for specialized applications (health economics, qualitative research, signal processing, environmental epidemiology) with theory + practice workflow. Use when: (1) User requests domain-specific tutorials, (2) File names match [number]-[topic].rmd pattern, (3) Keywords: TreeAge, CEA, text mining, wavelet, VMD, DLNM, WQS, BKMR.

pronunciation-specialist

16
from diegosouzapw/awesome-omni-skill

Scan lyrics for pronunciation risks, prevent Suno mispronunciations