Files
2025-11-30 09:05:46 +08:00

13 KiB
Raw Permalink Blame History

Spec

「在编写代码之前赋予结构」 - 完全遵循 Kiro 的规格驱动开发

与传统代码生成工具不同,实现 Kiro 的规格驱动开发,重点是为开发的混沌赋予结构。从最少的需求输入,逐步展开到产品经理级别的详细规格和可实施的设计,从原型到生产环境保证一致的质量。

使用方法

# 请求 Claude 的 Spec Mode(最少需求输入)
「创建[功能描述]的 spec」

# Kiro 式分阶段展开:
# 1. 简单需求 → 自动生成详细用户故事
# 2. 使用 EARS 记法的结构化需求描述
# 3. 通过分阶段对话精细化规格
# 4. 生成 3 个独立文件:
#    - requirements.md: EARS 记法的需求定义
#    - design.md: 包含 Mermaid 图、TypeScript 接口的设计
#    - tasks.md: 自动应用最佳实践的实施计划

实证效果 (Kiro 实绩)

2 天完成安全文件共享应用

「创建文件共享系统 (支持加密) 的 spec」
→ 2 天完成生产级别的加密文件共享应用
→ 自动应用安全最佳实践
→ 无需额外提示

新手一晚开发游戏

「创建 2D 益智游戏的 spec」
→ 游戏开发新手的开源开发者
→ 一晚完成游戏创建
→ 实现逻辑由 Kiro 处理,开发者专注创造性

周末从原型到生产

「创建电商网站商品管理系统的 spec」
→ 一个周末从概念到可运行的原型
→ 从原型到生产环境的一致质量
→ 通过 spec-driven development 的结构化方法

基本示例

# 新功能的 spec 创建 (最少输入)
「商品评论系统
- 星级评分功能
- 评论发布
- 图片上传」

# 系统功能的 spec 创建
「用户认证
- OAuth 支持
- 多因素认证」

# API 功能的 spec 创建
「支付系统 API
- Stripe 集成
- 重视安全性」

与 Claude 配合

# 复杂功能 spec
「创建聊天功能的 spec。包括 WebSocket、实时通知、历史管理」

# 数据库关联功能 spec
「创建电商网站库存管理功能的 spec。包括商品添加、库存更新、警报功能」

# 前端功能 spec
「创建 React 仪表板的 spec。包括图表显示、筛选器、导出功能」

# 后端功能 spec
「创建 RESTful API 的 spec。包括认证、验证、日志记录」

Spec Mode 的特点

分阶段对话工作流

  • 完全再现 Kiro 的核心价值——分阶段讨论
  • 在各阶段与用户合作精细化规格
  • 经过疑问解决、选项讨论、批准流程后生成文件

3 阶段的交互式展开

  • Phase 1: Requirements Discovery → 讨论 → 批准 → 生成 requirements.md
  • Phase 2: Design Exploration → 讨论 → 批准 → 生成 design.md
  • Phase 3: Implementation Planning → 讨论 → 批准 → 生成 tasks.md

动态规格制定

  • 通过对话解决需求的模糊性
  • 提示和讨论技术选项
  • 说明权衡并确认判断

详细示例

# 复杂系统功能
「创建在线支付系统的 spec。包括 Stripe 集成、安全性、错误处理」

# 前端功能
「创建 React 组件的 spec。包括状态管理、属性设计、测试」

# 后端功能
「创建 GraphQL API 的 spec。包括 Schema 设计、解析器、认证」

# DevOps 功能
「创建 CI/CD 管道的 spec。包括测试自动化、部署、监控」

分阶段对话工作流 (Phase by Phase)

Phase 1: Requirements Discovery & Discussion

1. 从最少输入自动扩展 (Kiro 式)

用户:「用户管理系统
- 登录功能
- 个人资料编辑
- 管理员权限」

Claude「从需求生成详细用户故事。
这个理解正确吗?

自动生成的用户故事:
- 用户注册和认证功能 (支持 OAuth)
- 个人资料管理功能 (头像、设置)
- 权限管理功能 (RBAC)
- 密码重置功能
- 安全审计日志

已补充未明确的细节。还需要其他功能吗?」

2. 使用 EARS 记法的结构化需求描述

Claude「使用 Kiro 的 EARS 记法结构化需求:

EARS 记法需求定义:

WHEN 用户尝试登录时
GIVEN 输入正确的邮箱和密码
THEN 系统确认认证
AND 成功时重定向到仪表板

WHILE 用户在个人资料编辑页面时
THE SYSTEM SHALL 实时执行验证
AND 预览显示更改内容

WHERE 需要管理员权限的功能
IS 尝试访问时
THE SYSTEM SHALL 确认权限级别
AND 不足时拒绝访问」

