WilsonKinyua/claude-mods/tree/main/plugins/house-rules

一個 Claude Code 外掛,會攔截 Bash 工具呼叫,讓 git 工作維持使用自己的身分:移除 AI 共同作者尾註與偽造的作者旗標、阻止以錯誤身分建立提交或 PR,並重新命名帶有 claude/ 或 ai/ 等封鎖前綴的分支。
WilsonKinyua/claude-mods/tree/main/plugins/house-rules

house-rules 是 WilsonKinyua/claude-mods 中三個 Mod 之一,使用 Claude Code function hooks 建置。它掛接 Bash tool.call 事件,在執行前檢查 Claude 執行的每一個命令,包括子代理的命令。以下內容會自動修正:-c user.email/user.name 覆寫、GIT_AUTHOR_/GIT_COMMITTER_ 環境變數、不相符的 --author 旗標、提交內容及 gh pr/issue 文字中的 Co-authored-by/Generated-by/"Generated with Claude Code" 行與工作階段連結,以及帶有封鎖前綴的新分支(claude/fix-login 會變成 feat/fix-login)。以下內容會被攔截,並向 Claude 說明原因:來自封鎖前綴分支的推送或 PR(Claude 會收到 git branch -m fix)、在 user.email/user.name 不是你的儲存庫中建立提交、把 git config user.email/name 設為其他值,以及登入不允許的帳號時執行 gh pr create。可透過 /config 或 claude plugin configure house-rules@wilson-mods 設定:gitEmail、gitNames、githubLogin、blockedBranchPrefixes、branchType。需要 Claude Code 2.1.286 或更新版本;使用 /plugin marketplace add WilsonKinyua/claude-mods 與 /plugin install house-rules@wilson-mods 安裝。
請先查看作者 README,確認 marketplace 與外掛名稱;指令可能隨儲存庫結構而變動。
claude plugin marketplace add WilsonKinyua/claude-mods claude plugin install house-rules
Three Claude Code mods: plugins built from function hooks that run inside Claude Code, in the terminal and the desktop app's Code tab.
| Mod | What it does |
| --- | --- |
| house-rules | Keeps Claude's git work under your identity: removes AI co-author trailers, renames claude/ and ai/ branches, and blocks commits or PRs made as the wrong person |
| usage-band | Shows 5-hour and 7-day usage limits, context fill, cost and the git branch in a band above the prompt |
| lean-comments | Stops Claude adding banner, multi-line, long or narrating code comments, so comments only explain a non-obvious why in one short line |
Needs Claude Code 2.1.286 or later.
/plugin marketplace add WilsonKinyua/claude-mods
/plugin install house-rules@wilson-mods
/plugin install usage-band@wilson-mods
/plugin install lean-comments@wilson-mods
/reload-plugins
Plugins install at user scope, so they load in every project. Add --scope project to claude plugin install to turn one on for a single repo instead.
Mods run with the same access as Claude Code. Read the source before you install, as you would with any package.
It checks every Bash command Claude runs, including subagents' commands, before the command executes.
Corrected automatically (you get a toast, and Claude is told what actually ran):
-c user.email=…, -c user.name=…, GIT_AUTHOR_* / GIT_COMMITTER_* env vars and any --author that isn't yours are removed.Co-authored-by:, Generated-by:, 🤖 Generated with Claude Code and Claude session links are removed from commit messages and gh pr / gh issue text.git checkout -b claude/fix-login creates feat/fix-login, and a push in the same command follows the rename.Blocked, with the reason given to Claude:
git branch -m command to rename it first.git commit in a repo whose user.email or user.name isn't yours.git config user.email / user.name set to anything else.gh pr create while gh is signed in to another account. This check only runs if you set a GitHub login.Set these in /config, or from a terminal:
claude plugin configure house-rules@wilson-mods
| Setting | Default | Meaning |
| --- | --- | --- |
| gitEmail | your global user.email | The only email commits may be authored as |
| gitNames | your global user.name | Accepted author names, separated by commas |
| githubLogin | empty (no check) | The gh account allowed to open PRs |
| blockedBranchPrefixes | claude,ai,bot,copilot,codex,… | Branch prefixes that get renamed or blocked |
| branchType | feat | The prefix a blocked branch is renamed to |
If one repo should keep a different identity, such as a work email, run this inside that repo yourself:
git config house-rules.allow-identity true
Claude can't set that key; the mod blocks it.

/usage, or the details button, opens a pane with the context breakdown by category and spend per day.The rings are drawn as SVG in the desktop app and as ◔◑◕ glyphs in the terminal. Limits only appear on a Claude subscription. The today and month totals only count sessions where the mod was loaded.
It checks every Edit and Write Claude makes. Only comments the change adds are checked; existing comments are left alone. By default a change is refused, with a list of the offending comments, and Claude rewrites it. A comment is flagged when it:
// ── Section ────── or # ==========;/** … */ doc blocks;// Step 1: load config or # Helpers.A change that adds more than 3 new comments is flagged too.
Tool directives are never flagged: eslint-disable, @ts-expect-error, noqa, # type: ignore, prettier-ignore, //go:, shebangs, license headers and similar. Markdown and other prose files are skipped.
It understands comment syntax for JS/TS, Go, Java, Kotlin, Swift, C/C++, C#, Rust, Dart, PHP, Python, Ruby, shell, YAML, TOML, SQL, Lua, CSS/SCSS, HTML, Vue, Svelte and Astro.
| Setting | Default | Meaning |
| --- | --- | --- |
| mode | block | block refuses the change so Claude rewrites it; warn lets it through and tells Claude what to fix; off disables the mod |
| maxLength | 120 | Longest comment text allowed, in characters |
| maxNewComments | 3 | How many new comments one change may add |
| allowDocComments | false | Let /** … */ doc blocks span several lines, e.g. for a published library's API |
claude --plugin-dir ./plugins/usage-band
claude plugin validate ./plugins/usage-band
Saving a file reloads the mod in the running session. Bump version in the plugin's plugin.json and in .claude-plugin/marketplace.json when you release, so claude plugin marketplace update wilson-mods picks up the change.