Snapshot Skill - 產生專案地圖讓 AI 快速了解專案結構
npx claudepluginhub cashwu/claude-code-snapshotSnapshot Skill - 產生專案地圖讓 AI 快速了解專案結構
基於 tzangms (海總理) 的 Vibe Coding 方法論
Snapshot Plugin 讓 AI 可以快速產生和維護專案的 snapshot.json「專案地圖」,大幅減少 AI 理解專案結構的時間。
Snapshot 是一個給 AI 看的「專案地圖」檔案,讓 AI 能快速了解專案的結構和功能,而不需要逐一掃描所有檔案。
當專案變大後,與 AI 協作開發會遇到以下問題:
Snapshot 的解決方案:
# 新增 marketplace
/plugin marketplace add cashwu/claude-code-snapshot
# 安裝 plugin
/plugin install snapshot
| 指令 | 說明 |
|---|---|
/snapshot | 掃描專案並產生 .snapshot/snapshot.json |
/snapshot-link | 在 CLAUDE.md 加入 snapshot 參考提示 |
/snapshot-link 說明這個指令會在專案的 CLAUDE.md 檔案中加入 snapshot 參考提示,讓 AI 在每次新對話開始時自動知道去讀取 .snapshot/snapshot.json。
使用情境:
/snapshot 使用,完成完整的設定執行結果:
CLAUDE.md 不存在 → 自動建立並加入提示/snapshot
AI 會自動:
.snapshot/ 目錄.snapshot/snapshot.json根據專案規模和架構,Snapshot 會自動決定輸出模式:
your-project/
├── .snapshot/
│ └── snapshot.json # 專案快照(給 AI 看的)
├── src/
└── ...
your-project/
├── .snapshot/
│ ├── index.json # 主索引
│ └── projects/
│ ├── module-a.json # 子專案 A
│ └── module-b.json # 子專案 B
├── module-a/
├── module-b/
└── ...
your-project/
├── .snapshot/
│ ├── index.json # 主索引
│ └── modules/
│ ├── controllers.json # 控制器模組
│ ├── services.json # 服務模組
│ └── ...
├── src/
└── ...
Snapshot 會根據專案規模和架構自動決定是否分檔:
| 條件 | 輸出模式 | 說明 |
|---|---|---|
| 多專案架構 | projects | 自動偵測 Java multi-module、.NET solution、Monorepo |
| 大型單一專案 | modules | 模組數量超過 50 個時自動分檔 |
| 一般專案 | none | 維持單一 snapshot.json |
settings.gradle 或 settings.gradle.kts 中有 include 語句*.sln 檔案中包含多個 *.csprojpnpm-workspace.yaml、lerna.json、或 package.json 中的 workspaces| 類型 | 偵測方式 | 主要分析項目 |
|---|---|---|
| Java (Spring) | build.gradle, pom.xml | @Controller, @Service, @Repository, @Entity |
| Kotlin (Android) | build.gradle.kts, AndroidManifest.xml | Activity, Fragment, ViewModel, Repository |
| Python | requirements.txt, pyproject.toml | 模組、類別、函數 |
| JavaScript/TypeScript | package.json | components, API routes, hooks |
| C# (.NET) | *.csproj, *.sln | Controllers, Services, Models |
| 其他 | 自動偵測 | 根據檔案結構分析 |
{
"project": "my-app",
"description": "專案描述",
"version": "1.0",
"generated_at": "2025-01-01T00:00:00Z",
"tech_stack": {
"language": "TypeScript",
"framework": "Next.js",
"build_tool": "npm",
"dependencies": ["react", "next", "prisma"]
},
"structure": {
"entry_point": {
"path": "src/app/page.tsx",
"purpose": "首頁入口"
},
"directories": {
"src/app/": "App Router 頁面",
"src/components/": "React 元件",
"src/lib/": "工具函數"
}
},
"modules": {
"components": {
"Header": {
"path": "src/components/Header.tsx",
"purpose": "網站導覽列"
}
},
"services": {
"auth": {
"path": "src/lib/auth.ts",
"purpose": "認證邏輯"
}
}
},
"config_files": {
"next.config.js": "Next.js 設定",
"tailwind.config.js": "Tailwind CSS 設定"
},
"scripts": {
"dev": "npm run dev",
"build": "npm run build"
}
}
/snapshot 產生專案快照/snapshot.snapshot/snapshot.jsonMIT License