3. 边缘情况和安全需求的自动补充

Claude「基于 Kiro 的最佳实践,还考虑了以下情况:

安全需求 (自动补充)
- 暴力攻击对策
- 会话管理和超时
- CSRF 保护和 XSS 对策
- 密码强度要求

边缘情况 (自动检测)
- 同时登录限制
- 账户锁定功能
- 数据迁移时的一致性保证
- 大量请求时的负载均衡

这些需求合适吗?」

5. Phase 1 完成和批准

Claude「Requirements Phase 已完成。
可以生成 requirements.md 吗?」
→ 「继续」→ 生成 requirements.md

Phase 2: Design Exploration & Discussion

1. 代码库分析 + 自动设计建议 (Kiro 式)

Claude「分析现有代码库提出最佳架构

代码库分析结果:
- 认证JWT + Express.js(v4.18.x)
- 数据库PostgreSQL(v14+)
- 前端React + TypeScript(v18+)
- 现有模式Repository 模式、Service 层分离

Kiro 推荐架构:
- 符合 Clean Architecture
- Domain-Driven Design 元素
- 部分应用 CQRS 模式
- 自动化的安全最佳实践

使用这个设计吗?」

2. 使用 Mermaid 图的可视化设计

Claude「自动生成系统设计的 Mermaid 图:

自动生成的架构图:

graph TB
    Client[React Client] --> API[Express API Gateway]
    API --> Auth[Auth Service]
    API --> User[User Service]
    API --> Profile[Profile Service]

    Auth --> AuthDB[(Auth Database)]
    User --> UserDB[(User Database)]
    Profile --> ProfileDB[(Profile Database)]

    Auth --> JWT[JWT Service]
    Auth --> OAuth[OAuth Provider]

还需要生成数据流图吗?」

3. TypeScript 接口自动生成

Claude「基于设计自动生成 TypeScript 接口:

自动生成的 TypeScript 接口:

// Domain entities
interface User {
  readonly id: UserId;
  readonly email: Email;
  readonly profile: UserProfile;
  readonly auth: AuthSettings;
  readonly permissions: Permission[];
  readonly createdAt: Date;
  readonly updatedAt: Date;
}

interface UserProfile {
  readonly displayName: string;
  readonly avatar: AvatarUrl;
  readonly preferences: UserPreferences;
}

interface AuthSettings {
  readonly passwordHash: PasswordHash;
  readonly mfaEnabled: boolean;
  readonly lastLoginAt: Date;
  readonly failedAttempts: number;
}

// Use cases
interface UserRepository {
  findById(id: UserId): Promise<User | null>;
  findByEmail(email: Email): Promise<User | null>;
  save(user: User): Promise<void>;
}

interface AuthenticationService {
  authenticate(credentials: LoginCredentials): Promise<AuthResult>;
  refreshToken(token: RefreshToken): Promise<AccessToken>;
}

使用这个接口设计吗?」

4. Phase 2 完成和批准


Claude「Design Phase 已完成。
可以生成 design.md 吗?」
→ 「继续」→ 生成 design.md

Phase 3: Implementation Planning & Discussion

1. 最佳实践自动应用 (Kiro 式)


Claude「生成了自动应用 Kiro 最佳实践的实施计划:

自动生成的实施策略:

1. 安全第一开发
   - 自动集成 OWASP Top 10 对策
   - 自动实现加密和哈希
   - 自动生成安全测试

2. 强制清洁架构
   - 自动实现层分离
   - 自动应用依赖倒置
   - 强制可测试设计

3. 性能优化
   - 自动实现缓存策略
   - 数据库优化
   - 利用异步处理

使用这个方法吗?」

2. 质量检查点自动设置


Claude「自动设置各实施阶段的质量检查点

自动质量保证流程:

Phase 3a: 后端实施

- [ ] 安全扫描 (SAST/DAST)
- [ ] API 规范测试 (OpenAPI 合规)
- [ ] 性能测试 (负载和响应)
- [ ] 漏洞扫描 (依赖关系和 CVE)

Phase 3b: 前端实施

- [ ] 无障碍测试 (WCAG 2.1 AA)
- [ ] 浏览器兼容性测试
- [ ] 响应式设计验证
- [ ] 安全头确认

Phase 3c: 集成和部署

- [ ] E2E 测试套件
- [ ] CI/CD 管道配置
- [ ] 监控和日志设置
- [ ] 生产环境安全审计

全部自动执行。有额外的质量标准吗?」

3. 依赖关系和风险缓解的自动分析


Claude「自动分析实施顺序和风险缓解策略

优化的实施顺序:

Week 1: 基础设施和安全基础

