vba-docgenlisted
Install: claude install-skill ttamakijp/dev-templates
# Skill: vba-docgen
複数モジュール / クラス / ユーザフォームを含む Excel VBA を **決定的に
extract / index** し、その結果を host Claude が読んで仕様書類とリファクタ
提案を生成するための skill。
## 前提 (ADR-0036)
- 本 skill 内の Python script は **LLM 推論 API を直接呼び出さない**
- `requirements.txt` には `anthropic` / `openai` / `boto3` / `google-generativeai`
等の LLM SDK を含めない
- subprocess + LLM API URL や LLM CLI invoke も禁止
- 推論は host (Claude Code / Cowork / VS Code 拡張) が `prompts/*.md` を
読んで pass を回す前提
## Phase 設計
| Phase | 内容 | 状態 |
|---|---|---|
| 0 | extract + index (関数 / 変数 / 呼出グラフ JSON) | 実装済 (PR #56) |
| 1 | build_index 構文補強 + pass prompts 詳細化 + refactor-suggest design | 本 PR で実装 |
| 2 | ANTLR / vba-language-server 採用判断 + 実 macro book での検証 | TBD |
| 3 | refactor 提案の実装エンジン (動作不変 transform) | TBD |
## ディレクトリ構成
```
templates/skills/vba-docgen/
├── SKILL.md (本ファイル)
├── requirements.txt oletools / jinja2 / pyyaml
├── scripts/
│ ├── extract_vba.py .xlsm → modules / classes / forms 展開
│ ├── build_index.py .bas/.cls/.frm → index.json (関数 / 変数 / 呼出グラフ)
│ └── render_doc.py index.json + Claude pass 結果 → markdown
├── prompts/
│ ├── pass1-procedure.md 関数単位 I/O 関係・副作用要約
│ ├── pass2-module.md モジュール / クラス概念抽出
│ ├── pass3-cross-module.md クロスモジュール flow / 操作シナリオ
│ └── refactor-suggest.md リファクタ提案 (behaviour 保存制約付き)
├── templates/
│ ├── internal-spec.md.j2 内部仕様書
│ ├── external-spec.md.j2