## Spec **「在編寫代碼之前赋予結構」** - 完全遵循 Kiro 的規格驅動開發 與傳統代碼生成工具不同,實現 Kiro 的規格驅動開發,重點是為開發的混沌赋予結構。從最少的需求輸入,逐步展開到產品經理級別的詳细規格和可實施的設計,**從原型到生產環境**保證一致的質量。 ### 使用方法 ```bash # 請求 Claude 的 Spec Mode(最少需求輸入) 「創建[功能描述]的 spec」 # Kiro 式分阶段展開: # 1. 簡單需求 → 自動生成詳细用戶故事 # 2. 使用 EARS 記法的結構化需求描述 # 3. 通過分阶段對話精细化規格 # 4. 生成 3 個独立文件: # - requirements.md: EARS 記法的需求定義 # - design.md: 包含 Mermaid 圖、TypeScript 接口的設計 # - tasks.md: 自動應用最佳實践的實施計劃 ``` ### 實證效果 (Kiro 實績) **2 天完成安全文件共享應用** ```bash 「創建文件共享系統 (支持加密) 的 spec」 → 2 天完成生產級別的加密文件共享應用 → 自動應用安全最佳實践 → 無需额外提示 ``` **新手一晚開發遊戲** ```bash 「創建 2D 益智遊戲的 spec」 → 遊戲開發新手的開源開發者 → 一晚完成遊戲創建 → 實現邏輯由 Kiro 處理,開發者專注創造性 ``` **週末從原型到生產** ```bash 「創建電商網站商品管理系統的 spec」 → 一個週末從概念到可運行的原型 → 從原型到生產環境的一致質量 → 通過 spec-driven development 的結構化方法 ``` ### 基本示例 ```bash # 新功能的 spec 創建 (最少輸入) 「商品評論系統 - 星級評分功能 - 評論發布 - 圖片上傳」 # 系統功能的 spec 創建 「用戶認證 - OAuth 支持 - 多因素認證」 # API 功能的 spec 創建 「支付系統 API - Stripe 集成 - 重視安全性」 ``` ### 與 Claude 配合 ```bash # 復杂功能 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` **動態規格制定** - 通過對話解決需求的模糊性 - 提示和讨論技術選項 - 說明權衡並確認判斷 ### 詳细示例 ```bash # 復杂系統功能 「創建在線支付系統的 spec。包括 Stripe 集成、安全性、錯誤處理」 # 前端功能 「創建 React 組件的 spec。包括狀態管理、属性設計、測試」 # 後端功能 「創建 GraphQL API 的 spec。包括 Schema 設計、解析器、認證」 # DevOps 功能 「創建 CI/CD 管道的 spec。包括測試自動化、部署、監控」 ``` ### 分阶段對話工作流 (Phase by Phase) #### Phase 1: Requirements Discovery & Discussion **1. 從最少輸入自動擴展 (Kiro 式)** ```text 用戶:「用戶管理系統 - 登錄功能 - 個人資料編輯 - 管理员權限」 Claude:「從需求生成詳细用戶故事。 這個理解正確吗? 自動生成的用戶故事: - 用戶注冊和認證功能 (支持 OAuth) - 個人資料管理功能 (头像、設置) - 權限管理功能 (RBAC) - 密碼重置功能 - 安全審計日誌 已補充未明確的细节。還需要其他功能吗?」 ``` **2. 使用 EARS 記法的結構化需求描述** ```text Claude:「使用 Kiro 的 EARS 記法結構化需求: EARS 記法需求定義: WHEN 用戶尝試登錄時 GIVEN 輸入正確的郵箱和密碼 THEN 系統確認認證 AND 成功時重定向到儀表板 WHILE 用戶在個人資料編輯页面時 THE SYSTEM SHALL 實時執行驗證 AND 預覽顯示更改內容 WHERE 需要管理员權限的功能 IS 尝試訪問時 THE SYSTEM SHALL 確認權限級別 AND 不足時拒绝訪問」 ``` **3. 邊緣情况和安全需求的自動補充** ```text Claude:「基于 Kiro 的最佳實践,還考虑了以下情况: 安全需求 (自動補充): - 暴力攻擊對策 - 會話管理和超時 - CSRF 保護和 XSS 對策 - 密碼強度要求 邊緣情况 (自動檢測): - 同時登錄限制 - 账戶鎖定功能 - 數據遷移時的一致性保證 - 大量請求時的負載均衡 這些需求合適吗?」 ``` **5. Phase 1 完成和批準** ```text Claude:「Requirements Phase 已完成。 可以生成 requirements.md 吗?」 → 「繼續」→ 生成 requirements.md ``` #### Phase 2: Design Exploration & Discussion **1. 代碼庫分析 + 自動設計建議 (Kiro 式)** ```text Claude:「分析現有代碼庫,提出最佳架構: 代碼庫分析結果: - 認證:JWT + Express.js(v4.18.x) - 數據庫:PostgreSQL(v14+) - 前端:React + TypeScript(v18+) - 現有模式:Repository 模式、Service 層分離 Kiro 推薦架構: - 符合 Clean Architecture - Domain-Driven Design 元素 - 部分應用 CQRS 模式 - 自動化的安全最佳實践 使用這個設計吗?」 ``` **2. 使用 Mermaid 圖的可視化設計** ```text 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 接口自動生成** ```text 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; findByEmail(email: Email): Promise; save(user: User): Promise; } interface AuthenticationService { authenticate(credentials: LoginCredentials): Promise; refreshToken(token: RefreshToken): Promise; } 使用這個接口設計吗?」 ``` **4. Phase 2 完成和批準** ```text Claude:「Design Phase 已完成。 可以生成 design.md 吗?」 → 「繼續」→ 生成 design.md ``` #### Phase 3: Implementation Planning & Discussion **1. 最佳實践自動應用 (Kiro 式)** ```text Claude:「生成了自動應用 Kiro 最佳實践的實施計劃: 自動生成的實施策略: 1. 安全第一開發 - 自動集成 OWASP Top 10 對策 - 自動實現加密和哈希 - 自動生成安全測試 2. 強制清洁架構 - 自動實現層分離 - 自動應用依賴倒置 - 強制可測試設計 3. 性能優化 - 自動實現緩存策略 - 數據庫優化 - 利用異步處理 使用這個方法吗?」 ``` **2. 質量檢查點自動設置** ```text Claude:「自動設置各實施阶段的質量檢查點: 自動質量保證流程: Phase 3a: 後端實施 - [ ] 安全掃描 (SAST/DAST) - [ ] API 規範測試 (OpenAPI 合規) - [ ] 性能測試 (負載和響應) - [ ] 漏洞掃描 (依賴關系和 CVE) Phase 3b: 前端實施 - [ ] 無障礙測試 (WCAG 2.1 AA) - [ ] 瀏覽器兼容性測試 - [ ] 響應式設計驗證 - [ ] 安全头確認 Phase 3c: 集成和部署 - [ ] E2E 測試套件 - [ ] CI/CD 管道配置 - [ ] 監控和日誌設置 - [ ] 生產環境安全審計 全部自動執行。有额外的質量標準吗?」 ``` **3. 依賴關系和風險緩解的自動分析** ```text Claude:「自動分析實施顺序和風險緩解策略: 優化的實施顺序: Week 1: 基礎設施和安全基礎 - 數據庫設計和模式創建 - 認證基礎 (JWT + 會話管理) - 安全中間件實施 - 基本 API 端點 Week 2: 核心功能實施 - 用戶管理功能 - 個人資料管理功能 - 權限管理系統 - 驗證和錯誤處理 Week 3: 高級功能和優化 - 多因素認證實施 - 審計日誌功能 - 性能優化 - 前端集成 自動檢測的風險緩解策略: - 多因素認證:分阶段引入 (SMS→應用認證) - 會話管理:Redis 集群配置 - 大量訪問:速率限制 + CDN 利用 - 數據一致性:加強事務管理 這個計劃没有問題吗?」 ``` **4. Phase 3 完成和批準** ```text Claude:「Implementation Planning Phase 已完成。 可以生成 tasks.md 吗?」 → 「繼續」→ 生成 tasks.md ``` ### Kiro 特有的功能 **EARS 記法 (Easy Approach to Requirements Syntax)** ```text # 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 驅動開發[功能名]」 - 「從規格書設計[功能名]」 **阶段進度控制** - **「繼續」**: 完成當前阶段並生成文件,進入下一阶段 - **「修改」**: 在當前阶段內調整和改進內容 - **「重做」**: 從头開始當前阶段 - **「詳细說明」**: 提供更詳细的說明或選項 - **「跳過」**: 跳過當前阶段進入下一個 (不推薦) **文件生成時機** ```text Phase 1 完成 → 「繼續」 → 生成 requirements.md Phase 2 完成 → 「繼續」 → 生成 design.md Phase 3 完成 → 「繼續」 → 生成 tasks.md ``` ### 執行示例 (分阶段流程) ```bash # 使用示例 用戶:「創建用戶管理系統的 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** - 系統整體設計 - 基礎設施構建 - 重構 - 技術選型 - 架構變更