Development record
The brief's surface prose has drifted from the shipped binary in twenty-one
The brief's surface prose has drifted from the shipped binary in twenty-one
places the machine-checked layer cannot see. These are the crosscheck findings
that predate v0.7.0, kept apart from the fifteen this release introduced
([[iss-2609011424116881]]). All are recorded with evidence in the v0.7.0 receipt
at
.abcd/work/reviews/4b4076a10f89d4d02da359274dad8994e30cae0e/iss35-brief-surface-crosscheck.json,
dispositioned deferred-pre-existing.
The shape of it
The machine-checked layer is clean. .abcd/development/release/surface.json
against the live binary is byte-exact across 82 command nodes and 109 flags with
zero drift, and every ## Sub-verbs table in every chapter verified correct.
Every finding here is in prose that surface_coverage does not scan, which is
exactly the gap 04-surfaces/README.md:33 names when it says prose is not
machine-scanned and review must cover it.
That is the finding behind the findings: the parts of the brief a rule can check are right, and the parts only a reader can check have rotted. Counting them is less useful than noticing they cluster in flag enumerations, criteria lists, templates and cross-surface counts, none of which any gate reads.
Three that actively mislead
Following the brief as written produces something the binary refuses.
04-surfaces/06-capture.md:33,35,115,116documentscapture promoteandcapture resolvewithout--grounds, which is REQUIRED on both. The chapter's own acceptance criteria give invocations that exit non-zero.04-surfaces/05-intent.md:216-269gives a canonical intent template with no## Groundssection. The shippedintent readygate requires one, so an intent authored to the brief's own template cannot pass it.04-surfaces/05-intent.md:3,200names six readiness criteria; seven ship, and the missing one isgrounds, which is the check that actually fails in practice.
Note the pattern: all three are the same --grounds and ## Grounds work landing
in the binary without landing in the chapters that describe it.
The rest
05-intent.md:3,200callsintent readyread-only;--groundsrecords the conjecture, so it writes.06-capture.md:28omits--production-mode(ships on create, promote, resolve and wontfix);:35omits--shipped-in;:51-81asserts its frontmatter block mirrors the schema exactly while omittingoriginandproduction_mode.01-ahoy.md:288-296omits--attributionand theprepare-commit-msghook it installs;:266-275omits that same shipped default template;:36-39,433-440omits the provenance recorduninstallremoves and its--bin-dirflag.02-disembark.md:28-34presents sub-verb arguments as the shipped surface and names no flags;--include-ignoredships onpack,probeandplan.04-launch.md:22says the plain-text--dry-runrender prints only five things; it also prints areceipts:line.19-identity.md:35quotes a Tagline that does not match abcd's own canonical identity block. Title and Pitch match byte-for-byte; the Tagline does not. This is the drift classiss-143and theidentity-positioningrule exist to catch, and the brief chapter is not a registered surface in.abcd/positioning.json, so nothing gates it.22-site.md:6-7,54,97states the bare form is strictly read-only andbuildis the render;site checkrenders when the output directory holds noindex.html, a write path the chapter never records. The plugin page documents it; the chapter does not.05-internals/03-configuration.md:361names a fictionalahoy destroysub-verb.06-delivery/01-build-sequence.md:29namesskills/as a shipped markdown surface directory; it does not exist, as three other locations correctly say.04-surfaces/README.md:12,16,17index rows omitcapture disposition, thedocs citesub-tree, andhistory drain/history staged. All three are correct in their own chapters; only the index is stale.17-guard.md:141-143citesiss-315as tracking an unimplemented design target;iss-315is resolved and explicitly scopes that work out, so no open issue tracks it.internal/core/guard/payload.go:191makes the same citation.14-ingest.md:10-11says no Go verb backs ingest. True at top level, butreading ingestandmemory ingestnow exist as binary sub-verbs, so the phrase is falsifiable as written.
Grounds
- deferred: not fixed in the v0.7.0 cut, because none of it is caused by or blocking this release and the cut was already two rounds deep in gate corrections; deferring was the maintainer's recorded decision at PROMOTE
- declined: duplicate of iss-2609011424033603: the same twenty-one pre-existing findings captured twice from one receipt; this record carries the fuller body, and the resolution with fixing-commit provenance is recorded on the earlier id
Worth deciding, not just fixing
Three of these are index or enumeration rows that are correct in one place and stale in another, and two chapters maintain the same bare-status-board list independently. Fixing the instances leaves the duplication that produced them. Whether any of these enumerations should be derived rather than restated is the question underneath the list, and it is the same question [[iss-2609011423385217]] raises about the release-gate manifest's pinned content list.
Frontmatter
| id | iss-2609011424113262 |
|---|---|
| type | issue |
| lifecycle | wontfix |
| severity | major |
.abcd/work/issues/wontfix/iss-2609011424113262-the-brief-s-surface-prose-has-drifted.md
open on GitHub ↗ · commit history ↗
mentions5
- iss-143tagline three-variant drift: the repo runs three different self-descriptions — README strapline (an opinionated, intent-driven development framework for product thinkers), plugin.json description (host-agnostic configuration layer for development ... usable as a plugin in compatible agent harnesses), and AGENTS.md (a host-agnostic configuration layer for development). The drift is itself the finding: one-canonical-primitive wants a single recorded tagline (a DECISIONS.md line, or the brief's product chapter as the home) with per-surface renderings derived from it. Adopting any new wording without that consolidation just mints a fourth variant. Surfaced by the 2026-07-27 tagline assessment. Detector: a positioning-currency check that the three surfaces render from one recorded home.
- iss-315guard CHANGELOG code comment and test claim python -c and perl -e already get a loud warn but the shipped behaviour is a silent allow and the pinning test is vacuous
- iss-2609011423385217The release-gate manifest's pinned inputs are stale and under-scope the record
- iss-2609011424033603the brief's surface prose has drifted from the shipped binary in twenty-one places the machine-checked layer cannot see
- iss-2609011424116881v0.7.0 ships a verb and four agents the brief does not document anywhere. These