Skip to content

Add release readiness dashboard#163

Merged
punk6529 merged 4 commits into
mainfrom
codex/release-readiness-dashboard
Jun 12, 2026
Merged

Add release readiness dashboard#163
punk6529 merged 4 commits into
mainfrom
codex/release-readiness-dashboard

Conversation

@punk6529

@punk6529 punk6529 commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Closes #162.

This PR adds a Gate G release-readiness dashboard and local/CI checker for the current local release baseline. It keeps the change documentation/tooling-only: no Solidity behavior changes.

What changed

  • Added docs/release-readiness.md to separate local baseline evidence from public-beta blockers and production-release blockers.
  • Added scripts/check_release_readiness.py and scripts/test_release_readiness.py to enforce required headings, maturity language, blocker language, evidence links, release commands, missing linked files, and path-boundary rejection.
  • Wired release-readiness validation into make check, scripts/check.sh, scripts/check.ps1, and CI.
  • Added docs/release-readiness.md to release-manifest governance docs and refreshed the release manifest/checksum bundle.
  • Linked the dashboard from README, tooling, release policy, audit package, status docs, release artifact docs, roadmap, and autonomous run state.

Local validation

  • python scripts\test_release_readiness.py
  • python scripts\check_release_readiness.py
  • python scripts\test_audit_package.py
  • python scripts\check_audit_package.py
  • python scripts\test_release_manifest.py
  • python scripts\generate_release_manifest.py --check
  • python scripts\test_release_checksums.py
  • python scripts\generate_release_checksums.py --check
  • python -m py_compile scripts\check_release_readiness.py scripts\test_release_readiness.py scripts\check_audit_package.py scripts\test_audit_package.py scripts\generate_release_manifest.py scripts\test_release_manifest.py scripts\generate_release_checksums.py scripts\test_release_checksums.py scripts\check_changelog.py scripts\test_changelog_check.py
  • python scripts\test_changelog_check.py
  • python scripts\check_changelog.py
  • bash -n scripts/check.sh
  • PowerShell parser check for scripts\check.ps1
  • heading scan for release-readiness, audit package, tooling, release policy, roadmap, and run-state docs
  • git diff --check (passes; Git reports the existing scripts/check.ps1 line-ending warning)
  • make check
  • powershell -ExecutionPolicy Bypass -File scripts\check.ps1

Notes

The full local gates pass with the repository's existing Foundry warning profile. Linux CI and CodeRabbit review are the next gates.

Summary by CodeRabbit

  • New Features

    • Added a release-readiness dashboard and validator to track gate evidence, blockers, and readiness before generating release artifacts.
  • Documentation

    • Added a dedicated release-readiness doc and updated release guidance, tooling, audit, status, roadmap, and README to describe readiness evidence and checks.
  • Chores

    • Integrated release-readiness checks into CI, build targets, and artifact workflows; CI now records run output to logs and release manifests/checksums were refreshed.
  • Tests

    • Added unit tests covering positive and negative release-readiness validation scenarios.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Please review this Gate G release-readiness dashboard/checker PR. Scope is documentation, Python checker/tests, local/CI gate wiring, and generated release evidence only; no Solidity behavior changes are intended.

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5e4e0b36-fd90-49f7-8a5a-61ffa225d645

📥 Commits

Reviewing files that changed from the base of the PR and between f6fe557 and ac65a41.

📒 Files selected for processing (3)
  • ops/AUTONOMOUS_RUN.md
  • scripts/check_release_readiness.py
  • scripts/test_release_readiness.py
✅ Files skipped from review due to trivial changes (1)
  • ops/AUTONOMOUS_RUN.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • scripts/test_release_readiness.py

📝 Walkthrough

Walkthrough

This PR implements Gate G release-readiness by adding docs/release-readiness.md, a deterministic checker (scripts/check_release_readiness.py) with unit tests, CI and Makefile wiring, shell/PowerShell check integration, manifest/checksum regeneration, documentation updates, and operational tracking updates.

Changes

Gate G Release-Readiness Feature

