plan-mode
npx skills add https://github.com/story-has-you/skills --skill plan-mode
Agent 安装分布
Skill 文档
Claude Plan Mode (Deep-Spec Version)
æ ¸å¿ç¨é
- æ·±åº¦æ¶æè§åï¼åªè¯»æ¨¡å¼è¿è¡ï¼äº§åºå å«å ·ä½ä»£ç å®ç°çè¯¦ç»ææ¯ææ¡£ã
- 强å¶ä»£ç è½å°ï¼è®¡åæä»¶å¿ é¡»å 嫿 ¸å¿å½æ°ç宿´ç¾åãé»è¾ä¼ªä»£ç çè³ 80% ç骨æ¶ä»£ç ã
- å¨æäº¤äºï¼éå°éæ±ä¸æ¸ æææ¯éååæ§æ¶ï¼å¼ºå¶æåå¹¶åç¨æ·æé®ï¼ç»ä¸éè¿âçæµâæ¥å¡«è¡¥ç©ºç½ã
å¢å¼ºè½å
- è´¨éé¸é¨ï¼éåºåå¿ é¡»éè¿è®¡åè´¨éé¸é¨æ¸ åï¼é¿å âä¸å¯æ§è¡âç计åã
- 计åæä»¶æ²»çï¼è¦æ±ç»ä¸å½åä¸å¢éæ´æ°ï¼æç»å¤ä»½è®¡åå¹¶å导è´çæ§è¡åå·®ã
- åèç´¢å¼ï¼éè¿ references ç´¢å¼æéå 载详ç»è§åï¼ä¿æä¸»æç¤ºç®æ´ã
æµç¨å¾ (å å«è¯¢é®åè·¯ä¸å¹¶è¡ä¼å)
graph TD
A[éæ±å°è¾¾] --> B{æ¯å¦å¤æä»»å¡?}
B -- å¦ --> C[ç´æ¥æ§è¡]
B -- æ¯ --> D[è°ç¨ EnterPlanMode]
D --> E["Phase 1: å¹¶è¡æ¢ç´¢ (æå¤3个 Explore Agents)"]
E --> F{"å卿§ä¹æå¤è·¯å¾?"}
F -- æ¯ --> G["**æå: è°ç¨ AskUser æé®**"]
G --> H[ç¨æ·è¡¥å
ä¿¡æ¯]
H --> I["Phase 2: ç¯å¢ä¸ä¾èµéªè¯"]
I --> J["Phase 3: æ¶æè®¾è®¡ (å¯é: å¤è§è§å¹¶è¡è®¾è®¡)"]
J --> K["Phase 4: 计åå®¡æ¥ (å¹¶è¡è¯»åå
³é®æä»¶)"]
K --> L["Phase 5: ç¼å计å + å¹¶è¡è´¨éæ£æ¥"]
L --> M{"ç¨æ·æ¯å¦æ¹å?"}
M -- å¦/è¿æè¡¥å
--> G
F -- å¦ --> I
M -- æ¯/æ¹å --> N["Phase 7: è°ç¨ ExitPlanMode"]
N --> O[æè®¡åæä»¶å¤å¶ä»£ç æ§è¡]
style E fill:#90EE90
style J fill:#90EE90
style K fill:#90EE90
style L fill:#90EE90
å¹¶è¡ä¼åæ æ³¨ï¼
- ð¢ 绿è²èç¹ï¼æ¯æå¹¶è¡æ§è¡ï¼å¯æ¾èæåæ§è½
- Phase 1: æå¤ 3 个 Explore agents å¹¶è¡æ¢ç´¢
- Phase 3: å¯éçå¤è§è§å¹¶è¡è®¾è®¡ï¼2 个 Plan agentsï¼
- Phase 4: å¹¶è¡è¯»åå¤ä¸ªå ³é®æä»¶
- Phase 5: å¹¶è¡è¿è¡å¤ä¸ªè´¨éæ£æ¥èæ¬
æä½åå (æ ¸å¿çº¦æ)
1. é¶å¯ä½ç¨åå
- ç»å¯¹åªè¯»ï¼ç¦æ¢ä½¿ç¨
write,edit,rm,mvæä½ä»»ä½ç°æä»£ç æä»¶ã - å¯ä¸ä¾å¤ï¼å
许ä¸å¿
é¡»å¨é¡¹ç®æ ¹ç®å½
plans/ä¸å建计åæä»¶ã - ç¦æ¢ç¶æåæ´å½ä»¤ï¼ç¦æ¢è¿è¡ä¼æ¹åç³»ç»æä¾èµç¶æçå½ä»¤ï¼å¦ installãinitãformatãcommitï¼ã
1.5 计åæä»¶å½å䏿´æ°çç¥
- å½åè§åï¼ä½¿ç¨
plans/YYYYMMDD-<slug>.mdï¼å ¶ä¸<slug>ä¸ºä»»å¡æè¦ï¼è±æ/æ¼é³åå¯ï¼ã - å¢éæ´æ°ï¼ææè°æ´å¿ é¡»åå ¥åä¸ä¸ªè®¡åæä»¶ï¼ç¦æ¢çæå¤ä»½å¹³è¡è®¡åã
- çæ¬æç¤ºï¼å
³é®æ¹æ¡åæ´éå¨âæ ¸å¿åæ´æè¦â䏿 è®°ï¼ä¾å¦ï¼
*å·²æ¹ä¸ºä½¿ç¨ JWT*ï¼ã
2. é¢ç²åº¦å¼ºå¶æ å (The “Code-First” Rule)
-
æç»æ¨¡ç³æè¿°ï¼ä¸¥ç¦å¨è®¡åä¸ä½¿ç¨âå®ç°é»è¾âãâå¤çè¾¹çæ åµâç空è¯ã
-
代ç å³ççï¼
-
æ¶åæ°æ®ç»æåæ´ï¼å¿ é¡»ååºæ°ç
Interface/Typeå®ä¹ã -
æ¶åç®æ³é»è¾ï¼å¿ é¡»ååºæ ¸å¿å½æ°ç宿´ä»£ç ã
-
æä»¶è¦ççï¼è®¡å䏿å°çæ¯ä¸ä¸ªâCritical Fileâï¼é½å¿ 须对åºä¸æ®µå ·ä½çæ¹å¨ä»£ç åã
3. 询é®ä¼å äºå设 (Ask > Assume)
-
æåéå¼ï¼å½éå°ä»¥ä¸æ 嵿¶ï¼ç«å³åæ¢è§åï¼ç´æ¥åç¨æ·æé®ï¼
-
缺ä¹å ³é®ä¸å¡è§åï¼ä¾å¦ï¼éªè¯å¤±è´¥æ¯æ¥éè¿æ¯è¿å falseï¼ï¼ã
-
åå¨å¤ç§ææ¯å®ç°è·¯å¾ï¼ä¾å¦ï¼ç¨ Redux è¿æ¯ Contextï¼ï¼ã
-
æ¶åå°æªç¥çç¬¬ä¸æ¹åºçæ¬æç¹æ§ã
-
ç¦æ¢äºé¡¹ï¼ä¸¥ç¦å¨è®¡åæä»¶ä¸åâåè®¾ç¨æ·å¸æ…âã
4. è´¨éé¸é¨ (Plan Quality Gates)
- 强å¶éè¿ï¼éåº Plan Mode åå¿ é¡»éæ¡èªæ£ï¼æªéè¿ç¦æ¢è°ç¨ ExitPlanModeã
- æ¸
åä½ç½®ï¼æéå è½½
references/plan-quality-gates.mdè·å宿´æ¸ åã
èæ¬å·¥å · (scripts/)
- åå§å计åæä»¶ï¼
scripts/init_plan.py <slug>- é»è®¤åå
¥
plans/YYYYMMDD-<slug>.mdï¼å¹¶æ³¨å ¥æ 忍¡æ¿ã - é»è®¤æç»åå
¥
plans/以å¤è·¯å¾ï¼é¤éæ¾å¼--allow-outsideï¼ã
- é»è®¤åå
¥
- è´¨éé¸é¨æ£æ¥ï¼
scripts/check_plan_quality.py <plan_file>- æ£æ¥å¿ å¤ç« èã代ç 骨æ¶ãéªè¯å½ä»¤ä¸åæ»æç¤ºã
- èå´ä¸è´æ§æ£æ¥ï¼
scripts/check_plan_scope.py <plan_file>- æ£æ¥ Scope è¡¨æ ¼ä¸âé Createâçè·¯å¾æ¯å¦åå¨ã
- ç´¢å¼ä¸è´æ§æ£æ¥ï¼
scripts/list_plan_refs.py- æ ¡éª
references/api_reference.mdä¸ååºçæä»¶æ¯å¦ç¼ºå¤±ã
- æ ¡éª
- ç½ç»æç´¢è¾
å©ï¼
scripts/web_search.py "<query>"- åºäº DuckDuckGo HTML æç´¢ï¼è¾åºå¯å¼ç¨çæ¥æºé¾æ¥ã
- å¯ä½¿ç¨
--domain example.coméå®ååï¼--format jsonè¾åºç»æåç»æã
- Context7 API è¾
å©ï¼
scripts/context7_api.py- ä»
ä»ç¯å¢åé读å API Keyï¼é»è®¤
CONTEXT7_API_KEYï¼ï¼ç¦æ¢åå ¥æä»¶æèæ¬ã - åå½ä»¤ï¼
search --library-name <name> --query <q>/context --library-id <id> --query <q> --type txtã
- ä»
ä»ç¯å¢åé读å API Keyï¼é»è®¤
计åæä»¶å¼ºå¶æ¨¡ç (Plan File Template)
Agent å¨çæè®¡åæä»¶æ¶ï¼å¿ é¡»ä¸¥æ ¼éµå®ä»¥ä¸ Markdown ç»æï¼
# [ä»»å¡ç¼å·] [ä»»å¡åç§°] æ·±åº¦å®æ½æ¹æ¡
## 0. 颿£æ¸
å (Pre-Flight Checklist)
- [ ] å½åç¯å¢æ¯å¦å¯éè¿æå»ºï¼(Build Status)
- [ ] å
³é®ä¾èµæ¯å¦åå¨ï¼
- [ ] æ¯å¦å·²è¯»åå¹¶ç解项ç®ç CONTRIBUTING.md æä»£ç è§èï¼
## 1. æ ¸å¿åæ´æè¦
- **ç®æ **: ä¸å¥è¯æè¿°è¦åä»ä¹ã
- **å¾
确认项**: (妿å¨è§åä¸éè¿å¯¹è¯å·²è§£å³ï¼è¯·è®°å½å¨æ¤ï¼ä¾å¦ï¼*å·²ç¡®è®¤ä½¿ç¨ JWT æ¹æ¡*)
## 2. æ¶åæä»¶æ¸
å (Scope)
| æä½ | æä»¶è·¯å¾ | å
³é®æ¹å¨ç¹ |
| :--- | :--- | :--- |
| Create | `src/services/auth.ts` | æ°å¢ JWT éªè¯é»è¾ |
## 3. æ ¸å¿æ°æ®ç»æä¸æ¥å£ (Data Structures & Interfaces)
**æææ°å®ä¹ç Type/Interface å¿
须卿¤ååºãè¿æ¯ä»£ç å®ç°çåºç³ã**
```typescript
// src/types/user.ts
export interface UserProfile {
id: string;
role: 'admin' | 'user'; // Explicit union types, not just "string"
preferences: UserPreferences; // Reference other interfaces
}
4. 详ç»å®æ½æ¥éª¤ (Implementation Details)
注æï¼æ¬é¨åå¿ é¡»å å«å¯ç´æ¥ä½¿ç¨ç代ç 骨æ¶ãç¦æ¢ä½¿ç¨ä¼ªä»£ç ã
æ¥éª¤ 1: [å ·ä½å¨ä½]
- æä»¶:
src/types/user.d.ts - ä¾èµ: (ååºéè¦ import çæ¨¡å)
- 代ç 骨æ¶:
// å¿
é¡»å
å«å®æ´ç彿°ç¾ååæ ¸å¿é»è¾æµ
export async function updateUserProfile(userId: string, data: Partial<UserProfile>): Promise<void> {
if (!userId) throw new Error("Invalid ID");
// ... å
·ä½è°ç¨ ...
}
æ¥éª¤ 2: …
5. éªè¯çç¥ (Verification Strategy)
- åå
æµè¯ï¼
npm test -- auth.test.ts - éææµè¯ï¼
npm run test:integration - æå¨éªè¯ï¼è®¿é®
/loginå¹¶æ£æ¥ JWT token
6. é£é©è¯ä¼°ä¸åæ» (Risk & Rollback)
é£é©ç级å®ä¹
- Critical: å½±åç产ç¯å¢æ ¸å¿åè½ï¼ç»å½ãæ¯ä»ãæ°æ®å®æ´æ§ï¼
- High: å½±å主è¦åè½ä½æéçº§æ¹æ¡
- Medium: 影忬¡è¦åè½ææ§è½
- Low: ä» å½±åå¼åä½éªæéå ³é®è·¯å¾
é£é©æ¸ å
| é£é©ç¹ | ç级 | å½±åèå´ | ç¼è§£æªæ½ |
|---|---|---|---|
ä¿®æ¹ auth.ts æ ¸å¿é»è¾ |
Critical | å ¨ç«ç»å½ | 1. ç¼åå彿µè¯2. å¨ staging ç¯å¢éªè¯3. åå¤å¿«éåæ»èæ¬ |
åæ»è·¯å¾ï¼æåºæ¯ï¼
åºæ¯ 1: 纯代ç åæ´ï¼æ æ°æ®åº/API åæ´ï¼
# æ¹æ¡ A: åæ»å个 commit
git revert <commit-hash>
git push origin main
# æ¹æ¡ B: åæ»å个æä»¶
git checkout HEAD~1 -- src/services/auth.ts
git commit -m "Rollback auth.ts to previous version"
åºæ¯ 2: å 嫿°æ®åºè¿ç§»
# 1. 忻代ç
git revert <commit-hash>
# 2. åæ»æ°æ®åºè¿ç§»
npm run migrate:down # æ alembic downgrade -1
# 3. éªè¯æ°æ®å®æ´æ§
npm run db:verify
åºæ¯ 3: å å« API å¥çº¦åæ´
# 1. å¯ç¨ API çæ¬å
¼å®¹å±ï¼å¦æåå¨ï¼
# 2. 忻代ç å°ä¸ä¸çæ¬
# 3. éç¥ä¾èµæ¹ API 忴已忻
# 4. çæ§éè¯¯çæ¢å¤æ£å¸¸
åºæ¯ 4: å å«ä¾èµå级
# 1. åæ» package.json å lock æä»¶
git checkout HEAD~1 -- package.json package-lock.json
# 2. éæ°å®è£
ä¾èµ
npm ci
# 3. éæ°æå»º
npm run build
åæ»éªè¯æ¸ å
- åæ»åè¿è¡å®æ´æµè¯å¥ä»¶
- æ£æ¥å ³é®åè½æ¯å¦æ¢å¤æ£å¸¸
- çæ§é误æ¥å¿ï¼è³å° 15 åéï¼
- éç¥ç¸å ³å¢éæå
## 交äºä¸æä½³å®è·µ
1. **䏻卿¶æ§ (Disambiguation)**ï¼
* å¨è¿å
¥ `Design` é¶æ®µåï¼Agent å¿
é¡»èªé®ï¼âææ¯å¦æ¥æå®ææ¤ä»»å¡æéçå
¨é¨ä¸ä¸æï¼â
* å¦æçæ¡æ¯âå¦âï¼ä½¿ç¨ `AskUserQuestion` å·¥å
·ï¼æç´æ¥å¯¹è¯ï¼ååºé项ï¼çå¾
ç¨æ·å³çã
2. **è¿ä»£å¼è§å**ï¼
* ä¸è¦è¯å¾ä¸æ¬¡æ§çæå®ç¾ç计åãå¯ä»¥å
çæä¸ä¸ªè稿ï¼Draftï¼ï¼è¯¢é®ç¨æ·ï¼âè¿ä¸ªæ¹å对åï¼å
³äº X 模åçå¤çæ¨æä¹çï¼â
* è·å¾åé¦åï¼åæ´æ° `plans/xxx.md` å¹¶æç»è°ç¨ `ExitPlanMode`ã
3. **æ§è¡ç§»äº¤**ï¼
* éåº Plan Mode åï¼ä¸ä¸æ¡æä»¤åºè¯¥æ¯ï¼â请读å `plans/xxx.md`ï¼å¹¶ä¸¥æ ¼æç
§å
¶ä¸çæ¥éª¤æ§è¡ãâ