You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3adfa2d
Browse filesBrowse the repository at this point in the historyBrowse files
test(cli): two source-text assertions become a parse and a consumer call
Both were flagged in the FR-043 review as asserting over file CONTENT rather than
behaviour. Neither was producing a wrong answer today; both were one generator
change away from producing one quietly.
**`library-manifest-resolved`** proved "every layer's ref is embedded in EVERY
port" with `text.includes(`"${ref}"`)` over the five generated embeds. That check
is not currently wrong — every payload escapes its own quotes, so a ref named in
an embedded comment reads as `\"ai/db\"` and the bare `"ai/db"` occurs exactly
once, as the key. It is fragile rather than broken: it cannot see an EXTRA key,
it cannot tell the ref record from the manifest record the same file also
carries, and it holds only while the generator keeps escaping payloads the way it
does now.
Keys are now extracted per port by their POSITION — line-initial, or following
`.put(` — and compared as SETS against what the manifests declare, in both
records and both directions. Set equality is also what proves the extractor is
not matching nothing, which is how a containment check of this shape stops
gating. Four synthetic fixtures pin the distinction, including the unescaped case
a change to the generator's string handling would emit, where a substring check
WOULD report a payload mention as a key.
**`catalog-declarations-resolved`** asserted each reference template contains a
`// use-when:` line. Present and reported are different claims: `headerFacet`
takes continuation lines, stops at the next facet, and returns undefined for an
empty body — so a marker with nothing after it satisfies the substring and still
shows nothing in `meta gen --list`. It now calls `buildCatalogListing()` and
asserts the facet arrives on the row a reader sees, across all 10 ejectable
rows, with a count guard so an empty list cannot pass.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011cQxyVuTkdPmAduLiedNEg
0 commit comments