Version: 0.2.0
To load this plugin from a local directory during development:
-
Open a Claude Code session.
-
Load the plugin from this directory:
claude --plugin-dir ./plugins/controlflow-claude-code
-
Verify it loaded by invoking a skill:
/controlflow-claude-code:controlflow-plan
The repo-root .claude-plugin/marketplace.json registers this plugin for a local
marketplace at version 0.2.0. To install it via the marketplace (instead of the
--plugin-dir dev workflow above):
-
Register the repo as a marketplace (run from repo root):
claude plugin marketplace add ./ --scope user
--scope userinstalls globally into~/.claude(available in every project). Use--scope projectto scope it to the current project only, or--scope localfor a one-off local registration. The marketplace name iscontrolflow-marketplace(defined in.claude-plugin/marketplace.json). -
Install the plugin (default scope is
user= global in~/.claude):claude plugin install controlflow-claude-code@controlflow-marketplace
-
Verify it is installed and enabled:
claude plugin list
After install, the three skills are available in every session as
/controlflow-claude-code:controlflow-plan,
/controlflow-claude-code:controlflow-verify, and
/controlflow-claude-code:controlflow-review (no restart needed for a new session).
To update after pulling repo changes, re-run claude plugin install ... (marketplace
reads the current working tree). To remove: claude plugin uninstall controlflow-claude-code@controlflow-marketplace.
JSON manifest parse check (run from repo root):
powershell -Command "Get-Content plugins/controlflow-claude-code/.claude-plugin/plugin.json | ConvertFrom-Json"Skill frontmatter check (run from repo root):
powershell -Command "Get-ChildItem plugins/controlflow-claude-code/skills -Recurse -Filter SKILL.md | ForEach-Object { $content = Get-Content $_ -Raw; if ($content -notmatch 'name:' -or $content -notmatch 'description:') { throw ('Missing required frontmatter in: ' + $_.FullName) } }"There are no plugin agents in 0.2.0 (verification runs inline), so there is no
agents/ directory and no agent-frontmatter check.
Claude Code native validation (requires claude CLI):
cd plugins/controlflow-claude-code && claude plugin validateSkills are invoked using the namespaced slash syntax:
/controlflow-claude-code:{skill-name}
The three skills:
/controlflow-claude-code:controlflow-plan # generate a plan in the shared ControlFlow format
/controlflow-claude-code:controlflow-verify # inline adversarial plan verification (zero subagents)
/controlflow-claude-code:controlflow-review # evidence-backed review, layered over native /code-review
Typical MEDIUM/LARGE flow (routing lives in the repo CLAUDE.md):
/controlflow-claude-code:controlflow-plan # plan -> plans/<task-slug>-plan.md
/controlflow-claude-code:controlflow-verify # verdict -> plans/artifacts/<task-slug>/verify-verdict.md
# ... implement ...
/controlflow-claude-code:controlflow-review # review the diff against the plan
controlflow-verify writes a single combined verdict to
plans/artifacts/{task-slug}/verify-verdict.md (structural audit + mirage findings +
executability verdict + overall APPROVED/NEEDS_REVISION/REJECTED). There are no separate
per-verifier report templates in 0.2.0.
The canonical repo verification command (runs the full offline eval suite, which includes the CLAUDE.md drift anchors and plugin manifest parity):
cd evals && npm test