Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
91b264c
Define the proportional T98 visual documentation plan
xtraid Sep 5, 2026
cf188af
Explain observed MRV selection clearly
xtraid Sep 5, 2026
1893fe1
Make MRV fallback readable on narrow displays
xtraid Sep 5, 2026
8018e64
Explain propagation and rollback from observed traces
xtraid Sep 5, 2026
efba4fd
Keep trace explanations readable on narrow displays
xtraid Sep 5, 2026
1029c5c
Explain Yang-Zhang routing and tile compatibility
xtraid Sep 6, 2026
0dfa98f
Bound large construction signal summaries
xtraid Sep 6, 2026
03348d0
Fit summarized construction labels
xtraid Sep 6, 2026
f4067d5
Show the optimized serial mechanisms concretely
xtraid Sep 7, 2026
515595a
Keep ownership labels inside their buffers
xtraid Sep 7, 2026
f3ce481
Clarify optimized mechanism fallback layout
xtraid Sep 7, 2026
d4ab7b9
Explain oracle encodings and witness verification
xtraid Sep 7, 2026
75c0515
Preserve non-SAT oracle applicability
xtraid Sep 8, 2026
13c5714
Compose readable static v2 run reports
xtraid Sep 9, 2026
19d9ddf
Contain TeX compiler filesystem failures
xtraid Sep 9, 2026
f961d86
Track TeX cleanup state locally
xtraid Sep 9, 2026
4e057bc
Route readers through publication-quality documentation
xtraid Sep 9, 2026
1a90a3a
Render the home witness preview at native HiDPI resolution
xtraid Sep 10, 2026
bfcd000
Show recorded oracle timings in their PDF sections
xtraid Sep 10, 2026
f728bbd
Keep PDF figures and captions on the same page
xtraid Sep 11, 2026
b2370ad
Freeze the verified T98 presentation layer
xtraid Sep 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,8 @@ OPENMP_LIBRARY := $(LIB_DIR)/libwang_openmp.a
strict-check sanitizer-check analyzer-check valgrind-check \
cachegrind-check benchmark benchmark-smoke benchmark-compare \
benchmark-compare-smoke coverage coverage-c coverage-python \
parser-fuzz parser-fuzz-smoke parser-fuzz-corpus run-dossier-smoke clean
parser-fuzz parser-fuzz-smoke parser-fuzz-corpus run-dossier-smoke \
run-dossier-v2-smoke clean

all: serial shared

Expand Down Expand Up @@ -177,6 +178,22 @@ run-dossier-smoke: shared
test -s $(BUILD_DIR)/run-dossier-smoke/report.pdf
test -s $(BUILD_DIR)/run-dossier-smoke/run.json

run-dossier-v2-smoke: shared
$(RM) -r $(BUILD_DIR)/run-dossier-v2-smoke-sat
$(RM) -r $(BUILD_DIR)/run-dossier-v2-smoke-unsat
$(UV) run --frozen python tools/generate_run_dossier.py \
examples/run-cases-v2/pipeline-sat.json \
$(BUILD_DIR)/run-dossier-v2-smoke-sat --pdf
$(UV) run --frozen python tools/generate_run_dossier.py \
examples/run-cases-v2/pipeline-unsat-search.json \
$(BUILD_DIR)/run-dossier-v2-smoke-unsat --pdf
test -s $(BUILD_DIR)/run-dossier-v2-smoke-sat/report.tex
test -s $(BUILD_DIR)/run-dossier-v2-smoke-sat/report.pdf
test -s $(BUILD_DIR)/run-dossier-v2-smoke-sat/run.json
test -s $(BUILD_DIR)/run-dossier-v2-smoke-unsat/report.tex
test -s $(BUILD_DIR)/run-dossier-v2-smoke-unsat/report.pdf
test -s $(BUILD_DIR)/run-dossier-v2-smoke-unsat/run.json

c-check: serial $(C_TEST_BINS)
@set -e; \
if [ -z "$(strip $(C_TEST_BINS))" ]; then \
Expand Down
446 changes: 135 additions & 311 deletions README.md

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions docs/assets/css/site.css
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,10 @@ figure {
height: auto;
}

.narrative-asset[data-asset-id="home_preview"] {
max-width: 760px;
}

