- 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`:
```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`.
GitHub에서 보기