Harden release evidence tracker body drift checks#244
Conversation
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
📝 WalkthroughWalkthroughThis PR introduces deterministic GitHub issue body drift detection for release evidence trackers. It adds a new CLI checker script with optional snapshot auditing, wires validation into build gates and CI, documents the audit and remediation flow, refreshes release artifacts and checksums, and advances operational tracking for the automation queue. ChangesRelease Evidence Body Drift Checks
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
🧹 Nitpick comments (1)
scripts/check_release_evidence_issue_bodies.py (1)
51-76: ⚡ Quick winConsider extracting type validators into a shared module.
The
require_dict,require_list,require_string, andrequire_positive_inthelpers duplicate similar validators from theissue_link_checkermodule (evidenced by the generator's use ofissue_link_checker.require_positive_intin the upstream body-sync generator). Extracting these into a shared validation utility module would reduce duplication and centralize validation logic updates.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@scripts/check_release_evidence_issue_bodies.py` around lines 51 - 76, The four local validators (require_dict, require_list, require_string, require_positive_int) duplicate logic in issue_link_checker; extract them into a shared validation utility (e.g., a new module like validators or validation_utils) and replace the local definitions with imports and usages from that module: move the implementations into the new module, export functions named require_dict, require_list, require_string, require_positive_int, update scripts/check_release_evidence_issue_bodies.py to import these functions instead of defining them, and update any other modules that currently duplicate the same validators (such as issue_link_checker) to import from the shared module so all callers (including code that references require_positive_int) use the single implementation; remove the now-duplicated local definitions from this file.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@scripts/check_release_evidence_issue_bodies.py`:
- Around line 51-76: The four local validators (require_dict, require_list,
require_string, require_positive_int) duplicate logic in issue_link_checker;
extract them into a shared validation utility (e.g., a new module like
validators or validation_utils) and replace the local definitions with imports
and usages from that module: move the implementations into the new module,
export functions named require_dict, require_list, require_string,
require_positive_int, update scripts/check_release_evidence_issue_bodies.py to
import these functions instead of defining them, and update any other modules
that currently duplicate the same validators (such as issue_link_checker) to
import from the shared module so all callers (including code that references
require_positive_int) use the single implementation; remove the now-duplicated
local definitions from this file.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 768b05c5-13ac-4ee8-8934-9b96cd034dc8
📒 Files selected for processing (20)
.github/workflows/ci.ymlCHANGELOG.mdMakefiledocs/public-beta-evidence.mddocs/release-readiness.mddocs/tooling.mdops/AUTONOMOUS_RUN.mdops/ROADMAP.mdrelease-artifacts/README.mdrelease-artifacts/latest/SHA256SUMSrelease-artifacts/latest/release-checksums.jsonrelease-artifacts/latest/release-evidence-issue-body-sync.jsonrelease-artifacts/latest/release-evidence-issue-body-sync.mdrelease-artifacts/latest/release-manifest.jsonscripts/check.ps1scripts/check.shscripts/check_release_evidence_issue_bodies.pyscripts/check_release_readiness.pyscripts/generate_release_evidence_issue_body_sync.pyscripts/test_release_evidence_issue_bodies.py
Summary
scripts/check_release_evidence_issue_bodies.pywith deterministic committed body-sync validation, optional--live-jsonsnapshot auditing, and--write-body-filesremediation output forgh issue edit --body-file.scripts/check.sh,scripts/check.ps1, release-readiness command coverage, docs, body-sync validation metadata, release manifest/checksum artifacts, changelog, roadmap, and durable run state.Validation
python scripts/test_release_evidence_issue_bodies.pypython scripts/check_release_evidence_issue_bodies.pypython scripts/check_release_evidence_issue_bodies.py --live-json tmp\release-evidence-issue-bodies.jsonpython scripts/test_release_evidence_issue_body_sync.pypython scripts/generate_release_evidence_issue_body_sync.py --checkpython scripts/test_release_readiness.pypython scripts/check_release_readiness.pypython scripts/test_release_manifest.pypython scripts/generate_release_manifest.py --checkpython scripts/test_release_checksums.pypython scripts/generate_release_checksums.py --checkpython scripts/test_changelog_check.pypython scripts/check_changelog.pybash -n scripts/check.shscripts/check.ps1python -m py_compile scripts/check_release_evidence_issue_bodies.py scripts/test_release_evidence_issue_bodies.py scripts/generate_release_evidence_issue_body_sync.py scripts/check_release_readiness.pyrg -n "^#|^##|^###" ops/ROADMAP.md ops/AUTONOMOUS_RUN.md docs/tooling.md docs/public-beta-evidence.md docs/release-readiness.md release-artifacts/README.mdgit diff --checkCloses #242
Summary by CodeRabbit
New Features
Documentation
Tests
Chores