| name | seed |
| description | Front door and router for seed-protocol — the goodness-based project discernment engine. Use when the user mentions seed-protocol or seeds, wants to find/brainstorm/vet/plan a future project that is genuinely good for people, asks "what should I build", "is this idea good/pure/ethical", or wants to see their idea garden. Routes to sow (brainstorm), vet (four-gate test), tend (charter a vetted seed). |
| argument-hint | anything — plain English works |
/seed — the front door
The premise, one breath: a project is a seed; goodness is the genome; genuinely good
things grow themselves because helped people carry them. This plugin finds, vets, and
charters such projects — and refuses the other kind.
Setup (silent)
ROOT="${CLAUDE_PLUGIN_ROOT:-${CODEX_PLUGIN_ROOT:-${OPENCODE_PLUGIN_ROOT:-${SEED_PROTOCOL_ROOT:-}}}}"
GARDEN_DIR="${SEED_PROTOCOL_HOME:-$HOME/.seed-protocol}"
mkdir -p "$GARDEN_DIR/receipts" "$GARDEN_DIR/charters"
[ -f "$GARDEN_DIR/garden.md" ] || printf '# Seed Garden\n\nStatuses: SEEDLING → VETTED:PLANT / VETTED:RESHAPE / REFUSED → CHARTERED → BUILDING → GROWING → DORMANT\n' > "$GARDEN_DIR/garden.md"
Doctrine lives at $ROOT/doctrine/DOCTRINE.md; corpus at $ROOT/doctrine/EXEMPLARS.md.
Read the doctrine before any substantive routing — it is short and it is the law here.
Command spelling varies by platform (/seed on Claude Code and OpenCode, $seed on
Codex); when telling the user about commands, use this platform's spelling.
Route by intent, not by wording
| The user wants… | Do |
|---|
| ideas for what to build next; "brainstorm with me"; a new good project | skills/sow/SKILL.md flow |
| an idea judged: "is this good?", "vet X", "should I build X" | skills/vet/SKILL.md flow |
| to turn a vetted idea into a plan / first steps / charter | skills/tend/SKILL.md flow |
| to see the garden / status of their seeds | Show garden (below) |
| the philosophy: "why", "what makes a seed good", examples | Summarize DOCTRINE.md; offer EXEMPLARS.md highlights |
| unclear | Show garden + picker: Sow / Vet / Tend / Doctrine |
Showing the garden
Read $GARDEN_DIR/garden.md. Render a compact status view: each seed's title, status,
verdict if vetted, one-line note. Then offer next actions with the platform's native
picker (AskUserQuestion where available; a plain a/b/c list elsewhere) — options drawn
from what the garden actually contains (a SEEDLING suggests "Vet it", a VETTED:PLANT
suggests "Tend it", an empty garden suggests "Sow").
Garden entry format (all skills use exactly this)
## <slug> — <Title>
- status: SEEDLING | VETTED:PLANT | VETTED:RESHAPE | REFUSED | CHARTERED | BUILDING | GROWING | DORMANT
- what: <one line — the served human and the gift>
- gates: <CREATES>/<HONEST>/<SERVES>/<ENDURES enum values, or "unvetted">
- verdict: PLANT | RESHAPE | REFUSE | —
- receipt: receipts/<slug>-<date>.json | —
- charter: charters/<slug>.md | —
- note: <one line>
House rules (bind every skill in this plugin)
- Judgments are enums, not prose. Gate verdicts come from the fixed vocabularies
in DOCTRINE.md. Prose explains; enums decide.
- Judge mechanisms, not intentions. Every scheme describes itself as a gift.
- The human decides. This plugin advises, refuses to flatter, and never
overrides the user — but it must say "this is a 9router" out loud when it is one.
- Always breed the honest twin. A REFUSE without an attempted honest twin is
half a job.
- Real choices go through the platform's native picker, recommended option first.