Development record
2026-07-11 — iss-35's brief↔surface cross-check is **bidirectional, but only
2026-07-11 — iss-35's brief↔surface cross-check is bidirectional, but only
the structural half is deterministically lintable: Direction B (every
commands/+skills/ entry has a brief home) is a coverage lint like
directory_coverage; Direction A (brief claims match binary behaviour —
flags, exit codes, schema fields, counts) is irreducibly semantic and stays an
LLM/agent job (encoding binary facts into the linter just moves the drift).
So "graduate the detector to a record-lint rule" is a reshaping (extract the
deterministic half; keep the semantic half as a periodic/agent check), not a
port. The graduation is a design gate held for maintainer sign-off — options in
.abcd/development/plans/2026-07-11-iss35-record-lint-graduation.md (recommend
Option A, structural surface_coverage rule) — and it is blocked until the
docs/history surface-taxonomy adjudication is decided (a coverage rule fires on
the three chapterless shipped verbs the moment it is armed).
Frontmatter
| id | dcn-2607110000000001 |
|---|---|
| type | decision |
| date | 2026-07-11 |
.abcd/work/decisions/dcn-2607110000000001-iss-35-s-brief-surface-cross-check-is.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-35brief-vs-shipped-surface reconciliation: 05-internals/08-skills.md claims abcd ships zero user-facing skills and six top-level commands while 04-surfaces/README.md itself tables nine and /abcd:consult and /abcd:ingest are shipped; the shipped skills violate the brief criterion that any artefact mutation is a command, not a skill; the skills/ layout described (abcd-ahoy, commit-attribution, secrets-and-pii) is fictional vs the real consult/ and ingest/; the implemented, user-reachable abcd docs lint and abcd history verbs have no home in 04-surfaces at all; the operator-internal paragraph contradicts the commands/ directory that exists. Detector (per spec-moves-with-the-surface): a record-lint cross-check that every entry under commands/ and skills/ resolves to a brief surface row, and every brief surface row resolves to a shipped or explicitly staged surface. Acceptance corpus: each falsified claim above — the check fails on all of them today. Fix amends the criterion or the surface in one change, never silently.