Add public beta evidence blocker report artifact#193
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.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThis PR adds a public-beta evidence blocker report generator that summarizes incompleteness from the committed evidence manifest. The new ChangesPublic Beta Evidence Blocker Report Artifact
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/generate_public_beta_blocker_report.py (1)
293-293: 💤 Low valueConsider extracting hard-coded script reference.
The generator script path and version are hard-coded here (
"scripts/generate_public_beta_blocker_report.py:1"). While this matchesGENERATOR_VERSION = "1"(line 14), consider whether this reference could be constructed programmatically to avoid drift if the script is moved or the version is updated.♻️ Optional refactor to DRY the script reference
+SCRIPT_NAME = Path(__file__).name + def build_output_text(repo_root: Path, evidence_path: Path, output_path: Path) -> str: """Build the Markdown blocker report.""" data = load_evidence_document(evidence_path, repo_root) by_phase = canonical_requirements(data) redaction_policy = data["redaction_policy"] resolved_evidence = resolve_repo_path(repo_root, evidence_path) resolved_output = resolve_repo_path(repo_root, output_path) lines = [ "# Public Beta Evidence Blocker Report", "", ( "This generated report is derived only from the committed public-beta " "evidence manifest. It preserves the no-secret policy and does not " "change readiness claims." ), "", "The committed baseline remains intentionally blocked for public beta and production.", "", "## Report Metadata", "", markdown_table( ["Field", "Value"], [ - ["Generated by", "`scripts/generate_public_beta_blocker_report.py:1`"], + ["Generated by", f"`scripts/{SCRIPT_NAME}:{GENERATOR_VERSION}`"], ["Generator version", f"`{GENERATOR_VERSION}`"],🤖 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/generate_public_beta_blocker_report.py` at line 293, The hard-coded generator string should be built programmatically from the script name and the existing GENERATOR_VERSION constant to avoid drift: replace the literal "`scripts/generate_public_beta_blocker_report.py:1`" with a constructed value (e.g., f"{os.path.basename(__file__)}:{GENERATOR_VERSION}" or equivalent) where the metadata list is assembled, and ensure you import/use os and reference GENERATOR_VERSION so the generated "Generated by" entry always reflects the current script filename and version.
🤖 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/generate_public_beta_blocker_report.py`:
- Line 293: The hard-coded generator string should be built programmatically
from the script name and the existing GENERATOR_VERSION constant to avoid drift:
replace the literal "`scripts/generate_public_beta_blocker_report.py:1`" with a
constructed value (e.g., f"{os.path.basename(__file__)}:{GENERATOR_VERSION}" or
equivalent) where the metadata list is assembled, and ensure you import/use os
and reference GENERATOR_VERSION so the generated "Generated by" entry always
reflects the current script filename and version.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 75194f07-3140-47c9-bd3f-17a920fb1060
📒 Files selected for processing (20)
.github/workflows/ci.ymlCHANGELOG.mdMakefiledocs/public-beta-evidence.mddocs/release-readiness.mdops/AUTONOMOUS_RUN.mdops/ROADMAP.mdrelease-artifacts/README.mdrelease-artifacts/latest/SHA256SUMSrelease-artifacts/latest/public-beta-blockers.mdrelease-artifacts/latest/release-checksums.jsonrelease-artifacts/latest/release-manifest.jsonscripts/check.ps1scripts/check.shscripts/generate_public_beta_blocker_report.pyscripts/generate_release_artifacts.pyscripts/generate_release_manifest.pyscripts/test_public_beta_blocker_report.pyscripts/test_release_artifacts.pyscripts/test_release_manifest.py
Summary
Closes #191.
This PR adds a deterministic no-secret public-beta blocker report generated from
release-artifacts/latest/public-beta-evidence.jsonwithout changing any public-beta or production readiness claims.scripts/generate_public_beta_blocker_report.pyand focused tests for deterministic output, missing/stale output, unknown status handling, path escape rejection, secret-shaped value rejection, Markdown table escaping, local-template-only posture, and reviewed external evidence posture.release-artifacts/latest/public-beta-blockers.md, listing incomplete public-beta and production rows, evidence posture, future external evidence categories, maturity warning, and validation commands.make check,scripts/check.sh,scripts/check.ps1, and CI.Validation
python -m py_compile scripts\generate_public_beta_blocker_report.py scripts\test_public_beta_blocker_report.py scripts\generate_release_manifest.py scripts\test_release_manifest.py scripts\generate_release_artifacts.py scripts\test_release_artifacts.pypython scripts\test_public_beta_evidence.pypython scripts\check_public_beta_evidence.pypython scripts\test_public_beta_blocker_report.pypython scripts\generate_public_beta_blocker_report.py --checkpython scripts\test_release_manifest.pypython scripts\generate_release_manifest.py --checkpython scripts\test_release_artifacts.pypython scripts\test_release_checksums.pypython scripts\generate_release_checksums.py --checkpython scripts\test_release_readiness.pypython scripts\check_release_readiness.pypython scripts\test_changelog_check.pypython scripts\check_changelog.pygit diff --checkrg -n "^#|^##|^###" ops\ROADMAP.md ops\AUTONOMOUS_RUN.md docs\public-beta-evidence.md docs\release-readiness.md release-artifacts\README.md release-artifacts\latest\public-beta-blockers.mdbash -n scripts/check.shscripts\check.ps1make checkpowershell -ExecutionPolicy Bypass -File scripts\check.ps1Notes
The committed baseline remains intentionally blocked for public beta and production. This PR adds visibility and validation only; it does not add fork/testnet/live evidence, signatures, external audit evidence, or readiness approvals.
Summary by CodeRabbit
New Features
Documentation
Chores
Tests