* test(#4546): failing-first tests for deferred uat follow-ups
* chore(#4546): regenerate derived lists for the deferred-promotion suite
The new verify-work-deferred-promotion suite changes the tests/ tree the
macOS conformance-tier classifier tracks and is a novel file under the
verify prefix in the test-file-count ratchet; both derived lists are
regenerated/registered per their own guards' instructions.
* fix(#4546): deferred uat follow-ups no longer block, and get promoted
Two halves of one disconnect (#1921's deferral design vs the completion
predicate):
- uat-predicate: the item parser now captures the block's reason: line
alongside result:. A skipped item whose reason carries the
verify-work writer's 'Deferred follow-up:' template is a deliberate
deferral -- non-blocking, flagged deferred in the report. Quote-
tolerant (the writer wraps the value) and case-insensitive. A
reasonless skip, a non-deferral reason, pending/blocked/issue/
failed/missing all still block, exactly as before.
- verify-work complete_session: when the Deferred Follow-Ups section is
non-empty, offer to promote the items to a ROADMAP.md 999.x backlog
entry reusing next.md's prior_phase_completeness entry shape, with a
--files-scoped commit. Offer, not auto-mutation -- matches the
workflow's interactive convention and next.md's own prompt style.
* chore(#4546): refresh compact-content benchmark baseline
verify-work.md grew (the #4546 deferred-follow-up promotion offer in
complete_session); the registered split's token counts moved with it.
Baseline recomputed with the script's own --write.
Emitted-Drift-Ack-Growth: verify-work.md — complete_session gained the deferred-follow-up promotion offer (detection, [P]/[K] choice, the next.md-shaped 999.x entry template, and the --files-scoped ROADMAP.md commit); the growth is the new contract text, not duplication
* fix(#4546): gate/audit agreement and review fixes for deferred follow-ups
- src/uat.cts categorizeItem: a skipped item carrying the deferred
follow-up template reason now categorizes as 'deferred' (the category
already existed for deferred-items.md entries) instead of being
misfiled into the blocked families by keyword match -- the gate/audit
agreement #3078-CR expects, restored in the permissive direction the
#1921 design intends. Checked BEFORE the keyword families so '...
on the release build next version' is not build_needed.
- verify-work.md promotion step: numbering scans for the smallest free
999.n (count races + non-contiguous history), one backlog entry per
deferred follow-up, ROADMAP.md-absent behavior specified, idea text
newline-flattened, Deferred at placeholder harmonized with next.md.
- DEFERRED_REASON_RE: trust assumption documented (authoring contract,
not a security boundary; non-matching spellings block fail-closed).
- tests: the property now drives evaluateUatPassed and derives
expectations from the input spec (never restates the matcher),
includes the no-result-line branch, and pins its seed; the parity
test drops try/finally for the approved pattern, uses createTempDir,
sites its allow-test-rule marker at the suppression site, and asserts
the literal [P]/[K] choices.
* fix(#4546): close promotion-test docstring, drop fc replay-path misuse, refresh baseline
The final matrix run caught three defects in my own review-fix commit:
the parity test file's JSDoc was left unterminated (the whole file
parsed as one comment -- zero tests registered, hence the file-level
'test failed' the runner reported); fast-check's replay-path parameter
was misused as a label (invalid path at replay); and the workflow-text
ambiguity fixes re-drifted the compact-content benchmark baseline.
* docs(#4546): add Fixed changeset for deferred follow-up coverage
* docs(#4546): backfill changeset PR number
* fix(#4546): use the pattern seam escapeRegex for shape-marker matching
The hand-rolled metacharacter escape in the shape-marker assertion
tripped local/no-adhoc-regex-escape, whose named remedy this adopts.
---------
Co-authored-by: sim <sim@local>