Borrowing it
Nothing to install: this file belongs to Odrin/rhizome-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Odrin/rhizome-mcp/main/.github/skills/rhizome-execution-plan/SKILL.mdgit clone --depth 1 https://github.com/Odrin/rhizome-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/odrin/rhizome-mcp/rhizome-execution-plan)<a href="https://agentmods.dev/skills/odrin/rhizome-mcp/rhizome-execution-plan"><img src="https://agentmods.dev/badge/skills/odrin/rhizome-mcp/rhizome-execution-plan/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/odrin/rhizome-mcp/rhizome-execution-plan"><img src="https://agentmods.dev/badge/skills/odrin/rhizome-mcp/rhizome-execution-plan.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00125 | $0.01564 |
| Opus 5.5 | $0.00050 | $0.00626 |
| Sonnet 5.5 | $0.00025 | $0.00313 |
| Haiku 4.5 | $0.00013 | $0.00156 |
Grade A, and why
rhizome-execution-plan scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 89 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Rhizome execution plan
The tracker is the plan. The deliverable is (1) tracker state that makes the next unit of work
discoverable with one list_issues call and (2) a short printed map for the maintainer. Never
produce a long document an orchestrator is expected to load: a long plan is exactly what overflows
an orchestrator's context window.
Why this shape
An orchestrator that carries a multi-issue plan re-reads it every turn and can run out of context
mid-wave. rhizome-mcp already has the primitives to hold the plan instead: blocks
relations gate work, priority orders claimable work, is_claimable derives from both, and
get_work_context returns an issue's comments. So the plan is encoded as data, and the
orchestrator's whole instruction collapses to "take the highest-priority claimable issue and follow
its Execution notes comment".
Workflow
- Snapshot live state (never plan from memory or from an older plan; issues close between
runs). From the repository root run
python3 .github/skills/rhizome-execution-plan/scripts/plan_snapshot.py --notes(requires therhizome-mcpbinary on PATH, built from the current checkout — a stale binary fails with "database schema is newer"; rebuild withCGO_ENABLED=0 go build -o rhizome-mcp .). It prints: previous plan dates and what closed since; every non-terminal issue grouped by epic with blockers and claimability; liveblocksedges; the claimable pick order; items inreview; items lacking an Execution notes comment; and uncommitted working-tree changes (uncommitted work often belongs to an open issue and changes its route — e.g. to M). The--notesdump shows each existing note's header and a hit-windowed excerpt; when the body matters (re-planning), read it in full with the MCPget_work_contexttool (recent comments) — the read-only CLI cannot return whole comments. - Scope. Honor exclusions the maintainer named (on-hold epics stay out; mark their open
children
blockedwith a reason that says "on hold"). Epics are containers: plan their children, close or decompose the epic at the end. Items inrevieware maintainer sign-off (route M): the orchestrator's loop filtersstatus: ready, so they never enter the pick order; give them a short M note and list them in the map's Tail section. - Classify each remaining item using
references/routing.md: route (E / O / O→E / M), the pre-decisions the orchestrator must settle before briefing, exact write set, focused check command, and finish target (done, orreviewfor migrations and public contract changes). Read the owning code only as far as needed to name symbols; the note must cite real files. - Order. Respect existing
blocksedges. Add an edge for every technical dependency the notes reveal (a refactor that creates the seam a later feature needs, a conformance harness new tools must pass, a spec that must precede its implementation). Keep the graph acyclic. Then assign priorities so that, among claimable items, priority order equals the intended order:criticalfor the item that unblocks the most,highfor enabling work,mediumfor independent fixes,lowfor fillers (docs, cleanups) the orchestrator picks only when nothing else is claimable. Priority only matters among claimable items — a blockedcriticalissue is harmless because its edges gate it, so there is no need to demote and re-promote. - Encode into the tracker over MCP (
add_comment,manage_issue_relation,update_issue): one "Execution notes" comment per item usingreferences/execution-note.md; the new edges; priorities; andstatus: readyfor every planned task — including currently blocked ones, becauseis_claimablealready accounts for unresolved blockers and aready+blocked issue becomes claimable the moment its blockers close with no manual flip. Use idempotency keys (exec-notes-<date>-<ISSUE>,plan-edge-<src>-<dst>) so a rerun is safe. - Verify. Re-run the snapshot: the claimable pick order must read as the plan's first wave,
and every planned item must show a note. If the board's planning graph shows zero entry
points on a mature project, that is the graph node cap filling with terminal issues, not an
empty queue —
list_issues is_claimable:trueis the authoritative view. - Print the map using
references/plan-map.md— one line per item, grouped by wave, with route and blockers, plus release checkpoints and guardrails. Keep it under ~80 lines; the detail lives in the notes.
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 89 lines · 125 tokens per session scan A 6a8de97f2001
rhizome-execution-plan is a skill published in the GitHub repository Odrin/rhizome-mcp (1 stars, last pushed 16d ago), licensed Apache-2.0. It adds 125 tokens to every session and 1,564 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
machinist
Use Machinist to create, assign, and monitor software tasks. Use when a coding agent needs to work with Machinist, its GitHub issue workflow, intake labels, direct runs, or managed queue.
fiber-rest-api
Use when adding or changing a Go HTTP endpoint — Fiber v2 or v3 (detect which), thin handlers, central error mapping, boundary validation; the same rules apply to net/http, chi, echo or gin.
mockery-suite-tests
Use when writing Go tests that need test doubles or cover multiple cases - detect the repo's mocking approach (Mockery v3, gomock, hand-written testify mocks, fakes), table-driven cases, testify suites when the repo uses them, and real-Postgres tests for repository adapters.
go-security-pitfalls
Use when reviewing Go changes - net/http and Fiber handlers, database/sql and GORM queries, os/exec, filepath and os.Root, html/template, crypto, TLS and SSH clients, JSON binding.
go-hexagonal-architecture
Use when adding a use case, port, repository or adapter in a Go service — where each piece goes, how errors and transactions cross layers, and how to check the import direction.
sql-query-performance
Use when writing or changing a query against PostgreSQL from Go — avoiding N+1 loops, reading EXPLAIN output, indexing, and keyset pagination.