# Source-level diagnosis

Inspected 2026-10-20 Asia/Shanghai. Installed Python-Markdown 3.10.2 and markdown-it-py 4.0.0.

This file records installed code, not an assertion that remote tag pages were fetched successfully. The attempted Python-Markdown GitHub tag pages were unavailable through the web tool.

## Python-Markdown block processor
Installed path: .venv/lib/python3.11/site-packages/markdown/blockprocessors.py
SHA-256: 928639aeaf038b1cc108772abaf649a7ac76258c811a3af0c4c58d66177a0f65

## Python-Markdown sane_lists
Installed path: .venv/lib/python3.11/site-packages/markdown/extensions/sane_lists.py
SHA-256: b6d6211ebb95dc96ebd73f6cb675b21caac286445257f13042a870465c0801eb

## markdown-it-py list parser
Installed path: .venv/lib/python3.11/site-packages/markdown_it/rules_block/list.py
SHA-256: 808a1d900245c8e2322826428f994094bee3223e64033ac36fe2bed8c14da656

## Diagnosis

- OListProcessor.LAZY_OL is True. OListProcessor.run emits a start attribute only if not self.LAZY_OL and self.STARTSWITH != "1". get_items records the first marker but the default output branch ignores it.
- SaneOListProcessor sets LAZY_OL = False and overrides CHILD_RE and SIBLING_TAGS. It fixes the initial start attribute, not list boundaries or the four-space indent rule.
- OListProcessor.INDENT_RE and the recursive run branch use self.tab_length (default 4); three-space child markers fall into sibling item recognition.
- markdown-it-py skipOrderedListMarker accepts decimal digits followed by a period or right parenthesis with following whitespace. list_block rejects a non-one marker when isTerminatingParagraph is true.
- markdown-it-py list_block sets start only on ordered_list_open, computes content indentation from initial + indentAfterMarker, and tracks markerChar. Continuing with another number does not create a new ordered_list_open.

The paired failures need different repairs: a separator creates another list container; preserving the first marker requires a start-aware renderer. Adding sane_lists changes the latter while the blank-line sample remains one container.

No GitHub issue is claimed reproduced. These are minimized cases derived from the supplied sample and official syntax rules. No PDF/OCR case is applicable.
