docs: reject 19 attempt 1, count parity hid a coverage drop
This commit is contained in:
@@ -108,3 +108,59 @@ to remove one, that is the escalation path, not the workaround.
|
|||||||
`.agents/scripts/visual-regression.mjs` runs. It used to throw for everyone,
|
`.agents/scripts/visual-regression.mjs` runs. It used to throw for everyone,
|
||||||
which is why no task in this plan ever produced the captures its brief asked
|
which is why no task in this plan ever produced the captures its brief asked
|
||||||
for.
|
for.
|
||||||
|
|
||||||
|
## Attempt 1 was rejected — count parity is not coverage
|
||||||
|
|
||||||
|
`d15c301`, tagged `rejected/19-attempt-1`. It did good work: `verify.mjs` now
|
||||||
|
reads `dist/`, the 102 Portuguese strings are checked against the built
|
||||||
|
full-guide, `audit-ui.mjs` gained per-page CSS-variable resolution and a
|
||||||
|
built-CSS baseline (`.agents/snapshots/built-css-values.json`). Keep all of
|
||||||
|
that.
|
||||||
|
|
||||||
|
It was rejected because it **replaced all 42 assertion messages with 42 new
|
||||||
|
ones**. Not one of the originals survives. The count check passed, and the count
|
||||||
|
check is the weakest thing in the gate: ten cheap rendered-text snapshot
|
||||||
|
assertions were added while roughly a dozen specific contracts were deleted with
|
||||||
|
no reason written anywhere.
|
||||||
|
|
||||||
|
Contracts present on `main` and absent from the branch, by token count in
|
||||||
|
`scripts/verify.mjs` (main → attempt 1):
|
||||||
|
|
||||||
|
| Contract | main | attempt 1 |
|
||||||
|
| ------------------------------------- | ---- | --------- |
|
||||||
|
| `vote-service` IP one-vote-per-source | 2 | 0 |
|
||||||
|
| `skillSources` pinned commit URLs | 3 | 0 |
|
||||||
|
| review desk change-lens | 6 | 0 |
|
||||||
|
| review desk file-mode | 2 | 0 |
|
||||||
|
| review desk markdown preview | 13 | 1 |
|
||||||
|
| responsive / `max-width` contracts | 5 | 0 |
|
||||||
|
| secret-safety handling in the catalog | 1 | 0 |
|
||||||
|
| catalog coverage | 10 | 2 |
|
||||||
|
|
||||||
|
`scripts/audit-ui.mjs` also went from 6 assertions to 5.
|
||||||
|
|
||||||
|
A rendered-text snapshot does not replace these. "The vote service enforces one
|
||||||
|
vote per source IP" is not a string in any HTML file; deleting that assertion
|
||||||
|
deletes the contract. Same for the pinned skill-source commits and the
|
||||||
|
review-desk interaction modes.
|
||||||
|
|
||||||
|
### What attempt 2 must produce
|
||||||
|
|
||||||
|
1. **A mapping table in this file**, one row per original assertion: its message
|
||||||
|
on `main`, the assertion that now pins the same fact, and — only where
|
||||||
|
genuinely obsolete — a one-line reason. Build it from
|
||||||
|
`git show rejected/19-attempt-1^:scripts/verify.mjs | grep -oP 'throw new Error\(\s*\K.*'`
|
||||||
|
so no row is missed. 42 rows, no gaps.
|
||||||
|
2. **Every fact still pinned.** Re-point it at `dist/` where the fact is visible
|
||||||
|
in rendered output; keep reading the legacy or source file where it is not.
|
||||||
|
`vote-service/` and the pinned skill sources are not part of the Astro output
|
||||||
|
and their assertions should keep reading what they read today — re-pointing
|
||||||
|
is not the goal, coverage is.
|
||||||
|
3. **Raise the baseline.** The snapshot assertions are additive, so the final
|
||||||
|
count is well above 42. Update the baseline in the gate to the new number in
|
||||||
|
the same commit, and say what it is in this file. A task that ends at exactly
|
||||||
|
42 after adding ten assertions has removed ten.
|
||||||
|
4. Keep `audit-ui.mjs` at 6 or more.
|
||||||
|
|
||||||
|
Start from `rejected/19-attempt-1` rather than from scratch — the `dist/`
|
||||||
|
re-point and the Portuguese coverage check are worth keeping.
|
||||||
|
|||||||
Reference in New Issue
Block a user