spiiritual/claude-code-stuff/tree/main/plugins/whiteboard-defense
whiteboard-defense
以 Mitchell Hashimoto 白板防守練習為核心的 Claude Code 外掛:用真正的圖表和後果故事問題取代文字計畫,再根據程式碼拷問你自己已發布的系統。
關於這個 mod
這個外掛從 claude-code-stuff 市集透過 /plugin install whiteboard-defense@claude-code-stuff 安裝,會新增兩個指令。/whiteboard-defense plan 會取代文字計畫:Claude 在逐字稿中繪製真正的系統圖,提出關鍵決策的後果故事(例如「server dies mid-refund: customer charged with no refund, or refund 30s late?」),再請你反過來解釋。/whiteboard-defense grill 會在建置後考問你──為什麼選 X 而不是 Y、惡意使用者能做什麼、哪裡會失敗──答案會根據程式碼評分,並標出與計畫的偏移。計畫會以卡片儲存在外掛的資料夾中,絕不放進你的儲存庫。圖表由 mod 繪製,因此必須在 ~/.claude/settings.json 中透過 CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 啟用函式 hooks;顯示圖片需要 macOS(內建 qlmanage),以及支援圖片的終端機,例如 Ghostty、kitty、iTerm2 或 WezTerm(不能是 tmux);其他環境會顯示文字圖表。
安裝
請先查看作者 README,確認 marketplace 與外掛名稱;指令可能隨儲存庫結構而變動。
claude plugin marketplace add spiiritual/claude-code-stuff claude plugin install whiteboard-defense
原文 / README
claude-code-stuff
A Claude Code plugin marketplace.
/plugin marketplace add spiiritual/claude-code-stuff
/plugin install better-compaction@claude-code-stuff
better-compaction
A Claude Mod that fixes two things about compaction:
- Waits for the turn to end. Auto-compaction no longer interrupts the model mid-turn; it runs as soon as the turn finishes. Past 80% of the context window (configurable), or after a prompt-too-long error, it compacts mid-turn as usual.
- Summarizes at its own effort. The summary runs at a lower effort than the conversation (default
medium). The model stays the same, so the prompt cache is kept. Subagents running during a summary keep their own effort.
Mods need function hooks on. Add this to ~/.claude/settings.json:
{ "env": { "CLAUDE_CODE_ENABLE_FUNCTION_HOOKS": "1" } }
Settings, in /config:
| Option | Default | |
|---|---|---|
| deferCompaction | on | Wait for the turn to end before compacting |
| deferUnderPercent | 80 | Stop waiting once the context is this full (% of the window) |
| compactionEffort | medium | inherit, low, medium, high, xhigh or max |
Measured on a 214k-token session (3 runs each, recall quiz of 22 facts):
| Effort | Summary time | Quiz | |---|---|---| | low | 31s | 20.2 | | medium | 46s | 20.8 | | high | 59s | 20.7 | | xhigh | 76s | 19.8 | | max | 164s | 20.8 |
Recall was the same within noise at every level, while time grew with effort.
In headless mode (-p, SDK) the deferred compaction runs at the start of the next prompt instead of right after the turn.
whiteboard-defense
/plugin install whiteboard-defense@claude-code-stuff
For Mitchell Hashimoto's whiteboard defense: you should be able to explain any customer-facing system you ship and defend its decisions, even if Claude wrote the code.
/whiteboard-defense planreplaces the written plan. Claude draws the system as a real diagram, asks you the decisions that matter as consequence stories ("server dies mid-refund: customer charged with no refund, or refund 30s late?"), then has you explain it back./whiteboard-defense grillquizzes you after building: why X over Y, what a malicious user can do, where it fails. Answers are graded against the code, and drift from the plan is flagged.
Plans are saved as cards in the plugin's data folder, never in your repo.
The diagrams are pictures drawn in the transcript by a mod, so they need function hooks on (see above), macOS (it renders with the built-in qlmanage), and a terminal that shows images (Ghostty, kitty, iTerm2, WezTerm; not tmux). Anywhere else you get a text diagram.
