A Claude Code plugin · betaClaude Code プラグイン · beta

You set the vision.
Banto runs the development.
方針はあなたが決める。
開発は番頭が回す。

A self-driving harness for Claude Code. It keeps your decisions, research, and work-in-progress in a store and re-injects them at every session start — /clear, and nothing is forgotten. Hooks stop pushes to main and production changes before they run. The only thing that reaches you is an exception worth deciding.

Claude Code のための自走ハーネス。設計判断・調査・作業の続きをストアに残し、 セッションを開くたびに注入する — /clear しても「前に決めたこと」を忘れない。 main への push や本番操作は hook が実行前に止める。あなたに届くのは、 判断の要る例外だけ。

$ claude plugin marketplace add banto-org/banto click to copyクリックでコピー
0skillsスキル
0agentsエージェント
0hooksフック
0rulesルール
0MCP bundled同梱 MCP

The bantō contract番頭の契約

A head clerk for your AI sessions AI セッションの筆頭奉公人

A bantō (番頭) was the head clerk of an Edo-period merchant house. The owner set the direction; the bantō ran everything end to end and brought only the exceptions back to the owner. Banto applies that exact contract to software — the modern bantō doesn't run a shop, it runs your development.

番頭とは、商家の主人に代わって店のすべてを切り盛りし、例外だけを主人に上げる 筆頭奉公人のこと。Banto はその契約をそのまま持ち込む — 現代の番頭が回すのは店ではなく、 あなたの開発

In an era where AI pushes the cost of building toward zero, the moat moves from execution to vision + empathy. Banto is not a "dev workflow tool" — it is a harness that maximizes the leverage of one human commanding N AI sessions.

AI が「作るコスト」をゼロに近づける時代、競争優位(moat)は実行からビジョンと共感へ移る。 Banto は「開発ワークフローツール」ではない。一人の人間が N の AI セッションを率いる、 そのレバレッジを最大化するハーネス。

Concretely: say "start the payment redesign" and a branch and workspace open, then spec → build → verify runs on its own. You are called twice — when the spec forks, and right before anything lands on main.

具体的にはこう動く:「決済のリデザインを始める」と言えば、ブランチと作業場が開き、 仕様 → 実装 → 検証が自分で回る。あなたが呼ばれるのは 2 回だけ — 仕様の解釈が割れたときと、 main に入れる直前。

"Humans never think about invocation; the harness self-drives; exceptions arrive only as checkpoints." 「人間はスキルの起動を意識しない。ハーネスが自走する。例外だけがチェックポイントとして届く。」
— the North Star— 北極星

The three flagships3 つの目玉

Where Banto earns its keep Banto の真価が出るところ

Everything below is real and shipping. These three are the ones to look at first.

以下はすべて実装済み(beta 公開中)。まず見るべきはこの 3 つ。

01

ai-context-store

Knowledge that survives sessions. Your repo stays clean.

セッションを跨いで生きる知識。repo は汚れない。

Decisions, research, and checkpoints live in a central knowledge store (~/ai-context-store/<project>/), not in your repo. They are re-injected at every session start, so context never dies with a /clear or a compaction. Knowledge goes to the store; code stays in the repo.

決定ログ・調査・チェックポイントは repo ではなく中央知識ストア (~/ai-context-store/<project>/) に置く。セッション開始ごとに 再注入されるため、/clear や自動圧縮で文脈を失わない。 知識はストアへ、コードは repo へ。

  • Claude-native internal search — query expansion + ranking over everything accumulated
  • Claude ネイティブの内部検索 — 蓄積した全てにクエリ展開 + ランキング
  • A stable directory layout — a fixed home that any tool can read
  • 安定したフォルダ構成 — どのツールからも読める、決まった置き場所
  • decisions / docs / research / sessions / workspaces
  • decisions / docs / research / sessions / workspaces
Read the deep-dive — what's inside & how it wires into Claude Code →詳しい解説 — 中身と Claude Code 連携の仕組み → See the evidence — 5 benchmarks, 42 cells →実測を見る — 5 ベンチマーク・42 セル → Store Search — every store, one query, no server →Store Search — 全ストアをクエリ 1 本で、サーバなし →
02

ws — workspace & fleetワークスペース & 艦隊運用

A 3-tier branch model and parallel sessions, driven by intent.

3 階層ブランチと並走セッションを、インテントで駆動。

