Communitygithub.com

5hseok/hanipman-gate

AIが生成した差分を、決定原⼭・スライス・ゲートで扱いやすいサイズに分割するClaude Codeプラグイン。「ひとくちだけ」の精神で。

hanipman-gate とは?

`5hseok/hanipman-gate`は、Claude Codeプラグインとして動作する一連のツール群です。AIエージェントが大量のコード変更(diff)を一気に生成してしまう問題に対処するため、設計段階から変更レビューまでを小さな「スライス」に分割し、人間が一度に処理可能な単位に制御します。具体的には、`design-pipeline`が設計ドキュメント全体を読まずに決定事項だけを抽出してプロンプトに埋め込み、`impl-pipeline`が実装をスライスに分解し、`review-gate`が自動ゲート(診断・規約順守・設計整合性・範囲逸脱)を通過した変更だけを人間に送ります。`track-ledger`は複数リポジトリやセッション間の状態を読み取り専用プローブで確認し、`session-board`は進行状況を一枚のアーティファクトにまとめます。依存関係はPython標準ライブラリのみで、`codebase-memory MCP`と`git`、`gh`、`aws`、`terraform`がオプションで利用可能です。日本語環境を前提としていますが、ヘッダーはエイリアスマップで多言語対応可能です。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/5hseok/hanipman-gate/tree/main

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ひとくちだけゲート (hanipman-gate)

ひとくちだけ。 まるごと全部、ぶちまけるな。

AIがコードを書き始めてから、ボトルネックが移動した。生成は速くなったが、理解は変わらない。60ファイルのdiffが一度に降ってくると、人間は3分で熟読を諦め、ざっと目を通すだけになる。

このリポジトリは、そのボトルネックを規律ではなく構造に移したツール群です。Claude Codeプラグインマーケットプレイスを通じて配布します。


何をするか

設計議論
   │
   ├─ ledger decide ────────▶ 決定原⼭
   │                          ├ 現在の設計(確定したもののみ・アトミックに置き換え)
   │                          └ 決定ログ(append-only・SUPERSEDEDを保持)
   │                                │
   │                    current --topicのみ読み取る(ドキュメント全体は読まない)
   │                                ▼
   └─ /impl-pipeline ──▶ スライス分解 ──▶ 委任 ──▶ /review-gate ──▶ /change-walkthrough
                                                        │                    │
                                                     GREENのみ                ▼
                                                     通過            人間が読むのは
                                                                    "判断が必要なものN件"

三つのルールだけです。

設計ドキュメントをまるごと読まない。 委任するときにドキュメントパスを渡さず、確定した決定の本文だけをプロンプトに入れる。トークンコストがドキュメントの長さと無関係になる。

ゲートを通過したdiffだけが人間に届く。 診断・規約・設計整合性・範囲逸脱を先に実行する。レビュー時間はdiffの総量ではなく、判断が必要な項目数に比例する。

状態は手で書けない。 複数のリポジトリにまたがる作業の完了状況は、読み取り専用プローブがリモートに直接問い合わせて計測する。わからなければ「未検証」のままにする。嘘の「完了」よりはマシだ。


インストール

/plugin marketplace add 5hseok/hanipman-gate
/plugin install design-pipeline@hanipman-gate

プラグインは3つに分かれています。必要なものだけインストールしてください。

プラグイン内容いつ使うか
design-pipeline決定原⼭ → スライス → ゲート → レビューガイド設計して実装するとき。これが本体
track-ledger複数リポジトリ・セッションの順序をプローブで実測セッションを複数動かしたり、デプロイ順序が絡むとき
explain-aids設計・diff理解のためのインタラクティブHTML大きな変更を他人(または未来の自分)に説明する必要があるとき
session-boardセッション状況を1枚のアーティファクトにトラック文書までは不要で、「今どこまで進んでいるか」だけ見たいとき

スキル

design-pipeline

スキル役割
design-workflowポリシー原本。原⼭ルール・リーディングプロトコル・チェックポイントコミット・リスクティア
impl-pipelineオーケストレーター。設計をスライスに切り、ゲートまで実行する
review-gate自動ゲート。診断・規約順守・設計整合性・範囲逸脱
change-walkthroughレビューガイド。変更をリクエストフローの順序で再配置する
design-reconcile原⼭の衛生管理。古い内容を移動する(削除はしない)
convention-audit規約検査。review-gateから実際に呼び出される

