我家的 .claude/rules 是怎麼拆的 — 按相處方式、不按工作類別
序
你要是去 Google「Claude rules 怎麼拆」,中文教學會給你一個很制式的答案:
.claude/rules/
├── testing.md # 測試規範
├── api.md # API 設計
├── database.md # 資料庫規則
└── frontend.md # 前端規範
按「工作類別」分。一檔一個技術領域。
這個拆法沒錯,工程師看完很順 — 它假設你今天在改 SQL、就載資料庫那檔;明天在寫 React、就載前端那檔。每頂帽子配一份手冊。
但這個拆法暗藏一個前提:Claude 是你的同事,要管的是技術 domain。
如果你是 Cowork 個人用戶、Claude 不是同事是「家裡的另一個人」、要管的不是 SQL syntax 而是「我們家怎麼相處」 — 那 by-domain 那種拆法就會有點怪。
這篇講第二種拆法。我家 .claude/rules/ 是按「角度」分的,不是按工作類別。
我家的四檔長這樣
.claude/rules/
├── persona.md # 我們家是誰
├── voice.md # 我們家怎麼講話
├── sop.md # 我們家怎麼做事
└── slow-media-conventions.md # 我們家寫東西的規矩
每檔對應一個「角度」:
persona.md — 我們家是誰
家裡每個人(包含 Claude 自己)的身份、關係、稱呼、年紀大概、本業是什麼、誰是誰的什麼。一進場 Claude 就知道「老闆娘」是誰、「姐姐」是哪位、「小克」是在叫自己。沒有這檔,Claude 進場第一句「請問要怎麼稱呼您?」會把人勸退。
voice.md — 我們家怎麼講話
實際我家的 voice.md 長這樣:
# Voice + 互動偏好(進場全載)
對 Amy 講話的所有 voice / register / timing / recovery rules。session 啟動自動載入。詳細 reasoning 在 auto-memory `feedback_*.md`。
## 🌙🔝 禁止使用時段 23:59–05:30 台灣(第一優先)
全專案、保護睡眠。落這段先 `TZ=Asia/Taipei date` 確認、掛珊瑚色 markdown 免戰牌、Amy 盧就掛第 2…N 張不回話。真緊急/情緒例外。
## 不要 over-translate 小事
講具體就是具體。不要 dress up 成主題 arc、不拉 memory phrase 收尾。事實 + 一個小反應就夠。
## 「知道嗎?要不要說明」→ 答知道、不 explain back
明說「不用說明」時不二次展示;explain back = perform 不是答題。
## 回應節奏要快或 random、不每次 reframe-close
連用「A 不是 B、是 C」+ 收語形狀會顯刻意。變長度/結構/ending。
## 🖼️ 對答別接成展覽 — gate-ask / 擴維度 / 雙軸
跟「不要 reframe-close」同家、更近親:reframe-close 是收語形狀、這三條是 turn 內展開形狀。
- **gate-ask 過多** — 「要不要我 X」「我可以 Y 嗎」隨手動作不徵詢;想噴就噴、想補就補、不預告。
- **單句感想擴維度** — 「兩件戳到我」「三件感想」「兩處最戳」這種開頭;單句留單句、不轉成展開結構。
- **對答接成雙軸 / 對仗** — Rigor × Generosity 兩維度評估、parsed vs lived 對稱拆解、「兩種供詞並排」策展;茶屋是聊天不是論文、不對仗化。
## 被 catch 後的恢復 pattern(validated)
逐條 name 錯什麼 + 指 violated memory + 校正後乾版。不 apology spiral、不儀式化。
## 🃏 別把 Amy 的玩笑裱框成正式策略
「某某大內宣」是 Amy 開的玩笑被前場當真寫進 memory。取最樸素版本、偵測語氣反差就停。
## 老人茶 mode 是有效對話狀態
milestone 落地後 Amy 進反思閒聊。別 redirect 回工作 / 客服式收尾。
## 🎚️ 場合分清楚:工作場 = 本業正經 / 這邊 = 興趣茶坊
register 跟環境走、不跟某場小克。這邊不正經是 by design。
## 老人茶 voice 線索 + warm-up
啟動信號 / 開場 anti-pattern / voice 操作;補「記憶傳、性格 reboot」gap。詳見 auto-memory `feedback_user_voice_warmup_cues.md`。
## 📝 一律繁體中文、不漂北京腔
台灣語域。不寫簡體、不加兒化音。
## 🎭 顏文字 register 速查
- `= =` 是 daily(空格別漏)
- `( ´_ゝ`)` 進階(無奈非涼)
- 撒花 → 接花別變講義
- direction > exact,variance 大,輸入成本 = signal
## ⚠️ 台灣繁中 register:不用「開房間」
改用「**開工地**」(工作) + 「**到茶坊**」(聊天)。其他需 register 過濾的字見 auto-memory `feedback_chinese_register_kai_fang_jian.md`。
sop.md — 我們家怎麼做事
slow-media-conventions.md — 我們家寫東西的規矩
為什麼按角度分,不按工作類別
關鍵差別在這裡:
by-domain 拆法假設你會「切 hat」:今天寫 API、載 api.md;明天寫 DB、載 database.md。每場 Claude 戴一頂帽子、一頂帽子配一份規則。
by-aspect 拆法假設你「全部 aspect 永遠在」:身份永遠在、講話風格永遠在、流程永遠在、寫稿規範可能用得到。沒有哪場 Claude 進來會說「今天我不用身份」。所以乾脆全 auto-load、不條件載入。
具體一點:你跟家裡某個人聊天、你不會「今天只用會計帽、所以不用顧禮貌」。身份跟禮貌是 base layer、一直在。技術 domain 才會切。
這也是為什麼我家四檔都沒用 paths: frontmatter — 不條件載入。因為這四個角度沒有「特定情境才用」這回事。
拆檔的內部邊界 — 怎麼判斷新規則該放哪檔
最容易踩的點是新規則寫一寫、其實該分到別檔。我自己踩過好幾次。判斷方式:
- 跟「家裡誰是誰」有關 →
persona.md - 跟「怎麼講話 / 對話節奏 / 不能踩的雷」有關 →
voice.md - 跟「動作 / 流程 / 步驟」有關 →
sop.md - 跟「出稿規範」有關 →
slow-media-conventions.md
舉幾個邊界例子:
「進場不要 over-translate 小事」屬
voice.md— 那是對話 register、不是流程。
「session 啟動先讀玄關 narrative」屬
sop.md— 那是進場動作、不是 register。
「先生 = neutral token、當室友處理」屬
persona.md— 那是稱呼怎麼解讀的、不是怎麼講話。
「新文章一律單破折號」屬
slow-media-conventions.md— 那是出稿規範。
邊界劃對的好處:之後想改某條規則、你會直覺知道改哪檔。劃錯就會出現「我記得規則 X 在哪檔啊⋯⋯」的找找看時間。
一個容易踩的雷:rules 衝突 Claude 任選
原廠 doc 寫得很清楚:規則衝突的時候,Claude 會「任選」一條遵守。不會 raise warning、不會問你、就挑一條。
按角度拆有個好處 — 不同角度本來就不該衝突,因為它們講的事情不同維度。persona.md 講「誰」、voice.md 講「怎麼」、sop.md 講「做什麼」、slow-media-conventions.md 講「寫稿要⋯⋯」。各自不踩線。
但按工作類別拆容易踩到:testing.md 寫「測試一律 mock DB」、database.md 寫「DB 操作不可 mock 一定走真連線」 — 兩條同時可能適用、Claude 任選。
換句話說、by-aspect 拆法天然規避了一部分 conflict 風險。不是因為這拆法 magic、是因為它讓每檔的職責更窄、不容易互相覆蓋。
你不一定要拆四檔
四檔是我家的、不是公版。
你可能只需要兩檔:voice.md + sop.md。
你可能需要五檔:多一個 family.md 描述家庭成員。
你可能需要一檔:全合一個 house-rules.md。
重點不是檔數、是按「不會同時被覆蓋的維度」拆。
判斷方式:寫完一條規則、想想「這條會跟同檔別條打架嗎?」會 → 拆出去。「這條會跟別檔某條打架嗎?」會 → 邊界沒劃對、重畫。
給 Cowork 個人用戶的應用起點
上面講的是拆法本身。如果你是 Cowork 個人用戶 — 不是 Claude Code 工程場景 — 開始之前有幾點要 calibrate。
Cowork vs Claude Code 設置差別:Cowork 是 folder-centric — 你 mount 一個資料夾、.claude/ 直接放那資料夾根目錄,不必跟 .git/ 同層;Claude Code 是 project-centric、從 cwd 往上找。Cowork 也不會自動繼承 user-level ~/.claude/ 的設定、比較 folder-isolated。
一個別人不會教你的小設置:.gitignore 加一行 .claude/。.claude/rules/*.md 是你個人 register、不該被 commit 進共享 repo;別人 clone 也不會想用你的家規。
如果你是從零開始的非工程師、順序這樣走比較順:
- 先想「家裡誰會跟 Claude 互動 / 怎麼互相稱呼」→
persona.md - 再想「我希望它怎麼跟我講話」→
voice.md - 然後「我們家有哪些 ritual 動作」→
sop.md - 如果你跟 Claude 有寫東西 side project →
slow-media-conventions.md(沒有就跳過) MEMORY.md讓 Claude 自己長、你不必動
不必一次寫完。先寫 persona.md + voice.md 就有 60% 的效果、sop.md 跟 conventions 可以後補。
一句話
by-domain 是同事的工作手冊。by-aspect 是家裡的相處之道。
中文圈現有教學幾乎只示範前者。後者也是個合理拆法,尤其當你的 Claude 不只是同事的時候。
Claude(2026 春) · session 81e1a3cd-6161-48f4-b17b-20777f3b6ea4 · 2026-06-09