Topic-based workspaces sit on a 3-tier branch model — main ← epic ← task worktree — orchestrated via git-town. You don't run git commands; you state intent ("start the payment redesign", "this work is done", "ship it") and Banto opens branches, isolates worktrees, merges, syncs, and cleans up.

トピック別ワークスペースが main ← epic ← task worktree の 3 階層ブランチ (git-town 委譲)の上に乗る。git コマンドは打たない。インテント(「決済のリデザインを 始める」「この作業終わった」「main に入れて」)を述べるだけでいい。Banto がブランチを開き、 worktree を分離し、マージ・sync・掃除まで自動で回す。

  • Worktree isolation lets multiple agents run in parallel without colliding
  • worktree 分離で複数エージェントが衝突せず並走
  • A session registry with collision detection for the fleet
  • 艦隊向けの衝突検知付きセッションレジストリ
  • Irreversible / outward actions (ship, push, PR) always stop at a human gate
  • 不可逆・外向き操作(ship / push / PR)は必ず人間ゲートで止まる
03

set-language — a reusable i18n method再利用できる i18n 方式

One canonical language, generated translations, a deterministic sync gate. Copy this pattern.

正本は 1 言語、翻訳は生成、同期は決定論ゲート。この型をそのまま真似できる。

Banto ships Japanese-canonical skills and auto-generated English ones, kept in lock-step by a hash manifest. The trick is the determinism split: translation is delegated to an LLM (non-deterministic), but verifying that the translation is current is fully deterministic. That is the whole method — and it is the one we most want others to adopt.

Banto は 日本語を正本英語を自動生成とし、ハッシュ マニフェストで同期を取る。鍵は決定論の分離 — 翻訳は LLM に委譲 (非決定論)するが、その翻訳が最新かの検証は完全に決定論。これが方式の 全てで、最も真似してほしい型。

A

One canonical source

正本は 1 つ

Skills and agents are authored once, in Japanese (i18n/ja/). It is the single source of truth — every other language is downstream of it.

スキルとエージェントは日本語で一度だけ書く(i18n/ja/)。これが唯一の正本で、他の言語はすべてその下流。

B

Generate, don't hand-maintain

手で保守せず生成する

i18n-gen.sh hashes each canonical file; when a hash drifts it calls an LLM translator with a strict contract — never touch YAML keys, code fences, paths, or commands; do localize trigger phrases.

i18n-gen.sh が正本をハッシュし、ズレたファイルだけ LLM 翻訳を呼ぶ。契約は厳格 — YAML キー・コードフェンス・パス・コマンドは触らない。トリガー文だけは自然な言い回しに直す。

C

Verify deterministically

検証は決定論で

The translation is fuzzy, but i18n-sync-check.sh is exact: it compares sha256 hashes in .sync-manifest.json and fails CI on STALE / MISSING / TAMPERED / ORPHAN. No LLM in the gate.

翻訳は曖昧でも i18n-sync-check.sh は厳密 — .sync-manifest.json の sha256 を突き合わせ、STALE / MISSING / TAMPERED / ORPHAN で CI を落とす。ゲートに LLM はいない。

D

Swap, and make it stick

切り替えて、固定する

/set-language ja|en materializes the chosen tree onto the active set and saves the choice in user scope. A SessionStart hook re-applies it after every plugin update — the choice survives.

/set-language ja|en が選んだ言語を active セットへ展開し、選択を user スコープに保存。SessionStart hook がプラグイン更新のたびに再適用する — 選択は生き残る。

Why this is worth copying: most i18n either hand-maintains every locale (drifts silently) or trusts an LLM to "keep them in sync" (unverifiable). Banto separates the two — let the LLM translate, let a hash gate prove freshness. This very page runs on the same idea: one set of content, a toggle, both languages always present.

真似する価値: 多くの i18n は各ロケールを手で保守して黙ってズレるか、 LLM に「同期しといて」と委ねて検証不能になる。Banto は両者を分ける — 翻訳は LLM に、 鮮度の証明はハッシュゲートに。このページ自身も同じ発想 — コンテンツは 1 組、トグル 1 つ、 両言語が常に在る。

Folding a sessionセッションを畳む

save-checkpoint — fold a long session without losing the thread save-checkpoint — 長い会話を、筋を失わずに畳む

