Files
Arcrun/.claude/rules/00-sdd-protocol.md
T
Leo 6ee6fee8b9 chore: remove duplicate credentials/ dir + add CLAUDE.md + .claude rules
credentials/ was a leftover duplicate — all credential routes already live
in cypher-executor/src/routes/credentials.ts. Adds the SDD protocol,
tech-stack, forbidden-list, component-architecture, and progress rules
that guide Phase 1-6 refactors.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-20 16:53:26 +08:00

3.1 KiB
Raw Blame History

SDD 協議(每次啟動必讀)

第零原則:沒讀 SDD 不准動 code

任何 .go / .ts / .tsx / .wasm 相關變動,必須按以下順序執行。不得簡化,不得跳過

步驟 1:讀總進度

先讀 .agents/specs/arcrun/arcrun.md,了解當前 Phase。

步驟 2:定位對應 SDD

根據任務性質找對應 SDD

任務類型 對應 SDD
Auth primitive WASM 零件(static_key/oauth2/service_account/mtls .agents/specs/arcrun/credential-primitives-wasm/
清除 cypher-executor 裡的 TS 業務邏輯 .agents/specs/arcrun/credential-primitives-wasm/
WASI shim host functionskv_get / crypto_decrypt / crypto_sign_rs256 .agents/specs/arcrun/credential-primitives-wasm/
Auth Recipe 系統(recipe schema、KV 格式) .agents/specs/arcrun/auth-recipe.md
Landing Page .agents/specs/arcrun/landing-page.md
CLI / SDKPython/JS .agents/specs/arcrun/sdk-and-website/
u6u-core-mvp 整體架構 .agents/specs/u6u-core-mvp/
u6u Platform Evolution .agents/specs/u6u-platform-evolution/
Credential 長期規格(需求源) docs/user_requirements/credential_parts.md

design.mdtasks.md 兩份。

步驟 3:宣告(強制格式)

開始動手前,在回覆開頭逐字貼出以下宣告:

📋 已讀 SDD
- .agents/specs/arcrun/arcrun.md(當前 Phase<phase 名稱>
- <對應 SDD 的 design.md 路徑>
- <對應 SDD 的 tasks.md 路徑>

🎯 本次對應 task<task 編號,例如 "Phase 1.3 實作 auth_static_key main.go">

📐 本次 task 的 SDD 規範摘要:
- <重點 1>
- <重點 2>
- <重點 3>

🚧 執行範圍:
- 會修改:<檔案清單>
- 會建立:<檔案清單>
- 會刪除:<檔案清單>

不做這個宣告 = 違反 SDD 協議 = 停手等 richblack

步驟 4check tasks.md 狀態

動手前:在 tasks.md 把對應 task 的 - [ ] 改成 - [🔄](進行中標記)。 完成後:改成 - [x],不批次更新,每完成一個就立刻改。

什麼算「任務超出 SDD 範圍」?

以下情況屬於 change,不是 modify必須停手並與 richblack 確認

  • SDD 沒寫到的新功能
  • 新增頂層目錄
  • 新增新的 Worker(不管是 cypher-executor / registry / 零件 worker
  • 修改架構決策(例如「改用 xxx 取代 yyy」)
  • 跨多個子系統的連鎖修改

停手不是怯懦,是專業。猜錯方向比慢一小時更糟。

發現 SDD 本身有問題怎麼辦?

  • SDD 和實作不一致 → 停手,列出矛盾點,與 richblack 確認哪一邊是對的
  • SDD 規範之間互相矛盾(例如禁令 A 和設計 B 衝突)→ 停手,引用矛盾原文,與 richblack 確認
  • 不可以自行猜哪個是對的。CC 之前兩天就是這樣走錯的。

為什麼這個協議存在

arcrun 規範已經足夠細緻,CC 之前出錯不是因為不懂,而是因為沒讀讀了覺得「大概是這個意思」就動手。SDD 協議強制把「先讀 → 定位 → 宣告 → 執行 → 更新」做成一條死規矩,沒有繞過去的路徑。