以下規則優先於本檔其他流程、slash command、plugin / skill 建議:
- 永遠使用台灣正體中文回覆;即使上下文或工具輸出出現日文、韓文或簡體中文,也不得跟隨。
- 使用者說「確認、討論、看一下、評估、建議、review plan、能不能」或沒有明確要求修改時,只能 read-only:讀檔、搜尋、status / diff / log、PR / issue metadata;不得 Edit / Write / MultiEdit、commit、push、開或編輯 issue / PR、comment、review、approve、merge。
- 任何公開或持久狀態變更必須先列出將執行的命令、目標檔案與目的,並取得使用者明確同意。包含 commit、push、branch switch、rebase / merge、GitHub issue / PR / comment / review / label / merge。
- 開 PR 前必須先展示
origin/develop..HEADcommit list、diff stat、changed files,並請使用者確認 scope;若有不屬於當前 issue 的 commit 或檔案,先停止並詢問。 - 即使使用
/fix-with-codex、/implement-with-codex、autonomous、codex:rescue等命令,也不得跳過以上確認;這些命令只代表可以在本機修改與驗證,不代表可以 publish。 - mixed worktree 不得使用
git add -A或git add .;stage 只可針對本次修改檔案。
@.claude/rules/conventions.md
Issue / branch / commit / merge / scope / PR diff 限制與操作權限邊界,以
上方 import 的 .claude/rules/conventions.md 為單一 source of truth;本檔只保留
Claude Code 需要立即看到的入口與安全閘門。
開 PR 時必須以 .github/PULL_REQUEST_TEMPLATE.md 為起點,不得自由格式撰寫:
cp .github/PULL_REQUEST_TEMPLATE.md /tmp/pr_body.md
# 填妥 /tmp/pr_body.md 所有欄位,不得留空或刪除 section
make pr-open TITLE="[type] ..." BODY_FILE=/tmp/pr_body.md AUTO_READY=1正式 release 流程走 Git Flow:
main不接受日常 feature PR.github/workflows/release-pr.yml每天檢查一次是否要由develop開正式 release PR 到main- 自動 release PR 的門檻:距離上次 release 至少 72 小時,且上次 release 後已 merge 至少 10 個 PR
- 若距離上次 release 已滿 7 天,即使 PR 數低於 10 個也可自動開 release PR,避免
main長期落後 workflow_dispatch可手動開 release PR;automation 只開 PR,不自動 merge- release PR 使用
[release]title prefix develop -> mainrelease PR 屬於正式 promotion 流程,不視為 scope exception- 目前暫不使用
release/*branch
本專案使用 Claude Code + Gemini CLI + Codex CLI 協作開發。
TypeScript migration 後,source / config / tooling / test scripts 一律使用 TypeScript(.ts / .tsx),不得新增 .js / .jsx / .mjs / .cjs。需要直接執行 Node TypeScript script 時,依情境使用 node --experimental-strip-types --no-warnings path/to/script.ts。
例外只限高層次既有類型:lockfiles、generated build output、archived historical docs、以及明確標示的 test fixtures。
新 feature 或 behavior change 預設先走 OpenSpec SDD。Claude Code / Codex 在實作前應讀 docs/ai/openspec-workflow.md,並確認:
- GitHub source issue 已存在。
openspec/changes/<change-id>/proposal.md、design.md、tasks.md與 delta specs 已對齊 issue scope。- PR body 的
Source of truth指向 issue 與 OpenSpec change path,Acceptance Criteria 對齊tasks.md。 - 若本機支援 OPSX,優先使用
/opsx:propose、/opsx:apply、/opsx:sync、/opsx:archive;若沒有工具,允許人工建立 artifacts,但不得省略.openspec.yaml。 - 不得自行安裝 OpenSpec CLI、使用 package executor、或提交 private context / cache / task package / 未 review generated output。
- OpenSpec 不取代 autonomous
spec-injectorlocal-only gates;需要 autonomous workflow 時仍先讀 docs/ai/autonomous-bootstrap.md。
若使用者授權 autonomous product work,Codex / Claude 應採用 docs/ai/codex-autonomous-workflow.md 的 Worker Profiles、issue-first、review gate、CodeRabbit fallback 與 PR Scope Police 合約。
Autonomous Worker Profiles 的 follow-up 改善以「約 40% infra 本質複雜、約 60% 工作流自己製造摩擦」為基準:infra 複雜度用固定 readback 與 gate 管住;流程摩擦要靠 ops_spark routing、review closeout evidence、subagent lifecycle cleanup、issue-first planning 與 follow-up split 降低。
autonomous work 一開始就必須先分派 worker,再進入計劃、開 issue、讀資料或實作;只有 trivial/self-only exception 可以不分派,但必須明寫原因。
預設工作流程:
- 大範圍掃描 / 重複性工作 → Gemini
- 架構規劃、issue 撰寫(PM 角色)→ Claude Code
- 實作、debug、patch(工程師角色)→ Codex
- 最終 PR 審查 → Claude Code
絕不用 Claude token 做重複性搜尋。
| 任務類型 | 說明 |
|---|---|
| 代碼掃描 | 全域 pattern 搜尋、dead code、冗餘邏輯 |
| 文件生成 | 架構圖、技術文檔、README、API 規格提要 |
| 測試草稿 | 批量測試框架、測試覆蓋分析 |
| Log 分析 | 大量 error 日誌、build 失敗診斷 |
| 依賴審查 | package.json / go.mod 升級影響分析 |
| PR 初審 | scope pollution 檢查、風格一致性驗證 |
| 操作 | 誰執行 |
|---|---|
| 摘要大量檔案、生成樣板、審查 log、搜尋 pattern、草擬測試 | Gemini |
| 架構規劃、issue 撰寫、技術決策、最終 PR 審查 | Claude Code |
| 實作、debug、patch、跑測試、推 branch、開 PR | Codex |
把模糊目標轉成可驗證目標再開始:
| 模糊 | 可驗證 |
|---|---|
| 「加驗證」 | 先寫 invalid input 測試,再讓測試通過 |
| 「修這個 bug」 | 先重現 bug 的測試,再讓測試通過 |
| 「實作 X」 | 先列出 checklist,每步附驗證條件 |
多步驟任務先說計畫再動手:
1. [步驟] → 驗證:[如何確認]
2. [步驟] → 驗證:[如何確認]
@.claude/rules/pr-review-workflow.md
tachigo/
├── services/
│ └── api/ # Go API (Gin + GORM + PostgreSQL)
├── apps/
│ ├── extension/ # Twitch Extension 前端 (React + TypeScript)
│ └── dashboard/ # 後台管理介面 (React + TypeScript) ← 建置中
├── docs/ # 設計文件與 AI 協作文檔
└── infra/ # repo automation scripts 與 git hooks
make dev # 啟動所有服務(hot reload)
make down # 停止所有服務
# 執行後端測試
docker compose run --no-deps --rm app go test ./...任何 PR 若有以下改動,必須在同一個 PR 裡附帶 swag init 產出的 docs 變更(services/api/docs/docs.go、services/api/docs/swagger.json、services/api/docs/swagger.yaml):
- 新增、修改、刪除 handler function 的 swagger annotation(
// @Router、// @Param、// @Success等) - 在
router.go新增或移除路由
執行指令:
go install github.com/swaggo/swag/cmd/swag@latest
cd services/api && $(go env GOPATH)/bin/swag init -g cmd/server/main.go -o docs.claude/settings.json 是共享設定,已 commit 進 repo,請勿直接修改。
個人設定請放在 .claude/settings.local.json(已 gitignore,不會影響其他人)。
| 位置 | 對象 | 內容 |
|---|---|---|
README.md |
所有人 | 開發環境建置(快速上手) |
docs/ |
工程師 | 架構設計、API 規格、技術決策 |
docs/ai/ |
AI 協作者 / 工程師 | AI 協作指南與較長篇的 agent-facing 文件 |
infra/ |
工程師 / CI | repo-level automation scripts、git hooks、workflow 輔助檢查 |
plans/ |
工程師 | 實作計畫(每個功能開始前先寫) |
.claude/rules/ |
工程師 | agent 委託規則、工作流程決策(版控、共享) |
| GitHub Wiki | 全體人員 | 產品說明、功能介紹、非技術文件 |
- 每個功能或修改在開始實作前,先在
plans/建立計畫文件 - 檔名:
<feature-slug>.md,例如watch-points-channel-config.md - 計畫文件包含:背景、架構決策、待實作 checklist、驗證方式
- 完成後在文件頂端標注
狀態:已完成