doc-code-sync
npx skills add https://github.com/stanah/dotagents --skill doc-code-sync
Agent 安装分布
Skill 文档
doc-code-sync: ããã¥ã¡ã³ãã»ã³ã¼ãæ´åæ§ãã§ãã¯ã¹ãã«
ããã¸ã§ã¯ãã®ããã¥ã¡ã³ãã¨ã³ã¼ãã®ä¸æ´åã6ã«ãã´ãªã§æ¤åºããã¬ãã¼ããçæããã
æ¤åºã«ãã´ãª
| ã«ãã´ãª | 説æ | éè¦åº¦ããã©ã«ã |
|---|---|---|
BROKEN_REF |
ããã¥ã¡ã³ããåç §ããã³ã¼ãï¼ãã¡ã¤ã«ãã¹ã颿°åçï¼ãåå¨ããªã | CRITICAL |
UNDOCUMENTED |
å ¬éã³ã¼ãï¼export ããã颿°/ã¯ã©ã¹/åï¼ã«ããã¥ã¡ã³ãããªã | WARNING |
STALE_EXAMPLE |
ããã¥ã¡ã³ãå ã®ã³ã¼ãä¾ã®ã·ã°ããã£ãå®éã®ã³ã¼ãã¨ä¸ä¸è´ | CRITICAL |
CONFIG_DRIFT |
è¨å®å¤ã»ç°å¢å¤æ°ã®ããã¥ã¡ã³ãè¨è¼ã¨å®éã®ä¸ä¸è´ | WARNING |
API_DRIFT |
API ã¨ã³ããã¤ã³ãã®ããã¥ã¡ã³ãè¨è¼ã¨å®éã®ä¸ä¸è´ | CRITICAL |
VERSION_DRIFT |
ãã¼ã¸ã§ã³çªå·ã»ä¾åé¢ä¿ã®ããã¥ã¡ã³ãè¨è¼ã¨å®éã®ä¸ä¸è´ | INFO |
ã¯ã¼ã¯ããã¼
Step 1: ããã¸ã§ã¯ãæ§é ææ¡
- ããã¸ã§ã¯ãã®è¨èªã»ãã¬ã¼ã ã¯ã¼ã¯ãå¤å®ãã:
package.json,go.mod,Cargo.toml,pyproject.toml,requirements.txtçã®åå¨ããã§ãã¯ã- Solidity ããã¸ã§ã¯ãæ¤åº:
hardhat.config.*,foundry.toml,truffle-config.jsã®åå¨ããã§ãã¯ã
- ããã¥ã¡ã³ããã¡ã¤ã«ã Glob ã§ã¹ãã£ã³ãã:
docs/**/*.md,README.md,**/*.mdï¼.git/,node_modules/,.docstore/extracted/ã¯é¤å¤ï¼
- ã³ã¼ããã¡ã¤ã«ã Glob ã§ã¹ãã£ã³ãã:
- æ¤åºããè¨èªã«å¿ããæ¡å¼µåã§ã¹ãã£ã³ã
.claude/skills/doc-code-sync/references/check-patterns.mdãèªã¿è¾¼ã¿ãè¨èªå¥ã® Grep ãã¿ã¼ã³ãåå¾ããã.claude/skills/doc-code-sync/references/extraction-strategy.mdãèªã¿è¾¼ã¿ãæ½åºæ¦ç¥ã®ä»æ§ã確èªããã- è¨èªãã¨ã® AST ã©ã³ã¿ã¤ã æ¤åºãå®è¡ãã:
- TypeScript/JS:
node -e "require('typescript')"ã対象ããã¸ã§ã¯ãã®node_modulesã§å®è¡ã - Solidity:
node -e "require('@solidity-parser/parser')"ã¾ãã¯solc --versionãå®è¡ã - Python:
python3 -c "import ast"ãå®è¡ã - Go:
go versionãå®è¡ã - Rust:
cargo --versionãå®è¡ã - åè¨èªã®å©ç¨å¯è½ãªæ¦ç¥ï¼
ast/grepï¼ãè¨é²ããã --strategy=grep/--strategy=ast弿°ã§ã¦ã¼ã¶ã¼ãªã¼ãã¼ã©ã¤ãå¯è½ã
- TypeScript/JS:
Step 2: ã³ã¼ãã·ã°ããã£æ½åº
è¨èªã«å¿ããæ¹æ³ã§å ¬éã·ã³ãã«ãæ½åºãããStep 1 ã§æ±ºå®ããæ¦ç¥ã«åºã¥ããAST æ¦ç¥ã¾ã㯠Grep æ¦ç¥ã使ç¨ããã
AST æ¦ç¥ï¼é«ç²¾åº¦ï¼
AST ã©ã³ã¿ã¤ã ãå©ç¨å¯è½ãªè¨èªã§ã¯ãã¨ã¯ã¹ãã©ã¯ã¿ã¹ã¯ãªããã Bash çµç±ã§å®è¡ãã:
# TypeScript
node .claude/skills/doc-code-sync/references/extractors/typescript-ast.js <project_root> "src/**/*.ts,src/**/*.tsx"
# Solidity
node .claude/skills/doc-code-sync/references/extractors/solidity-ast.js <project_root> "contracts/**/*.sol"
ã¨ã¯ã¹ãã©ã¯ã¿ã¯æ¨æºå JSON ã stdout ã«åºåããï¼ã¹ãã¼ã㯠extraction-strategy.md åç
§ï¼ã
ã¿ã¤ã ã¢ã¦ã: 60ç§ã失ææï¼exit code â 0ï¼ã¯ stderr ããã°ã«è¨é²ããGrep æ¦ç¥ã«ãã©ã¼ã«ããã¯ããã
Grep æ¦ç¥ï¼ãã©ã¼ã«ããã¯ï¼
AST ã©ã³ã¿ã¤ã ãä¸å¨ãã¾ã㯠AST æ¦ç¥ã失æããå ´åãGrep ãã¼ã«ã§ check-patterns.md ã«å®ç¾©ããããã¿ã¼ã³ã使ç¨ããã
å ±éæ½åºå¯¾è±¡
- 颿°/ã¡ã½ãã: export ããã颿°ãpublic ã¡ã½ããã®ååã¨ã·ã°ããã£ã
- ã¯ã©ã¹/å: export ãããã¯ã©ã¹ãã¤ã³ã¿ã¼ãã§ã¼ã¹ãåå®ç¾©ã
- è¨å®ãã¼:
.env.example, è¨å®ãã¡ã¤ã«ã®ãã¼åã - CLI ã³ãã³ã: CLI ãã¼ã«ã®å ´åãã³ãã³ãåã¨ãªãã·ã§ã³ã
- API ã¨ã³ããã¤ã³ã: ã«ã¼ãå®ç¾©ï¼Express, FastAPI, Gin çï¼ã
- Solidity åºæ: ã³ã³ãã©ã¯ããã¤ãã³ãã修飾åãã«ã¹ã¿ã ã¨ã©ã¼ãNatSpec ã³ã¡ã³ãã
ãã©ã¼ã«ããã¯ãã§ã¼ã³
AST æ¦ç¥ â (失æ/ã¿ã¤ã ã¢ã¦ã) â Grep æ¦ç¥ â (ãã¿ã¼ã³ãªã) â æ±ç¨ãã¿ã¼ã³
Step 3: ããã¥ã¡ã³ãåç §æ½åº
ããã¥ã¡ã³ããã¡ã¤ã«ãã以ä¸ãæ½åºãã:
- ã³ã¼ããããã¯:
```è¨èªã§å²ã¾ããã³ã¼ãä¾ã®ä¸ã®é¢æ°å¼ã³åºãã»ååç §ã - ã¤ã³ã©ã¤ã³ã³ã¼ã:
`code`å½¢å¼ã®ã³ã¼ãåç §ã - ãã¡ã¤ã«ãã¹åç
§: ããã¥ã¡ã³ãå
ã§è¨åããã¦ãããã¡ã¤ã«ãã¹ï¼
src/,./çã§å§ã¾ããã®ï¼ã - API åç
§:
GET /api/...,POST /api/...çã®ãã¿ã¼ã³ã - ç°å¢å¤æ°åç
§:
$ENV_VAR,process.env.VAR,os.getenv("VAR")çã
Step 4: æ´åæ§ãã§ãã¯ï¼6ã«ãã´ãªï¼
BROKEN_REF: åç §åã
- ããã¥ã¡ã³ãå ã®ãã¡ã¤ã«ãã¹åç §ãå®éã«åå¨ããããã§ãã¯ã
- ã¤ã³ã©ã¤ã³ã³ã¼ãã®é¢æ°åã»ã¯ã©ã¹åãã³ã¼ããã¼ã¹ã«åå¨ããããã§ãã¯ã
UNDOCUMENTED: æªããã¥ã¡ã³ãå
- Step 2 ã§æ½åºããå ¬éã·ã³ãã«ããããããã®ããã¥ã¡ã³ãã§è¨åããã¦ããããã§ãã¯ã
- README.md ã¾ãã¯ã¡ã¤ã³ããã¥ã¡ã³ãã«è¨è¼ããªããã®ãæ¤åºã
STALE_EXAMPLE: ã³ã¼ãä¾ã®é³è å
- ããã¥ã¡ã³ãå ã®ã³ã¼ãä¾ã«å«ã¾ãã颿°å¼ã³åºãã®ã·ã°ããã£ï¼å¼æ°ã®æ°ã»åï¼ããå®éã®ã³ã¼ãã¨ä¸è´ããããã§ãã¯ã
CONFIG_DRIFT: è¨å®å¤ã®ä¸ä¸è´
.env.exampleã®ãã¼ã¨ããã¥ã¡ã³ãè¨è¼ã®ç°å¢å¤æ°ãæ¯è¼ã- è¨å®ãã¡ã¤ã«ï¼
config.*ï¼ã®ãã¼ã¨ããã¥ã¡ã³ãè¨è¼ãæ¯è¼ã
API_DRIFT: API ã¨ã³ããã¤ã³ãã®ä¸ä¸è´
- ã³ã¼ãå ã®ã«ã¼ãå®ç¾©ã¨ããã¥ã¡ã³ãè¨è¼ã® API ã¨ã³ããã¤ã³ããæ¯è¼ã
- ã¡ã½ããï¼GET/POSTçï¼ã¨ãã¹ã®ä¸¡æ¹ããã§ãã¯ã
NATSPEC_DRIFT: NatSpec ã³ã¡ã³ãã®ä¸ä¸è´ï¼Solidity åºæï¼
- NatSpec ã®
@paramåãã³ã¼ãä¸ã®å¼æ°åã¨ä¸è´ããããã§ãã¯ã - NatSpec ã®
@returnãæ»ãå¤åã¨æ´åããããã§ãã¯ã - AST æ¦ç¥ã§æ½åºããã
natspecãã£ã¼ã«ãã¨params/returnTypeãæ¯è¼ããã
MISSING_NATSPEC: NatSpec ä¸è¶³ï¼Solidity åºæï¼
public/external颿°ã« NatSpecï¼@noticeã¾ãã¯@devï¼ãåå¨ããããã§ãã¯ã- åå¨ããªãå ´åã¯
UNDOCUMENTEDã«ãã´ãªã¨ãã¦å ±åããã
VERSION_DRIFT: ãã¼ã¸ã§ã³ã®ä¸ä¸è´
package.jsonçã®ãã¼ã¸ã§ã³çªå·ã¨ããã¥ã¡ã³ãè¨è¼ãæ¯è¼ã- ä¾åé¢ä¿ã®ãã¼ã¸ã§ã³ã¨ããã¥ã¡ã³ãè¨è¼ãæ¯è¼ã
Step 5: éè¦åº¦å¤å®
忤åºé ç®ã«éè¦åº¦ãå²ãå½ã¦ã:
- CRITICAL: å³åº§ã«å¯¾å¿ãå¿
è¦ãã¦ã¼ã¶ã¼ã誤ã£ãæ
å ±ã«åºã¥ãã¦è¡åããå¯è½æ§ãããã
- BROKEN_REFï¼åå¨ããªããã¡ã¤ã«ã¸ã®åç §ï¼
- STALE_EXAMPLEï¼åä½ããªãã³ã¼ãä¾ï¼
- API_DRIFTï¼å®å¨ããªã API ã¨ã³ããã¤ã³ãï¼
- WARNING: å¯¾å¿æ¨å¥¨ãä¸å®å
¨ã ãè´å½çã§ã¯ãªãã
- UNDOCUMENTEDï¼å ¬é API ã®ããã¥ã¡ã³ãä¸è¶³ï¼
- CONFIG_DRIFTï¼ç°å¢å¤æ°ã®è¨è¼æ¼ãï¼
- INFO: åèæ
å ±ãæ¹åã®ä½å°ãããã
- VERSION_DRIFTï¼ãã¼ã¸ã§ã³çªå·ã®ããï¼
Step 6: ã¬ãã¼ãçæ
.docstore/sync-report.md ã«è©³ç´°ã¬ãã¼ããåºåãã:
# Doc-Code Sync Report
**çææ¥**: <YYYY-MM-DD>
**ããã¸ã§ã¯ã**: <project_name>
**ã¹ãã£ã³å¯¾è±¡**: ã³ã¼ããã¡ã¤ã« <n>ä»¶, ããã¥ã¡ã³ããã¡ã¤ã« <n>ä»¶
**æ½åºæ¦ç¥**: TypeScript=ast, Solidity=grep, ... ï¼è¨èªãã¨ã«ä½¿ç¨ããæ¦ç¥ã表示ï¼
## ãµããªã¼
| éè¦åº¦ | ä»¶æ° |
|--------|------|
| CRITICAL | <n> |
| WARNING | <n> |
| INFO | <n> |
## CRITICAL
### BROKEN_REF
- [ ] `docs/guide.md:15` â `src/old-module.ts` ã¯åå¨ãã¾ãã
...
### STALE_EXAMPLE
- [ ] `docs/api.md:42` â `createUser(name)` 㯠`createUser(name, options)` ã«å¤æ´ããã¦ãã¾ã
...
## WARNING
### UNDOCUMENTED
- [ ] `src/utils/auth.ts:export function validateToken()` ã¯ããã¥ã¡ã³ãã«è¨è¼ãããã¾ãã
...
## INFO
### VERSION_DRIFT
- [ ] `README.md:3` â ãã¼ã¸ã§ã³ `1.2.0` 㯠`package.json` ã® `1.3.0` ã¨ç°ãªãã¾ã
...
Step 7: ã¿ã¼ããã«ãµããªã¼è¡¨ç¤º
## Doc-Code Sync å®äº
**CRITICAL**: <n>ä»¶ **WARNING**: <n>ä»¶ **INFO**: <n>ä»¶
### 主è¦ãªåé¡
1. <æãéè¦ãªåé¡ã®æ¦è¦>
2. <次ã«éè¦ãªåé¡ã®æ¦è¦>
3. ...
詳細ã¬ãã¼ã: .docstore/sync-report.md
### æ¨å¥¨ã¢ã¯ã·ã§ã³
- <CRITICAL é
ç®ãããå ´å> å³åº§ã«ããã¥ã¡ã³ããä¿®æ£ãã¦ãã ããã
- <UNDOCUMENTED ãå¤ãå ´å> `/doc-integrate` ã§ä¸è¶³ããã¥ã¡ã³ãã追å ãã¦ãã ããã
- <STALE ãå¤ãå ´å> `/doc-update` ã§ããã¥ã¡ã³ããææ°åãã¦ãã ããã
注æäºé
- ã³ã¼ãã®è§£æã¯ AST ãã¼ã¹ï¼é«ç²¾åº¦ï¼ã¨éçãã¿ã¼ã³ãããã³ã°ï¼ãã©ã¼ã«ããã¯ï¼ã®äºæ®µæ§æã§è¡ãã
- AST ã¨ã¯ã¹ãã©ã¯ã¿ã¯
references/extractors/é ä¸ã®ã¹ã¯ãªããã Bash çµç±ã§å®è¡ãããã¿ã¤ã ã¢ã¦ã㯠60ç§ã - AST ã¨ã¯ã¹ãã©ã¯ã¿ã¯å¯¾è±¡ããã¸ã§ã¯ãã®
node_modulesã«å«ã¾ãããã¼ãµã¼ã使ç¨ããã追å ã® npm install ã¯ä¸è¦ã - AST ãã¼ã¹å¤±ææã¯èªåçã« Grep æ¦ç¥ã«ãã©ã¼ã«ããã¯ãããã¨ã©ã¼ã¯ stderr ã«è¨é²ãããã
- å¤§è¦æ¨¡ããã¸ã§ã¯ãã§ã¯ã
docs/é ä¸ã¨ README ã®ã¿ãããã©ã«ãã¹ãã£ã³å¯¾è±¡ã¨ããã .gitignoreã«å«ã¾ãããã¡ã¤ã«ã¯ã¹ãã£ã³å¯¾è±¡å¤ã¨ãããcheck-patterns.mdã«å®ç¾©ããã¦ããªãè¨èªã®å ´åã¯ãæ±ç¨ãã¿ã¼ã³ï¼export, public çï¼ã§ãã©ã¼ã«ããã¯ããã- ã¬ãã¼ãã®ãã§ãã¯ããã¯ã¹
- [ ]ã¯ãæåã§ä¿®æ£å®äºããã¼ã¯ããããã«ä½¿ç¨ããã - Solidity ããã¸ã§ã¯ãã§ã¯ NatSpec ã®æ´åæ§ãã§ãã¯ã追å ã§å®è¡ãããï¼
NATSPEC_DRIFT,MISSING_NATSPECï¼ã