Layer / File(s) Summary
Dashboard document and changelog
docs/release-readiness.md, CHANGELOG.md
New governance document defining release-readiness posture: maturity scope, readiness summary table, local evidence, public-beta and production blockers, required evidence links, and verification commands. Changelog announces the feature.
Release-readiness checker implementation
scripts/check_release_readiness.py
New CLI script that validates release-readiness dashboard compliance: enforces required markdown headings by level/title, maturity and readiness phrases (case-insensitive substring checks), command snippets (exact substrings), and internal link targets; parses markdown links, normalizes paths, verifies files exist on disk, and exits with code 0 or 1.
Checker unit tests and test helpers
scripts/test_release_readiness.py
New test module with dynamic import of checker, filesystem helpers for seeding required markdown targets, minimal dashboard document generator, and comprehensive unit tests verifying acceptance of valid dashboards and rejection of missing headings, phrases, commands, links, linked files, and escaped repository paths.
CI and Makefile build target integration
.github/workflows/ci.yml, Makefile
GitHub CI "Repository hygiene" step now compiles release-readiness scripts; new "Release readiness" step runs test and check scripts with log output. Makefile adds release-readiness-check target and extends check goal and .PHONY list; release-manifest / release-manifest-check targets now depend on release-readiness-check.
Shell and PowerShell check script integration
scripts/check.sh, scripts/check.ps1
Both cross-platform check wrappers now invoke release-readiness test and check scripts in sequence before the release manifest/checksum pipeline.
Audit package checker requirements
scripts/check_audit_package.py
Audit package validator now requires release-readiness test and check scripts as validated commands, and adds docs/release-readiness.md to required link targets.
Repository documentation updates
README.md, docs/audit-package.md, docs/release-policy.md, docs/status.md, docs/tooling.md, release-artifacts/README.md
README adds release-readiness step description and docs link; audit-package adds dashboard link and verification commands; release-policy marks dashboard as release-impacting and adds it to release checklist; status and tooling enumerate dashboard coverage and readiness evidence categories; release-artifacts README includes checker in artifact generation/validation workflows.
Release manifest generation integration
scripts/generate_release_manifest.py, scripts/test_release_manifest.py
Manifest generation now includes docs/release-readiness.md in DEFAULT_GOVERNANCE_DOCS for hashing in generated manifests; test fixture seeding extended to include the new dashboard document.
Manifest and checksum artifact regeneration
release-artifacts/latest/release-manifest.json, release-artifacts/latest/release-checksums.json, release-artifacts/latest/SHA256SUMS
Regenerated release artifacts with updated SHA256 hashes and sizes for modified governance docs and the added release-readiness doc; checksum and manifest files themselves updated.
Operational status and roadmap updates
ops/ROADMAP.md, ops/AUTONOMOUS_RUN.md
Roadmap updates Gate F to "Complete" for local pre-audit readiness and Gate G status to reflect release-readiness dashboard work; AUTONOMOUS_RUN advanced to reflect PR #163 queue item and merged PR #161 evidence with updated CI runs, head commits, and decision-log entries.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • 6529-Collections/6529Stream#138: Both PRs modify scripts/generate_release_manifest.py’s DEFAULT_GOVERNANCE_DOCS to add different governance documents (main: docs/release-readiness.md, retrieved: docs/dependency-operations.md).
  • 6529-Collections/6529Stream#159: Both PRs modify the release manifest generation pipeline by extending scripts/generate_release_manifest.py’s DEFAULT_GOVERNANCE_DOCS.
  • 6529-Collections/6529Stream#106: Related at the manifest-generation and Makefile/CI wiring level; overlaps on release-manifest generator/tests and pipeline integration.

Poem

🐰 I stitched a dashboard neat and bright,
Links and blockers all in sight,
A checker hops through markdown halls,
Guarding manifests and hashed calls,
Ready before the release takes flight.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'Add release readiness dashboard' directly summarizes the main change: introducing a release-readiness dashboard with supporting documentation, tooling, and integration.
Linked Issues check ✅ Passed All coding requirements from issue #162 are met: release-readiness dashboard doc, checker scripts with unit tests, wiring into build/CI systems, release-manifest integration, governance-doc linking, and artifact regeneration.
Out of Scope Changes check ✅ Passed All changes directly support the release-readiness dashboard feature; no unrelated modifications to Solidity behavior, contracts, or production evidence are present.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/release-readiness-dashboard

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Get the list of files changed in PR `#163`
gh pr view 163 --repo 6529-Collections/6529Stream --json files --jq '.files[].path'

Length of output: 743


🏁 Script executed:

#!/bin/bash
# Get the PR diff
gh pr diff 163 --repo 6529-Collections/6529Stream 2>/dev/null | head -3000

Length of output: 100210


🏁 Script executed:

#!/bin/bash
# Read the full check_release_readiness.py
cat scripts/check_release_readiness.py

