Sub-task of #208. See the parent tracking issue for the full plan and context.
Goal
Baseline the current reality and bank the zero-cost win: run discovery, record the aggregate counts, and pin every file that already PASSes into roundtrip-baseline.txt. No api changes in this phase — only files that pass today get pinned.
Steps
-
Run discovery and capture the output:
make discover-api-roundtrip | tee /tmp/discovery.txt
Each line is STATUS<TAB>relpath<TAB>detail (PASS|FAIL|SKIP|LOADFAIL|GETDATAFAIL|CREATEFAIL); the last line is the aggregate summary. The binary always exits 0.
-
Record the aggregate counts from the summary line (e.g. N PASS, N FAIL, ... and the total discovered). These go into the baseline header comment (see below) — they are the durable historical record.
-
Extract the PASS paths (the relpath column of every PASS line):
grep -P '^PASS\t' /tmp/discovery.txt | cut -f2 | sort
-
Append the new PASS paths to src/private/mxtest/api/roundtrip-baseline.txt, keeping the file sorted and excluding the one already pinned (ksuite/k016a_Miscellaneous_Fields.xml).
-
Update the baseline header comment to reflect the new discovery run: add a dated entry with the fresh aggregate counts and the new pinned total, alongside the existing 2026-06-12 capture note (don't delete the history — append to it).
-
Confirm the gate with the grown baseline:
Every pinned file must pass (zero tolerance). Then make check for formatting.
-
Commit the grown baseline + updated header in one deliberate commit referencing this issue.
What gets checked in
src/private/mxtest/api/roundtrip-baseline.txt — the new PASS paths appended, and the header comment updated with the dated counts. This is the only file changed.
No per-file discovery snapshot is checked in. Decision and rationale below.
Snapshot decision: ephemeral, not durable
The full per-file PASS/FAIL/... table is a point-in-time observation, not a contract. Nothing in the build reads it — the regression gate reads only roundtrip-baseline.txt. Phases 1–3 re-run discovery against the then-current code, so a checked-in dump would immediately go stale and actively mislead. Checking it in would add a consumer-less artifact that rots — against the repo's grain (data/corpus.xml and *.features.xml exist because tooling consumes them and are regenerable via make audit; a frozen discovery dump is regenerable via make discover-api-roundtrip but has no consumer).
The two facts worth keeping durable are (a) the grown baseline and (b) the aggregate counts. The baseline header is already the canonical home for this history (it documents the 2026-06-12 capture: 829 discovered, 794 produced output, 1 passed strict). Recording the new counts there keeps the record co-located with the artifact it explains — zero new files, zero rot.
Paste the full per-file table into this issue (or the PR) as ephemeral evidence of the run; it lives in the issue history, not the tree.
Format
- Baseline path lines — existing format: one
data/-relative path per line, # starts a comment, file kept sorted. Example: ksuite/k016a_Miscellaneous_Fields.xml.
- Baseline header counts — a new dated paragraph in the existing
# comment block, matching the prose style already there: date of run, total discovered, the PASS/FAIL/SKIP/LOADFAIL/GETDATAFAIL/CREATEFAIL breakdown, and the resulting pinned total.
- Issue evidence — the raw harness TSV (
STATUS<TAB>relpath<TAB>detail) plus the summary line, in a fenced block. No reformatting.
Definition of done
Sub-task of #208. See the parent tracking issue for the full plan and context.
Goal
Baseline the current reality and bank the zero-cost win: run discovery, record the aggregate counts, and pin every file that already PASSes into
roundtrip-baseline.txt. No api changes in this phase — only files that pass today get pinned.Steps
Run discovery and capture the output:
Each line is
STATUS<TAB>relpath<TAB>detail(PASS|FAIL|SKIP|LOADFAIL|GETDATAFAIL|CREATEFAIL); the last line is the aggregate summary. The binary always exits 0.Record the aggregate counts from the summary line (e.g.
N PASS, N FAIL, ...and the total discovered). These go into the baseline header comment (see below) — they are the durable historical record.Extract the PASS paths (the
relpathcolumn of everyPASSline):Append the new PASS paths to
src/private/mxtest/api/roundtrip-baseline.txt, keeping the file sorted and excluding the one already pinned (ksuite/k016a_Miscellaneous_Fields.xml).Update the baseline header comment to reflect the new discovery run: add a dated entry with the fresh aggregate counts and the new pinned total, alongside the existing 2026-06-12 capture note (don't delete the history — append to it).
Confirm the gate with the grown baseline:
Every pinned file must pass (zero tolerance). Then
make checkfor formatting.Commit the grown baseline + updated header in one deliberate commit referencing this issue.
What gets checked in
src/private/mxtest/api/roundtrip-baseline.txt— the new PASS paths appended, and the header comment updated with the dated counts. This is the only file changed.No per-file discovery snapshot is checked in. Decision and rationale below.
Snapshot decision: ephemeral, not durable
The full per-file PASS/FAIL/... table is a point-in-time observation, not a contract. Nothing in the build reads it — the regression gate reads only
roundtrip-baseline.txt. Phases 1–3 re-run discovery against the then-current code, so a checked-in dump would immediately go stale and actively mislead. Checking it in would add a consumer-less artifact that rots — against the repo's grain (data/corpus.xmland*.features.xmlexist because tooling consumes them and are regenerable viamake audit; a frozen discovery dump is regenerable viamake discover-api-roundtripbut has no consumer).The two facts worth keeping durable are (a) the grown baseline and (b) the aggregate counts. The baseline header is already the canonical home for this history (it documents the 2026-06-12 capture: 829 discovered, 794 produced output, 1 passed strict). Recording the new counts there keeps the record co-located with the artifact it explains — zero new files, zero rot.
Paste the full per-file table into this issue (or the PR) as ephemeral evidence of the run; it lives in the issue history, not the tree.
Format
data/-relative path per line,#starts a comment, file kept sorted. Example:ksuite/k016a_Miscellaneous_Fields.xml.#comment block, matching the prose style already there: date of run, total discovered, the PASS/FAIL/SKIP/LOADFAIL/GETDATAFAIL/CREATEFAIL breakdown, and the resulting pinned total.STATUS<TAB>relpath<TAB>detail) plus the summary line, in a fenced block. No reformatting.Definition of done
make discover-api-roundtriphas been run and its aggregate counts recorded.PASSby discovery is pinned inroundtrip-baseline.txt(sorted, deduped against the existing entry).make test-api-roundtrippasses against the grown baseline (zero failures).make checkpasses.