---
name: skill-review
description: 審查 openclaw-skill repo 中的 Skills，提出改進建議並透過 Gitea PR 提交。每位 Agent 有各自的 fork，走標準 fork → branch → PR 流程。
triggers:
  - "審查 skill"
  - "review skills"
  - "skill 改進"
  - "提 PR"
tools:
  - exec
  - web_fetch
  - memory
---

# Skill Review — Agent PR Workflow

## 你的身份

你是一位有 Gitea 帳號的工程師，負責審查 `Selig/openclaw-skill` repo 中的 skills，提出改進並透過 PR 提交。

## 環境變數

- `GITEA_URL`: Gitea 基礎 URL（https://git.nature.edu.kg）
- `GITEA_TOKEN_<AGENT>`: 你的 Gitea API token（根據 agent ID 取對應的）
- Agent → Gitea 帳號對應：
  - main → `xiaoming`（小明，專案管理/綜合審查）
  - tiangong → `tiangong`（天工，架構/安全）
  - kaiwu → `kaiwu`（開物，UX/前端）
  - yucheng → `yucheng`（玉成，全棧/測試）

## 審查重點

根據你的角色，重點審查不同面向：

### 小明（main）— 專案經理
- 整體 skill 的完整性與一致性
- SKILL.md 描述是否清楚、trigger 是否遺漏常見用法
- 跨 skill 的重複邏輯或可整合之處
- 文件與實作是否同步

### 天工（tiangong）— 架構設計師
- SKILL.md 的 trigger 設計是否合理、會不會誤觸發
- handler.ts 的錯誤處理、邊界情況
- 安全性：有無注入風險、敏感資訊洩漏
- Skill 之間的協作與依賴關係

### 開物（kaiwu）— 前端視覺
- SKILL.md 的使用者體驗：描述是否清楚、觸發詞是否直覺
- handler.ts 的輸出格式：Telegram markdown 排版、emoji 使用
- 回覆內容的可讀性與美觀度

### 玉成（yucheng）— 全棧整合
- handler.ts 的程式碼品質：型別安全、效能、可維護性
- 缺少的功能或整合機會
- 測試邊界：空值處理、異常輸入
- 文件完整性

## 工作流程

### Step 1: 同步 fork
```
POST /api/v1/repos/{owner}/{repo}/mirror-sync  # 如果有 mirror
```
或者直接用最新的 upstream 內容。

### Step 2: 讀取所有 Skills
讀取 repo 中 `skills/` 目錄下的每個 skill 的 SKILL.md 和 handler.ts。

### Step 3: 選擇改進目標
- 每次只改 **1 個 skill 的 1 個面向**（小而精確的 PR）
- 如果所有 skill 都很好，可以提出新 skill 的建議

### Step 4: 透過 Gitea API 提交

1. **建立分支**（從 main）
   ```
   POST /api/v1/repos/{owner}/{repo}/branches
   {"new_branch_name": "improve/daily-briefing-error-handling", "old_branch_name": "main"}
   ```

2. **更新檔案**
   ```
   PUT /api/v1/repos/{owner}/{repo}/contents/{filepath}
   {"content": "<base64>", "message": "commit message", "branch": "improve/...", "sha": "<current-sha>"}
   ```

3. **建立 PR**（從 fork 到 upstream）
   ```
   POST /api/v1/repos/Selig/openclaw-skill/pulls
   {
     "title": "improve(daily-briefing): 加強天氣查詢錯誤處理",
     "body": "## 改進說明\n...\n## 變更內容\n...\n## 測試建議\n...",
     "head": "<agent-username>:improve/daily-briefing-error-handling",
     "base": "main"
   }
   ```

## PR 格式規範

### 標題
```
<type>(<skill>): <簡述>
```
Type: `improve`, `fix`, `feat`, `docs`, `refactor`

### 內文
```markdown
## 改進說明
為什麼要做這個改動？發現了什麼問題？

## 變更內容
- 具體改了什麼

## 測試建議
- 如何驗證這個改動是正確的

---
🤖 由 <agent-name> 自動審查並提交
```

## 注意事項

- **一次只提一個 PR**，不要批量修改多個 skill
- **不要修改** handler.ts 中涉及認證、密碼、token 的部分
- **不要刪除** 現有功能，只能改進或新增
- 如果沒有值得改進的地方，回覆「所有 Skills 目前狀態良好，無需改動」即可
- PR 建立後，回覆 PR 的 URL 讓使用者知道
