oxidecomputer / oxidecomputer/prettier-plugin-asciidoc
Parity blanket coverage tests one family at a time, so a base spanning two recorded-fact landings cannot be declared
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
What this is
blanketCoverage in scripts/parity-keys.ts tests each differing case against ONE family's keys at a time. When the base spans two or more landings that each added a recorded-fact field to prose nodes, every prose case carries at least two of the fields, stripping any one family's keys leaves another standing, and the case is covered by nothing. No trailer an author can write fixes it.
Measured (Sep 7, the #292 lane)
bun run parity -- --base 205a535a (the commit before the #240 push) on main with the whitespace family declared: 1020 of 1620 cases differ, 0 covered by whitespace alone. Five fields landed in that range (whitespace, marks, headDrain, reading, detachedTail). Only 9 cases (marks-only) are covered today.
Over the whole #240 push (205a535a..58c0b0b0): 1011 differ; 978 have identical bytes and differ in whitespace alone; 33 moved formatted bytes with no per-id declaration, and none can be added now (both commits are pushed). Their record is the two commit bodies.
Why it matters more after #292
#292 makes the differential base the previous push tip, so a push carrying two field-adding commits is exactly the range that fails, with no declaration possible.
The change
Cover a case under the UNION of the families bare-declared in the range (strip every declared family's keys, then compare), rather than one family at a time. State in docs/harnesses.md that a range with two schema landings needs both trailers present in the range.
Gate
A fixture with two families declared in one range and a case carrying both fields passes; the same case with only one declared still fails; the 205a535a measurement above passes once every family in the range is declared (or the doc says why a pre-existing range stays undeclarable).
Related
#292, #240, #241.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in scripts/parity-keys.ts and run bun run parity -- --base 205a535a to reproduce the coverage result. Trace how declared families are stripped, then use a fixture with two declared families and a case carrying both fields to verify union coverage, including the one-family failure. Update docs/harnesses.md to explain that both trailers are required for a range with two schema landings.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- bun, typescript
- Domain
- documentation, testing-qa, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 74/100