Skip to content

About

Five Claude Code plugins: house rules in one CLAUDE.md block, a ticket-to-pull-request loop, a read-only adversarial audit of finished pull requests, review passes that fix a pull request until nothing is left, and project instructions in the forms Claude Code loads, checked on every commit.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

reimagine-engine

A suite of five Claude Code plugins, built on three ideas: achieve more with less; say how, not what; take work from development to production in bulk.

  • rules: house rules as one block in your CLAUDE.md, kept current by a script, plus the Concise Plain output style.
  • loop: plan, build, review and publish a bundle of tickets as one reviewed pull request per repository, resuming on the same branch when run again.
  • audit: a read-only, adversarial audit of finished pull requests that stops at a report, with an act step for approved items.
  • gate: code-review passes over a pull request, several, or a loop manifest, fixing what each pass finds until a pass finds nothing left to fix.
  • primer: project instructions in the forms Claude Code loads, a short CLAUDE.md, path-scoped rules, nested instructions and skills, with a hook that checks every commit.

Status: all five plugins are released from main, each with its own version and tag <plugin>--v<version>. The build order is in docs/build-plan.md.

Requirements

  • Claude Code 2.1.296 or later (the version the design was checked on).
  • Node 22 or later.
  • On Windows, Git for Windows (the primer hooks and the audit scripts run under its sh).
  • For the audit's live checks, work-item validation and collision check: jq (on Windows, winget install jqlang.jq; on macOS, brew install jq, or the /usr/bin/jq that macOS 15 and later ship). Without it the audit still runs and says what it skipped.

Install

Without a GitHub SSH key on the machine, set CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1 in the environment before starting Claude Code, so the marketplace is cloned over HTTPS. Then, in Claude Code:

/plugin marketplace add vibecodedapps-official/reimagine-engine
/plugin install rules@reimagine-engine
/plugin install loop@reimagine-engine
/plugin install audit@reimagine-engine
/plugin install primer@reimagine-engine
/plugin install gate@reimagine-engine

Each plugin works alone. After installing rules, run /rules (also reachable as /rules:rules) and answer the question it asks; then pick the output style with /output-style rules:Concise Plain.

Use

  • Loop: say reimagine loop #12 and #15 or run the loop on AB#4567, plan only, or type /loop:run followed by the same words. There are no flags; the skill prints how it read your request before it does anything. The bare /loop is Claude Code's own interval skill, not this one.
  • Audit: say reimagine audit PR 123 and 124 in app, tickets AB#4567 and AB#4580, or pass the manifest a loop run wrote.
  • Gate: say reimagine gate PR 73, gate this branch or gate the manifest <path>, or type /gate followed by the same words. There are no flags.
  • primer: put <!-- primer --> on the first line of a repository's CLAUDE.md, and the drift hook checks every commit Claude Code makes there against the instruction files. Run /primer in a repository to set up, adopt or check its instruction files; it says which mode it runs in before it writes.
  • repo-docs is retired and left the catalog with the primer release: uninstall it with /plugin uninstall repo-docs@reimagine-engine, then run /primer in each repository it kept, and adopt converts the hub and its spokes in one run.

Update

From a shell:

claude plugin marketplace update reimagine-engine
claude plugin update rules@reimagine-engine
claude plugin update loop@reimagine-engine
claude plugin update audit@reimagine-engine
claude plugin update primer@reimagine-engine
claude plugin update gate@reimagine-engine

In a session, /plugin marketplace update reimagine-engine refreshes the catalog and /plugin opens the plugin manager, whose Installed tab updates a plugin; /plugin update is not a session command. An alpha install moves to 0.1.0 the same way; the alpha version sorts below it. Restart the session afterwards. When the house rules changed, a one-line notice at startup says to run /rules.

Uninstall

Run /rules --remove first if you want the block out of your CLAUDE.md; it gives back the file's original bytes.

/plugin uninstall rules@reimagine-engine
/plugin uninstall loop@reimagine-engine
/plugin uninstall audit@reimagine-engine
/plugin uninstall primer@reimagine-engine
/plugin uninstall gate@reimagine-engine

The audit keeps its run registry in the plugin data directory; delete it by hand if you want it gone.

Development

Node 22 or later, no dependencies. npm test runs the suites under tests/; npm run lint runs the repository rules in tools/lint.mjs. CI runs both on ubuntu, macOS and Windows, runs the audit's awk suites again under mawk, and validates every manifest with a pinned Claude Code version.

npm run eval runs the eval cases under tests/evals/ with the host's claude plugin eval, two runs per case with and without the plugin, locally and never in CI; it needs Claude Code with that command, a login, and git 2.31 or later, and its results land in the ignored tests/evals/results/.

The repository keeps its own CLAUDE.md as a primer hub, and .claude/settings.json declares this catalog and enables primer for sessions here, so the drift hook checks every commit. A session in a trusted folder fetches the catalog and the plugin; run claude plugin install primer@reimagine-engine --scope project once in the repository so every session, headless ones included, loads it. To leave it off on your machine, set "primer@reimagine-engine": false under enabledPlugins in .claude/settings.local.json.

Design documents, in reading order: docs/requirements.md, docs/architecture.md, docs/build-plan.md, docs/decisions.md, docs/acceptance.md.

Releases are per plugin, in this order: node tools/release.mjs <plugin> <version>, then a heading ## <plugin> <version> - <date> in CHANGELOG.md, then npm run eval with its scores recorded in docs/acceptance.md, then claude plugin tag --push plugins/<plugin>, which creates <plugin>--v<version>. Lint requires the heading only once the tag exists.

License

Apache-2.0. See LICENSE.

About

Five Claude Code plugins: house rules in one CLAUDE.md block, a ticket-to-pull-request loop, a read-only adversarial audit of finished pull requests, review passes that fix a pull request until nothing is left, and project instructions in the forms Claude Code loads, checked on every commit.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages