01

Ailment checker

Paste the output of any vant CLI command and get back the known-issue rows it matches: what it is, how bad it is, where it is tracked. The paste never leaves your browser: the check runs client-side against a static registry, no daemon, no network.

Run the check

CLI → copy → paste → read the receipt rows. Severity ranked: actionable first, benign last. Copy the receipt and it is agent-legible as plain text — paste it back into chat, a lesson, or an issue.

Loading the checker…

The interactive paste box needs JavaScript. The full known-rows table is below this card, readable without it — and agents can skip the browser entirely: GET /api/ailments/check?q=<your paste> on this site runs the same matcher on the edge and answers JSON.

02

The known rows

The registry is data, not code (6 rows, version 2): every row carries its regex, its severity, its evidence samples, and its issue refs. The gate suite (web/home/test/ailments.test.mjs) pins every sample against its own regex before build, so the table below cannot document a pattern it does not match.

How to read a tier:

IDRowTierWhat it meansRefs
AIL-2state.json schema fault (corrupt content)Actionablestate.json exists but is unreadable or wrong-typed (truncated write, hand edit, partial file). This is a REAL fault and the runtime refuses loudly by design — restore the file from a backup, or remove it so a fresh default can be seeded.
INSIDE the refusals-are-loud fail-closed chain: the runtime never half-writes state.
—
AIL-4Starter brain seeded without askingNuisanceA first `vant start` planted a starter brain (identity, goals, lessons, start) into models/private/<brain>/ of whatever directory you were standing in — no consent, location, or name ask. Nothing is broken and the files are yours to edit or delete; the consent ask is tracked at the linked issue.
Surprise write, not corruption: delete the files or keep them — vant never re-seeds over an existing brain.
#257
AIL-6Sandbox not configuredInformationalNo sandbox capability policy is configured, so reads/writes allow by default. Convenience posture, not a fault: configure the sandbox in config to enforce the fail-closed capability chain.
Fires once per process while boot configures capabilities.
—
AIL-7Install-state decodeInformationalDecode of the install-state line on start/onboard: 🌱 fresh = no brain seeded yet, ⏳ legacy = pre-multi-brain layout detected (migrate runs), 🧠 current = multi-brain layout healthy. All three are normal.—
AIL-8Bare stack trace, no named reason-codeActionableA crash reached the surface as a bare stack trace with no named reason code. That violates the 0-1-2 exit contract under the honest-refusal law and is worth filing as a bug with the pasted trace.
This checker RETURNS for it because the honest-boot contract says surfacing should be named, not raw.
—
AIL-9Starter brain seed skippedBenignSeeding is a convenience, never a hard failure: an existing brain was found (existing-wins), so the seed refused and moved on. Normal.—
03

The honest ceiling

What this is

A known-issue index for vant CLI output: pattern → meaning → tier → refs. The same matcher the CI gates pin, the page island runs, and the edge door serves.

What this is NOT

Not a doctor. A clean paste means “nothing here is in the index”, not “your install is healthy”. Output still looks wrong? File it with the paste attached.

New issue →

Extending the registry

Rows live in src/ailments/ailments.json as pure data. Fix a row’s ailment and the row retires to fixed in vX.YZ — visible history beats silent deletion. Rows extend without touching the matcher.