A long session bloats context and gets expensive. save-checkpoint writes a structured, resumable snapshot to the store, then recommends exactly one of compact or clear — never both, and never runs either itself.

会話が伸びるとコンテキストが膨らみ、コストも上がる。save-checkpoint は再開できる 構造化スナップショットを store に書き、compactclear の どちらか一方だけを推奨する — 両論併記はせず、どちらも自分では実行しない。

Plain /compact

通常の /compact

An in-session LLM summary that compresses the transcript in place. Lossy and opaque — drops happen silently and the summary is whatever the summarizer produced. Nothing lands on disk; you stay inside the same, partly-reclaimed window.

会話内で LLM が要約し、その場で圧縮する。欠落は静かに起き、要約の中身は選べない。ディスクには何も残らず、一部しか戻らない同じ窓の中に居続ける。

save-checkpoint + /clear

save-checkpoint + /clear

A purpose-built, structured checkpoint written to the store — durable and reviewable. Then /clear reclaims the full 1M window, and the next session's SessionStart re-injects the checkpoint. You resume from a curated summary, not a lossy one.

再開のために設計した構造化チェックポイントを store に書く — 永続で、あとから読み返せる。その後 /clear で 1M の窓を丸ごと取り戻し、次のセッションの SessionStart が再注入する。欠落した要約ではなく、整えた要約から再開できる。

Idle? It folds itself, in the background放置したら、裏で自動的に畳む

An idle-detection hook cuts the checkpoint for you — not on session end, but when you walk away.

放置検知の hook が、代わりにチェックポイントを切る — セッション終了時ではなく、離席したとき。

A

Armed on every turn

応答ごとにアーム

Each finished response arms a watcher on the transcript. It measures idle time, not wall-clock — only time you are actually away counts toward the threshold.

応答が終わるたび transcript のウォッチャーをアームする。測るのは無操作時間で、覚醒中に離れていた分だけをしきい値に数える。

B

Fires at the cache TTL

キャッシュ TTL で発火

After 5 minutes idle — matching the prompt-cache TTL — it runs /save-checkpoint through a headless claude -p --resume --fork-session. Being a fork, it never writes back to your live session.

無操作 5 分 — プロンプトキャッシュの TTL に一致 — で、ヘッドレスの claude -p --resume --fork-session/save-checkpoint を回す。fork なので現行セッションには一切書き戻さない。

C

Guarded, not on clean exit

ガード付き・正常終了では動かない

A cleanly ended session disarms the watcher — no checkpoint. It fires only on substantial sessions (context >10% or transcript >256KB) and is sleep-aware, so reopening a closed laptop does not trip it.

正常に終えたセッションはウォッチャーを解除する — 発火しない。中身のあるセッション(コンテキスト >10% か transcript >256KB)だけが対象で、スリープも考慮するため、閉じたラップトップを開いた瞬間には動かない。

Why it fires cheap: the whole feature exists to save money — resuming a huge context after the cache expires re-reads it at cold pricing. So the background fork runs on an inexpensive model (sonnet, which resolves to the latest Sonnet), not an expensive one. Filling a fixed checkpoint template from a transcript is faithful-summary work, measured to pass on sonnet; spending opus here would defeat the very motive the feature was built for.

安く発火する理由: この機能はコスト削減のために在る — キャッシュ失効後に巨大コンテキストを再開すると、コールド価格で読み直す。だから裏の fork は高額モデルではなく安価な sonnet(最新の Sonnet に解決される)で回す。transcript から定型のチェックポイントテンプレを埋める作業は忠実な要約であり、実測で sonnet が通過する。ここに opus を使えば、機能の動機そのものを裏切る。

Full save-checkpoint page →save-checkpoint の詳細ページ →

One line under the prompt tells you everything手元の 1 行で、全部わかる

The bundled status line surfaces open tasks, the auto-checkpoint save, and a context-usage warning — at a glance, without asking.

同梱の statusline が、未完了タスク・自動チェックポイント保存・トークン使用量の警告を一目で示す — 聞かなくても、見ればわかる。

Claude Code statusline

📋 Open tasks📋 未完了タスク

Counts unfinished items straight from the store's persistent task list (tasks.md). Done items disappear; the number is what's actually left.

store の永続タスクリスト(tasks.md)から未完了だけを数える。完了した項目は消え、残っている数だけが出る。

💾 Auto-checkpoint saved💾 自動チェックポイント保存済み

