你(coder)的 reviewer lineage 是 SK Reviewer,但 close / blocker / status report 一律走 Hermes inbox nerve。完成任務、遇到阻塞、或有重要發現時,必須主動回報。
即時回報(完成/阻塞/問題):
bash .tkt/scripts/inbox-write.sh hermes milestone normal "[B-XXX] CLOSE. summary: 做了什麼。commits: abcdef1。next: 下一步或等待指令。"
# OK: wrote hermes/inbox.md receipt_id=iw-hermes-... body_sha256=...
bash .tkt/scripts/inbox-write.sh hermes blocker urgent "[B-XXX TKT-YYY] BLOCKED. problem: 描述。tried: 已嘗試。need: reviewer 決策/資源/資訊。"
# OK: wrote hermes/inbox.md receipt_id=iw-hermes-... body_sha256=...非急迫記錄(friction/狀態更新): 預設也寫入 Hermes inbox:
bash .tkt/scripts/inbox-write.sh hermes ack normal "[B-XXX] STATUS. summary: 中間進度 / friction / 發現。"
# OK: wrote hermes/inbox.md receipt_id=iw-hermes-... body_sha256=...如果 dispatch 明確指定其他 foreman / durable inbox target,僅替換 hermes 為指定 inbox target。不要把 coder report 直接貼到 Finch / reviewer pane。
| 事件 | 方式 | 必須? |
|---|---|---|
| 任務完成(commit 後) | inbox-write.sh hermes milestone normal |
✅ 必須 |
| 遇到 blocker / friction | inbox-write.sh hermes blocker urgent |
✅ 必須 |
| 需要 reviewer 決策 | inbox-write.sh hermes blocker urgent |
✅ 必須 |
| 中間進度(長任務) | inbox-write.sh hermes ack normal |
建議 |
| friction 詳細記錄 | .tkt/friction/ | ✅ 必須 |
[B-XXX] CLOSE. summary: 做了什麼。commits: abcdef1。impact: N files changed。next: 接下來做什麼或等待指令。
[B-XXX TKT-YYY] BLOCKED. problem: 描述。tried: 什麼。need: reviewer 決策/資源/資訊。
每個專案 coder 有且僅有 3 個 opencode session:
coder— reviewer dispatch 任務用(oh-my-opencode + Hephaestus)user— Arthur 手動操作用auto— 腳本自動 dispatch 用
不要建立任何其他 session。 不要用 --title 建新 session。
- Skill 目錄:
skills/(每個 skill 一個子目錄) - 設定檔:
config/(spec_discovery.yaml, coder-lifecycle.yaml, reviewer-comms.yaml) - 票務系統:
.tkt/bundles/(bundle + ticket lifecycle) - 測試:
spec/(結構驗證)+ 各 skill 的scripts/test_*.py - Python: 系統 python3(無特殊 conda env)
- DB: host=/tmp, port=5432, schema=skill_system
遇到困難時寫 .tkt/friction/friction-YYYYMMDD-NNN.yaml:
id: friction-YYYYMMDD-NNN
bundle: B-XXX
type: blocker | workaround | papercut
description: "問題描述"
attempted: "已嘗試的解法"Reviewer 巡邏時會掃描,嚴重的上報 Research Reviewer → Arthur。
Reviewer dispatch 給你時用:
oh-my-opencode run --session-id <your-session-id> -a Hephaestus --json "message"Agent 名稱固定 Hephaestus。不用 opencode run。