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

dojo-fx

dojo crew 向けのオプションのビジュアル。テーマ付き spinner、ターン終了時の演出、ライブ crew バンド、deploy/return の toast、dojo エージェントを固有モデルに固定する model guard を提供します。

翻訳済み

この mod について

dojo

アニメをテーマにした Claude Code の subagent。1つの orchestrator と crew で構成され、それぞれに専用のモデル、ツール、話し方があります。

Crew

| Agent | Character | Role | Model | |---|---|---|---| | dojo:strategist | Shikamaru または Lelouch(セッションごと) | Orchestrator / integrator(メインスレッド) | claude-opus-5-5 | | dojo:senku | Senku | Backend builder | claude-sonnet-5-5 | | dojo:sanji | Sanji | Frontend builder | claude-sonnet-5-5 | | dojo:l | L | Deep web researcher | claude-haiku-4-5 | | dojo:light | Light | Quick fact-finder | claude-haiku-4-5 | | dojo:levi | Levi | QA inspector(読み取り専用) | claude-haiku-4-5 | | `dojo:robin | Robin | Documentation writer | claude-haiku-4-5 |

インストール

/plugin marketplace add shreym95/dojo
/plugin install dojo@dojo

orchestrator の起動

claude --agent dojo:strategist
crew               # bin/crew: random persona
crew lelouch       # pin the persona (shikamaru | lelouch)

settings.json でデフォルトにもできます:"agent": "dojo:strategist"。

strategist はメインスレッドの agent として実行する必要があります。subagent は subagent を起動できないためです。subagent として実行すると crew を dispatch できません。

SessionStart hook は、当番の persona を strategist に伝えます。DOJO_STRATEGIST=shikamaru|lelouch で上書きし、DOJO_DEBUG=1 を設定すると hook の入力を `${TMPDIR:-/tmp}/dojo-hook-debug.log に記録します。

カスタマイズ

