ClaudeMods
☰
JA
● 0 人がオンライン ・閲覧 0 回
スポンサー作品を投稿
GitHub リポジトリ · 投稿者 ipartington

review-ledger

レビュー結果 (H1、M3、L2...) をセッション全体でリポジトリごとに保持し、PR がマージされるときにチェックマークを付けます。

ipartington@ipartington

ipartington/claude-mods/tree/main/review-ledger

翻訳済み

この mod について

Claudeモッズ

Five Claude Code ルーチンを削除する MOD 手作業でやり続けました。各 one は、私の最後の 30 Claude Codeの監査から得られます。 セッション。 mod は関数フックのプラグインです。これは Claude Code 内で実行され、 プロンプト、ペイン、トースト、またはステータス行の上にバンドを描画したり、ステップを実行したりできます プロンプト、ツール呼び出し、セッションの開始と終了に対応します。

|モジュール |取り除く習慣 |目に見えるもの |利用料金 | | --- | --- | --- | --- | | merge-followthrough | 「616merged」(30セッションで61回)と入力し、Claudeがgit checkout main && git pullにターンを費やしてブランチを削除します。セッション開始時に手動で ! git pull | CI 付きのオープン PR のバンド ✓ ✗ …;マージがプルされたときにトーストします。 /prs |なし | | handoff-on-clear | /clear の後に「再起動するよう要求してください」、「フィードバックを紛失しました。再表示できますか」保存時にトーストします。バンド↺ Handoff from last session [Load] [Dismiss]。 /handoff | /clear ごとに One キャッシュされたフォーク (オプション summarize、デフォルトでオン) | | bg-task-band | 「様子はどうですか」、「最新情報はありますか」、「終了予定時刻はいつですか?」 |バンド: ⏳ Wait for cp-22 recap 12m/25m · TASK [drain];終わりに乾杯 |なし | | review-ledger | 「レビューから何をする必要がありますか?」、H/M/L リストを手動で更新します。重大度別の項目のペイン (/review)。アイテムの PR がマージされるときのトースト |なし | | tts-lite |要約を話すために応答ごとに完全な claude -p を開始する停止フック。これにより、200 のトランスクリプトが残されます。音声のみ |短い返信はありません。長いもの git checkout main && git pullQ 裸俳句完成 |

各 one の仕組み

merge-followthrough: 60 秒ごとに gh pr list --author @me をポーリングします。 PRのとき 開いていることがマージされ、デフォルトのブランチ pull --ff-onlys がチェックアウトされます。 作業ツリーがクリーンである限り、ローカル ブランチを削除し、プルーニングします。オン 次のプロンプトでは、すでに実行した内容がClaudeに通知されるため、Claudeはそれをやり直す必要はありません。 616 merged と入力すると、同じ手順が一度に実行されます。セッション開始時に デフォルトのブランチを変更せずに使用している場合は、そのブランチを早送りします。

handoff-on-clear: session.end (/clear または終了) で、最後のメッセージを保存します。 回答、最近の質問、PR 番号と記載されているアーティファクトのリンク、ブランチ、 (summarize を使用して) one $.model.fork からの 200 ワード ハンドオフ。API はこれを実行します。 主にプロンプト キャッシュから提供されます。これはディレクトリごとに three 日間保存されます。それ Load を押すか、/handoff を実行するか、次のような質問をすると、Claude に行きます。 「再表示」または「再起動のプロンプト」。

bg-task-band: バックグラウンドでの Bash、Monitor、および Agent 呼び出しを記録します。 開始し、最後の行について 10 ごとに各 one の出力ファイルを読み取り、マークします。 終了時に届くタスク通知から実行されます。 TaskStop がマークします止まった。完了したタスクは 90 の間バンド上に残ります。

review-ledger: ツール mcp__review-ledger__items を登録します。 結果を記録するための呼び出し (H1、M3、L2) とその状態: オープン、進行中 PR 番号を付けるか、完了するか、しないかを指定します。リポジトリのルートごとに保存されるため、 /clear および新しいセッションは存続します。 5 分ごとに進行中の PR をチェックします PR がマージされると、アイテムに完了のマークが付けられます。 「レビュー」または名前を表示するプロンプト アイテムは台帳をコンテキストとして取得します。