Length of output: 7793


🏁 Script executed:

#!/bin/bash
# Read the full test_release_readiness.py
cat scripts/test_release_readiness.py

Length of output: 7826


🏁 Script executed:

#!/bin/bash
# Read the test_release_manifest.py to check the seed function
cat scripts/test_release_manifest.py | head -120

Length of output: 4549


🏁 Script executed:

#!/bin/bash
# Check the full release-readiness.md
cat docs/release-readiness.md

Length of output: 9846


🏁 Script executed:

#!/bin/bash
# Verify that release-artifacts/README.md is in the actual repo (linked from release-readiness.md)
fd "README.md" release-artifacts/

Length of output: 258



@punk6529 — thorough review below. The PR is clean and well-executed; no Solidity changes confirmed. I found two minor test coverage gaps worth noting, and everything else checks out.


Review: Gate G Release-Readiness Dashboard (#163)

scripts/check_release_readiness.py

The checker logic is correct throughout:

  • Path boundary enforcement: normalize_repo_path calls .resolve() on both the candidate path and the repo root before relative_to(), so macOS/Linux symlink stacks (e.g. /var → /private/var) are handled consistently.
  • Escape-before-missing priority: normalize_repo_path is called (and raises) before the resolved.exists() test, so an out-of-repo path always surfaces as "linked path escapes repository" rather than silently landing in the missing list. That's the right priority order.
  • Case-insensitive phrase matching: missing_phrases lowercases both the document text and each phrase, so "Slither baseline" in REQUIRED_READINESS_PHRASES correctly matches regardless of capitalisation.
  • PowerShell command literal: "powershell -ExecutionPolicy Bypass -File scripts\\check.ps1" is the Python string scripts\check.ps1 (single backslash), which is exactly what the document contains. ✓
  • Self-link check: "docs/release-readiness.md" is in REQUIRED_LINK_TARGETS, and the document links to (release-readiness.md) which resolves from docs/ to docs/release-readiness.md. ✓
  • Anchor stripping: normalized_link_target strips #appendix-b-test-matrix before path resolution, so ../ops/ROADMAP.md#appendix-b-test-matrix correctly passes the existence check. ✓

scripts/test_release_readiness.py

Eight tests, solid coverage of the happy path and all major error paths. A couple of small gaps:

Gap 1 — no test for a missing document: validate_release_readiness handles this explicitly…

if not document_path.is_file():
    raise ReleaseReadinessError(f"missing document: {relative}")

…but there is no test case that removes docs/release-readiness.md from the temp tree and asserts that error message. The integration test test_accepts_committed_doc would catch a truly missing committed file, so this is low risk, but a dedicated unit test would close the gap cleanly.

Gap 2 — --release-readiness CLI arg is untested: parse_args / main accept --release-readiness <path>, but no test exercises it. Again low risk given the integration path, but worth a follow-up.

docs/release-readiness.md

Content is clear, honest about pre-audit status, and the three-tier separation (local baseline / public beta blockers / production blockers) is exactly what Gate G needs. All in-document links were verified to resolve correctly from the docs/ directory context.

✅ Wiring (Makefile, CI, check.sh, check.ps1)

  • Makefile: release-readiness-check is correctly wired into check, release-manifest, and release-manifest-check. ✓
  • ci.yml: "Release readiness" step is placed before "Release manifest", consistent with the Makefile dependency order. ✓
  • check.sh / check.ps1: follows the same testcheck pattern used by all other checkers. ✓

check_audit_package.py cross-reference

docs/release-readiness.md and both readiness scripts added to REQUIRED_LINK_TARGETS and REQUIRED_COMMANDS. Consistent with how docs/architecture.md and the architecture scripts were added in PR #161. ✓

✅ Release manifest / checksums

generate_release_manifest.py lists docs/release-readiness.md as a governance doc after docs/audit-package.md. The resulting release-manifest.json entry, SHA256SUMS hash update, and release-checksums.json size/hash update are all internally consistent. ✓


Summary

The PR achieves its stated scope completely. Two minor test coverage additions would improve robustness but are not blockers:

Item Risk Suggested follow-up
No test for missing-document error path in validate_release_readiness Low Add test_rejects_missing_document to test_release_readiness.py
--release-readiness CLI arg untested Low Add test_custom_release_readiness_path that passes a non-default path

Everything else looks correct. The Gate G dashboard and checker are ready to merge.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add release readiness dashboard and blocker checker

1 participant