# Public replay shape map | Replay outcome | Fixtures | Mark | | ----------------- | -------: | ------------- | | Uniquely resolved | 44 | Teal circle | | No match | 11 | Orange square | | Ambiguity refusal | 1 | Rose diamond | | Unreplayable | 3 | Gray triangle | | **Total** | **59** | | ![Three flat PCA views of public ledger-eval fixture shape. Each mark has the same size; color and shape indicate replay outcome after the projection.](./_static/error-cloud.svg) This is a compact, reproducible view of the committed public [public `ledger_eval` fixture corpus](https://gitlab.com/doering-ai/libs/tact/-/blob/main/tests/fixtures/ledger_eval/README.md) corpus. It replaces the former mixed-population error cloud. The old figure combined live agent lifecycle data, private fixture-derived material, and expanded local telemetry, then made a token-savings claim. That claim and that population are retired: this figure is only a public-fixture replay benchmark. ## What is projected The generator replays all 59 committed JSON fixtures with the current reconciliation ladder, then derives a six-column numerical matrix from edit **shape**: | Feature | Meaning | | ---------------------------------------------- | --------------------------------------------- | | `log1p_old_characters`, `log1p_new_characters` | Size of requested old and new text | | `log1p_old_lines`, `log1p_new_lines` | Old and new text line counts | | `log1p_edit_character_delta` | Absolute character-size change | | `new_to_old_character_ratio` | Relative expansion or contraction of the edit | The columns are centered and scaled before PCA. Outcome, family, rung, category, case ID, all label-like codes, and snapshot measurements are excluded from that matrix. A missing snapshot defines `unreplayable`, so zero-imputing its size would leak the display outcome into PCA. Only after PCA does the graphic attach replay outcome as a color-and-shape label. Axis labels give the explained-variance ratio for each principal component. The generated JSON includes `loadings` for PC1–PC3: these are the standardized feature weights that make a component interpretable. Compare absolute loading sizes, not signs; PCA component orientation is arbitrary. The `explained_variance_ratios` list records how much standardized edit-shape variation each displayed component accounts for. **Proximity means similar edit shape, not causality or correctness.** The triptych avoids a synthetic camera or depth ordering: it shows PC1 x PC2, PC1 x PC3, and PC2 x PC3 directly. ## Replay and safety boundary "Uniquely resolved" means the public replay found one match under the current ladder. "No match" and "ambiguity refusal" are distinct structured outcomes; the latter is an intentional refusal to guess. "Unreplayable" means the committed fixture lacks a captured file snapshot, not that the ladder crashed. The constrained same-intent comparison finds **0 candidates among 9 checkable same-intent pairs**. It compares only fixtures whose later follow-up is both resolvable and highly similar enough to plausibly represent the same logical edit. This is not a claim of zero production false heals, nor does it cover fixtures without checkable follow-up ground truth. ## Provenance, privacy, and reproduction [`error-cloud.json`](./_data/error-cloud.json) is schema `tact.ledger-eval-shape-pca` version 3. It binds the exact public fixture population to a deterministic SHA-256 manifest, records feature names, PCA variance/loadings, aggregate replay counts, and anonymous outcome/rung/PC coordinates. It deliberately carries no case IDs, file paths, file extensions, old/new strings, snapshots, follow-ups, notes, families, or categories. Regenerate the tracked JSON and SVGs from repository inputs: ```bash uv run python scripts/build_error_cloud.py ``` Confirm that all generated files are current without changing them: ```bash uv run python scripts/build_error_cloud.py --check ``` The generator depends only on the stdlib plus this repository's `tact.eval` replay module. It does not inspect local telemetry, sessions, private corpora, network services, timestamps, or randomness, so repeated generation from unchanged repository inputs is byte-identical.