akw-factory-floorsfloors.akwlabs.com · ga

ADR 0013 — Declare what a skill needs, and make a degraded run say so

ga · floor-software-engineer

Decision

Declare what a skill needs, and make a degraded run say so

Why

A skill that describes its dependencies in prose branches in the reader, not in a program. Worse, the two-tier prose model means the skill silently produces a smaller, differently-grounded answer when a connector is missing and the output looks identical either way. So: declare against a closed vocabulary, decide with a pure total function, and make a degraded run owe a sentence naming what is missing and what the answer therefore does not contain. Four verdicts rather than three, because unknown is not absent -- fold unknown into absent and every skill refuses on a session that never probed; fold it into present and the silent degradation returns wearing a green verdict.

Measured

92 skills on the populated floors. Case-insensitive grep for integration names makes the repository's most-mentioned integration outreach at 15 hits, all of them the English noun; box gets 11, mostly Box plot. 15 skills carry the ALWAYS/SUPERCHARGED box in prose. The tier is upstream's, not ours: academy.claude.com badges each connector required-or-Optional, and joining name to badge across its 57 Connect-your-tools pages gives Google Drive 24 required against 11 optional, Slack 18 against 3, GitHub 6 against 4. First real run found two bugs in the implementation, both wrong in the safe-looking direction.

Inputs and outputs

This decision declares none. Every name in this section, when present, resolves against the capability vocabulary or the floor registry -- a typo fails the generator rather than rendering.

Where it is

Floor floor-software-engineer
Stage ga
Pull request akwlabs-ai/akw-factory-floors#7
Routed 2026-09-02
Id 9a3fff4e1fad5e6e