Part of #1412 (Track B).
Context
#1411 added error-envelope recovery quizzes (device-in-use, stale ref, ambiguous match, app-not-installed) with renderer-pinned samples. The case list is hand-picked; retriableForErrorCode and defaultHintForCode in src/kernel/errors.ts are the natural enumerators (what-enumerates-N).
Deliverables
- A unit-lane gate in scripts/tests/: every code classified by
retriableForErrorCode has a bench recovery-quiz case in scripts/help-conformance-cases.mjs (or a named waiver); every AppErrorCode resolves a hint through defaultHintForCode or carries an explicit no-hint waiver.
- Any new quiz samples follow the pinning rule: quoted output lives in scripts/help-conformance-sample-outputs.mjs and is rebuilt through the real producer in help-conformance-sample-outputs.test.ts. Never hand-transcribe CLI output.
Acceptance
- Adding a new retriable code without a quiz or waiver fails deterministically.
- Waivers fail when stale (code removed or quiz added), same pattern as the help-topic gate.
Part of #1412 (Track B).
Context
#1411 added error-envelope recovery quizzes (device-in-use, stale ref, ambiguous match, app-not-installed) with renderer-pinned samples. The case list is hand-picked;
retriableForErrorCodeanddefaultHintForCodein src/kernel/errors.ts are the natural enumerators (what-enumerates-N).Deliverables
retriableForErrorCodehas a bench recovery-quiz case in scripts/help-conformance-cases.mjs (or a named waiver); everyAppErrorCoderesolves a hint throughdefaultHintForCodeor carries an explicit no-hint waiver.Acceptance