open-standards/.github/wai-conformance/verifiers/synthesis-mark.sh
Transaction Science 417847daab wai conform prints JUnit and HTML reports, runs the independent verifiers beside an implementation or alone, and is the corpus union in one command
The change of wai/conform-output, on current main, without its wai doctor: main's doctor,
its tests, its catalogue entry, its MCP tool and its changelog entry stand as they are, and
this change's copies of them are gone, with the lines dev.rs held for them. wai/README.md,
which had no line for main's doctor, gains one in its first commands and `toolchain_doctor`
in the core tools.

- wai conform --format text|json|junit|html, reports made from the signed records.
- --independent beside a kind holds the corpus's independent verifier to the same cases;
  alone, it runs every corpus's verifier, a record each, from one table.
- wai-rs/build.rs reads that table from the `# independent:` lines of the step files
  (.github/wai-conformance/verifiers/), which take the verifiers' command lines out of the
  steps' bodies. scripts/wai-conformance-lists.py reads and checks the same lines.
- wai-conformance.yml runs the union as wai conform --independent --format junit.
- wai mcp's conformance tools read the table.
- wai-release.yml runs the quickstart from each archive as a new user runs it
  (clean-machine.sh, its PowerShell twin clean-machine.ps1), held by
  check-wai-release-quickstart.py. clean-machine.ps1 keeps clean-machine.sh's contents step
  and its check of WAI Studio. Each leg keeps main's archive_doctor.py check; the step's own
  wai hello, verify and dev --check are clean-machine.sh's now.
- check-wai-ops-doors.py reads VERBS and NEAR_SYNONYMS from catalogue.rs and keeps no list,
  and the verb-list test reads what that check reads.
- The catalogue's export and Studio's actions hold the new operations.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 10:56:00 -05:00

35 lines
2.5 KiB
Shell

# step: synthesis watermark · wai-rs and synthesis_mark_verify.py
# order: 300
# features: synthesis_mark
# release-features: synthesis_mark
# paths: wai/extensions/synthesis.md
# independent: synthesis-mark live python3 -I live-conformance/synthesis_mark_verify.py live-conformance/synthesis-mark
#
# The registered watermark schemes wai-mark:tent64 and wai-mark:tent64s
# (extensions/synthesis.md §7.4 to §7.9): the reference's unit tests (the code corrects 29
# errors and its generator is the definition's, the layouts, the embedding and the
# detector in every orientation, the tiled detector's exact autocorrelation and its
# recovery from a crop and a rotation, the battery's resampling, rotation and keyframe),
# then tests/synthesis_mark.rs in release, since it embeds and attacks every picture of
# the measurement sets under both schemes (every file of live-conformance/synthesis-mark/
# regenerates byte for byte, both measurements among them, and no other file is there;
# every embedding, detection and case gets what it states; the extension's definitions,
# generator polynomial and shuffles are the reference's; §7.5.8 and §7.9.7 claim only
# attacks the measurements show survived, and §7.5.6's and §7.9.5's figures are the
# measurements'); and, in the step of every independent verifier above, the second
# implementation, synthesis_mark_verify.py with
# _wai_mark.py, written from the extension's text and sharing no code with wai-rs, which
# embeds, detects and decodes itself, both stages of the tiled detector among them, runs
# the battery's picture attacks, derives the frames the vectors name, verifies every case
# with synthesis_verify.py, mutates copies of the corpus and weakens its own verifier in
# turn; standard library only, run isolated (-I).
#
# The paths this step brings to the workflow's trigger, and why:
# wai/extensions/synthesis.md: tests/synthesis.rs requires this extension's §12 to list the codes
# the reference reports and its §10.2 table to pin the reference's icons, synthesis_verify.py
# reads both, tests/synthesis_mark.rs and synthesis_mark_verify.py read its scheme's definition,
# generator, figures, table and claims (§7.4 to §7.5.8), and the registry's wire identifiers
# test reads its sections.
set -euo pipefail
(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib -- synthesis::mark synthesis_mark::)
(cd wai-rs && cargo test --release --no-default-features --features "$WAI_RELEASE_FEATURES" --test synthesis_mark)