<pblock label="Plan topology repair" kind="repair">
Plan Topology Repair
Drydock accepted the Blueprint artifact batch but rejected its transient work graph. Repair only the deterministic defect reported below. Preserve every story ID, implements assignment and story fields that do not need to change. Dependencies must name exact story IDs declared in this topology.
Emit each artifact below in exactly this form, and emit no other text:
=== BEGIN ARTIFACT <FILENAME> === <the complete file body> === END ARTIFACT ===
The filename appears once, in the opening delimiter. The closing delimiter is the constant token above and never carries a name.
Emit exactly one such block for each of: TOPOLOGY.md.
Repair pass: 1
Deterministic validation defect: analyzed stories are not delivered by any Manifest story: VERIFY-001 — name each analyzed Story ID in the covers: field of the story that delivers it
Original TOPOLOGY.md, in the same form your reply must use: === BEGIN ARTIFACT TOPOLOGY.md === planning_feedback: | analyze-display_name applied ARCHITECTURE.md analyze-short_description applied ARCHITECTURE.md
story interface-001
summary: Provide the executable standard-input/standard-output interface. type: foundational kind: capability phase: 1 implements: ARCHITECTURE.md covers: INTERFACE-001 context: sources/cmark.py stack: common.md, python.md provides: executable commonmark consumes: acceptance: yes scope: target instructions: | Create the executable commonmark at the application root. It must read UTF-8 Markdown from standard input and write rendered HTML to standard output using only Python 3 standard-library facilities and the parser implementation built by subsequent stories. Preserve process exit behavior and avoid third-party Markdown implementations.
story block-001
summary: Parse CommonMark leaf blocks and link reference definitions. type: service kind: capability phase: 2 implements: FEATURE-Block-Leafs.md covers: BLOCK-001 context: sources/spec.txt, sources/spec_tests.py, sources/cmark.py, sources/normalize.py stack: common.md, python.md provides: leaf block parsing, link reference definitions consumes: executable commonmark depends: interface-001 acceptance: yes scope: target instructions: | Implement block parsing for thematic breaks, ATX headings, setext headings, indented code blocks, fenced code blocks, HTML blocks, paragraphs, blank lines, and link reference definitions. Build block structure before inline rendering and preserve reference definitions for later inline resolution. Run the supplied conformance runner only against the owned leaf-block sections.
story block-002
summary: Parse nested block quotes and their contained blocks. type: service kind: capability phase: 2 implements: FEATURE-Block-Quotes.md covers: BLOCK-002 context: sources/spec.txt, sources/spec_tests.py, sources/cmark.py, sources/normalize.py stack: common.md, python.md provides: block quote parsing consumes: executable commonmark, leaf block parsing depends: interface-001, block-001 acceptance: yes scope: target instructions: | Implement block quote markers, nesting, blank lines, lazy paragraph continuation, empty quotes, and contained block parsing according to the CommonMark block algorithm. Run the supplied conformance runner only against the Block quotes section.
story block-003
summary: Parse lists, list items, nesting, laziness, and tightness. type: service kind: capability phase: 2 implements: FEATURE-Block-Lists.md covers: BLOCK-003 context: sources/spec.txt, sources/spec_tests.py, sources/cmark.py, sources/normalize.py stack: common.md, python.md provides: list parsing, list-item parsing, list tightness consumes: executable commonmark, leaf block parsing, block quote parsing depends: interface-001, block-001, block-002 acceptance: yes scope: target instructions: | Implement bullet and ordered lists, marker widths, nesting, continuation and lazy lines, empty items, block content, list interruption, delimiter changes, and tight versus loose rendering. Run the supplied conformance runner only against the List items and Lists sections.
story inline-001
summary: Parse escapes, entities, code spans, line breaks, and literal text. type: service kind: capability phase: 3 implements: FEATURE-Inline-Basics.md covers: INLINE-001 context: sources/spec.txt, sources/spec_tests.py, sources/cmark.py, sources/normalize.py stack: common.md, python.md provides: inline escapes, entity references, code spans, hard breaks, soft breaks consumes: executable commonmark, block structure depends: interface-001, block-001, block-002, block-003 acceptance: yes scope: target instructions: | Implement inline parsing for backslash escapes, HTML and numeric character references, code spans, hard line breaks, soft line breaks, replacement of U+0000, and literal textual content. Run the supplied conformance runner only against the owned inline sections: Backslash escapes, Entity and numeric character references, Code spans, Hard line breaks, Soft line breaks, and Textual content.
story inline-002
summary: Parse emphasis and strong emphasis with the delimiter-run algorithm. type: service kind: capability phase: 3 implements: FEATURE-Inline-Emphasis.md covers: INLINE-002 context: sources/spec.txt, sources/spec_tests.py, sources/cmark.py, sources/normalize.py stack: common.md, python.md provides: emphasis parsing, strong-emphasis parsing consumes: executable commonmark, block structure, inline basics depends: interface-001, block-001, block-002, block-003, inline-001 acceptance: yes scope: target instructions: | Implement the CommonMark delimiter-run algorithm for emphasis and strong emphasis, including intraword rules, Unicode punctuation and whitespace behavior, nesting, precedence, unmatched delimiters, and interaction with tighter inline constructs. Run the supplied conformance runner only against Emphasis and strong emphasis.
story inline-003
summary: Parse inline and reference links together with images. type: service kind: capability phase: 3 implements: FEATURE-Inline-Links-Images.md covers: INLINE-003 context: sources/spec.txt, sources/spec_tests.py, sources/cmark.py, sources/normalize.py stack: common.md, python.md provides: inline links, reference links, images consumes: executable commonmark, link reference definitions, inline basics depends: interface-001, block-001, block-002, block-003, inline-001 acceptance: yes scope: target instructions: | Implement inline, full-reference, collapsed-reference, and shortcut links and images, including destinations, titles, escaping, nested brackets, reference-label normalization, duplicate-definition precedence, link restrictions, and image alt text. Run the supplied conformance runner only against Links and Images.
story inline-004
summary: Parse autolinks and raw HTML inline constructs. type: service kind: capability phase: 3 implements: FEATURE-Inline-HTML-Autolinks.md covers: INLINE-004 context: sources/spec.txt, sources/spec_tests.py, sources/cmark.py, sources/normalize.py stack: common.md, python.md provides: URI autolinks, email autolinks, raw HTML consumes: executable commonmark, block structure, inline basics depends: interface-001, block-001, block-002, block-003, inline-001 acceptance: yes scope: target instructions: | Implement URI and email autolinks and raw HTML tags, comments, processing instructions, declarations, and CDATA. Respect precedence with code spans, links, and emphasis, and preserve valid raw HTML in the rendered output. Run the supplied conformance runner only against Autolinks and Raw HTML.
story verify-001
summary: Run the complete supplied CommonMark conformance suite. type: service kind: test harness phase: 4 implements: FEATURE-Conformance-Verification.md accepts: st-001 context: sources/spec.txt, sources/spec_tests.py, sources/cmark.py, sources/normalize.py, sources/full_test.sh context_roles: | sources/spec.txt: context sources/spec_tests.py: context sources/cmark.py: context sources/normalize.py: context sources/full_test.sh: context stack: common.md, python.md provides: complete CommonMark conformance verification consumes: executable commonmark, all parser capabilities depends: interface-001, block-001, block-002, block-003, inline-001, inline-002, inline-003, inline-004 acceptance: yes scope: target instructions: | Stage the supplied conformance assets unchanged and run sh sources/full_test.sh from the completed application root. This is the sole unfiltered full-suite verification story. Do not modify or reinterpret the supplied scoring entry point or its assets. === END ARTIFACT === </pblock>