.narrative-asset figcaption {
margin: 0;
padding: 1rem 1.15rem;
Expand Down
Binary file modified docs/assets/narrative/boolean-z3/contact-sheet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/boolean-z3/frame-00.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/boolean-z3/frame-01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/boolean-z3/frame-02.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/boolean-z3/frame-03.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/boolean-z3/trace.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/generalized-tiles/atomic-legend.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
244 changes: 122 additions & 122 deletions docs/assets/narrative/manifest.json

Large diffs are not rendered by default.

Binary file modified docs/assets/narrative/optimized-mechanisms/contact-sheet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-mechanisms/frame-00.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-mechanisms/frame-01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-mechanisms/frame-02.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-mechanisms/frame-03.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-mechanisms/frame-04.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-mechanisms/frame-05.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-mechanisms/frame-06.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-mechanisms/trace.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-trace/contact-sheet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-trace/frame-000000.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-trace/frame-000001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file modified docs/assets/narrative/optimized-trace/frame-001281.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-trace/frame-002561.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-trace/frame-002562.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-trace/frame-002563.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/assets/narrative/optimized-trace/frame-002938.png
Binary file modified docs/assets/narrative/optimized-trace/frame-002939.png
Binary file modified docs/assets/narrative/optimized-trace/frame-002940.png
Binary file modified docs/assets/narrative/optimized-trace/trace.gif
Binary file modified docs/assets/narrative/pipeline-overview/contact-sheet.png
Binary file modified docs/assets/narrative/pipeline-overview/frame-01.png
Binary file modified docs/assets/narrative/pipeline-overview/frame-02.png
Binary file modified docs/assets/narrative/pipeline-overview/frame-03.png
Binary file modified docs/assets/narrative/pipeline-overview/frame-04.png
Binary file modified docs/assets/narrative/pipeline-overview/frame-05.png
Binary file modified docs/assets/narrative/pipeline-overview/frame-06.png
Binary file modified docs/assets/narrative/pipeline-overview/frame-07.png
Binary file modified docs/assets/narrative/pipeline-overview/home-preview.png
Binary file modified docs/assets/narrative/pipeline-overview/trace.gif
Binary file modified docs/assets/narrative/pipeline-overview/worked-example.png
Binary file modified docs/assets/narrative/presentation/contact-sheet.png
Binary file modified docs/assets/narrative/presentation/frame-00.png
Binary file modified docs/assets/narrative/presentation/frame-01.png
Binary file modified docs/assets/narrative/presentation/frame-02.png
Binary file modified docs/assets/narrative/presentation/frame-03.png
Binary file modified docs/assets/narrative/presentation/trace.gif
Binary file modified docs/assets/narrative/reference-trace/contact-sheet.png
Binary file modified docs/assets/narrative/reference-trace/frame-000000.png
Binary file modified docs/assets/narrative/reference-trace/frame-000001.png
Binary file modified docs/assets/narrative/reference-trace/frame-001258.png
Diff not rendered.
Binary file modified docs/assets/narrative/reference-trace/frame-002516.png
Binary file modified docs/assets/narrative/reference-trace/frame-002517.png
Binary file modified docs/assets/narrative/reference-trace/frame-002518.png
Binary file modified docs/assets/narrative/reference-trace/frame-002893.png
Binary file modified docs/assets/narrative/reference-trace/frame-002894.png
Binary file modified docs/assets/narrative/reference-trace/frame-002895.png
Binary file modified docs/assets/narrative/reference-trace/trace.gif
Binary file modified docs/assets/narrative/region-construction/contact-sheet.png
Binary file modified docs/assets/narrative/region-construction/frame-00.png
Binary file modified docs/assets/narrative/region-construction/frame-01.png
Binary file modified docs/assets/narrative/region-construction/frame-02.png
Binary file modified docs/assets/narrative/region-construction/frame-03.png
Binary file modified docs/assets/narrative/region-construction/frame-04.png
Binary file modified docs/assets/narrative/region-construction/frame-05.png
Binary file modified docs/assets/narrative/region-construction/trace.gif
Binary file modified docs/assets/narrative/verification/contact-sheet.png
Binary file modified docs/assets/narrative/verification/frame-00.png
Binary file modified docs/assets/narrative/verification/frame-01.png
Binary file modified docs/assets/narrative/verification/frame-02.png
Binary file modified docs/assets/narrative/verification/frame-03.png
Binary file modified docs/assets/narrative/verification/frame-04.png
Binary file modified docs/assets/narrative/verification/frame-05.png
Binary file modified docs/assets/narrative/verification/trace.gif
Binary file modified docs/assets/narrative/wang-z3/contact-sheet.png
Binary file modified docs/assets/narrative/wang-z3/frame-00.png
Binary file modified docs/assets/narrative/wang-z3/frame-01.png
Binary file modified docs/assets/narrative/wang-z3/frame-02.png
Binary file modified docs/assets/narrative/wang-z3/frame-03.png
Binary file modified docs/assets/narrative/wang-z3/frame-04.png
Binary file modified docs/assets/narrative/wang-z3/trace.gif
2 changes: 1 addition & 1 deletion docs/components/boolean-z3.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ configuration uses one thread and a fixed random seed.

`boolean_z3` shows only project-owned encoding order and the returned result.

{% include narrative-animation.html asset_id="boolean_z3" animation="/assets/narrative/boolean-z3/trace.gif" fallback="/assets/narrative/boolean-z3/frame-02.png" contact_sheet="/assets/narrative/boolean-z3/contact-sheet.png" alt="Four frames add Boolean variables and source-order exactly-one clauses before showing the copied result." width="940" height="430" label="encoding-order" caption="Project-owned Boolean constraint construction and returned assignment." source="z3-encoding-summary-v1" %}
{% include narrative-animation.html asset_id="boolean_z3" animation="/assets/narrative/boolean-z3/trace.gif" fallback="/assets/narrative/boolean-z3/frame-03.png" contact_sheet="/assets/narrative/boolean-z3/contact-sheet.png" alt="Four frames place each source-order clause beside its occurrence-preserving sum and then show the copied Boolean assignment." width="940" height="520" label="encoding-order" caption="Real source clauses become occurrence-preserving exactly-one sums before the copied assignment is shown." source="z3-encoding-summary-v1+cm13-formula-snapshot-v1" %}

## Position in the pipeline

Expand Down
2 changes: 1 addition & 1 deletion docs/components/optimized-solver.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ secondary didactic overview; it makes no timing or speedup claim.

{% include narrative-animation.html asset_id="optimized_trace" animation="/assets/narrative/optimized-trace/trace.gif" fallback="/assets/narrative/optimized-trace/frame-002562.png" contact_sheet="/assets/narrative/optimized-trace/contact-sheet.png" alt="Observed optimized domain states at root, propagation, decision, search, and result milestones." width="988" height="414" label="observed" caption="Selected semantic milestones from the complete optimized trace." source="wang-explain-manifest-v3" %}

{% include narrative-animation.html asset_id="optimized_mechanisms" animation="/assets/narrative/optimized-mechanisms/trace.gif" fallback="/assets/narrative/optimized-mechanisms/frame-06.png" contact_sheet="/assets/narrative/optimized-mechanisms/contact-sheet.png" alt="Seven didactic frames contrast the reference baseline with six measured optimized mechanisms." width="960" height="500" label="didactic" caption="The six retained serial mechanisms, including the lazy MRV index." source="wang-optimized-mechanisms-v1" %}
{% include narrative-animation.html asset_id="optimized_mechanisms" animation="/assets/narrative/optimized-mechanisms/trace.gif" fallback="/assets/narrative/optimized-mechanisms/frame-06.png" contact_sheet="/assets/narrative/optimized-mechanisms/contact-sheet.png" alt="Seven didactic frames show stack, trail, ownership, byte-support, queue, and lazy-MRV state, ending with a static summary." width="960" height="520" label="didactic" caption="Six concrete panels show the retained serial mechanisms and their private state changes." source="wang-optimized-mechanisms-v1" %}

## Position in the pipeline

Expand Down
2 changes: 1 addition & 1 deletion docs/components/tileset.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ asset, followed by its atomic legend.

{% include narrative-static.html asset_id="generalized_sheet" image="/assets/narrative/generalized-tiles/sheet.png" alt="A sheet of fourteen Yang-Zhang generalized tiles with internal seams and atomic identifiers." width="908" height="1146" label="canonical-construction" caption="The exact 14 generalized tiles decomposed into 23 positional atomic IDs." source="wang-generalized-tiles-v1+wang-tileset-snapshot-v1" %}

{% include narrative-static.html asset_id="atomic_legend" image="/assets/narrative/generalized-tiles/atomic-legend.png" alt="A semantic legend for twenty-three positional Wang tiles and their edge colors." width="1296" height="782" label="canonical-construction" caption="All 23 atomic IDs with symbolic paper colors and generalized roles." source="wang-generalized-tiles-v1+wang-tileset-snapshot-v1" %}
{% include narrative-static.html asset_id="atomic_legend" image="/assets/narrative/generalized-tiles/atomic-legend.png" alt="A semantic legend for twenty-three positional Wang tiles and their edge colors." width="866" height="2092" label="canonical-construction" caption="All 23 atomic IDs with symbolic paper colors and generalized roles." source="wang-generalized-tiles-v1+wang-tileset-snapshot-v1" %}

## Position in the pipeline

Expand Down
2 changes: 1 addition & 1 deletion docs/components/verification.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ assignment extraction bridge before their assignments are checked.
`verification` presents the six receipts already captured from the named
checkers. It does not rerun or replace them.

{% include narrative-animation.html asset_id="verification" animation="/assets/narrative/verification/trace.gif" fallback="/assets/narrative/verification/frame-05.png" contact_sheet="/assets/narrative/verification/contact-sheet.png" alt="Six frames report Boolean, native, and Wang Z3 witness checks without rerunning a verifier." width="960" height="500" label="observed" caption="The six named independent checker records from the captured run." source="wang-run-dossier-v2#verification" %}
{% include narrative-animation.html asset_id="verification" animation="/assets/narrative/verification/trace.gif" fallback="/assets/narrative/verification/frame-05.png" contact_sheet="/assets/narrative/verification/contact-sheet.png" alt="Six frames show all checker receipts, valid tile IDs, TILE_NONE, internal and boundary equality, and copied extracted Boolean values beside variable-gadget cells." width="960" height="520" label="observed" caption="Six named checker receipts with concrete tiling rules and the recorded native extraction beside its source cells." source="wang-run-dossier-v2#verification" %}

## Position in the pipeline

Expand Down
2 changes: 1 addition & 1 deletion docs/components/visualization.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ color to the two additional axes.
`witness_presentation` moves from the verified square witness through exact
generalized recognition to the checked hex port.

{% include narrative-animation.html asset_id="witness_presentation" animation="/assets/narrative/presentation/trace.gif" fallback="/assets/narrative/presentation/frame-03.png" contact_sheet="/assets/narrative/presentation/contact-sheet.png" alt="Four frames move from the verified square witness through generalized recognition to the checked hex presentation." width="1080" height="620" label="verified-transformation" caption="Verified square witness, exact generalized overlay, and checked hex port." source="wang-solution-v1+wang-generalized-tiles-v1+checked-square-to-hex" %}
{% include narrative-animation.html asset_id="witness_presentation" animation="/assets/narrative/presentation/trace.gif" fallback="/assets/narrative/presentation/frame-03.png" contact_sheet="/assets/narrative/presentation/contact-sheet.png" alt="Four frames move from the verified square witness through generalized recognition to the checked hex presentation." width="960" height="520" label="verified-transformation" caption="Verified square witness, exact generalized overlay, and checked hex port." source="wang-solution-v1+wang-generalized-tiles-v1+checked-square-to-hex" %}

## Position in the pipeline

Expand Down
2 changes: 1 addition & 1 deletion docs/components/wang-z3.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ thread and a fixed random seed.
`wang_z3` shows the project's edge-term construction and returned result, not
the solver engine's internal search.

{% include narrative-animation.html asset_id="wang_z3" animation="/assets/narrative/wang-z3/trace.gif" fallback="/assets/narrative/wang-z3/frame-03.png" contact_sheet="/assets/narrative/wang-z3/contact-sheet.png" alt="Five frames add edge terms, shared internal edges, tile relations, boundaries, and the copied result." width="940" height="430" label="encoding-order" caption="Project-owned Wang edge-term construction and returned model." source="z3-encoding-summary-v1" %}
{% include narrative-animation.html asset_id="wang_z3" animation="/assets/narrative/wang-z3/trace.gif" fallback="/assets/narrative/wang-z3/frame-04.png" contact_sheet="/assets/narrative/wang-z3/contact-sheet.png" alt="Five frames show adjacent canonical Wang tiles sharing an internal edge, one exposed boundary equality, and the copied model projection." width="940" height="520" label="encoding-order" caption="A real cell shows its shared term, canonical tile tuple, boundary equality, and returned model projection." source="z3-encoding-summary-v1+wang-tileset-snapshot-v1+wang-region-snapshot-v1" %}

## Position in the pipeline

Expand Down
2 changes: 1 addition & 1 deletion docs/components/yang-zhang.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ transactionally.
`region_construction` is a deterministic construction view, not an instrumented
clock or solver trace.

{% include narrative-animation.html asset_id="region_construction" animation="/assets/narrative/region-construction/trace.gif" fallback="/assets/narrative/region-construction/frame-04.png" contact_sheet="/assets/narrative/region-construction/contact-sheet.png" alt="Six frames reveal variable, forwarding, crossover, and clause gadget spans on the same region." width="980" height="390" label="canonical-construction" caption="Native Yang-Zhang gadget spans accumulated over the observed region." source="wang-reduction-explanation-v1" %}
{% include narrative-animation.html asset_id="region_construction" animation="/assets/narrative/region-construction/trace.gif" fallback="/assets/narrative/region-construction/frame-05.png" contact_sheet="/assets/narrative/region-construction/contact-sheet.png" alt="Six frames reveal variable, forwarding, crossover, and clause gadget spans on the same region." width="988" height="414" label="canonical-construction" caption="Native Yang-Zhang gadget spans accumulated over the observed region." source="wang-reduction-explanation-v1" %}

## Position in the pipeline

Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ description: A research software laboratory for finite Wang tilings and inspecta
<h2>A selected result, not a visual proof</h2>
</div>

{% include narrative-static.html asset_id="home_preview" image="/assets/narrative/pipeline-overview/home-preview.png" alt="A compact square Wang witness preview for the captured SAT source." width="760" height="430" label="observed" caption="Selected verified SAT square output for the captured instance." source="wang-solution-v1" %}
{% include narrative-static.html asset_id="home_preview" image="/assets/narrative/pipeline-overview/home-preview.png" alt="A compact square Wang witness preview for the captured SAT source." width="1520" height="860" label="observed" caption="Selected verified SAT square output for the captured instance." source="wang-solution-v1" %}

<p class="home-section__prose">
The image is downstream of an independently checked square witness. Read
Expand Down
90 changes: 70 additions & 20 deletions docs/plans/2026-08-31-narrative-migration-checklist.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
# Narrative migration checklist

**Status:** frozen inventory and migration map
**Status:** inventory retained; implementation frozen through T98 on 11 September 2026

**Baseline:** `17edabc5c956cb6f00cbb19266b7701a04e30ee2` on 31 August
2026

This checklist applies the
[narrative architecture contract](2026-08-31-narrative-architecture-contract.md)
to every current public page, public Pages asset, dossier/schema contract, and
known excluded documentation source. Unchecked implementation actions belong
to later work; this inventory itself makes no public-site or asset change.
known excluded documentation source. The inventory below retains its original
baseline; completed implementation checks are bound to the T98 evidence in
section 13. This checklist itself makes no public-site or asset change.

## 1. Baseline audit

Expand Down Expand Up @@ -161,14 +162,14 @@ checks prove the old files are unreferenced before deletion.
- [x] `sat-end-to-end` and `unsat-search` have no initial-domain overrides;
the two constrained diagnostic cases remain explicitly configured Wang
solves rather than claims about the unconstrained formula.
- [ ] Keep v1 schema bytes/meaning and current cases compatible through every
- [x] Keep v1 schema bytes/meaning and current cases compatible through every
v2 change.
- [ ] Keep v1 formatter/template isolated from v2; share only focused helpers
- [x] Keep v1 formatter/template isolated from v2; share only focused helpers
behind thin dispatch.
- [ ] Keep v1 atomic destination install, isolated pdfLaTeX, no-shell-escape,
- [x] Keep v1 atomic destination install, isolated pdfLaTeX, no-shell-escape,
run-specific timing identity, and diagnostic-UNSAT boundary.
- [ ] Run the existing SAT and all three UNSAT v1 dossier tests after each v2
contract, asset, and PDF change.
- [x] Pass the existing SAT and all three UNSAT v1 dossier regressions on the
final v2 contract, asset, and PDF implementation.

## 8. Shared-asset migration order

Expand Down Expand Up @@ -209,18 +210,18 @@ checks prove the old files are unreferenced before deletion.

## 10. V2 PDF implementation gates

- [ ] Follow the nine-section order frozen in the architecture contract.
- [ ] Consume the same validated facts and static assets as the captured v2
- [x] Follow the nine-section order frozen in the architecture contract.
- [x] Consume the same validated facts and static assets as the captured v2
run; do not consume Pages HTML or Markdown.
- [ ] Embed no GIF/video and perform no second render or replay.
- [ ] Mark assignment, witness, verification, generalized witness, and hex
- [x] Embed no GIF/video and perform no second render or replay.
- [x] Mark assignment, witness, verification, generalized witness, and hex
witness not applicable for UNSAT without fabricating a certificate.
- [ ] Keep raw timings in their named component sections and full detail in the
- [x] Keep raw timings in their named component sections and full detail in the
appendix; make no general performance comparison.
- [ ] Compile with isolated, reproducible, no-shell-escape pdfLaTeX rules.
- [ ] Validate self-containment, hashes, source identity, component agreement,
- [x] Compile with isolated, reproducible, no-shell-escape pdfLaTeX rules.
- [x] Validate self-containment, hashes, source identity, component agreement,
static-template inputs, and partial-failure cleanup.
- [ ] Prove v1 cases and output contracts remain compatible.
- [x] Prove v1 cases and output contracts remain compatible.

## 11. Excluded documentation sources

Expand All @@ -242,13 +243,62 @@ checks prove the old files are unreferenced before deletion.
and expected page class.
- [x] Every narrative asset has one owner, one source chain, and one allowed
semantic label.
- [ ] No GIF is duplicated, embedded by two owners, missing a static fallback,
- [x] No GIF is duplicated, embedded by two owners, missing a static fallback,
or included in a PDF.
- [ ] `pipeline_sat.cm13` identities agree across the worked example, all
- [x] `pipeline_sat.cm13` identities agree across the worked example, all
engines, verification, presentation, Pages assets, and v2 dossier.
- [ ] `unsat-search` remains visibly and cryptographically separate.
- [ ] Removing documentation and explainability leaves core build, solve,
- [x] `unsat-search` remains visibly and cryptographically separate.
- [x] Removing documentation and explainability leaves core build, solve,
oracles, verifier, and standard export functional.
- [x] Full suites, strict compilers, sanitizer, analyzer, dynamic analysis,
applicable profiling, renderer tests, Pages/Jekyll, TeX smoke, diff, secret,
file-mode, and artifact checks are green before publication.

## 13. T98 implementation freeze — 11 September 2026

The presentation implementation is frozen at `f728bbd`, relative to the T97
base `b921e7d`. Independent whole-branch review and scoped re-reviews closed
the two Important PDF findings: missing component-local oracle timings and
an orphaned hex caption. No Critical or Important finding remains. This is
a local implementation freeze; publication and later roadmap tasks are separate.

The complete local closing matrix passed: `make check`, `pages-check`, strict
GCC/Clang, sanitizer, analyzer, Valgrind, Cachegrind, parser fuzz smoke (2,000
runs), coverage, both dossier smoke targets and the locked renderer suite.
Final coverage execution passed all 17 C binaries and **199 Python tests**,
including all **33 v1/v2 dossier tests**; the renderer passed **324 tests**.
Sanitizer and fuzz required an authorized execution outside the ptrace sandbox
with leak detection retained. Memcheck completed all 17 binaries and three
benchmark invocations with zero errors/leaks; its interrupted run was resumed
at the remaining commands with unchanged recipe, source and build identities.
Coverage is informational; no timing or coverage threshold was introduced.

Pages evidence covers 40 generated pages, 799 internal references and 48
browser cases. All 171 inputs to that accepted build remained unchanged through
the final formatter correction; this subsequent checklist edit is excluded
from the site. Both final v2 PDFs contain static figures only: **23 SAT pages**
and **26 search-UNSAT pages**. Every page was inspected at normal reading scale.
The fresh final smoke preserves all 162 narrative images and 43 page rasters
byte-for-byte; the six pages changed by captured timing/environment text were
individually re-inspected. Figure/caption pagination is protected by
`V2FigurePaginationTests.test_wide_figure_keeps_its_caption_on_the_image_page`.

The frozen-input v1 TeX, PDF and entire output tree remain byte-identical;
v1 schema/case bytes, formatter and template remain compatible. A disposable
export without downstream documentation/explainability consumers passed all
17 C binaries and 62 core Python tests. Core, ABI, independent oracles, schemas
and dependency locks are unchanged. Final diff, bounded secret scan, file-mode
and artifact checks found no unexpected tracked output or mode change.

Four non-blocking limitations are retained under the stopping criteria:

- The MRV summary covers redundant lower legend lines; its large decision
summary still shows the minimum domain, ties and row-major winner.
- Raster tests protect semantic values and summary cards more directly than
every candidate/winner grid color and displayed active-only count.
- Some redundant-signal labels crowd their boxes in the search-UNSAT routing
figures; signal IDs and routing order remain readable.
- The didactic ownership panel's `caller owns` label slightly exceeds its card
border in both PDFs; its meaning and neighboring values remain readable.

These limitations introduce no additional visual work into the frozen phase.
Loading
Loading