ClaudeMods
☰
ZH-CN
● 0 人在线 · 浏览 0 次
赞助提交作品
GitHub 仓库 · 发布者 shreym95

dojo-fx

为 dojo crew 提供可选视觉效果:主题 spinner、回合结束装饰、实时 crew 状态带、部署/返回 toast,以及让 dojo agent 使用各自模型的模型保护。

已翻译

关于这个 mod

dojo

以动漫为主题的 Claude Code subagent:一个 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。

SessionStart hook 会告诉 strategist 当前值班的 persona。使用 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 是生成文件;不要手动编辑。

语气等级

角色说话有多活跃,由 roster.mjs 设置:defaults: { voice: 'medium' },或者在单个 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 中的第二个插件,基于 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 运行时,提示列上方会出现一行:emoji、名称、动画帧、任务和最新工具调用(Bash: npm test)。无人运行时消失。
  • Toast:🧹 Levi deployed — "Chi. Show me the mess.",随后是 🧹 Levi returned 或 `💀 Levi fell。
  • 模型保护(始终开启):任何 dojo:* 类型的 agent.spawn 都会移除 `model,因此调用方的「always pass model: sonnet」不能覆盖 agent 自己 frontmatter 中的模型。

strategist 从 dojo: on duty: <Name> 上下文行读取;找不到时使用 DOJO_STRATEGIST,否则使用中性的 strategist 主题。在 /config(或设置中的 pluginConfigs)切换功能:spinners、turnFlair、band、toasts、neutralMainTheme 默认全部开启。emoji、动词、帧和 toast 文案位于 fx/hooks/characters.ts。不安装也可以试用:claude --plugin-dir ./fx。测试:claude plugin test fx。

注意

生成 dojo agent 时不要传 `model:它会覆盖 frontmatter 中设置的模型。

许可证

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

更多类似作品