Add release evidence packet index#209
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 (8)
✅ Files skipped from review due to trivial changes (2)
🚧 Files skipped from review as they are similar to previous changes (6)
📝 WalkthroughWalkthroughAdds a deterministic release evidence packet index generator CLI, tests, and committed JSON/Markdown artifacts; wires generation/checks into Makefile, CI, local check scripts, release manifest/checksum records, release-readiness checks, and documentation. ChangesRelease Evidence Packet Index
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes 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.
Actionable comments posted: 3
🧹 Nitpick comments (1)
ops/ROADMAP.md (1)
373-399: ⚡ Quick winTighten the
#207summary to match the packet contract.The new roadmap note stops at templates, retained-artifact expectations, validation commands, and readiness posture. Please also mention the packet fields required by the issue brief: phase, requirement ID, current status, owner/reviewer posture, blocker-report reference, and whether template-only evidence can ever satisfy a row. That keeps the roadmap aligned with the generator contract.
Proposed wording
- Issue `#207` adds a no-secret release evidence packet index/checker that maps blocker rows to templates, retained-artifact expectations, validation commands, and readiness posture without changing evidence contents or readiness claims. + Issue `#207` adds a no-secret release evidence packet index/checker that records phase, requirement ID, current status, owner/reviewer posture, blocker-report reference, template path, retained-artifact expectation, validation commands, and whether template-only evidence can ever complete a row, without changing evidence contents or readiness claims.🤖 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 `@ops/ROADMAP.md` around lines 373 - 399, Update the `#207` roadmap summary to explicitly list the release evidence packet fields required by the issue contract: include "phase", "requirement ID", "current status", "owner/reviewer posture", "blocker-report reference", and "template-only evidence satisfiability" (whether template-only evidence can ever satisfy a row), in addition to the already-mentioned mappings to templates, retained-artifact expectations, validation commands, and readiness posture; edit the existing `#207` sentence in the ROADMAP note so it enumerates these packet fields and their presence in the generated release-artifacts/latest/release-evidence-packet-index (JSON/MD) output.
🤖 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.
Inline comments:
In @.github/workflows/ci.yml:
- Around line 90-91: The py_compile ordering is inconsistent: swap the two
entries so the test script precedes its generator. In the CI py_compile list,
move scripts/test_release_evidence_packet_index.py to come before
scripts/generate_release_evidence_packet_index.py so the file order matches the
established convention (test_… before generate_…).
In `@docs/public-beta-evidence.md`:
- Around line 181-183: Update step 11 so the command both regenerates and
verifies the packet index by invoking the script with the --check flag (or show
two commands: run python scripts/generate_release_evidence_packet_index.py to
regenerate, then python scripts/generate_release_evidence_packet_index.py
--check to validate); specifically modify the line that currently shows python
scripts/generate_release_evidence_packet_index.py to include the --check
invocation (or add the separate --check command immediately after) so the
documentation reflects the drift-check workflow and ensures validation is not
skipped.
In `@scripts/test_release_evidence_packet_index.py`:
- Line 260: The test currently asserts a hard-coded row count and references a
hard-coded template filename; update the assertions to derive values from the
requirement lists instead: replace the literal 17 used in the assert on
packet["rows"] with len(checker.PUBLIC_BETA_REQUIREMENTS) or
len(checker.PRODUCTION_REQUIREMENTS) as appropriate for the test case, and
replace the hard-coded "external-audit-report-template.json" template filename
with a value computed from the same requirement set or a helper that maps the
requirement set to the expected template name; change the assertions and any
setup that builds packet["rows"] to compute expected_cardinality =
len(checker.PUBLIC_BETA_REQUIREMENTS) (or PRODUCTION_REQUIREMENTS) and
assertEqual(len(packet["rows"]), expected_cardinality), and similarly compute
the expected template filename from the requirement constants instead of using
the literal string.
---
Nitpick comments:
In `@ops/ROADMAP.md`:
- Around line 373-399: Update the `#207` roadmap summary to explicitly list the
release evidence packet fields required by the issue contract: include "phase",
"requirement ID", "current status", "owner/reviewer posture", "blocker-report
reference", and "template-only evidence satisfiability" (whether template-only
evidence can ever satisfy a row), in addition to the already-mentioned mappings
to templates, retained-artifact expectations, validation commands, and readiness
posture; edit the existing `#207` sentence in the ROADMAP note so it enumerates
these packet fields and their presence in the generated
release-artifacts/latest/release-evidence-packet-index (JSON/MD) output.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 2f01ffa5-ca87-4e5c-9aac-543356fa0784
📒 Files selected for processing (24)
.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-packet-index.jsonrelease-artifacts/latest/release-evidence-packet-index.mdrelease-artifacts/latest/release-manifest.jsonscripts/check.ps1scripts/check.shscripts/check_release_readiness.pyscripts/generate_release_artifacts.pyscripts/generate_release_evidence_packet_index.pyscripts/generate_release_manifest.pyscripts/test_release_artifacts.pyscripts/test_release_evidence_packet_index.pyscripts/test_release_manifest.pyscripts/test_release_readiness.py
Summary
Closes #207.
Readiness posture
This does not change Solidity, deployment behavior, evidence contents, or public-beta/production readiness claims. Template-only evidence remains preparation material and cannot complete a requirement.
Validation
python -m py_compile scripts/generate_release_evidence_packet_index.py scripts/test_release_evidence_packet_index.py scripts/generate_release_manifest.py scripts/test_release_manifest.py scripts/generate_release_artifacts.py scripts/test_release_artifacts.py scripts/check_release_readiness.pypython scripts/test_release_evidence_packet_index.pypython scripts/generate_release_evidence_packet_index.py --checkpython 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_production_release_blocker_report.pypython scripts/generate_production_release_blocker_report.py --checkpython scripts/test_non_local_release_evidence.pypython scripts/check_non_local_release_evidence.pypython scripts/test_release_artifacts.pypython scripts/generate_release_artifacts.py --checkpython scripts/test_release_manifest.pypython scripts/generate_release_manifest.py --checkpython 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.pybash -n scripts/check.shscripts/check.ps1rg -n "^#|^##|^###" ops/ROADMAP.md ops/AUTONOMOUS_RUN.md docs/public-beta-evidence.md docs/release-readiness.md docs/tooling.md release-artifacts/README.mdgit diff --checkpassed with existing CRLF-normalization warning forscripts/check.ps1make checkpassed with existing warning noise onlySummary by CodeRabbit
New Features
Tests
Documentation
Chores