skills/spec/SKILL.md
需求完善度品質閘門。Use for: (1) Phase 1 開始時初始化功能規格骨架 (/spec init), (2) 驗證功能規格的需求完善度 (/spec validate), (3) 判斷需求是否足夠清晰可進入實作。Use when: lavender-interface-designer 在 Phase 1 進行功能設計時,作為內部工具使用。不是流程入口——/tdd 管流程編排,/spec 管產出物品質。
npx skillsauth add tarrragon/claude specInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
把模糊需求展開成無歧義的行為契約。
| 工具 | 問的問題 | 階段 | 關係 | |------|---------|------|------| | /tdd | 「流程走到哪了?下一步做什麼?」 | Phase 0-4 全流程 | 流程編排器 | | /spec | 「需求描述得夠不夠清楚?」 | Phase 1 內部 | 產出物品質工具 | | SA | 「該不該做?和現有系統一致嗎?」 | Phase 0 | 架構守門人 |
/spec 不是流程入口:lavender 在 Phase 1 內部使用 /spec 產出功能規格。/tdd 不呼叫 /spec,/spec 不呼叫 /tdd。兩者完全解耦。
| 子命令 | 用途 | 適用時機 |
|--------|------|---------|
| /spec init | 初始化功能規格骨架 | Phase 1 開始,lavender 收到 Ticket 後 |
| /spec validate | 驗證需求完善度 | 規格撰寫完成後,進入 Phase 2 前 |
/spec init - 初始化功能規格骨架讀取 Ticket frontmatter,自動判斷模式,產出對應模板骨架。
讀取 Ticket frontmatter
|
v
符合 Full 任一條件?
|
+-- 是 → Full 模式(6 區段)
|
+-- 否 → Lite 模式(3 區段)
Full 模式觸發條件(任一符合):
| 條件 | 判斷依據 |
|------|---------|
| 新功能開發 | type == IMP 且 how.task_type == "新增" |
| 修改檔案多 | where.files > 5 |
| 明確指定 | 用戶執行 /spec init --mode full |
Lite 模式:不符合任何 Full 條件,或用戶執行 /spec init --mode lite。
{ticket-id}-feature-spec.mddocs/work-logs/v{version}/tickets/)# {Ticket ID} 功能規格
## 1. Purpose(目的)
<!-- 用一句話回答:這個功能解決什麼問題?為誰解決? -->
## 2. Scenarios(行為場景)
<!-- 用 GWT 格式描述每個行為場景 -->
### 場景 1: {場景名稱}
- **Given**: {前置條件}
- **When**: {觸發動作}
- **Then**: {預期結果}
## 3. Acceptance(驗收條件)
<!-- 可直接驗證的條件清單 -->
- [ ] {條件 1}
# {Ticket ID} 功能規格
## 1. Purpose(目的)
<!-- 問題背景、目標用戶、核心價值 -->
## 2. API Signatures(介面定義)
<!-- 函式簽名、輸入輸出型別、回傳值語義 -->
## 3. GWT Scenarios(行為場景)
<!-- Given-When-Then 格式,含正常流程和異常流程 -->
## 4. Error Handling(錯誤處理)
<!-- 每個錯誤情境的處理策略和回傳值 -->
## 5. Dependencies(依賴)
<!-- 外部依賴、前置條件、環境假設 -->
## 6. Acceptance(驗收條件)
<!-- 可直接驗證的條件清單,含效能指標(如適用) -->
完整模板含填寫指引和範例:
references/spec-template-lite.md、references/spec-template-full.md
/spec validate - 驗證需求完善度兩層驗證:結構檢查(機械性)+ AI 語義推演(深度分析)。
{ticket-id}-feature-spec.md檢查模板區段的存在性和非空性。
| 模式 | 必須存在的區段 | 檢查內容 | |------|--------------|---------| | Lite | Purpose, Scenarios, Acceptance | 區段標題存在且內容非空 | | Full | 全部 6 區段 | 區段標題存在且內容非空 |
額外結構檢查:
| 檢查項 | 規則 |
|--------|------|
| GWT 格式 | Scenarios 區段至少 1 個 Given-When-Then 完整三元組 |
| Acceptance 可驗證性 | 每個條件以 - [ ] 開頭 |
| Purpose 簡潔性 | 不超過 200 字(Lite)/ 500 字(Full) |
結構檢查失敗:輸出缺失清單,不進入 Layer 2。
沿 3 個核心維度掃描規格文件,找出未被展開的需求假設。每個維度產出一組「未回答問題」。Full 模式額外提示情境相關問題(不產出清單、不進入迭代)。
| # | 維度 | 核心問題 | 適用模式 | |---|------|---------|---------| | 1 | 邊界完整性 | 極端值、空值、上限下限的行為定義了嗎? | Lite + Full | | 2 | 錯誤路徑 | 每個操作失敗時,系統如何回應? | Lite + Full | | 3 | 狀態完整性 | 所有狀態和轉換都定義了嗎?有不可達狀態嗎? | Lite + Full |
Lite 模式只掃描維度 1-3,降低小型任務的認知負擔。
Full 模式下,validate 完成維度 1-3 掃描後,額外提示以下問題供撰寫者自行考慮。這些不產出未回答問題清單,不進入迭代:
## /spec validate 結果
### 結構檢查:通過/未通過
{缺失清單,如有}
### 語義推演:{N} 個未回答問題
#### 維度 1: 邊界完整性
- Q1: 當 {參數} 為空值時,預期行為是什麼?
- Q2: {集合} 的上限是多少?超過上限時如何處理?
#### 維度 2: 錯誤路徑
- Q3: {操作} 失敗時,是否需要回滾已完成的步驟?
#### 維度 3: 狀態完整性
(無未回答問題)
### 建議
- 必須回答:Q1, Q3(影響 GWT 設計)
- 建議回答:Q2(影響效能設計)
- 可延後:無
/spec validate 可多次執行。回答問題後再次 validate,直到無新問題或達上限。
| 模式 | 上限 | 理由 | |------|------|------| | Lite | 2 次 | 小型任務不應花費過多時間在規格上 | | Full | 3 次 | 第 3 次仍有大量問題表示需求本身不成熟,應升級 PM |
達上限時輸出警告,剩餘問題標記為 Phase 2 待解決。
Phase 1 中 lavender 如何使用 /spec 的完整流程,詳見 lavender 代理人定義(.claude/agents/lavender-interface-designer.md「/spec 工具整合」章節)。
/spec 只負責「發現問題」(產出骨架和未回答問題清單),不負責「解決問題」(由 lavender 決定如何回答和組織)。
Version: 1.1.0 Last Updated: 2026-03-25 Source: Phase 3b context 耗盡案例 → 需求完善度品質閘門 Changes: v1.1.0 - 三人組共識簡化:刪除核心抽象/反向提問策略、維度 4-7 降級為提示、精簡迭代機制、init 條件簡化為 2 個
development
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, and empty states. Handles UX review, visual hierarchy, information architecture, cognitive load, accessibility, performance, responsive behavior, theming, anti-patterns, typography, fonts, spacing, layout, alignment, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, and reusable design systems or tokens. Also use for bland designs that need to become bolder or more delightful, loud designs that should become quieter, live browser iteration on UI elements, or ambitious visual effects that should feel technically extraordinary. Not for backend-only or non-UI tasks.
development
Claude Code release notes 框架影響評估工具。比對 last-reviewed 版本篩出新版本,逐項分類(對框架有幫助 / 需評估 / 無影響 / 不適用),對採用項引導建 ANA + WRAP + spawn 落地。Use when: 執行 /release-notes 看到新版本、定期檢查 CC 更新、評估新功能對專案框架的影響時。Triggers: release notes, release-notes, CC 更新, claude code 更新, 版本更新評估, 新功能評估, 框架影響評估。
development
Assertion design judgment framework for flaky and design-quality issues. Use when writing tests, reviewing assertions, diagnosing flaky tests, or deciding if a timing/float/cache assertion is appropriate. Do NOT use for API syntax or refactoring.
tools
Chrome Extension 實機測試與 debug 工作流,以 chrome-devtools-mcp 為核心工具。Use when: (1) 完成功能後實機驗證 / manual test / 試看看 / 跑看看 / verify feature, (2) extension debug / popup 不作動 / content script 不注入 / service worker 報錯 / background 出問題, (3) 安裝 unpacked extension / load unpacked / 載入未封裝, (4) 看 console / 看 network / 看 log / view console / inspect requests, (5) 功能更新後重新載入 extension / rebuild reload / reload extension。涵蓋 Manifest V3 service worker / content script / popup / options page 的 chrome-devtools-mcp 工具呼叫流程。不取代 Puppeteer / Playwright 自動化 E2E(CI 用),定位為開發期手動驗證與 LLM-assisted debug。