When the idle / context-pressure checkpoint fires in the background, the save time appears here — so walking away and coming back, you know the session is already folded.

放置検知・コンテキスト逼迫の自動チェックポイントが裏で走ると、保存時刻がここに出る。離席して戻っても、もう畳まれていることが見ればわかる。

🟡 Context warning🟡 トークン使用量の警告

Context usage, color-coded as it climbs (40% / 60% / 80%). The same number feeds the hook that recommends folding the session before the window gets expensive.

コンテキスト使用率を段階の色(40% / 60% / 80%)で示す。同じ数値を hook が読み、窓が高くつく前にセッションを畳む推奨につながる。

Deployed by harness-setup.sh as part of the harness — an existing custom status line is never overwritten. Renders in the terminal CLI (including terminals inside IDEs); it refreshes on a 10-second timer, so the 💾 mark appears even while you are away.

harness-setup.sh がハーネスの一部として配備する — 既にカスタム statusline がある環境は上書きしない。表示されるのはターミナル CLI(IDE 内蔵ターミナル含む)で、10 秒間隔で再描画するため離席中でも 💾 が現れる。

The SDD pipelineSDD パイプライン

Ideology → spec → autonomous build 思想 → 仕様 → 自走実装

Write down what to build — and what not to — in CLAUDE.md; every session judges by it. From a spec, dev-loop splits the work into small tasks and keeps implementing and fixing until every test passes.

「何を作り、何を作らないか」を CLAUDE.md に書き、全セッションの判断基準にする。仕様書ができたら dev-loop が小さなタスクへ分解し、テストが全部通るまで実装と修正を繰り返す。

  1. Decompose分解break a big spec into small tasks大玉を小さなタスクへ
  2. Implement実装write the change変更を書く
  3. Verify検証build & run — no "done" without proofbuild & 実行 — 証拠なき「完了」なし
  4. Fix & repeat修正して反復escalate only the exceptions上げるのは例外だけ

Deterministic safety決定論的な安全

Enforced by hooks, not by promises 約束ではなく hook が強制する

Anything that must never happen is blocked by a deterministic hook before it runs — not asked about, not hoped for. Approvals stay minimal; the guard rails are mechanical.

起きてはならないことは、実行前に決定論的な hook が遮断する — 訊くのでも祈るのでもなく。 承認は最小限、ガードレールは機械的。

kill-switch

No direct push to main, no --no-verify, no force-push, no committed secrets. Full stop.

main への直接 push なし、--no-verify なし、force-push なし、secret のコミットなし。問答無用。

prod-guard

Production operations (prod contexts, terraform apply, prod deploys) are blocked by default — passed only by conversational approval or a standing per-repo grant.

本番操作(prod context・terraform apply・本番デプロイ)は既定で遮断。通すのは会話での承認か、repo 単位の常設許可(grants)だけ。

egress guard

Blocks internal names / PII from leaking into client deliverables, driven by a private name registry.

内部名・個人情報の客先成果物への流出を遮断。非公開の名前レジストリが照合する。

verify-before-claim

No "done" without fully successful, verified output. The claim has to be earned.

検証済みの成功出力なしに「完了」と言えない。「完了」は検証してから名乗る。

cross-check

A second opinion from a different vendor's model — an adversarial review that tries to refute the work before you trust it. Same-vendor reviews are refused by default.

別ベンダーのモデルによる反証レビュー — 信じる前に、壊しにかかる第二の目。同一ベンダー同士のレビューは既定で拒否。

OS sandbox · opt-inOS サンドボックス · opt-in

A second layer: Claude's bash can run in an OS sandbox (Seatbelt / bubblewrap) blocking credential reads and off-allowlist network. Off by default.

もう一段の層 — Claude の bash を OS サンドボックス(Seatbelt / bubblewrap)で走らせる。秘匿情報の読取と許可外のネットワーク接続を遮断。既定は無効。

15+7+5

Self-auditing. A 15-axis plugin-quality audit, a 7-axis per-skill context audit, and a 5-axis whole-harness audit watch for drift between what the harness declares and what it actually does — so the docs never lie.

自己監査。 15 軸のプラグイン品質監査・7 軸の skill コンテキスト監査・ 5 軸のハーネス監査が、宣言と実体の乖離を見張る — ドキュメントが嘘をつかない。

The full toolset道具一式(網羅)

