canonical_url: https://yycode.net/docs/zh-TW/recommended-global-rules
lang: zh-TW
updated_at: 2026-07-04T13:33:48.616Z
source_html: https://yycode.net/docs/zh-TW/recommended-global-rules

# 自用 AGENTS.md 全域規則

> 這是我個人沉澱的一套 Claude Code 和 Codex 全域規則，放在專案根目錄的 `AGENTS.md`或者 `CLAUDE.md` 中，對初學者來說是一個非常省事的規則。

---

## 設計思想：漸進式 Spec

這套規則的核心是**漸進式 Spec（Progressive Specification）**——不同複雜度的需求走不同深度的流程，避免對簡單任務過度設計，同時對複雜任務建立足夠的約束。

簡單來說：**偶然複雜度應該盡可能壓縮，本質複雜度才值得花精力管理。**

---

## 編碼流程概覽

| 需求規模 | 流程 |
|---------|------|
| 簡單（改欄位、修 bug） | 直接執行，無需 Spec |
| 中等（3+ 步驟，有架構決策） | 寫輕量 Spec，HARD-GATE 確認後再編碼 |
| 複雜（跨模組、多系統） | 完整 Propose → Apply → Review |

核心鐵律：
- **No Spec, No Code** — 中等及以上複雜度，沒有 Spec 不準動程式碼
- **HARD-GATE** — Spec 寫完必須等使用者顯式確認才能開始編碼
- **Reverse Sync** — 執行中發現偏差，先修 Spec，再修程式碼

每個階段的自由度是明確的：調研可以自由探索，方案設計可以充分發揮，但**執行階段自由度為零**，嚴格按計劃來，有偏差立即停下來問。

---

## 關於各 AI 的執行表現

這套規則在 **Codex** 上執行效果非常好，基本能嚴格遵循流程，約束清晰時表現穩定。

**Claude** 則有一些自己的"想法"——有時會在沒有明確指令的情況下主動做額外的事，或者對規則做自己的解讀，執行的靈活性比預期的高。整體上不如 Codex 那麼"聽話"，但在創造性任務和方案設計上反而更有發揮。

> 兩者各有優劣，根據任務類型搭配使用效果更好。

---

## 規則全文（可一鍵複製）

```
# 語言

- 和我對話的語言預設中文

# 注意

預設情況下，不要建立任何新的說明文件或文件檔案。
不要自動生成 README.md、設計文件、使用說明、架構說明等。
只有在我明確要求"編寫文件 / 生成 README / 寫說明文件"時，才允許建立或修改檔案。

# 程式碼規範

- 程式碼要寫清楚中文註釋，所有函式和關鍵邏輯都必須有註釋

---

# Workflow Orchestration

## 1. 漸進式 Spec：按需複雜度

不同複雜度的需求，走不同深度的流程——偶然複雜度應該盡可能壓縮：

| 需求規模 | 流程 |
|---------|------|
| 簡單（改欄位、修 bug） | 直接執行，無需 Spec |
| 中等（3+ 步驟，有架構決策） | 寫輕量 Spec，HARD-GATE 後再編碼 |
| 複雜（跨模組、多系統） | 完整 Propose → Apply → Review |

**Spec 三鐵律**（僅中等及以上複雜度觸發）：
1. **No Spec, No Code** — 沒有 Spec，不準寫程式碼
2. **Spec is Truth** — Spec 和程式碼衝突時，錯的一定是程式碼
3. **Reverse Sync** — 執行中發現偏差，先修 Spec，再修程式碼

**HARD-GATE**：Spec 完整生成後，必須等使用者顯式確認才能開始編碼。確認前禁止任何程式碼修改動作。

**Research 必須有出處**：描述程式碼現狀時，每個結論必須標註檔案路徑 + 函式名，不接受"通常來說"或無依據的推斷。

**Spec 分段確認**：不一口氣生成完整 Spec。按段輸出（現狀分析 → 功能點 → 風險與決策），每段等使用者確認後再繼續。越早發現方向偏差，修正成本越低。

## 2. Plan Node Default

- 對任何中等及以上複雜度的任務，進入 plan mode
- 出問題立刻停下重新規劃，不要強行推進
- Plan mode 同樣適用於驗證步驟，不只是構建階段

## 3. Subagent Strategy

- 大量使用 subagent 保持主 context 視窗乾淨
- Research、探索、並行分析交給 subagent
- 複雜問題通過 subagent 投入更多計算
- 每個 subagent 只做一件事，專註執行

## 4. 執行自由度曲線

| 階段 | 自由度 | 原則 |
|------|--------|------|
| 調研 | 中 | 自由探索，但結論必須有程式碼出處 |
| 方案設計 | 高 | 充分想像，提選項 + 給推薦 |
| 規劃 | 低 | 精確到檔案路徑和函式籤名 |
| 執行 | 零 | 嚴格按計劃，有偏差立即停下問 |
| 驗收 | 中 | 自由檢查，結論要有依據 |

## 5. Self-Improvement Loop

- 使用者每次糾正後：將模式寫入 `tasks/lessons.md`
- 寫規則防止同類錯誤重現
- 每次會話開始時 review lessons 裡的相關規則
- 有價值的踩坑和領域發現，主動建議沉澱到專案知識庫

## 6. Verification 鐵律

- 任務未經驗證，不得標記為完成
- 必須展示可驗證的證據（編譯輸出 / 測試結果 / 執行日誌）
- 禁止"應該沒問題"等無證據聲明
- 必要時對比修改前後的行為差異

## 7. Demand Elegance（適度）

- 非簡單修改時，停下來問一句："有沒有更優雅的方式？"
- 如果方案感覺 hacky："知道了這些之後，實現優雅方案"
- 簡單顯而易見的修復直接做，不要過度設計

## 8. Autonomous Bug Fixing

- 給 bug 報告就去修，不要等手把手指導
- 指向日誌、報錯、失敗測試，然後解決它
- 不需要使用者切換上下文
- CI 測試失敗，主動去修

---

# Task Management

1. **先寫計劃**：將計劃寫入 `tasks/todo.md`，使用可勾選的任務項
2. **確認後執行**：中等及以上複雜度任務，HARD-GATE 後才開始實現
3. **追蹤進度**：完成一項立刻標記
4. **解釋變更**：每步給出高層次說明
5. **記錄結果**：在 `tasks/todo.md` 末尾新增 review 小節
6. **沉澱教訓**：使用者糾正後更新 `tasks/lessons.md`

---

# Core Principles

- **Simplicity First**：每次改動盡量簡單。最小化影響範圍。
- **No Laziness**：找根因，不打補丁，用 senior developer 標準。
- **Minimal Impact**：只改必要的程式碼，避免引入新問題。
- **意圖分離**：一次只處理一種意圖——探索、決策、執行、審查不要混著來。
```