track-ledger

スキル役割
track-ledgerトラックの作成・運用
track-ledger-policy不変ルールとセッション間通信の基準

session-board

スキル役割
session-boardClaudeセッションレジストリを読み、ボードをアーティファクトとして公開し、同じURLで更新する

CLIもサーバーも不要。track-ledgerが重く感じられる場合は、こちらから先に使っても構いません。

explain-aids

スキル役割
explain-design-html実装前。なぜこの方向性なのか、何を捨てたのか
explain-diff-html実装後。何がどう変わったのか
explain-skills-workflow上記2つをいつ提案するかの基準

設計上の判断

ゲートは非対称です。 規約違反はREDで止めますが、「設計と違うか」は止めずに判断リストとして渡します。規約はルールベースで確実ですが、設計整合性はLLMの判断であり誤検出が混ざるため、誤検出で正当な実装が止まり続けると人間がゲートを切ってしまうからです。

部分的な失敗を全体の失敗にしない。 raw diffが真実であり、成果物は補助です。成果物の生成に失敗しても、失敗を報告するだけでレビューは止めません。

スライスはコミットではありません。 レビューの境界とコミットの境界を分けています。エージェントはコミットを提案できますが、実行はしません。

説明コメントを書かない。 変更理由をコードコメントに残しません。それはレビューガイドが担います。コメントはコードを汚しますが、ガイドはコードの外にあり、レビューが終われば破棄されます。


要件

  • Claude Code
  • Python 3(標準ライブラリのみ。サードパーティ依存なし)
  • git

以下はオプションですが、あれば大きく変わります。

  • codebase-memory MCP — change-walkthroughの核心的な成果物である「影響を受けるが未修正」(変更されたコードを呼び出しているが、それ自体は変更されていないコード)は、実際のコールチェーンを抽出して初めて得られます。これがないと、この項目全体が欠落します。
  • gh・aws・terraform — トラックプローブが使用します。ない場合、該当ステップは「未検証」のままになります。

原⼭はどこに置いてもよい

スキルは原⼭がどこにあるか知りません。ledgerだけを呼びます。

ledger current --file <task> --topic <slug>   # 確定した決定のみ。ドキュメント全体は読まない
ledger decide  --file <task> --topic <slug> --title ... --supersedes D-3
ledger doctor                                  # どのバックエンドがなぜ選ばれたか

デフォルトはリポジトリ内のmarkdown(.claude/design/)です。Obsidian vaultを使っている場合は、~/.claude/ledger.jsonにパスだけ書けば既存のドキュメントをそのまま使えます。

{ "backend": "obsidian", "root": "/path/to/vault" }

詳細はdocs/adapter-contract.mdを参照してください。

まだわかっていないこと

作成者のマシンでは動きますが、以下はまだ確認できていません。

  • 他人の環境でゼロからセットアップしたことがない。 markdownバックエンドで空のリポジトリとの往復は確認しましたが、実際にインストールして一サイクルを回したのは作成者の環境だけです。
  • markdownバックエンドでパイプライン全体を完走したことがない。 アダプターの往復は検証しましたが、impl-pipeline → review-gate → change-walkthroughをmarkdown原⼭で最後まで回したことはありません。
  • 日本語以外のプロジェクトでどのように読まれるかわからない。 ヘッダーはエイリアスマップで両方を認識しますが、スキル本文・ゲートレポート・ボードUIは日本語です。
  • レビュー時間が実際に削減されたか測定したことがない。 設計意図は「diff総量ではなく、判断が必要な項目数に比例する」ですが、前後比較データがありません。

例

examples/に原⼭ドキュメント一式とトラックドキュメント一式があります。どちらも実際のツールで作成し、読み直して検証したものなので、仕様が間違っていることはありません。

ライセンス

MIT。 LICENSEを参照してください。

名前

「ひとくちだけ」。他人が食べているものを全部くれとは言わず、ひとくちだけ欲しいという言葉。このツールがエージェントに対して言っている言葉でもあります。

gateは二つのシステムの共通言語です。パイプライン側にはreview-gateがあり、トラック原⼭側のステップはフィールドそのものがgate: merge / gate: apply / gate: deployです。

関連スキル