# step: live contribution · live_contribution_verify.py # order: 380 # paths: wai/extensions/live-contribution.md # independent: live-contribution live python3 -I live-conformance/live_contribution_verify.py live-conformance/links # # wai.live.contribution (extensions/live-contribution.md): the link records' corpus # under live-conformance/links/, which joule-moq-ingest's reference generates and its # own tests check (joule-code-conformance.yml); here its second implementation, # live_contribution_verify.py, written from the extension's text and sharing no code # with the reference, reads every part and series itself, checks every signature with # WAI's strict Ed25519 rule from claim-conformance, requires each vector's stated outcome # and reason and every reason of §7's last list, requires every mutated copy to be # refused, and drops each of its own checks in turn and requires the corpus to catch the # weakened verifier; standard library only, run isolated (-I). # # The paths this step brings to the workflow's trigger, and why: # wai/extensions/live-contribution.md: live_contribution_verify.py reads this extension's §7 list # of the link record's reasons and requires the corpus to raise each one.