/** * COMP006: shell-needs-reason * * Flags a `shell` step with no (or empty/blank) `reason` — the escape-hatch * discipline from epic #551 §7 and §"What chant adds": "raw `shell` without a * declared reason" gets flagged. `shell` is the deliberate escape hatch * (../../../components/verbs/shell.ts) for reaching past the capability set; * `ShellInput.reason` is already a required field on the typed * `createShellCapability` input, but a hand-authored/JSON-only component (the * contract's whole point — see component-contract.mdx's "portable, not * chant-only" framing) is not type-checked against that interface, so the raw * JSON contract's `Step` (open `additionalProperties`) does not itself * enforce it. This rule enforces the same discipline at the composition * level, for every authoring form. * * Triggers on: `{ kind: "shell", cmd: "..." }` with no `reason`, or * `reason: ""` / `reason: " "`. * OK: `{ kind: "shell", cmd: "...", reason: "no capability covers yet" }`. */ import type { ComponentCheck } from "../../component-checks.js"; export declare const comp006ShellNeedsReasonRule: ComponentCheck; //# sourceMappingURL=comp006-shell-needs-reason.d.ts.map