dev-docs
npx skills add https://github.com/lilyjem/dev-docs-skill --skill dev-docs
Agent 安装分布
Skill 文档
å¼åææ¡£èªå¨åå·¥å ·
å¤å¹³å°æ¯æ: æ¬æä»¶å¯ä½ä¸º Cursor IDE ç Skill (
~/.cursor/skills/) æ Claude Code ç Skill (~/.claude/skills/) 使ç¨ã
æ¬æè½å¸®å©å¨å¼åè¿ç¨ä¸èªå¨çæåç»´æ¤é¡¹ç®ææ¡£ï¼ç¡®ä¿ææ¡£ä¸ä»£ç ä¿æåæ¥ã
æ ¸å¿å·¥ä½æµ
æµç¨ 1ï¼æ°åè½å¼å宿 â çæææ¡£
å½å®æä¸ä¸ªæ°åè½çå¼ååï¼æ§è¡ä»¥ä¸æ¥éª¤ï¼
-
åæä»£ç åæ´
- è¯å«æ°å¢/ä¿®æ¹çæä»¶
- æåæ°å¢ç API æ¥å£
- è¯å«æ°æ®æ¨¡ååæ´
-
çæéæ±ææ¡£ â
docs/requirements/REQ-{feature_name}.md -
æ´æ° API ææ¡£ â
docs/api/API.md -
æ´æ° CHANGELOG â
docs/CHANGELOG.md -
æ´æ° API CHANGELOG â
docs/api/API_CHANGELOG.md
æµç¨ 2ï¼ä»£ç æ´æ° â æ´æ°ææ¡£
å½å¯¹ç°æåè½è¿è¡ä¿®æ¹åï¼
- è¯å«åæ´ç±»å (Added/Changed/Fixed/Removed)
- æ´æ°å¯¹åºçéæ±ææ¡£
- æ´æ° API ææ¡£ï¼å¦ææ¥å£åæ´ï¼
- 追å CHANGELOG æ¡ç®
ææ¡£æ¨¡æ¿
éæ±ææ¡£æ¨¡æ¿ (PRD)
æä»¶ä½ç½®ï¼docs/requirements/REQ-{feature_name}.md
# {åè½åç§°} - éæ±ææ¡£
## ææ¡£ä¿¡æ¯
| 屿§ | å¼ |
|------|-----|
| ææ¡£ç¼å· | REQ-{ç¼å·} |
| çæ¬ | v1.0 |
| åå»ºæ¥æ | {YYYY-MM-DD} |
| æåæ´æ° | {YYYY-MM-DD} |
| ä½è
| {ä½è
} |
| ç¶æ | è稿/è¯å®¡ä¸/å·²æ¹å/å·²å®ç° |
---
## 1. åè½æ¦è¿°
### 1.1 ç®è¦æè¿°
{ä¸å¥è¯æè¿°è¯¥åè½çæ ¸å¿ç®ç}
### 1.2 å
³é®è¯
{åè½ç¸å
³çå
³é®æ¯è¯}
---
## 2. èæ¯åç®æ
### 2.1 èæ¯
{为ä»ä¹éè¦è¿ä¸ªåè½ï¼è§£å³ä»ä¹é®é¢ï¼}
### 2.2 ç®æ
- ç®æ 1ï¼{å
·ä½å¯è¡¡éçç®æ }
- ç®æ 2ï¼{å
·ä½å¯è¡¡éçç®æ }
### 2.3 éç®æ
{æç¡®å£°ææ¤åè½ä¸åä»ä¹}
---
## 3. åè½éæ±
### 3.1 ç¨æ·æ
äº
| ç¼å· | è§è² | éæ± | ä»·å¼ |
|------|------|------|------|
| US-01 | ä½ä¸º{è§è²} | æå¸æ{åè½} | 以便{ä»·å¼} |
### 3.2 åè½æ¸
å
| ç¼å· | åè½åç§° | ä¼å
级 | æè¿° |
|------|----------|--------|------|
| F-01 | {åè½å} | P0/P1/P2 | {è¯¦ç»æè¿°} |
### 3.3 ä¸å¡è§å
- BR-01ï¼{ä¸å¡è§åæè¿°}
---
## 4. éåè½éæ±
### 4.1 æ§è½è¦æ±
- ååºæ¶é´ï¼{å
·ä½ææ }
- ååéï¼{å
·ä½ææ }
### 4.2 å®å
¨è¦æ±
- {å®å
¨ç¸å
³è¦æ±}
### 4.3 å
¼å®¹æ§
- {æµè§å¨/ç³»ç»å
¼å®¹æ§è¦æ±}
---
## 5. UI/交äºè®¾è®¡
### 5.1 页é¢å¸å±
{æè¿°æå¼ç¨è®¾è®¡ç¨¿}
### 5.2 äº¤äºæµç¨
{ç¨æ·æä½çæ¥éª¤æµç¨}
### 5.3 ç¶æè¯´æ
| ç¶æ | æ¾ç¤ºææ | è§¦åæ¡ä»¶ |
|------|----------|----------|
| {ç¶æå} | {ææ} | {æ¡ä»¶} |
---
## 6. æ°æ®æ¨¡å
### 6.1 æ°å¢/ä¿®æ¹çæ°æ®è¡¨
{ä½¿ç¨ Mermaid ER å¾æè¡¨æ ¼æè¿°}
### 6.2 æ°æ®å段说æ
| åæ®µå | ç±»å | å¿
å¡« | æè¿° |
|--------|------|------|------|
| {åæ®µ} | {ç±»å} | æ¯/å¦ | {说æ} |
---
## 7. éªæ¶æ å
### 7.1 åè½éªæ¶
- [ ] AC-01ï¼{éªæ¶æ¡ä»¶}
- [ ] AC-02ï¼{éªæ¶æ¡ä»¶}
### 7.2 æµè¯ç¨ä¾
| ç¨ä¾ç¼å· | æè¿° | é¢æç»æ |
|----------|------|----------|
| TC-01 | {æµè¯æ¥éª¤} | {é¢æç»æ} |
---
## 8. æ¶é´èç¹
| éç¨ç¢ | è®¡åæ¥æ | å®é
æ¥æ | ç¶æ |
|--------|----------|----------|------|
| éæ±è¯å®¡ | {æ¥æ} | {æ¥æ} | {ç¶æ} |
| å¼å宿 | {æ¥æ} | {æ¥æ} | {ç¶æ} |
| æµè¯å®æ | {æ¥æ} | {æ¥æ} | {ç¶æ} |
| ä¸çº¿åå¸ | {æ¥æ} | {æ¥æ} | {ç¶æ} |
---
## éå½
### A. ç¸å
³ææ¡£
- [API ææ¡£](../api/API.md)
- [æ¶æææ¡£](../architecture.md)
### B. åæ´åå²
| çæ¬ | æ¥æ | ä½è
| åæ´è¯´æ |
|------|------|------|----------|
| v1.0 | {æ¥æ} | {ä½è
} | åå§çæ¬ |
API ææ¡£æ¨¡æ¿
æä»¶ä½ç½®ï¼docs/api/API.md
# {项ç®åç§°} API æ¥å£ææ¡£
## ææ¡£ä¿¡æ¯
| 屿§ | å¼ |
|------|-----|
| çæ¬ | v{çæ¬å·} |
| æåæ´æ° | {YYYY-MM-DD} |
| åºç¡URL | {APIåºç¡è·¯å¾} |
---
## 1. æ¦è¿°
### 1.1 ç®ä»
{API çç¨éåèå´}
### 1.2 åºç¡ä¿¡æ¯
- **åè®®**: HTTPS
- **æ°æ®æ ¼å¼**: JSON
- **å符ç¼ç **: UTF-8
---
## 2. è®¤è¯æ¹å¼
### 2.1 认è¯ç±»å
{JWT / API Key / OAuth ç}
### 2.2 è®¤è¯æ¹å¼
Authorization: Bearer {token}
### 2.3 è·å Token
{è·åè®¤è¯ Token çæ¹å¼}
---
## 3. æ¥å£å表
### 3.1 {模ååç§°}
#### {æ¥å£åç§°}
| 屿§ | å¼ |
|------|-----|
| è·¯å¾ | `{HTTPæ¹æ³} {è·¯å¾}` |
| è®¤è¯ | æ¯/å¦/å¯é |
| æè¿° | {æ¥å£åè½æè¿°} |
**请æ±åæ°**
| åæ°å | ä½ç½® | ç±»å | å¿
å¡« | æè¿° |
|--------|------|------|------|------|
| {åæ°} | path/query/body | {ç±»å} | æ¯/å¦ | {æè¿°} |
**请æ±ç¤ºä¾**
```json
{
"field": "value"
}
ååºåæ°
| åæ°å | ç±»å | æè¿° |
|---|---|---|
| {åæ°} | {ç±»å} | {æè¿°} |
ååºç¤ºä¾
{
"code": 0,
"message": "success",
"data": {}
}
4. æ°æ®æ¨¡å
4.1 {模ååç§°}
| åæ®µå | ç±»å | å¿ å¡« | æè¿° |
|---|---|---|---|
| {åæ®µ} | {ç±»å} | æ¯/å¦ | {æè¿°} |
5. é误ç 说æ
| é误ç | HTTPç¶æç | æè¿° | è§£å³æ¹æ¡ |
|---|---|---|---|
| 0 | 200 | æå | – |
| 10001 | 400 | åæ°é误 | æ£æ¥è¯·æ±åæ° |
| 10002 | 401 | æªææ | æ£æ¥è®¤è¯ä¿¡æ¯ |
| 10003 | 403 | ç¦æ¢è®¿é® | æ£æ¥æé |
| 10004 | 404 | èµæºä¸åå¨ | æ£æ¥è¯·æ±è·¯å¾ |
| 10005 | 500 | æå¡å¨é误 | è系管çå |
6. è°ç¨ç¤ºä¾
6.1 cURL
curl -X POST "{base_url}/api/endpoint" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
6.2 Python
import requests
response = requests.post(
"{base_url}/api/endpoint",
headers={"Authorization": f"Bearer {token}"},
json={"key": "value"}
)
print(response.json())
6.3 JavaScript
const response = await fetch("{base_url}/api/endpoint", {
method: "POST",
headers: {
"Authorization": `Bearer ${token}`,
"Content-Type": "application/json"
},
body: JSON.stringify({ key: "value" })
});
const data = await response.json();
---
### CHANGELOG 模æ¿
æä»¶ä½ç½®ï¼`docs/CHANGELOG.md`
éµå¾ª [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/) æ ¼å¼ï¼
```markdown
# Changelog
æ¬æä»¶è®°å½é¡¹ç®çææéè¦åæ´ã
æ ¼å¼åºäº [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/)ï¼
çæ¬å·éµå¾ª [è¯ä¹åçæ¬](https://semver.org/lang/zh-CN/)ã
## [Unreleased]
### Added
- {æ°å¢çåè½}
### Changed
- {ä¿®æ¹çåè½}
### Fixed
- {ä¿®å¤çé®é¢}
### Removed
- {ç§»é¤çåè½}
---
## [1.0.0] - {YYYY-MM-DD}
### Added
- åå§çæ¬åå¸
- {åè½1}
- {åè½2}
---
[Unreleased]: {repo_url}/compare/v1.0.0...HEAD
[1.0.0]: {repo_url}/releases/tag/v1.0.0
API CHANGELOG 模æ¿
æä»¶ä½ç½®ï¼docs/api/API_CHANGELOG.md
# API Changelog
æ¬æä»¶è®°å½ API æ¥å£çææåæ´ã
## [Unreleased]
### æ°å¢æ¥å£
- `{METHOD} {path}` - {æè¿°}
### æ¥å£åæ´
- `{METHOD} {path}` - {åæ´è¯´æ}
### åºå¼æ¥å£
- `{METHOD} {path}` - å°å¨ v{çæ¬} ç§»é¤ï¼è¯·ä½¿ç¨ {æ¿ä»£æ¥å£}
### ç§»é¤æ¥å£
- `{METHOD} {path}` - {åå }
---
## [1.0.0] - {YYYY-MM-DD}
### æ°å¢æ¥å£
- `POST /api/xxx` - {æè¿°}
- `GET /api/xxx` - {æè¿°}
æ§è¡æ¥éª¤
æ¥éª¤ 1ï¼åå§åææ¡£ç»æ
馿¬¡ä½¿ç¨æ¶ï¼æ£æ¥å¹¶åå»ºææ¡£ç®å½ç»æï¼
docs/
âââ CHANGELOG.md # 项ç®åæ´æ¥å¿
âââ architecture.md # æ¶æææ¡£ï¼å·²åå¨ï¼
âââ api/
â âââ API.md # API æ¥å£ææ¡£
â âââ API_CHANGELOG.md # API åæ´æ¥å¿
âââ requirements/
âââ REQ-{feature}.md # ååè½çéæ±ææ¡£
æ¥éª¤ 2ï¼åæä»£ç åæ´
- æ£æ¥ git status è·ååæ´æä»¶å表
- åææ°å¢/ä¿®æ¹ç API æ¥å£
- è¯å«æ°æ®æ¨¡ååæ´
- æååè½åç§°åæè¿°
æ¥éª¤ 3ï¼çæ/æ´æ°ææ¡£
æ ¹æ®åæ´ç±»åæ§è¡ç¸åºæä½ï¼
| åæ´ç±»å | æä½ |
|---|---|
| æ°åè½ | åå»ºéæ±ææ¡£ + æ´æ° API ææ¡£ + 追å CHANGELOG |
| åè½ä¿®æ¹ | æ´æ°éæ±ææ¡£ + æ´æ° API ææ¡£ + 追å CHANGELOG |
| Bug ä¿®å¤ | 追å CHANGELOG (Fixed) |
| æ¥å£åæ´ | æ´æ° API ææ¡£ + 追å API CHANGELOG |
æ¥éª¤ 4ï¼éªè¯ææ¡£
- æ£æ¥ Markdown æ ¼å¼æ£ç¡®
- ç¡®ä¿é¾æ¥ææ
- éªè¯çæ¬å·ä¸è´
èªå¨åèæ¬
æ¬æè½æä¾ä¸¤ä¸ªèªå¨åèæ¬ï¼ä½äº scripts/ ç®å½ä¸ã
èæ¬ 1ï¼analyze_changes.py – åæ Git åæ´
èªå¨åæ Git åæ´å¹¶çæææ¡£æ´æ°å»ºè®®ã
ç¨æ³
# åæå½åæªæäº¤çåæ´
python scripts/analyze_changes.py
# åæä»æå® commit å° HEAD çåæ´
python scripts/analyze_changes.py --since HEAD~5
# è¾åºä¸º JSON æ ¼å¼
python scripts/analyze_changes.py --json
# ä¿åå°æä»¶
python scripts/analyze_changes.py --output changes_report.txt
è¾åºå 容
- åæ´æä»¶å表ï¼Added/Modified/Deletedï¼
- API åæ´æ£æµï¼è¯å«æ°å¢/ä¿®æ¹/å é¤çæ¥å£ï¼
- å»ºè®®æ´æ°çææ¡£å表
- CHANGELOG æ¡ç®å»ºè®®
- API CHANGELOG æ¡ç®å»ºè®®
èæ¬ 2ï¼update_docs.py – æ´æ°ææ¡£
æä¾å½ä»¤è¡å·¥å ·æ¥æ´æ°åç±»ææ¡£ã
åå§åææ¡£ç®å½
python scripts/update_docs.py init
æ´æ° CHANGELOG
# æ·»å æ°åè½
python scripts/update_docs.py changelog -t added -m "æ°å¢ç¨æ·è®¤è¯åè½"
# è®°å½åæ´
python scripts/update_docs.py changelog -t changed -m "ä¼åPDFè§£ææ§è½"
# è®°å½ä¿®å¤
python scripts/update_docs.py changelog -t fixed -m "ä¿®å¤æ¥ææ ¼å¼è§£æé误"
# è®°å½ç§»é¤
python scripts/update_docs.py changelog -t removed -m "ç§»é¤æ§çAPIæ¯æ"
æ´æ° API CHANGELOG
# æ°å¢æ¥å£
python scripts/update_docs.py api -t add -e "POST /api/users" -d "åå»ºç¨æ·"
# æ¥å£åæ´
python scripts/update_docs.py api -t change -e "GET /api/users" -d "æ°å¢å页忰"
# åºå¼æ¥å£
python scripts/update_docs.py api -t deprecate -e "GET /api/old" -d "å°å¨v2.0ç§»é¤"
# ç§»é¤æ¥å£
python scripts/update_docs.py api -t remove -e "DELETE /api/legacy" -d "å·²åºå¼"
åå»ºéæ±ææ¡£
# å建æ°çéæ±ææ¡£
python scripts/update_docs.py req -n "user-auth" -t "ç¨æ·è®¤è¯åè½" -a "Jem"
# 强å¶è¦çå·²åå¨çææ¡£
python scripts/update_docs.py req -n "user-auth" --force
å ¸å工使µ
工使µ 1ï¼æ°åè½å¼å
# 1. å¼å宿åï¼åæä»£ç åæ´
python scripts/analyze_changes.py
# 2. åå»ºéæ±ææ¡£
python scripts/update_docs.py req -n "feature-name" -t "åè½æ é¢"
# ç¼è¾çæçéæ±ææ¡£ï¼å¡«å详ç»å
容
# 3. æ´æ° CHANGELOG
python scripts/update_docs.py changelog -t added -m "æ°å¢XXåè½"
# 4. å¦æææ° APIï¼æ´æ° API ææ¡£
python scripts/update_docs.py api -t add -e "POST /api/xxx" -d "æ¥å£æè¿°"
# 5. æäº¤ä»£ç åææ¡£
git add .
git commit -m "feat: æ°å¢XXåè½"
工使µ 2ï¼Bug ä¿®å¤
# 1. ä¿®å¤å®æåï¼æ´æ° CHANGELOG
python scripts/update_docs.py changelog -t fixed -m "ä¿®å¤XXé®é¢"
# 2. æäº¤
git add .
git commit -m "fix: ä¿®å¤XXé®é¢"
工使µ 3ï¼API åæ´
# 1. æ´æ° API CHANGELOG
python scripts/update_docs.py api -t change -e "GET /api/xxx" -d "åæ´è¯´æ"
# 2. æå¨æ´æ° API.md ä¸çæ¥å£è¯¦æ
# 3. æ´æ° CHANGELOG
python scripts/update_docs.py changelog -t changed -m "æ´æ°XXæ¥å£"
æä½³å®è·µ
- åæ¶æ´æ°ï¼æ¯æ¬¡ä»£ç æäº¤åæ£æ¥æ¯å¦éè¦æ´æ°ææ¡£
- çæ¬åæ¥ï¼CHANGELOG çæ¬å·ä¸ Git Tag ä¿æä¸è´
- æ¸ æ°æè¿°ï¼åæ´è¯´æè¦å ·ä½ï¼é¿å 模ç³çæè¿°å¦”ä¿®å¤bug”
- å ³èå¼ç¨ï¼éæ±ææ¡£å API ææ¡£äºç¸å¼ç¨
- ä¸ææ³¨éï¼ææææ¡£åä»£ç æ³¨é使ç¨ä¸æ
- å åæåæ´æ°ï¼ä½¿ç¨ analyze_changes.py å åæåæ´ï¼åä½¿ç¨ update_docs.py æ´æ°