v1.2.0 — doctor, credential scan, session resume, workflow embedding
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 --artifactscouldrmtreea home directory: the marker check walked unbounded and met some straystate.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".
rundeleted git branches it did not create (git branch -Ddiscards unmerged commits without asking).--timeoutkilled a shell while the real muse process ran on unbounded.- An orphaned watchdog could SIGKILL a recycled PID up to
--timeoutafter its parent died. acceptcounted any passing check, so a--collect-onlygate masked a red acceptance check.- Task ids were unvalidated —
--id ../../xwrote outside the artifact root, wherestatuscould 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