tts-lite: turn.complete では、20 ワード以下の返信を次のように読み出します。 彼らはそうだし、Haiku にそれ以上の長さについて one 文を要求します。それはそれらを再生します Piper と paplay、または espeak を通じて。同じ CLAUDE_TTS を読み取ります。 CLAUDE_TTS_SPEED、CLAUDE_TTS_VOICE、および CLAUDE_TTS_MODEL 変数を シェルフックが置き換えられ、そのフック (tts-speak.sh) が存在する間は沈黙を保ちます。 まだ ~/.claude/settings.json にあるため、二重に聞こえることはありません。

インストール

要件: Claude Code 2.1.288 以降 (関数フック MOD は早期アクセスです) API はリリース間を移動します)、さらに git と認証された merge-followthroughQ merge-followthrough と review-ledger。 tts-lite には paplay とパイパーが必要です または話す。

CLAUDE_CODE_PLUGIN_DIRS 内のフォルダーをリストして、セッションごとにそれらをロードします。 (コロン区切り) ~/.claude/settings.json の env ブロック内:

s
o
n
{
  "env": {
    "CLAUDE_CODE_PLUGIN_DIRS": "~/code/claude-mods/merge-followthrough:~/code/claude-mods/handoff-on-clear:~/code/claude-mods/bg-task-band:~/code/claude-mods/review-ledger:~/code/claude-mods/tts-lite"
  }
}
```o
n
e
 セッションのみ:

s h claude --plugin-dir ./merge-followthrough --plugin-dir ./bg-task-band

または、それらをセッションのホットリロード フォルダーにコピーします。

s h scripts/sync.sh ~/.claude/dev-mods/<session-id>

## レイアウト

<mod>/ .claude-plugin/plugin.json manifest (name, version, options, state contract) hooks/hooks.json { "modules": ["./register.tsx"] } hooks/register.tsx the hooks module types/index.d.ts $.state contract (mods that keep state) tests/*.test.ts claude plugin test scripts/ check-mods.sh validate / test the mods given files touch typecheck.sh tsc against Claude Code's generated API types sync.sh copy mods into a load folder

## 発達

s h pip install pre-commit && pre-commit install claude plugin validate <mod> claude plugin test <mod> scripts/typecheck.sh # all mods

コミット前のフックは、標準のハイジニー、gitleaks、shellcheck、および
コミットが触れる変更: `claude plugin validate`、TypeScript チェック、
`claude plugin test`。型チェックには API 宣言が必要です Claude Code
MODをロードするときに`.claude-plugin/types/`に書き込みます。これらは次のように生成されます
ビルドされ、git が無視され、`~/.claude/dev-mods` コピーで自動的に検出されます。
これらがないと、型チェックはメモとともにスキップされます。

エージェント (または個人) がすべき規則については、[AGENTS.md](AGENTS.md) を参照してください。
MODを変更するときは以下に従ってください。

## ライセンス

[MIT](ライセンス)

インストール

まず作者の README で marketplace とプラグイン名を確認してください。コマンドはリポジトリの構成によって変わる場合があります。

claude plugin marketplace add ipartington/claude-mods
claude plugin install review-ledger
原文 / README

claude-mods

Five Claude Code mods that remove the routine I kept doing by hand. Each one comes from an audit of my last 30 Claude Code sessions. A mod is a plugin of function hooks: it runs inside Claude Code and can draw a band above the prompt, a pane, a toast or a status line, and can step into prompts, tool calls and the session's start and end.

| Mod | The habit it removes | What you see | Usage cost | | --- | --- | --- | --- | | merge-followthrough | Typing "616 merged" (61 times in 30 sessions), then Claude spending a turn on git checkout main && git pull and deleting the branch; ! git pull by hand at session start | Band of your open PRs with CI ✓ ✗ …; toast when a merge has been pulled; /prs | None | | handoff-on-clear | "give me a prompt to restart", "I've lost your feedback, can you redisplay" after /clear | Toast on save; band ↺ Handoff from last session [Load] [Dismiss]; /handoff | One cached fork per /clear (option summarize, on by default) | | bg-task-band | "how are we looking", "any updates", "when's the estimated end time?" | Band: ⏳ Wait for cp-22 recap 12m/25m · TASK [drain]; toast on finish | None | | review-ledger | "what's left to do from the review?", updating the H/M/L list by hand | Pane of items by severity (/review); toast when an item's PR merges | None | | tts-lite | A Stop hook starting a full claude -p per reply to speak a summary, which left 200 stray transcripts | Audio only | Short replies none; longer ones one bare Haiku completion |

How each one works

merge-followthrough: polls gh pr list --author @me every 60 s. When a PR it saw open is merged, it checks out the default branch, pull --ff-onlys, deletes the local branch and prunes, as long as the working tree is clean. On your next prompt it tells Claude what it already did, so Claude doesn't redo it. Typing 616 merged runs the same steps at once. At session start it fast-forwards the default branch if you're on it with no changes.

handoff-on-clear: on session.end (a /clear or an exit) it saves the last answer, your recent asks, PR numbers and artifact links mentioned, the branch, and (with summarize) a 200-word handoff from one $.model.fork, which the API serves mostly from the prompt cache. It's kept per directory for three days. It goes to Claude when you press Load, run /handoff, or ask something like "redisplay" or "prompt to restart".

bg-task-band: records background Bash, Monitor and Agent calls as they start, reads each one's output file every 10 s for the last line, and marks it done from the task notification that arrives when it ends. A TaskStop marks it stopped. Finished tasks stay on the band for 90 s.

review-ledger: registers the tool mcp__review-ledger__items, which Claude calls to record findings (H1, M3, L2) and their state: open, in-progress with a PR number, done, or won't do. It's stored per repository root, so it survives /clear and new sessions. Every 5 minutes it checks in-progress PRs and marks an item done when its PR merges. A prompt that says "review" or names an item gets the ledger as context.

tts-lite: on turn.complete it reads replies of 20 words or fewer out as they are, and asks Haiku for one sentence about anything longer. It plays them through Piper and paplay, or espeak. It reads the same CLAUDE_TTS, CLAUDE_TTS_SPEED, CLAUDE_TTS_VOICE and CLAUDE_TTS_MODEL variables as the shell hook it replaces, and stays silent while that hook (tts-speak.sh) is still in ~/.claude/settings.json, so you never hear double.

Install

Requirements: Claude Code 2.1.288 or later (function-hook mods are early access and the API moves between releases), plus git and an authenticated gh for merge-followthrough and review-ledger. tts-lite needs paplay and Piper or espeak.

Load them for every session by listing the folders in CLAUDE_CODE_PLUGIN_DIRS (colon-separated) in the env block of ~/.claude/settings.json:

{
  "env": {
    "CLAUDE_CODE_PLUGIN_DIRS": "~/code/claude-mods/merge-followthrough:~/code/claude-mods/handoff-on-clear:~/code/claude-mods/bg-task-band:~/code/claude-mods/review-ledger:~/code/claude-mods/tts-lite"
  }
}

For one session only:

claude --plugin-dir ./merge-followthrough --plugin-dir ./bg-task-band

Or copy them into a session's hot-reload folder:

scripts/sync.sh ~/.claude/dev-mods/<session-id>

Layout

<mod>/
  .claude-plugin/plugin.json   manifest (name, version, options, state contract)
  hooks/hooks.json             { "modules": ["./register.tsx"] }
  hooks/register.tsx           the hooks module
  types/index.d.ts             $.state contract (mods that keep state)
  tests/*.test.ts              claude plugin test
scripts/
  check-mods.sh                validate / test the mods given files touch
  typecheck.sh                 tsc against Claude Code's generated API types
  sync.sh                      copy mods into a load folder

Development

pip install pre-commit && pre-commit install
claude plugin validate <mod>
claude plugin test <mod>
scripts/typecheck.sh            # all mods

The pre-commit hooks run standard hygiene, gitleaks, shellcheck, and for the mods a commit touches: claude plugin validate, a TypeScript check and claude plugin test. The type-check needs the API declarations Claude Code writes into .claude-plugin/types/ when it loads a mod. Those are generated per build, git-ignored, and found automatically in any ~/.claude/dev-mods copy. Without them the type-check is skipped with a note.

See AGENTS.md for the conventions an agent (or a person) should follow when changing a mod.

License

MIT

関連作品