ruvnet/ruflo/tree/main/plugins/ruflo-plugin-creator
ruflo-plugin-creator
搭建、验证和发布新的 Claude Code 插件,具备正确结构、MCP 工具接线和规范的插件契约(ADR + smoke + Compatibility + namespace coordination)。
关于这个 mod
搭建、验证和发布新的 Claude Code 插件,遵循规范插件契约——现在也包括受治理的 Claude Code mods(function hooks)、ADR + smoke + Compatibility + namespace coordination + MCP-tool drift warnings。作为 mod(ADR-445):提供 /creator-mod(状态、保留名称、插件契约检查)以及控制台显示的状态文件。
安装
请先查看作者 README 确认 marketplace 和插件名称;命令可能随仓库结构改变。
claude plugin marketplace add ruvnet/ruflo claude plugin install ruflo-plugin-creator
原文 / README
ruflo-plugin-creator
Scaffold, validate, and publish new Claude Code plugins with proper structure, MCP tool wiring, AND the canonical plugin contract (ADR + smoke + Compatibility + namespace coordination).
Install
/plugin marketplace add ruvnet/ruflo
/plugin install ruflo-plugin-creator@ruflo
Features
- Scaffold plugins: Generate complete plugin directory structure in seconds, including the canonical contract (ADR-0001, scripts/smoke.sh, README contract sections)
- Validate format: Check plugin.json, SKILL.md frontmatter, and file references
- MCP tool wiring: Auto-discover and wire ruflo MCP tools into skills, with drift warnings for known-broken tool references (
embeddings_embed, namespace passed toagentdb_hierarchical-*/agentdb_pattern-*) - Marketplace integration: Update marketplace.json for distribution
Commands
/create-plugin-- Interactively scaffold a new Claude Code plugin
Skills
create-plugin-- Generate plugin structure with skills, commands, agents, ADR-0001, smoke test, and contract sectionsvalidate-plugin-- Validate plugin format and catch issues before publishingcreate-mod-- Scaffold a Claude Code mod (function hooks) fromtemplates/mod/: hybridhooks.jsonwith a classic fallback that stands down while the module runs, a host adapter over literal$calls,userConfig, engine-kit tests, tsconfig. Validated withclaude plugin validateandclaude plugin test(ruflo ADR-404)
Compatibility
- CLI: pinned to
@claude-flow/cliv3.6 major+minor. - Verification:
bash plugins/ruflo-plugin-creator/scripts/smoke.shis the contract.
Canonical plugin contract (what gets scaffolded)
Every plugin scaffolded by this plugin inherits the same shape every other plugin in the ruflo family adopted via its own ADR-0001:
plugins/<name>/
├── .claude-plugin/plugin.json # version, keywords, mcp keyword
├── skills/<skill>/SKILL.md # name + description + allowed-tools (no wildcards)
├── commands/<command>.md # name + description + dispatch logic
├── agents/<agent>.md # name + description + model
├── docs/adrs/0001-<name>-contract.md # ADR (Proposed) — pinning, namespace, smoke scope
├── scripts/smoke.sh # Structural contract, ≥8 checks
└── README.md # Compatibility + Namespace coordination + Verification + ADR
MCP-tool drift to avoid
Lessons learned from sibling-ADR fixes — the scaffolder warns about these:
| Bug | Real tool / pattern |
|-----|---------------------|
| embeddings_embed referenced as a tool | Use embeddings_generate (the _embed name does not exist) |
| namespace arg passed to agentdb_hierarchical-* | Use tier (working/episodic/semantic), or use memory_* for namespaced reads/writes |
| namespace arg passed to agentdb_pattern-* | Don't pass it — ReasoningBank routes; fallback writes to pattern reserved |
| pattern and patterns confused | They are different reserved namespaces |
| Hard-coded "19 AgentDB controllers" | Defer to agentdb_controllers runtime; real count varies (~15 MCP tools, 29 controller names) |
Verification
bash plugins/ruflo-plugin-creator/scripts/smoke.sh
# Expected: "11 passed, 0 failed"
Architecture Decisions
Related Plugins
ruflo-agentdb— namespace convention owner;agentdb_controllersruntime is the canonical controller listruflo-cost-tracker,ruflo-market-data,ruflo-migrations,ruflo-observability— each fixed namespace-routing bugs the scaffolder now warns aboutruflo-knowledge-graph,ruflo-market-data— each fixedembeddings_embedreferences the scaffolder now warns about
As a mod
Function-hook mod (ADR-445, pattern of ruflo-agentdb), loaded from hooks/hooks.json → hooks/register.ts. This plugin's own tools only search the plugin store, so there is no guard and no userConfig: the mod is a local command and a status file.
- Command:
/creator-modanswers locally with no model call, read-only. Verbs:status;reserved <plugin-dir>lists the command and skill names a plugin already uses (a mod command must not reuse one);check <plugin-dir>summarises its manifest,hooks.jsonmodules anduserConfigoptions. Paths with..are refused. - Status file:
.claude-flow/creator-mod/status.json({version, updatedMs, checked, reserved, lastTarget}). - Safety: no network, no process spawning.
- Scaffold status contract (0.4.1):
/create-modscaffoldshooks/status.ts, which writes.claude-flow/<name>-mod/status.jsonwith the fields the console's Mods section reads:version: 1,summary,modVersion,guard,calls(a number),blocked,lastDenied(only once the mod has refused something), plusupdatedMs/startedMs. The scaffold'stests/status.test.tsasserts that shape; the steps are inskills/create-mod/SKILL.md. - Test:
claude plugin validate plugins/ruflo-plugin-creator,claude plugin test plugins/ruflo-plugin-creator,bash plugins/ruflo-plugin-creator/scripts/smoke.sh. The runner sweeps intemplates/mod/tests(the scaffold's own test, which only passes against the scaffold:claude plugin test plugins/ruflo-plugin-creator/templates/mod), so expect that one file to fail from the plugin root.
