175 lines
4.5 KiB
Markdown
175 lines
4.5 KiB
Markdown
---
|
||
name: skill-create
|
||
description: 分析本地 Git 歷史紀錄以擷取開發模式,並生成 SKILL.md 檔案。此為 Skill Creator GitHub App 的本地版本。
|
||
allowed_tools: ["Bash", "Read", "Write", "Grep", "Glob"]
|
||
---
|
||
|
||
# /skill-create - 本地技能生成
|
||
|
||
分析儲存庫的 Git 歷史紀錄,以擷取程式碼開發模式並生成 SKILL.md 檔案,用來教導 Claude 熟悉您團隊的開發實踐。
|
||
|
||
## 使用方式
|
||
|
||
```bash
|
||
/skill-create # 分析目前的儲存庫
|
||
/skill-create --commits 100 # 分析最近 100 次提交 (Commits)
|
||
/skill-create --output ./skills # 指定輸出目錄
|
||
/skill-create --instincts # 同時為 continuous-learning-v2 生成直覺 (Instincts)
|
||
```
|
||
|
||
## 功能說明
|
||
|
||
1. **解析 Git 歷史** - 分析提交、檔案變動與模式。
|
||
2. **偵測開發模式** - 識別重複出現的工作流與慣例。
|
||
3. **生成 SKILL.md** - 建立有效的 Claude Code 技能檔案。
|
||
4. **選擇性建立直覺** - 用於 continuous-learning-v2 系統。
|
||
|
||
## 分析步驟
|
||
|
||
### 步驟 1:獲取 Git 數據
|
||
|
||
```bash
|
||
# 獲取最近的提交及其檔案變動
|
||
git log --oneline -n ${COMMITS:-200} --name-only --pretty=format:"%H|%s|%ad" --date=short
|
||
|
||
# 按檔案統計提交頻率
|
||
git log --oneline -n 200 --name-only | grep -v "^$" | grep -v "^[a-f0-9]" | sort | uniq -c | sort -rn | head -20
|
||
|
||
# 獲取提交訊息模式
|
||
git log --oneline -n 200 | cut -d' ' -f2- | head -50
|
||
```
|
||
|
||
### 步驟 2:偵測模式
|
||
|
||
尋找以下類型的模式:
|
||
|
||
| 模式 | 偵測方法 |
|
||
|---------|-----------------|
|
||
| **提交慣例** | 對提交訊息進行 Regex 匹配 (feat:, fix:, chore:) |
|
||
| **檔案關聯變動** | 總是同時被修改的檔案群組 |
|
||
| **工作流序列** | 重複出現的檔案修改模式 |
|
||
| **架構慣例** | 資料夾結構與命名規範 |
|
||
| **測試模式** | 測試檔案位置、命名、覆蓋率 |
|
||
|
||
### 步驟 3:生成 SKILL.md
|
||
|
||
輸出格式範例:
|
||
|
||
```markdown
|
||
---
|
||
name: {repo-name}-patterns
|
||
description: 從 {repo-name} 擷取的開發模式
|
||
version: 1.0.0
|
||
source: local-git-analysis
|
||
analyzed_commits: {count}
|
||
---
|
||
|
||
# {Repo Name} 開發模式
|
||
|
||
## 提交慣例
|
||
{偵測到的提交訊息模式}
|
||
|
||
## 程式架構
|
||
{偵測到的資料夾結構與組織方式}
|
||
|
||
## 工作流
|
||
{偵測到的重複性檔案變動模式}
|
||
|
||
## 測試模式
|
||
{偵測到的測試慣例}
|
||
```
|
||
|
||
### 步驟 4:生成直覺 (若包含 --instincts)
|
||
|
||
用於 continuous-learning-v2 整合:
|
||
|
||
```yaml
|
||
---
|
||
id: {repo}-commit-convention
|
||
trigger: "當撰寫提交訊息時"
|
||
confidence: 0.8
|
||
domain: git
|
||
source: local-repo-analysis
|
||
---
|
||
|
||
# 使用約定式提交 (Conventional Commits)
|
||
|
||
## 行動
|
||
在提交訊息前加上:feat:, fix:, chore:, docs:, test:, refactor:
|
||
|
||
## 證據
|
||
- 分析了 {n} 次提交
|
||
- {percentage}% 遵循約定式提交格式
|
||
```
|
||
|
||
## 輸出範例
|
||
|
||
在 TypeScript 專案中執行 `/skill-create` 可能會產出:
|
||
|
||
```markdown
|
||
---
|
||
name: my-app-patterns
|
||
description: 來自 my-app 儲存庫的開發模式
|
||
version: 1.0.0
|
||
source: local-git-analysis
|
||
analyzed_commits: 150
|
||
---
|
||
|
||
# My App 開發模式
|
||
|
||
## 提交慣例
|
||
|
||
此專案使用 **約定式提交 (Conventional Commits)**:
|
||
- `feat:` - 新功能
|
||
- `fix:` - 錯誤修復
|
||
- `chore:` - 維護任務
|
||
- `docs:` - 文件更新
|
||
|
||
## 程式架構
|
||
|
||
```
|
||
src/
|
||
├── components/ # React 元件 (PascalCase.tsx)
|
||
├── hooks/ # 自定義 Hooks (use*.ts)
|
||
├── utils/ # 工具函式
|
||
├── types/ # TypeScript 型別定義
|
||
└── services/ # API 與外部服務
|
||
```
|
||
|
||
## 工作流
|
||
|
||
### 新增元件
|
||
1. 建立 `src/components/ComponentName.tsx`
|
||
2. 在 `src/components/__tests__/ComponentName.test.tsx` 加入測試
|
||
3. 從 `src/components/index.ts` 匯出
|
||
|
||
### 資料庫遷移
|
||
1. 修改 `src/db/schema.ts`
|
||
2. 執行 `pnpm db:generate`
|
||
3. 執行 `pnpm db:migrate`
|
||
|
||
## 測試模式
|
||
|
||
- 測試檔案:`__tests__/` 目錄或 `.test.ts` 字尾
|
||
- 覆蓋率目標:80% 以上
|
||
- 框架:Vitest
|
||
```
|
||
|
||
## GitHub App 整合
|
||
|
||
針對進階需求 (1 萬次以上提交、團隊共享、自動 PR),請使用 [Skill Creator GitHub App](https://github.com/apps/skill-creator):
|
||
|
||
- 安裝連結:[github.com/apps/skill-creator](https://github.com/apps/skill-creator)
|
||
- 在任何 Issue 中留言 `/skill-creator analyze`
|
||
- 即可收到包含生成技能的 PR
|
||
|
||
## 相關指令
|
||
|
||
- `/instinct-import` - 匯入生成的直覺
|
||
- `/instinct-status` - 查看學到的直覺
|
||
- `/evolve` - 將直覺聚類為技能/Agent
|
||
|
||
---
|
||
|
||
*屬於 [Everything Claude Code](https://github.com/affaan-m/everything-claude-code) 專案的一部分*
|