Skip to content

ci: evidence report refreshed by bot on main, advisory in PRs, release-gated (#4703) - #4705

Merged
squid-protocol merged 1 commit into
mainfrom
ci/4703-evidence-report-bot
Oct 8, 2026
Merged

squid-protocol merged 1 commit into
mainfrom
ci/4703-evidence-report-bot

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Fixes #4703

  1. Bot (evidence-refresh.yml): also runs on push to main; concurrency cancels older runs; checks out and bases on main explicitly (the evidence: nightly re-proof of stale records #4640 failure); no PR when nothing changed; PR from auto/evidence-refresh, not a draft, squash auto-merge enabled only after a clean run (the evidence: nightly re-proof of stale records #4649 dirty case came from parallel PRs committing the report). The "as of commit " stamp is on the bot commit and PR body; the report files stay content-deterministic so --check still compares content.
  2. Advisory: test_the_committed_reports_are_current is skipped when EVIDENCE_REPORT_ADVISORY=1 (smoke-test full-suite; full-suite-gate except on tag pushes). New evidence_report.py --deltas [--live] writes the level changes to $GITHUB_STEP_SUMMARY (exit 0). Schema check, record staleness and the det-sweep baseline are untouched and blocking.
  3. Release gate: publish.yml job evidence-report-current runs evidence_report.py --check --live; pypi-publish needs it.
  4. Docs: report README (generated by render_index), evidence_records.md, gitgalaxy-pr-worker.md, blocker-slice skill.

Note: committed reports are currently stale under --live (10 files), so the first release gate would fail until the bot's first run on main refreshes them. Owner action: none if allow_auto_merge stays on (it is).

Tested: evidence tests (72 pass), new --deltas test, pr_gates --fast 5/5; --ratchets 6/7 (ports: corpus not fetched locally, unrelated). Workflow YAML parsed with PyYAML; actionlint/zizmor not installed.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MQNoe4wPJgr7dbUvs3DG6D

…d at release (#4703)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MQNoe4wPJgr7dbUvs3DG6D
@squid-protocol squid-protocol added ci-cd Continuous integration, delivery, and automated runners testing Unit, integration, and E2E pipeline verification labels Oct 8, 2026
Comment on lines +989 to +995
"These files are derived output. A feature PR does not commit them: the Evidence Refresh workflow "
"(`.github/workflows/evidence-refresh.yml`) regenerates them on every push to main (and nightly) through an "
"auto-merged bot PR from `auto/evidence-refresh`, and skips the PR when nothing changed. Per-PR CI only prints "
"the level changes a PR would cause in its job summary (`evidence_report.py --deltas --live`; advisory, never a "
"failure). A release tag is gated on `evidence_report.py --check --live` being clean. The schema check "
"(`test_committed_report_validates`), the evidence-record staleness check and the det-sweep baseline stay "
"blocking in every PR; a PR still re-runs the proof of a record it makes stale.",
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-cd Continuous integration, delivery, and automated runners testing Unit, integration, and E2E pipeline verification

Projects

None yet

Development

Successfully merging this pull request may close these issues.

evidence report: regenerate on main by bot, advisory in PRs, strict at release (stop per-PR report churn)

2 participants