Use this page when release page evidence, release notes, tags, or replay attachments drift. Read it with docs/github_latest_release_troubleshooting_examples.md, docs/stale_release_page_screenshot_examples.md, docs/github_release_commands.md, docs/github_release_notes_v0.1.0.md, docs/release_note_refresh_checklist.md, docs/release_note_changelog_drift_examples.md, docs/release_attachment_verification_examples.md, docs/release_asset_upload_dry_run_examples.md, docs/github_release_attachment_screenshot_checklist.md, docs/post_publish_checklist.md, and docs/command_output_troubleshooting_map.md.
The core rule: local replay-artifact evidence and published release page evidence prove different things. Do not claim the release page is current until the tag, release notes, and current replay attachments are visible on GitHub.
Local proof before push or release maintenance:
python -B scripts/dev.py replay-artifact
python -B scripts/dev.py launch-assets
python -B scripts/dev.py qualityRemote proof after push and release maintenance:
python -B scripts/dev.py fresh-clone
python -B scripts/post_publish_check.py
python -B scripts/dev.py github-readinessDry-run the authenticated release command before account-level mutation:
python -B scripts/dev.py github-maintenanceApply release setup only after gh auth login and command review:
python -B scripts/maintain_github_state.py --applySymptom:
github-readinessreportsGitHub release page exists for v0.1.0as[WARN].- The tag exists, but the latest release endpoint returns
404. - Local release notes and replay artifacts exist, but the GitHub release page is still account-level follow-up.
Wrong fix:
- Claim release page evidence from local
qualityoutput. - Remove the readiness warning.
- Commit generated
out/files as a substitute for the GitHub release page.
Safe fix:
python -B scripts/dev.py replay-artifact
python -B scripts/dev.py github-maintenance
python -B scripts/dev.py github-readinessKeep the release page claim manual until authenticated maintenance or the GitHub UI confirms the page and attachments.
Symptom:
- The release page or command targets a tag other than
v0.1.0. docs/github_release_notes_v0.1.0.mdis reviewed, but a different tag is selected.- Replay artifacts were generated from a local commit that is not the pushed release commit.
Wrong fix:
- Attach current local artifacts to a mismatched tag.
- Rename the release notes file without updating the release command.
- Claim the release page is current because a tag exists.
Safe fix:
git status --short --branch
git rev-parse HEAD
git ls-remote origin refs/heads/main
python -B scripts/dev.py replay-artifact
python -B scripts/dev.py github-readinessUse docs/github_release_commands.md and docs/github_release_notes_v0.1.0.md as the source of truth for the intended tag and release notes.
Symptom:
docs/github_release_notes_v0.1.0.mddescribes outdated eval, smoke, or API contract evidence.- Local
qualitynow proves a different evidence count or gate shape. - The release page notes do not match the current checked-in release notes.
Wrong fix:
- Edit the GitHub release page by hand without updating checked-in notes.
- Reuse old release notes because the old release already looked acceptable.
- Claim current release evidence without rerunning local gates.
Safe fix:
python -B scripts/dev.py quality
python -B scripts/dev.py replay-artifact
python -B scripts/dev.py launch-assetsUpdate checked-in release notes first, review docs/release_note_refresh_checklist.md, then refresh the release page through the reviewed maintenance path or GitHub UI.
Symptom:
- The release page exists, but
out/demo_replay_artifact.mdorout/demo_replay_artifact.jsonis missing from attachments or linked evidence. python -B scripts/dev.py replay-artifacthas not been run for the current source state.- A release note claims replay evidence, but no current artifacts are available to attach.
Wrong fix:
- Upload stale artifacts from another checkout.
- Hand-edit trace IDs, timestamps, ports, or PASS rows.
- Commit ignored
out/artifacts as ordinary source content.
Safe fix:
python -B scripts/dev.py replay-artifact
git status --short --branch
python -B scripts/dev.py safetyAttach the regenerated files externally. Keep out/ ignored unless a release process explicitly asks for reviewed source-visible evidence.
Symptom:
github-readinesschecks/releases/latest, but another release is marked latest.v0.1.0exists, yet the latest release endpoint points to a different tag.- Public docs mention the intended release while GitHub shows a different latest release.
Wrong fix:
- Treat any release page as proof that
v0.1.0is current. - Change README claims before the latest release state is verified.
- Hide the warning instead of correcting release metadata.
Safe fix:
python -B scripts/dev.py github-readiness
python -B scripts/dev.py github-maintenanceKeep public wording tied to evidence: the release page is current only after the intended tag is the latest release and current replay artifacts are attached or linked.
Use docs/github_latest_release_troubleshooting_examples.md when the release page exists but the latest-release pointer, draft/prerelease state, or attachment freshness is still ambiguous. Use docs/release_asset_upload_dry_run_examples.md before treating an upload plan as applied release state. Use docs/github_release_attachment_screenshot_checklist.md before treating release-page screenshots as attachment evidence.
Use docs/stale_release_page_screenshot_examples.md before treating old release-page screenshots, stale latest-release screenshots, missing attachment screenshots, wrong-tag screenshots, or private account UI crops as current release evidence.
Use docs/release_note_changelog_drift_examples.md before treating changelog-style summaries as release-page evidence.
docs/github_release_notes_v0.1.0.mdmatches the current release claim.docs/release_note_refresh_checklist.mdwas used before claiming the release notes, public release page text, or post-publish evidence are current.docs/release_note_changelog_drift_examples.mdwas used before reconciling release notes, changelog summaries, release page text, or remote evidence.docs/github_release_commands.mdpoints to the intended tag and notes file.python -B scripts/dev.py replay-artifactregenerated the expectedout/files.out/demo_replay_artifact.mdandout/demo_replay_artifact.jsonare not committed as ordinary source files.- Stale release-page screenshots are reviewed with
docs/stale_release_page_screenshot_examples.md. - Release attachment screenshots are compared with
docs/github_release_attachment_screenshot_checklist.md. python -B scripts/dev.py launch-assetspasses before release-facing wording changes.python -B scripts/dev.py github-readinesshas no hard failures after the release page is updated.- Public docs do not claim the release page is current until remote checks and attachment review pass.