Run artifact

evidence/prompt_outputs/20260812.172521.365Z_commonmark_lineage_attribute_codex.output.txt

<requirement name="parser-interface" stories="cli-entrypoint,render-blocks,render-inline,render-normalization">
Read Markdown from standard input and write HTML to standard output.
</requirement>
<requirement name="parser-architecture" stories="architecture">
CommonMark parsing is two phases: resolve **block structure** first, then run **inline parsing** over the block contents. Implement in that order.
</requirement>
<requirement name="parse-blocks" stories="block-leaf,block-quotes,block-lists">
1. Blocks: paragraphs, thematic breaks, ATX headings, setext headings, indented code, fenced code, HTML blocks, link reference definitions, block quotes, then lists — lists are the hardest block construct, with lazy continuation, nesting, and tightness.
</requirement>
<requirement name="parse-inlines" stories="inline-escapes,inline-code-breaks,inline-emphasis,inline-links,inline-html">
2. Inlines: backslash escapes, entity and numeric references, code spans, emphasis and strong emphasis (the delimiter-run algorithm), links and images, autolinks, raw HTML, hard breaks.
</requirement>
<requirement name="conformance-assets" stories="conformance-assets">
The runtime conformance assets are only `spec.txt`, `spec_tests.py`, `cmark.py`, and `normalize.py`.
</requirement>
<requirement name="full-conformance" stories="conformance-full">
The sole definition of product success is `sh full_test.sh` returning exit code `0`.
</requirement>
<requirement name="parser-documentation" stories="cli-documentation">
Deliver a concise project `README.md` documenting the standard-input/standard-output interface and the `sh full_test.sh` command.
</requirement>
<unattached story="cli-errors"/>