- 数据库设计和模式创建
- 认证基础 (JWT + 会话管理)
- 安全中间件实施
- 基本 API 端点

Week 2: 核心功能实施

- 用户管理功能
- 个人资料管理功能
- 权限管理系统
- 验证和错误处理

Week 3: 高级功能和优化

- 多因素认证实施
- 审计日志功能
- 性能优化
- 前端集成

自动检测的风险缓解策略:

- 多因素认证:分阶段引入 (SMS→应用认证)
- 会话管理Redis 集群配置
- 大量访问:速率限制 + CDN 利用
- 数据一致性:加强事务管理

这个计划没有问题吗?」

4. Phase 3 完成和批准


Claude「Implementation Planning Phase 已完成。
可以生成 tasks.md 吗?」
→ 「继续」→ 生成 tasks.md

Kiro 特有的功能

EARS 记法 (Easy Approach to Requirements Syntax)

# Kiro 标准的 EARS 记法模式

WHEN [情况・触发器]
GIVEN [前提条件]
THEN [系统行为]
AND [额外行为]

WHILE [状态・流程]
THE SYSTEM SHALL [必须行为]
AND [相关行为]

WHERE [功能・组件]
IS [条件・状态]
THE SYSTEM SHALL [对应行为]

自动生成功能

  • Mermaid 图: 自动生成架构和数据流图
  • TypeScript 接口: 基于设计自动创建类型定义
  • 最佳实践: 自动集成安全和性能对策
  • 质量检查点: 自动设置分阶段质量标准

hooks 联动

  • 文件保存时的自动质量检查
  • 自动应用代码标准
  • 自动执行安全扫描
  • 自动验证 OWASP Top 10 对策

原型→生产质量保证

  • 通过结构化方法的一致设计
  • 强制安全第一开发
  • 自动应用可扩展架构
  • 集成持续质量管理

注意事项

适用范围

  • Spec Mode 最适合功能实施
  • 简单修复或小规模更改使用常规实施形式
  • 推荐用于新功能开发或复杂功能改造

质量保证

  • 明确各阶段的完成标准
  • 实施前的设计审查
  • 包括测试和无障碍的全面质量标准

执行注意事项

  • 解决需求的模糊性后再进入设计阶段
  • 设计完成后生成实施任务
  • 重视各阶段的批准流程

触发短语和控制

分阶段工作流控制

开始触发器

  • 「创建[功能名]的 spec」
  • 「想用 spec 驱动开发[功能名]」
  • 「从规格书设计[功能名]」

阶段进度控制

  • 「继续」: 完成当前阶段并生成文件,进入下一阶段
  • 「修改」: 在当前阶段内调整和改进内容
  • 「重做」: 从头开始当前阶段
  • 「详细说明」: 提供更详细的说明或选项
  • 「跳过」: 跳过当前阶段进入下一个 (不推荐)

文件生成时机

Phase 1 完成 → 「继续」 → 生成 requirements.md
Phase 2 完成 → 「继续」 → 生成 design.md
Phase 3 完成 → 「继续」 → 生成 tasks.md

执行示例 (分阶段流程)

# 使用示例
用户:「创建用户管理系统的 spec」

# Phase 1: Requirements Discovery
Claude: [开始需求确认和讨论]
用户: [响应・讨论・修改]
Claude: 「Requirements Phase 已完成。可以继续吗?」
用户: 「继续」
→ 生成 requirements.md

# Phase 2: Design Exploration
Claude: [开始设计提案和讨论]
用户: [技术选择・架构讨论]
Claude: 「Design Phase 已完成。可以继续吗?」
用户: 「继续」
→ 生成 design.md

# Phase 3: Implementation Planning
Claude: [开始实施计划讨论]
用户: [优先级・风险・工时讨论]
Claude: 「Implementation Phase 已完成。可以继续吗?」
用户: 「继续」
→ 生成 tasks.md

# 完成
Claude: 「spec 驱动开发的准备已完成。可以开始实施。」

与 /plan 的区别

特征 /plan /spec
对象 一般实施计划 功能规格驱动开发
输出格式 单一计划文档 3 个独立文件 (requirements.md、design.md、tasks.md)
需求定义 基本需求整理 使用 EARS 记法的详细验收标准
设计 以技术选型为中心 基于代码库分析
实施 一般任务分解 考虑依赖关系的序列
质量保证 基本测试策略 全面质量要求 (测试、无障碍、性能)
同步 静态计划 动态 spec 更新

推荐用例

推荐使用 spec

  • 新功能开发
  • 复杂功能改造
  • API 设计
  • 数据库设计
  • UI/UX 实施

推荐使用 plan

  • 系统整体设计
  • 基础设施构建
  • 重构
  • 技术选型
  • 架构变更