List-structure rendering acceptance

The approved list slice is technically complete locally on feature/markdown-list-structure. Live deployment, physical devices, full-suite verification and maintainer acceptance remain pending. No external component or wider Docs layout change was introduced.

Frozen and refreshed evidence

Source snapshotDocumentsRender errorsStandalone rendered tables
Frozen measured corpus, 483ec05bb1,4050118
Refreshed tracked corpus, 4876f23371,4110120

The frozen and refreshed summaries retain per-document source/HTML hashes, tags, errors, source candidates and report hashes without source/HTML dumps. The frozen render verifies every original source hash; later acceptance/runbook/report edits are outside these snapshots. Renderer/CSS were unchanged after the Stage 4 delivery candidate.

The nested-list audit covers all 453 original measured documents / 9,716 nested-item candidates. Actual output has balanced semantic parent/item relationships, explicit ordered-item values and maximum observed nesting depth three; adversarial fixtures separately verify eight supported levels and nine-level source recovery.

  • 447 documents: structured nested lists, no list-source regions.

  • 5 documents: structured nesting alongside unsupported source regions.

  • 1 document: source-only nested candidates (docs/runbooks/qdb_archive_import.md, containing an embedded fenced example).

  • 9 source regions across these six documents retain their complete safety-filtered source. Source indicators identify embedded fences/tables/quotes or remaining indentation/ownership ambiguity; they are nonexclusive clues, not universal parser diagnoses.

Source equality uses the canonical prose-comment boundary, with independent regression fixtures verifying comment privacy and example-byte preservation. Candidate counts are heuristic; classification does not prove all candidates are semantic nesting or that all 453 documents were visually reviewed. Representative real-guide and controlled-fixture checks establish the specific ownership behavior.

Reproduce from this cycle’s checkout with the recorded renderer (unchanged since 4876f2337; later documentation commits do not alter it):

bash
python3 scripts/markdown_metrics.py --baseline docs/plans/markdown_renderer_extension/render_current_summary.json --output /tmp/list-frozen.json
python3 -B scripts/markdown_list_corpus_audit.py --metrics /tmp/list-frozen.json --output /tmp/list-audit.json

Reader and delivery

Dynamic and generated scenarios cover desktop/390px × default/Word97/Chicago/Midnight with JavaScript disabled: ordinary Tools→Docs→guide entry, six owned procedure paragraphs, mixed ancestry, literal repeats/gaps, parent paragraphs after children, deep-list and source Tab/arrow/focus, code bytes, safe list/table destinations and no page overflow. Representative phone screenshots in all themes and desktop samples were inspected; this is not exhaustive per-document or physical-device review.

Copied-package acceptance verifies complete full/shared CLI publication, dynamic/static lists/tables/fallback parity, stale/deleted-reader refresh, injected renderer-failure 503, retention of the active published release, restoration and successful retry. Static discovery adds eight scenarios. Together, reader/discovery evidence covers 24 distinct theme/viewport scenarios.

Final catalog/reader/list/table checks pass 46/46; the complete static inventory/on-demand checks pass 2/2. Hand-counted metrics, PHP/Node/Python syntax and whitespace checks pass. These 48 focused cases and release checks are not a full-suite or production-deployment claim.