ruvnet/ruflo/tree/main/plugins/ruflo-plugin-creator
ruflo-plugin-creator
올바른 구조, MCP 도구 연결과 표준 플러그인 계약(ADR + smoke + Compatibility + namespace coordination)을 갖춘 Claude Code 플러그인을 스캐폴드하고 검증하고 게시합니다.
이 mod 소개
표준 플러그인 계약에 맞춰 Claude Code 플러그인을 스캐폴드하고 검증하고 게시합니다. 이제 관리되는 Claude Code 모드(function hooks), ADR + smoke + Compatibility + namespace coordination + MCP-tool drift warnings도 포함합니다. 모드(ADR-445)로 /creator-mod(status, 예약 이름, 플러그인 계약 검사)와 콘솔에 표시되는 상태 파일을 제공합니다.
설치
먼저 작성자의 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.