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.