Run artifact

evidence/prompt_outputs/20260812.172422.611Z_commonmark_plan_codex.output.txt

=== FEATURE-CONFORMANCE-ASSETS.md ===
# FEATURE: Conformance Assets

| Field       | Value |
|-------------|-------|
| Version     | 20260812 V1 |
| Description | Stages the supplied CommonMark conformance assets and supports bounded verification. |
| Depends On  | FEATURE-RENDER-NORMALIZATION.md |
| Provides    | staged conformance assets, bounded conformance verification |
| Consumes    | parser executable |

## Questions

- None.

## Workflow

The build stages only `spec.txt`, `spec_tests.py`, `cmark.py`, and `normalize.py` at the runtime paths required by the supplied harness. `INSTRUCTIONS.md` remains planning context and is not staged.

Bounded verification invokes `spec_tests.py` with explicit section selectors. It never invokes an unfiltered suite. The harness uses the parser executable through its standard-input and standard-output contract.

## Staged Assets

| Source | Runtime destination |
|---|---|
| `sources/spec.txt` | `spec.txt` |
| `sources/spec_tests.py` | `spec_tests.py` |
| `sources/cmark.py` | `cmark.py` |
| `sources/normalize.py` | `normalize.py` |

## Programmatic Acceptance

Requires: executable=python3; scope=test

=== AC conformance-assets-leaf-scope ===
Intent: The staged conformance harness executes a selected leaf-block scope successfully.
Suite: scoped

import subprocess
import sys

result = subprocess.run(
    [
        sys.executable,
        "spec_tests.py",
        "--spec",
        "spec.txt",
        "--program",
        "./program",
        "--pattern",
        "^(Thematic breaks|ATX headings|Setext headings|Indented code blocks|Fenced code blocks|HTML blocks|Link reference definitions|Paragraphs|Blank lines)$",
    ],
    capture_output=True,
    text=True,
)
print(result.stdout)
print(result.stderr, file=sys.stderr)
assert result.returncode == 0
=== END AC conformance-assets-leaf-scope ===

=== AC conformance-assets-inline-scope ===
Intent: The staged conformance harness executes a selected inline scope successfully.
Suite: scoped

import subprocess
import sys

result = subprocess.run(
    [
        sys.executable,
        "spec_tests.py",
        "--spec",
        "spec.txt",
        "--program",
        "./program",
        "--pattern",
        "^(Code spans|Emphasis and strong emphasis|Links|Images|Autolinks|Raw HTML|Hard line breaks|Soft line breaks)$",
    ],
    capture_output=True,
    text=True,
)
print(result.stdout)
print(result.stderr, file=sys.stderr)
assert result.returncode == 0
=== END AC conformance-assets-inline-scope ===

## User Acceptance

- None.

## Guardrails

- Only the four required conformance assets are staged.
- Bounded checks use explicit example-bearing section selectors.
- The complete unfiltered suite is reserved for the terminal verification story.

=== END FEATURE-CONFORMANCE-ASSETS.md ===
=== FEATURE-CONFORMANCE-FULL.md ===
# FEATURE: Complete Conformance Verification

| Field       | Value |
|-------------|-------|
| Version     | 20260812 V1 |
| Description | Runs the complete supplied CommonMark conformance suite through a POSIX wrapper. |
| Depends On  | FEATURE-CONFORMANCE-ASSETS.md, FEATURE-RENDER-NORMALIZATION.md |
| Provides    | full_test.sh, complete conformance verification |
| Consumes    | parser executable, staged conformance assets |

## Questions

- None.

## Workflow

`full_test.sh` is a repository-local POSIX shell wrapper. It invokes the staged `spec_tests.py` harness with `spec.txt`, `cmark.py`, and `normalize.py` available at their required runtime paths. It runs the complete suite without a section selector or test-number filter.

The wrapper preserves the harness exit status. A zero exit status means the complete suite passed. A nonzero exit status means verification failed.

## Programmatic Acceptance

Requires: executable=sh; scope=test

=== AC complete-conformance-suite ===
Intent: The complete supplied CommonMark conformance suite passes through the required wrapper.
Suite: full
Sea Trials: st-001

import subprocess

result = subprocess.run(
    ["sh", "full_test.sh"],
    capture_output=True,
    text=True,
)
print(result.stdout)
print(result.stderr, file=__import__("sys").stderr)
assert result.returncode == 0
=== END AC complete-conformance-suite ===

## User Acceptance

- None.

## Guardrails

- `full_test.sh` runs the supplied suite without filtering.
- The suite runner's exit status is the sole acceptance verdict.
- The wrapper does not parse or hardcode the suite tally.

=== END FEATURE-CONFORMANCE-FULL.md ===