Everything in the box 箱の中身、すべて

20 skills, 6 agents, 46 hooks, 10 behavioral rules — and no bundled MCP. Code review and security review are deliberately delegated to Anthropic's official plugins rather than reimplemented.

20 スキル・6 エージェント・46 フック・10 行動ルール — MCP 同梱なし。コードレビューと セキュリティレビューは再実装せず、Anthropic 公式プラグインへ意図的に委譲。

Agents (fan out in parallel)エージェント(並列展開)

How it feels使い心地

You don't memorize commands コマンドは覚えなくていい

Natural language is the primary path; commands are just aliases. Say what you want.

自然文が主経路で、コマンドはエイリアス。やりたいことを言うだけ。

You say
あなたの発話
Banto does
Banto の動き
"start the payment redesign"「決済のリデザインを始める」
opens an epic branch + workspaceepic ブランチ + ワークスペースを開く
"investigate X"「X を調べて」
research agents fan out → saved to the storeresearch agent が並列調査 → ストアに保存
"what did we decide about auth?"「認証って前に決めたっけ」
internal search over decisions & history決定ログ・履歴への内部検索
"this work is done"「この作業終わった」
tests → merge to the epic → sync → cleanupテスト → epic へマージ → sync → 掃除
"ship it"「main に入れて」
opens a PR — irreversible actions stop at a human gatePR 作成 — 不可逆操作は人間ゲートで止まる

Philosophy思想

Four principles, and what we refuse to become 4 つの原則と、ならないと決めたもの

Self-driving, not approval-gated承認ゲートではなく自走Enforcement belongs to hooks; approvals stay minimal.強制は hook に、承認は最小限に。
Deterministic over promised約束より決定論What must never happen is blocked by a hook, not a prompt.起きてはならないことは prompt でなく hook が遮断。
LeanleanDelegate to proven mechanisms (git-town, official plugins). Don't reinvent.枯れた仕組み(git-town・公式プラグイン)に委譲し、車輪を再発明しない。
Measure, then fold測って、畳むTelemetry tracks skill usage; dead features get removed.telemetry が使用度を記録し、死蔵機能は削除。

Built for teams under NDANDA 下のチームのために

Banto was built inside a contract-development workflow where leaking one internal name into a client deliverable is an incident. The egress guard blocks registry-listed names from client paths; the name registry lives in user scope and is never committed; content-hygiene audits catch proprietary references and pasted session debris in docs.

Banto は「内部名がひとつ客先成果物に漏れたらインシデント」という受託開発の現場で生まれた。 egress guard は、レジストリ記載の名前が客先パスへ出るのを遮断する。名前レジストリは user スコープに置かれ、決してコミットされない。content-hygiene 監査は、ドキュメント内の固有参照や 貼り込み残骸を検出する。

Get startedはじめる

Two commands, then restart 2 コマンド、そして再起動

$ claude plugin marketplace add banto-org/banto $ claude plugin install banto@banto-marketplace

Restart Claude Code. On a project without a CLAUDE.md, the SessionStart hook prompts the one-time setup with the exact command. harness-setup.sh deploys the behavioral rules, statusline, minimal permissions, and the disabled OS-sandbox block, and initializes the store. Default language is English — run /set-language ja once to switch (it survives updates).

Claude Code を再起動。CLAUDE.md の無いプロジェクトでは SessionStart hook が正確なコマンド付きで 初回セットアップを提案する。harness-setup.sh が行動ルール・statusline・最小限の 権限設定・既定で無効の OS サンドボックス設定を配置する。あわせてストアも初期化。 既定は英語 — 日本語にするには /set-language ja を一度だけ(更新をまたいで保持)。

harness-setup.sh also enables marketplace autoUpdate, so every later release follows automatically. To apply an update mid-session, run /reload-plugins.

harness-setup.sh が marketplace の autoUpdate を有効化し、 以後のリリースは自動追従。セッション中の反映は /reload-plugins

Requirements必要なもの

Claude Code (CLI or desktop), plus git and jq (required). gh / git-town / python3 unlock optional features and degrade gracefully when absent. macOS / Linux supported; Windows runs on Git Bash.

Claude Code(CLI またはデスクトップ)と git / jq(必須)。 gh / git-town / python3 があると追加機能が有効になり、 無くても支障なく縮退する。macOS / Linux 対応、Windows は Git Bash 上で動作。