com um clique
tdd-phase1-split
[DEPRECATED] 已遷移至 /tdd SKILL。請使用 /tdd split 命令。
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
[DEPRECATED] 已遷移至 /tdd SKILL。請使用 /tdd split 命令。
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Composes atomic, intent-revealing, grep-friendly writing (Zettelkasten) for code comments, docs, logs, prompts, schema/ticket fields, and long-form technical articles. Use when cognitive load and token cost matter. Triggers: 寫註解, 寫文件, 寫日誌, 寫 prompt, 寫文章, 技術文章, post-mortem, 架構決策, 除錯復盤, 欄位設計, atomic, reusable.
Agent Teams 協作派發指南。Use when: (1) Agent A 的發現會改變 Agent B 正在進行的工作, (2) 用戶要求使用 team/swarm, (3) 多代理人需即時協商共用介面或 API 契約。涵蓋 team 建立、Ticket-Task 橋接、teammate 入職、生命週期管理。
Branch Worktree Guardian - Git 分支和 Worktree 管理工具。Use for: (1) 新開發需求時建立隔離分支, (2) 使用 worktree 機制避免分支衝突, (3) 驗證當前工作分支正確性, (4) 預防在錯誤分支上開發
broken-link 偵測工具。掃描 .claude/ 目錄所有 Markdown 文件中的路徑引用,偵測失效連結。Use for: (1) 一次性掃描所有 broken links, (2) 搭配 /loop 定期監控, (3) 修改規則/方法論/代理人文件後驗證路徑完整性。Use when: user runs /broken-link-check, 或搭配 /loop 定期執行, 或發現 broken link 錯誤後。
子任務拆分與 Context 卸載工具。將可拆分的大型任務分成 N 個子 Ticket,各由 Agent 獨立執行,結論直接寫入 Ticket 不回報主線程。Use for: 批量檔案評估, 大型審查任務拆分, 任何需要讀取大量資料但結果可落地到 Ticket 的任務
認知負擔評估與審查工具。作為決策樹、代理人、Code Review 的基本參考標準。用於: (1) 任務複雜度評估, (2) 代理人升級判斷, (3) 任務拆分建議, (4) 程式碼品質審查與熱點識別
| name | tdd-phase1-split |
| description | [DEPRECATED] 已遷移至 /tdd SKILL。請使用 /tdd split 命令。 |
此 SKILL 已棄用,所有功能已遷移至
/tddSKILL。
- SOLID 拆分分析:
/tdd split- CLI 腳本:
.claude/skills/tdd/scripts/tdd-phase1-split.py- 方法論文件:
.claude/skills/tdd/references/phase1/rules.md(SOLID 拆分進階工具與範本章節)- Phase 1 設計指引:
.claude/skills/tdd/references/phase1/rules.md遷移日期:2026-03-12 遷移 Ticket:已遷移
以下為原始內容(僅供參考,不再維護):
SOLID 原則驅動的功能拆分輔助工具 - 在設計階段就進行拆分,而非實作階段。
Phase 1(功能設計)就要考慮:
- DIP(依賴反轉)→ 介面設計
- LSP(里氏替換)→ 繼承規劃
- ISP(介面隔離)→ 介面拆分
↓
才能實踐
- SRP(單一職責)
- OCP(開閉原則)
拆分時機:Phase 1,不是 Phase 3a
關鍵原則:設計階段就要拆分,不是等到實作才發現需要拆分。
檢查問題:
拆分信號:
檢查問題:
拆分信號:
檢查問題:
拆分信號:
檢查問題:
拆分信號:
檢查問題:
拆分信號:
uv run .claude/skills/tdd-phase1-split/scripts/tdd-phase1-split.py analyze \
--description "實作書籍搜尋功能"
互動式分析,產出 SOLID 檢查報告。
uv run .claude/skills/tdd-phase1-split/scripts/tdd-phase1-split.py suggest \
--description "實作書籍搜尋功能" \
--version 0.29.0
輸出範例:
[Split] 功能拆分建議
原始需求:實作書籍搜尋功能
SOLID 分析結果:
[SRP] 識別 3 個獨立職責
[DIP] 需要 2 個介面抽象
[ISP] 建議拆分 1 個介面
拆分建議:
----------------------------------------------------------------------
| 子功能 | 描述 | 架構層 | 版本 | 依賴 |
|--------|------|--------|------|------|
| A | SearchQuery 值物件 | Domain | 0.29.1 | 無 |
| B | SearchResult Entity | Domain | 0.29.1 | 無 |
| C | ISearchRepository 介面 | Domain | 0.29.1 | 無 |
| D | SearchBooksUseCase | Application | 0.29.2 | A, B, C |
| E | SearchRepository 實作 | Infrastructure | 0.29.2 | C |
| F | SearchWidget | Presentation | 0.29.3 | D |
版本分配說明:
- v0.29.1:無依賴任務(A, B, C 可並行)
- v0.29.2:依賴 v0.29.1 的任務(D, E)
- v0.29.3:依賴 v0.29.2 的任務(F)
uv run .claude/skills/tdd-phase1-split/scripts/tdd-phase1-split.py create-tickets \
--description "實作書籍搜尋功能" \
--version 0.29.0 \
--wave 3
根據分析結果建立父 Ticket 和子 Tickets。
uv run .claude/skills/tdd-phase1-split/scripts/tdd-phase1-split.py validate \
--ticket-id {version}-W{wave}-{seq}
驗證已拆分的 Tickets 是否符合 SOLID 原則。
lavender 收到功能需求
|
v
識別功能邊界
|
+-- 輸入是什麼?
+-- 輸出是什麼?
+-- 涉及哪些實體?
+-- 需要哪些操作?
對每個識別的元素
|
+-- SRP:有幾個修改原因?
+-- OCP:如何支援擴展?
+-- LSP:繼承關係正確嗎?
+-- ISP:介面需要拆分嗎?
+-- DIP:依賴方向正確嗎?
根據 SOLID 分析
|
+-- 識別獨立職責 → 各自一個 Ticket
+-- 識別需要的介面 → 介面定義 Ticket
+-- 識別依賴關係 → 決定版本分配
依賴分析
|
+-- 無依賴 → 同小版本(可並行)
+-- 有依賴 → 不同小版本(序列)
|
v
產出版本分配建議
使用 /ticket create 建立 Tickets(詳見 ticket Skill)。
原始需求:「實作書籍搜尋功能」
Step 1: 功能範圍分析
Step 2: SOLID 分析
| 原則 | 分析結果 | 建議 |
|---|---|---|
| SRP | 搜尋查詢建立、搜尋執行、結果呈現是 3 個職責 | 拆分為 3+ 個 Ticket |
| OCP | 未來可能有不同搜尋來源(本地、API) | 定義 ISearchRepository |
| LSP | 無繼承需求 | - |
| ISP | Repository 可能同時有讀寫 | 考慮 ISearchRepository 只負責搜尋 |
| DIP | UseCase 不應依賴具體 Repository | 定義介面 |
Step 3: 拆分結果
父 Ticket(例:書籍搜尋功能)
├── version: 0.29.3(整體完成版本)
└── children: [子 Ticket 1..N]
子 Ticket:SearchQuery 值物件
├── version: 0.29.1
├── blockedBy: []
└── where: Domain
子 Ticket:SearchResult Entity
├── version: 0.29.1
├── blockedBy: []
└── where: Domain
子 Ticket:ISearchRepository 介面
├── version: 0.29.1
├── blockedBy: []
└── where: Domain
子 Ticket:SearchBooksUseCase
├── version: 0.29.2
├── blockedBy: [值物件、Entity、介面]
└── where: Application
子 Ticket:SearchWidget
├── version: 0.29.3
├── blockedBy: [UseCase]
└── where: Presentation
Step 4: 執行順序
階段 1:值物件 + Entity + 介面(並行)
階段 2:UseCase(序列)
階段 3:Widget(序列)
| 情況 | 版本分配 | 範例 |
|---|---|---|
| 無依賴任務 | 同小版本 | Domain Entities → v0.29.1 |
| 依賴前一批 | 下一個小版本 | UseCases → v0.29.2 |
| 依賴多批次 | 最後依賴的下一版 | Widget → v0.29.3 |
| 條件 | 可並行 |
|---|---|
| 同一小版本 | 是 |
| 無 blockedBy | 是 |
| 不同架構層但無依賴 | 是 |
| 有 blockedBy | 否 |
## Phase 1 拆分報告
### 原始需求
- **描述**: [需求描述]
- **預估複雜度**: 高
### SOLID 分析
| 原則 | 分析結果 | 拆分建議 |
|------|---------|---------|
| SRP | [結果] | [建議] |
| OCP | [結果] | [建議] |
| LSP | [結果] | [建議] |
| ISP | [結果] | [建議] |
| DIP | [結果] | [建議] |
### 拆分清單
| ID | 描述 | 層級 | 版本 | 依賴 | 代理人 |
|----|------|------|------|------|--------|
| A | [描述] | Domain | 0.29.1 | - | lavender |
| B | [描述] | Domain | 0.29.1 | - | lavender |
### 執行計畫
1. **v0.29.1**(並行)
- Ticket A
- Ticket B
2. **v0.29.2**(序列)
- Ticket C(依賴 A, B)
### 建議行動
- 建立父 Ticket
- 建立子 Tickets
- 設定依賴關係
.claude/pm-rules/tdd-flow.md.claude/rules/guides/task-splitting.md.claude/methodologies/atomic-ticket-methodology.md.claude/skills/ticket/SKILL.mdLast Updated: 2026-03-02 Version: 1.0.0