From mycelium
Aggregates feedback signals across Mycelium loops: health, trajectory, overdue checks, regression warnings, and Goodhart violations. Run periodically or when something feels off.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mycelium:feedback-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Single-place health check across all Mycelium feedback loops. Run periodically or when something feels off.
Single-place health check across all Mycelium feedback loops. Run periodically or when something feels off.
Hard rule. Before issuing Write or Edit against any .claude/canvas/*.yml, use the Read tool on that file in this session. Claude Code's Read-before-Write check requires the Read tool specifically — cat/head/grep via Bash do NOT satisfy it.
Edit vs Write — different cost profiles (verified 2026-05-14):
Edit (exact-string replacement): Read with limit: 1 satisfies the check at ~50 tokens. State-tracking is per-file, not per-byte — subsequent Edit calls work anywhere in the file. Use this for partial updates against large canvas files (e.g., purpose.yml at 800+ lines).Write (full replacement): do a full Read first. Write obliterates the file; you should see what you're about to replace. The limit:1 shortcut is not appropriate here.ID-bearing entries — scan the ID space before assigning (added 2026-05-15, v0.23.19): When adding a new component, opportunity, solution, or any other ID-bearing entry to a canvas file, run a Bash grep first to confirm the next ID in your prefix sequence is actually free:
grep "^ - id: <prefix>-" .claude/canvas/<file>.yml | sort -u
Replace <prefix> with the canvas's ID prefix (comp for landscape, opp for opportunities, sol for solutions, ht for human-tasks, etc.). Then pick the next free integer. validate_canvas.py has a duplicate-ID check (lines 230-239) that catches the failure on CI, but a duplicate can persist in the working tree for days if CI isn't run between edit and discovery — see roadmap-repo corrections.md 2026-05-15 "Duplicate canvas ID created in landscape.yml" for the worked example.
Original failure mode: anti-pattern #7 instance #5, 2026-05-09 — agent conflated Bash head with the Read tool, lost ~14k tokens to a Write-fail → remedial-full-Read → re-Write loop. The limit:1 discipline (graduated 2026-05-14, v0.23.18) prevents the second-order cost where the agent correctly follows the rule but full-Reads every time. The ID-scan discipline (graduated 2026-05-15, v0.23.19) prevents the related class where the agent reads enough of the file to satisfy the Edit check but not enough to see existing ID assignments — kin to anti-pattern #8 (Stale State Read).
If this skill writes to multiple canvas files, register each one first (limit:1 for Edit-only paths; full Read for Write paths) AND ID-scan any prefix you intend to assign.
See CLAUDE.md Canvas writes — Read before Write for the canonical rule.
/mycelium:diamond-assess shows stale diamondsRead .claude/diamonds/active.yml for diamonds with state: parked (or a parked_diamonds section). For each, evaluate its resume_conditions against current canvas/world state:
/mycelium:diamond-progress to re-activate."resume_conditions recorded: flag it — a parked diamond without resume conditions is unreachable by anything but memory; prompt the user to add them or decide park → kill.This implements the surface promised in /mycelium:diamond-progress § Park ("feedback-review and diamond-assess surface parked diamonds with their resume conditions") — a promise that stood unimplemented until the 2026-06-12 gap analysis found no skill read resume_conditions. Abandonment is a non-event; nothing else surfaces this.
Read canvas trend data and check cadence:
bvssh-health.yml trend fields)dora-metrics.yml (software), content-metrics.yml (content), ai-tool-metrics.yml (ai_tool), service-metrics.yml (service).From ${CLAUDE_PLUGIN_ROOT}/engine/feedback-loops.md, check active triggers:
For each active metric, verify its counter-metric:
/mycelium:handoff to plan external conversations.## Feedback Loop Health Report
### Loop 1 (Immediate): [Healthy / Warning / Struggling]
- Reflexion avg iterations: [N]
- New corrections this period: [N] ([N] repeats of existing patterns)
- Secret detection blocks: [N]
### Loop 2 (Incremental): [Healthy / Warning / Struggling]
- Diamonds progressed this period: [N]
- Confidence trajectory: [improving / flat / declining]
- Delivery journal entries: [N]
- Retrospectives completed: [N]
### Loop 3 (Strategic): [Healthy / Warning / Overdue]
- BVSSH last checked: [date] ([days ago])
Trajectory: B[trend] V[trend] S[trend] S[trend] H[trend]
- North Star: [current] -> [target] ([trajectory])
- DORA: [classification] ([trajectory])
- Wardley map last refreshed: [date]
### Loop 4 (Transformative): [Active / Dormant]
- Last eval run: [date]
- Pass rate trend: [improving / stable / declining]
- Escape hatch uses: [N] in last quarter
### Regression Warnings
- [Any active triggers from ${CLAUDE_PLUGIN_ROOT}/engine/feedback-loops.md]
### Goodhart's Law Check
- [Any metric/counter-metric divergences]
### Recommended Actions
1. [Most urgent feedback loop action]
2. [Second priority]
3. [Third priority]
Update .claude/canvas/bvssh-health.yml trend fields if BVSSH was assessed.
Update .claude/canvas/dora-metrics.yml trend fields if DORA was assessed.
Log review in .claude/memory/product-journal.md.
npx claudepluginhub haabe/mycelium --plugin myceliumEvaluates Mycelium's process effectiveness by measuring cycle velocity, discard trends, confidence calibration, gate effectiveness, and regression rate. Run quarterly or after 20 cycles.
Analyzes knowledge-system health reports, friction patterns, and derivation history to propose research-backed evolution recommendations for approval.
[ADD v0.11.0] Run a retrospective — context-aware, data-driven review with pre-populated tables