@@ -202,13 +202,17 @@ authorization failure.
202202Conventional Commits carry pending changes, and Release Please owns the newest
203203canonical dated section immediately after the preamble. The version gate rejects
204204any unmanaged ` Unreleased ` level-two heading so the generated layout remains
205- valid on every patch release.
205+ valid on every patch release. Use only canonical Markdown for level-two
206+ headings; raw HTML H2 semantics vary by renderer and therefore fail closed.
206207
207208Each validated release-evidence block contains the immutable release identity
208- and only its canonical publication workflow. Preparatory implementation CI,
209- Release Please, failed-publication, and recovery history remains outside the
210- block. The document gate rejects every different run identity and every wrapped
211- or malformed Actions URL regardless of prose or Markdown labeling.
209+ and only its canonical publication workflow URL without an attempt suffix.
210+ Record attempt provenance as plain text. Preparatory implementation CI, Release
211+ Please, failed-publication, and recovery history remains outside the block. The
212+ document gate binds every source occurrence to exactly one rendered navigation
213+ destination and rejects every different run identity plus wrapped, encoded,
214+ control-obfuscated, or malformed Actions URLs regardless of prose or Markdown
215+ labeling.
212216
213217Release mode (` check_version.py --require-releasable-docs ` ) also fails closed
214218until project authorship, the canonical GitHub repository URL, the copyright
@@ -225,7 +229,8 @@ description. The README therefore uses the unpinned
225229PRs and post-release evidence changes must not introduce approval, unpublished,
226230or exact-version availability statements. Artifact inspection applies the same
227231policy to wheel ` METADATA ` and sdist ` PKG-INFO ` , so source and registry-facing
228- descriptions cannot drift.
232+ descriptions cannot drift. Artifact inspection also requires every reviewed
233+ source-distribution member to match the release checkout byte for byte.
229234
230235## Workflow responsibilities
231236
@@ -290,7 +295,9 @@ descriptions cannot drift.
290295 against the exact pre-publication digests and Trusted Publisher provenance
291296 before a clean install explicitly from ` https://pypi.org/simple/ ` . The exact
292297 release live model is the canonical active model enforced by the workflow
293- checker and cannot be overridden by repository variables.
298+ checker and cannot be overridden by repository variables. Before digest
299+ retention, the immutable-tag build also copies the checkout into an empty
300+ parent and completes the standalone repository verification there.
294301 Because the unused Release Please or recovery path is intentionally skipped,
295302 every job after the selector must use ` always() && !cancelled() ` , reject
296303 reruns, and require each direct dependency's result to equal ` success ` . This
@@ -556,8 +563,8 @@ authorized.
556563 ` 64c7cb87745032703b3374cc562ea00b979416c54908862dbcebd116b2dc44c8 ` .
557564 Both files match the retained pre-publication digest record. PyPI Integrity
558565 API provenance identifies repository ` cometapi-dev/cometapi-python ` , workflow
559- ` publish.yml ` , environment ` pypi ` , release commit ` 576e7503 ` , and release
560- [ run attempt 1] ( https://github.com/cometapi-dev/cometapi-python/actions/runs/30429821548/attempts/1 ) .
566+ ` publish.yml ` , environment ` pypi ` , release commit ` 576e7503 ` , and release run
567+ attempt 1.
561568- An independent post-workflow verification downloaded both public files,
562569 verified both provenance records with ` pypi-attestations==0.0.29 ` , installed
563570 ` cometapi==0.1.1 ` from ` https://pypi.org/simple/ ` , verified the public version
@@ -612,8 +619,8 @@ authorized.
612619 ` 21c8edc0586610de1a9a8cd39b54ed23d2b1e20552100f69f53938cb7678da3d ` .
613620 Both files match the retained pre-publication digest record. PyPI Integrity
614621 API provenance identifies repository ` cometapi-dev/cometapi-python ` , workflow
615- ` publish.yml ` , environment ` pypi ` , release commit ` 710c5649 ` , and release
616- [ run attempt 1] ( https://github.com/cometapi-dev/cometapi-python/actions/runs/30515861246/attempts/1 ) .
622+ ` publish.yml ` , environment ` pypi ` , release commit ` 710c5649 ` , and release run
623+ attempt 1.
617624- An independent post-workflow verification downloaded both public files,
618625 verified both provenance records with ` pypi-attestations==0.0.29 ` , installed
619626 ` cometapi==0.1.2 ` from ` https://pypi.org/simple/ ` , verified the public version
@@ -670,8 +677,8 @@ authorized.
670677 ` 07ded54606d50f44b689dad38cf93a74e1175370efaa33be84a3c01240d48e66 ` .
671678 Both files match the retained pre-publication digest record. PyPI Integrity
672679 API provenance identifies repository ` cometapi-dev/cometapi-python ` , workflow
673- ` publish.yml ` , environment ` pypi ` , release commit ` 45429f37 ` , and release
674- [ run attempt 1] ( https://github.com/cometapi-dev/cometapi-python/actions/runs/30550536000/attempts/1 ) .
680+ ` publish.yml ` , environment ` pypi ` , release commit ` 45429f37 ` , and release run
681+ attempt 1.
675682- Independent post-workflow verification downloaded both public files,
676683 verified both provenance records with ` pypi-attestations==0.0.29 ` , installed
677684 ` cometapi==0.1.3 ` from ` https://pypi.org/simple/ ` , verified the public version
0 commit comments