| name | vet |
| description | Deep-vet one project idea through the four gates (CREATES/HONEST/SERVES/ENDURES) with a deliberately blind vetter agent, deliberate the result with the user, deliver a PLANT/RESHAPE/REFUSE verdict, and breed the honest twin when refusing. Use when the user asks whether an idea is good/pure/ethical/worth building, says "vet this", or picks a seedling from the garden to test. |
| argument-hint | the idea, or a garden slug |
/vet — the Seed Test
Goal: one idea in, one honest verdict out — PLANT, RESHAPE, or REFUSE — with a
receipt, and an honest twin bred if the verdict isn't PLANT.
Resolve $ROOT and $GARDEN_DIR as in skills/seed/SKILL.md. Read
$ROOT/doctrine/DOCTRINE.md (the gates and vocabularies) and
$ROOT/doctrine/EXEMPLARS.md (calibration corpus).
Step 1 — Neutralize (strip the pitch)
Restate the idea as a mechanism spec with zero adjectives:
- parties: everyone the system touches — users, providers, platforms, bystanders,
the commons
- flows: value, money, data, attention — who gives what to whom
- consent: for each party bearing a cost — informed? at this scale/purpose?
- builder keeps: what the builder gets out of it
If material facts are missing, ask the user now — a vet on a vague spec is worthless.
Show the user the neutral spec in one compact block before proceeding; they must
recognize their idea in it.
Step 2 — Blind vet
The invariant: the vetter sees only the neutral mechanism spec. No authorship,
no enthusiasm, no "the user loves this", no garden history. The blindness is the
point: it is the guard against vetting-by-flattery. The mechanism enforcing it
varies by platform; the invariant never does:
- Claude Code: spawn the
seed-vetter agent (auto-delegated; fresh context).
- Codex: invoke it explicitly —
$seed-vetter, vet this mechanism spec: <spec>
(TOML port in codex/agents/; explicit invocation is Codex's model).
- Other platforms: spawn an isolated subtask/fresh context containing only
$ROOT/agents/seed-vetter.md's instructions plus the spec. If the platform has no
isolated context at all, degrade honestly: run the gates yourself in a strictly
spec-only frame and record "vetter_blindness": "degraded-inline" in the receipt.
The vetter returns strict JSON (schema in agents/seed-vetter.md).
Step 3 — Map gates → verdict (mechanical, done by you, not the agent)
creates=TRANSFERRED load-bearing → REFUSE; removable → RESHAPE
honest=DECEPTIVE → REFUSE; SHADED → RESHAPE
serves=HOLLOW → REFUSE (nothing worth a life's hours); NICE_TO_HAVE → user's call, say so plainly
endures=UNGUARDED → never blocks PLANT alone, but the charter (tend) MUST add guards
- PLANT requires:
CREATED|EXCHANGED + TRANSPARENT + SERVES
Step 4 — Deliberate with the user
Walk the gates with the agent's evidence. The user may contest a gate with facts the
spec missed — if so, amend the spec and re-run the blind vet (facts changed, so the
judgment must). Never soften an enum to be kind; kindness here is accuracy. If it is
a 9router, say "this is a 9router" and point at the corpus entry that matches.
Step 5 — Breed the honest twin (mandatory on RESHAPE/REFUSE)
Name the load-bearing impurity in one sentence. Keep the need, replace the
mechanism: propose 1–3 honest twins, rough-vet each on the spot (enums only).
A REFUSE that rescues the need into a PLANT-able twin is this skill's best outcome.
Step 6 — Receipt and garden
Write $GARDEN_DIR/receipts/<slug>-<YYYY-MM-DD>.json:
{"slug": "...", "date": "...", "spec": {...}, "gates": {...}, "verdict": "PLANT|RESHAPE|REFUSE",
"load_bearing_impurity": "... or null", "honest_twins": [...], "deliberation_notes": "..."}
Update the garden entry (status VETTED:PLANT / VETTED:RESHAPE / REFUSED, gates,
verdict, receipt path). Twins the user wants to keep get planted as new SEEDLINGs.
Close: PLANT → offer skills/tend/SKILL.md.