Skip to content

v1.2.0 — doctor, credential scan, session resume, workflow embedding

Choose a tag to compare

@jellologic jellologic released this 22 Sep 19:24
· 74 commits to main since this release

muse types, Claude judges. Delegate bulk coding work to Muse Code workers in isolated git worktrees, each supervised by a Claude agent that runs your acceptance check itself and revises until the work is right.

Highlights

🩺 /muse:doctor

Tells you whether this machine can delegate and what it would actually use — muse version, credentials (existence only, never contents), catalog freshness, the model that resolves, your repo's git state, worktree-root writability. Three severities, a fix on every failing line, non-zero exit when blocking.

🔐 It refuses to send your credentials

Before spawning a worker, run scans the worktree — after seeding, so it sees the .env you asked it to copy — and refuses on a structurally unmistakable credential: a PEM private-key block, an AWS key id, a GitHub/Slack/Stripe/Anthropic-format token. Contributor-tier content may be used for training, and that is not undoable. Credential-shaped assignments warn rather than block, so the plugin stays usable on repos with test fixtures. Findings record file, line and kind — never the matched text.

🔁 Rounds share a muse session

A revision is now a genuine follow-up: the worker still has its brief, the files it read and its own reasoning, so feedback can say "the assertion on line 12 is wrong" without restating the task. When a session cannot be resumed, the round re-sends the brief and reports resumed: false rather than quietly losing the context.

🧩 Embed muse in your own workflow

muse delegation can be one stage of a Claude Code workflow you are writing, not just the shipped fan-out. See "Embedding muse in your own workflow" in references/workflow.md.

Fixed — found by running it, not reading it

  • cleanup --artifacts could rmtree a home directory: the marker check walked unbounded and met some stray state.json. Now bounded, plus an outright refusal for home, filesystem root, repo root, and cwd/ancestors.
  • A failed harvest overwrote good patches with empty files — git's exit status was ignored, so a failure was presented as "the worker decided nothing needed doing".
  • run deleted git branches it did not create (git branch -D discards unmerged commits without asking).
  • --timeout killed a shell while the real muse process ran on unbounded.
  • An orphaned watchdog could SIGKILL a recycled PID up to --timeout after its parent died.
  • accept counted any passing check, so a --collect-only gate masked a red acceptance check.
  • Task ids were unvalidated — --id ../../x wrote outside the artifact root, where status could not see it.

Verified

Full live suite 130 passed, 0 failed. Offline suite green on Python 3.9 / 3.11 / 3.13 in CI. Every guard is negative-controlled — broken on purpose and confirmed to go red. /muse:delegate and /muse:fleet exercised as real commands in fresh sessions, with the resulting patches applied and tested independently.

Install

/plugin marketplace add jellologic/claude-code-muse
/plugin install muse@claude-code-muse

Contributing — including AI agents

🤖 Autonomous agent? Start with AGENTS.md — a verified state in 60 seconds with no credentials, where to find work, and the five rules that decide whether a PR merges.

Open issues are labelled good first issue, help wanted and agent-friendly — each with a runnable acceptance check already named.

Full changelog: https://github.com/jellologic/claude-code-muse/blob/main/CHANGELOG.md