roster.mjs(キャラクター、モデル、ツール、説明)、personas/*.md(話し方のシート)、roles/*.md(担当)、shared/house-rules.md を編集してから、次を実行します。

npm run build   # regenerate agents/*.md
npm run check   # fail if agents/ has drifted (used in CI)
npm test

`agents/*.md は生成物です。手で編集しないでください。

Voice levels

キャラクターの声の強さは roster.mjs で設定します。defaults: { voice: 'medium' }、または1つの agent に `voice: '...' を設定して上書きできます。

| Level | What you get | |---|---| | subtle | キャラクターらしい冒頭の一言、オプションの締め、簡潔な本文。 | | medium(デフォルト) | 冒頭1~2行、キャラクターらしい表現、短い余談を最大約3つ、決めぜりふを2つまで、締めの一言。長さは約 +20%。 | | `full | キャラクターが節ごとに自由に話します。長さは約 +40%。 |

どのレベルでも事実、パス、数字、コマンドは正確なままです。persona がコード、commit、ファイルに入り込むこともありません。各 crew レポートは Says: 行で終わり、strategist が Crew: の下で伝えます。レベルのルールは shared/voice/ にあります。レベルを変えたら npm run build を実行してください。

dojo-fx(オプションのビジュアル)

この marketplace にある2つ目のプラグインで、Claude Code の function hooks(early-access API)を使っています:/plugin install dojo-fx@dojo。メインの dojo プラグインはこれなしでも動作します。

  • テーマ付き spinner:メインスレッドの spinner の単語は当番の strategist から来ます(Shikamaru:「Shadow-possessing」「Reading the board」、Lelouch:「Commanding」「Geass-ing」)。crew メンバーの spinner には専用の emoji と動詞が付きます(🧪 Senku「Science-ing」、🧹 Levi「Scrubbing」、🌸 Robin「Deciphering」…)。動詞はターンごとに変わります。
  • ターン終了時の演出:ターンの締めの行は「Outmaneuvered」(Shikamaru)または「Checkmated」(Lelouch)です。
  • Crew バンド:dojo:* subagent が実行中は、プロンプトの上に1行ずつ、emoji、名前、アニメーションのフレーム、タスク、最新のツール呼び出し(Bash: npm test)を表示します。誰も実行していなければ消えます。
  • Toast:🧹 Levi deployed — "Chi. Show me the mess."、続いて 🧹 Levi returned または `💀 Levi fell。
  • Model guard(常時有効):dojo:* 型の agent.spawn から `model を取り除くため、呼び出し側の「always pass model: sonnet」で agent 自身の frontmatter のモデルを上書きできません。

strategist は dojo: on duty: <Name> コンテキスト行から読み取られます。見つからなければ DOJO_STRATEGIST を使い、それもなければニュートラルな strategist テーマになります。/config(または settings の pluginConfigs)で spinners、turnFlair、band、toasts、neutralMainTheme を切り替えられます。すべてデフォルトでオンです。emoji、動詞、フレーム、toast の文言は fx/hooks/characters.ts にあります。インストールせず試すには claude --plugin-dir ./fx。テストは claude plugin test fx です。

Note

dojo agent の spawn 時に `model を渡さないでください。frontmatter に設定されたモデルを上書きします。

License

MIT

インストール

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

claude plugin marketplace add shreym95/dojo
claude plugin install dojo-fx
原文 / README

dojo

Anime-themed Claude Code subagents: one orchestrator and a crew, each with its own model, tools and voice.

Crew

| Agent | Character | Role | Model | |---|---|---|---| | dojo:strategist | Shikamaru or Lelouch (per session) | Orchestrator / integrator (main thread) | claude-opus-5-5 | | dojo:senku | Senku | Backend builder | claude-sonnet-5-5 | | dojo:sanji | Sanji | Frontend builder | claude-sonnet-5-5 | | dojo:l | L | Deep web researcher | claude-haiku-4-5 | | dojo:light | Light | Quick fact-finder | claude-haiku-4-5 | | dojo:levi | Levi | QA inspector (read-only) | claude-haiku-4-5 | | dojo:robin | Robin | Documentation writer | claude-haiku-4-5 |

Install

/plugin marketplace add shreym95/dojo
/plugin install dojo@dojo

Launch the orchestrator

claude --agent dojo:strategist
crew               # bin/crew: random persona
crew lelouch       # pin the persona (shikamaru | lelouch)

Or make it the default in settings.json: "agent": "dojo:strategist".

The strategist must run as the main-thread agent because subagents cannot spawn subagents. Run as a subagent it could not dispatch the crew.

A SessionStart hook tells the strategist which persona is on duty. Override with DOJO_STRATEGIST=shikamaru|lelouch; set DOJO_DEBUG=1 to log hook input to ${TMPDIR:-/tmp}/dojo-hook-debug.log.

Customise

Edit roster.mjs (characters, models, tools, descriptions), personas/*.md (voice sheets), roles/*.md (duties) or shared/house-rules.md, then:

npm run build   # regenerate agents/*.md
npm run check   # fail if agents/ has drifted (used in CI)
npm test

agents/*.md is generated; do not edit by hand.

Voice levels

How loud the characters are is set in roster.mjs: defaults: { voice: 'medium' }, or voice: '...' on one agent to override it.

| Level | What you get | |---|---| | subtle | One in-character opening line, optional sign-off, plain body. | | medium (default) | 1-2 opening lines, character-coloured wording, up to ~3 short asides and 2 catchphrases, a closing line. About +20% length. | | full | The character speaks freely, section by section. About +40% length. |

At every level facts, paths, numbers and commands stay exact, and persona never reaches code, commits or files. Each crew report ends with a Says: line; the strategist relays them to you under Crew:. Level rules are in shared/voice/; run npm run build after changing a level.

dojo-fx (optional visuals)

A second plugin in this marketplace, built on Claude Code's function hooks (early-access API): /plugin install dojo-fx@dojo. The main dojo plugin works without it.

  • Themed spinners: the main thread's spinner word comes from the on-duty strategist (Shikamaru: "Shadow-possessing", "Reading the board"; Lelouch: "Commanding", "Geass-ing"). A crew member's own spinner gets its emoji and verbs (🧪 Senku "Science-ing", 🧹 Levi "Scrubbing", 🌸 Robin "Deciphering"...). Verbs rotate per turn.
  • Turn-end flair: the line that closes a turn says "Outmaneuvered" (Shikamaru) or "Checkmated" (Lelouch).
  • Crew band: while any dojo:* subagent runs, one row each above the prompt: emoji, name, an animated frame, its task and its latest tool call (Bash: npm test). Gone when nobody is running.
  • Toasts: 🧹 Levi deployed — "Chi. Show me the mess.", then 🧹 Levi returned or 💀 Levi fell.
  • Model guard (always on): an agent.spawn of any dojo:* type has model stripped, so a caller's "always pass model: sonnet" can't override an agent's own frontmatter model.

The strategist is read from the dojo: on duty: <Name> context line; if it can't be found, DOJO_STRATEGIST is used, else a neutral strategist theme. Toggle features in /config (or pluginConfigs in settings): spinners, turnFlair, band, toasts, neutralMainTheme, all on by default. Emoji, verbs, frames and toast lines live in fx/hooks/characters.ts. Try it without installing: claude --plugin-dir ./fx. Tests: claude plugin test fx.

Note

Don't pass model when spawning dojo agents: it overrides the model set in their frontmatter.

License

MIT

関連作品