feat: 接關 hook + SDD 強制 hook(實作 wishlist 兩項)

§1 接關機制(雙保險):
- session-start-recall.sh:SessionStart 自動注入 status 重點 + 快照核實提醒
- /wiki-recall:fallback 命令,hook 失效時手動接關

§2 軟規範 → 硬攔截:
- sdd-guard.sh:動 code 檔但無 SDD → exit 2 擋(/sdd-check 自動版)
- pre-write-guard.sh:專案自訂禁令骨架(預設停用)
- settings.json:掛 SessionStart + PreToolUse

配套:install.sh 下載 hooks/settings(settings 比照 CLAUDE.md 不覆蓋);
README/CLAUDE.md 補文件 + 誠實限制聲明。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-15 16:04:58 +08:00
parent 04e2cc3071
commit 39783cccc8
9 changed files with 338 additions and 2 deletions
+22 -2
View File
@@ -62,8 +62,10 @@ system-dev-template/
│ ├── CLAUDE.md ← 填空版導航牌
│ ├── docs/ ← 文件結構(六層分類)
│ └── .claude/
│ ├── wiki/ ← CC 的記憶空間
── commands/ ← Slash commands
│ ├── wiki/ ← CC 的記憶空間
── commands/ ← Slash commands
│ ├── hooks/ ← 硬攔截(SessionStart 接關 + SDD 協議)
│ └── settings.json ← 掛 hooks
├── skills/
│ └── llm-wiki/ ← 複製到 Legacy-Workspace/.claude/skills/
@@ -86,10 +88,28 @@ system-dev-template/
| Command | 做什麼 |
|---------|-------|
| `/wiki-init` | 初始化 wiki(新專案或接入已有專案)|
| `/wiki-recall` | Session 開始,手動接關(hook 沒啟動時的 fallback|
| `/wiki-capture` | 把這次對話的結論存進 wiki |
| `/wiki-update` | Session 結束,更新 status.md |
| `/sdd-check` | 確認當前任務有沒有對應 SDD |
命名閉環:init(建) → update(存,session 末) ↔ recall(接,session 初) → capture(隨時存結論)。
---
## Hooks(軟規範 → 硬攔截)
規範不再只是 CLAUDE.md 的軟提醒,加了底線機制:
| Hook | 角色 |
|------|------|
| `session-start-recall.sh` | 開 session 自動注入 status 重點,不靠 CC 自覺 |
| `sdd-guard.sh` | 動 code 檔但沒有任何 SDD → 攔(exit 2),對應 `/sdd-check` 的自動版 |
| `pre-write-guard.sh` | 專案自訂禁令範本骨架(預設停用,填 pattern 才生效)|
> 誠實限制:hook 擋語法層明顯違規(直接寫檔),擋不了藏在 helper / bash 裡的繞道。
> 價值是「想跳過會被抓到 + 留痕可審」,不是技術防偽——文檔(mindset)+ hook(底線)都不可省。
---
## 設計原則