# Seed

> 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).

- Skill: `nagisanzenin/seed` (Agent Skill)
- Install (CLI): `npx skillmds@latest add nagisanzenin/seed`
- Raw SKILL.md: https://api.skillmd.com/api/skills/nagisanzenin/seed/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: nagisanzenin (https://skillmd.com/u/nagisanzenin)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/nagisanzenin/seed

---


# /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)

```bash
# Resolve the plugin root: platform env var first, else landmark.
ROOT="${CLAUDE_PLUGIN_ROOT:-${CODEX_PLUGIN_ROOT:-${OPENCODE_PLUGIN_ROOT:-${SEED_PROTOCOL_ROOT:-}}}}"
# Unset (some platforms set no root var)? Landmark: from this SKILL.md's real path
# (readlink -f through any symlink), walk up to the directory containing
# .claude-plugin/plugin.json — that directory is $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)

```markdown
## <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)

1. **Judgments are enums, not prose.** Gate verdicts come from the fixed vocabularies
   in DOCTRINE.md. Prose explains; enums decide.
2. **Judge mechanisms, not intentions.** Every scheme describes itself as a gift.
3. **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.
4. **Always breed the honest twin.** A REFUSE without an attempted honest twin is
   half a job.
5. **Real choices go through the platform's native picker**, recommended option first.

