Repository navigation
docs(specs): 018 v0.3 release readiness audit records - #424
Conversation
Phase 0/1 artifacts for the v0.3 release audit: plan, research decisions (RC publication via release.yaml, kubelab deploy with --reuse-values, audit018- isolation, severity scale, known-bug import sources), data model for the audit records, contracts for record formats, test resources, RC deploy/rollback and v0.3.0 status wording, plus a quickstart for running and validating an audit round. Adds OD-005..OD-008 (upgrade baseline, node-loss test, kubelab reachability, audit tamper test scope) for maintainer decision. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
OD-005 reinstall kubelab at beta.8 (DB snapshot/restore) for the live upgrade test; OD-006 real node-loss test approved; OD-007 maintainer fixes devbox networking; OD-008 live audit tamper on audit018- rows. Adds OD-009 (audit chain recovery after the live tamper), which gates only the tamper test. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
Snapshot/restore the API DB around each live tamper variant (UPDATE, middle DELETE, tail truncation) on audit018- rows. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
76 tasks across setup, foundational (release criteria, known-bug import, kubelab baseline, rc.1), US1 live inventory, US2 component review and live security violations, US3 fix/re-verify rounds, US4 upgrade/rollback/node-loss, US5 go/no-go report, and v0.3.0 release polish. Records that kubelab DNS now resolves (OD-007). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
|
Important Review skippedToo many files! This PR contains 217 files, which is 117 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configuration
📒 Files selected for processing (217)
You can disable this status message by setting the
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
CI Report - f586860run 37382380168 - attempt 1 0 failed - 2 passed - 18 skipped - 9m11s elapsed Coverageno coverage/* commit statuses found on f586860 Changed
Slowest jobs
e2e buckets run
|
Fixed before round 0 (FR-015). Met stays pending until go/no-go. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
…ubelab baseline snapshot T001 skeleton (coverage, report), T002 module categories (17 categories across 30 modules), T006-T008 read-only snapshot/diff/cleanup scripts, T012 read-only baseline snapshot JSON. OPEN-DECISIONS: RC-TAG-1 and OD-010..OD-018 pending maintainer input, T054 module tag question. .gitignore: un-ignore specs/*/audit/coverage.md (caught by coverage.*). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
…0..OD-018
- audit/inventory.md: 502 rows merged from the rc.0 drafts (T023),
plus the T024 completeness review
- audit/procedures/*: haiku-drafted procedures, not yet reviewed for
correctness; security.md carries a do-not-run banner
- audit/evidence/review-{docs,test-e2e,modules,web,website}: first
review pass and verification notes
- audit/kubelab-baseline.md, rounds.md, conventions.md
- release-criteria.md: RC-03 amended per OD-010 (change-log line)
- OPEN-DECISIONS.md: OD-010..OD-017 resolved, OD-018 logged,
RC-TAG-1 command switched to an annotated unsigned tag (OD-013)
- RESTART.md: session handoff
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN
Signed-off-by: devbox-test <devbox-test@localhost>
- OPEN-DECISIONS.md: OD-019, the maintainer's rule that security findings stay unpushed until fixed, and how it's applied - .gitignore: ignore specs/*/audit/held/ - audit/findings.md: note that held IDs leave gaps - audit/conventions.md: OD-015/OD-016 marked settled; held evidence path Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
3de03ab to
213bdaa
Compare
… fixes - audit/findings.md: known-bug import (T009-T011), review findings F-031..F-043 and the opus review wave F-044..F-255, checked one tier up (OD-020); unfixed security findings are held off-git (OD-019) - audit/coverage.md: every component row complete (T035-T045) - audit/evidence/review-*: opus review notes and independent verification per component; held candidates replaced by stubs - audit/procedures/*: correctness pass, factual follow-ups, quoting sweep; upgrade.md baseline-beta8 reinstall marked DO NOT RUN (OD-023) - audit/inventory.md: evidence links under evidence/, stale T031 deferrals cleared - audit/kubelab-baseline.md, rounds.md: T012 API state and migration level 011 - OPEN-DECISIONS.md: OD-015 command fix, OD-020..OD-023 - tasks.md, RESTART.md: progress and hand-off Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
- audit/evidence/rc.1/fix-plan.md: findings grouped into fix/018-* branches, S1 first, each with its regression test; re-check-first and in-flight lists; checked one tier up (opus) - OPEN-DECISIONS.md: OD-024, maintainer sign-off before the fix waves (production code and tests) - tasks.md, RESTART.md: T050 done, next steps Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
- OD-022: add .github/actions/ and images/ coverage rows and review them - OD-023: fix F-212 first, then reinstall with that RC's chart - OD-024: whole fix plan approved - OD-025: design-first fix groups done on another machine Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gFiYbmVoNLZkV3koRKVQN Signed-off-by: devbox-test <devbox-test@localhost>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
F-054 (#436), F-103/F-104 (#437), F-121 (#438), F-204 (#439), F-102/F-108 (#433) and F-215 (#432) move to fixing. F-258 records the Failed-Module status loop found while fixing CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
7 similar comments
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
Every held finding now has a fix pull request, so the held findings, fix plan, briefs, reviews and verification notes are committed alongside the rest of the 018 audit records. The .gitignore rule for held folders stays for future audits, with a negation for this one. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013jxF3PyHjoWwBvJGHM3Eox Signed-off-by: valgulnecron <39313199+ValgulNecron@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013jxF3PyHjoWwBvJGHM3Eox Signed-off-by: valgulnecron <39313199+ValgulNecron@users.noreply.github.com>
|
@coderabbitai review Generated by Claude Code |
|
|
@coderabbitai review |
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
T016-T023 (inventory drafts and merge), T051-T053 (#422, #420, #421 merged) and T060/T064 (upgrade and node procedures written), each with its evidence. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
…omponent reviews - T014: audit/rounds.md ## rc.1 records the tag, the cancelled release run, what published, and deviation F-257 (fixed by #435). Left unticked: the cosign checks on the published images still need a machine with cosign. - T067: contracts/status-wording.md re-checked on master 6750ba8. - T045: .github/actions/ and images/ reviewed and verified one tier up; F-264..F-270 filed, coverage rows complete, verification index added. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
…T014/T015 Every held fix PR is merged, so per OD-019 the 57 held rows and their subsections move to audit/findings.md as fixed-unverified with their fix PRs. T014/T015 are withdrawn: the rc.1 release run was cancelled (F-257, fixed by #435), so the live rounds target rc.2 (maintainer, 2026-10-04). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
The two dump-cluster-state hardening findings from the T045 review of .github/actions/ were held until their fix merged (OD-019). #545 merged, so they are recorded as fixed-unverified with the review note for S-3. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
OPEN-DECISIONS.md conflicted: master (#549) added a provisional backup/restore Job limits decision as OD-005, which this branch already uses for the upgrade baseline. Kept this branch's file and added it as OD-027; operator/specs.md now cites spec 018 OD-027. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
The informal live sweep of master on kubelab (#548, #549) is recorded as ## live-sweep 2026-10-04 in audit/rounds.md, with F-273..F-293: 16 fixed by #548/#549 (fixed-unverified), F-276 not-a-defect, and B3 plus four design-first items open. OD-027 notes the provisional Job limits ship in #549; OD-028 records the accepted B15 RBAC widening. T025..T034 stay open until the formal per-row round on rc.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
The maintainer ran the live round on the latest master commit instead of rc.2 (2026-10-05). T025-T033 are withdrawn in favour of the 2026-10-04 live sweep; T034, the upgrade/node rounds and RC-TAG-2 are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
operator/specs.md conflicted with #573; took master's text, which describes the now-configurable Job limits (spec 018 OD-027). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y Signed-off-by: Claude <noreply@anthropic.com>
Summary
Audit records for spec 018 (v0.3 release readiness), in progress. This is a draft so the records can be reviewed as they grow (tasks.md "Commit Cadence"). Product fixes don't land here; they go to their own
fix/018-*branches.Status (2026-10-04)
v0.3.0-rc.1is tagged (RC-TAG-1, 2026-09-24). The rc.2 CHANGELOG (docs: add v0.3.0-rc.2 CHANGELOG section #496) and the hardening fixes fix(agent): confine the final upload path to the data root #511, fix(operator): align dev RBAC manifests and markers with the split-role design #513–fix(netguard): harden address policies and document call sites #517 and fix(operator): surface refused tunnel credentials on status #534 are merged; RC-TAG-2 (v0.3.0-rc.2) is pending.tasks.md: 24 tasks checked, 52 open. Most of the open ones are the live kubelab rounds (T015, T025–T033).specs/018-v0-3-release-readiness/and.gitignore.In this branch
specs/018-v0-3-release-readiness/: plan, tasks, research, contracts andOPEN-DECISIONS.md.audit/release-criteria.md: RC-01 to RC-08, committed before any live work. RC-03 was amended on 2026-09-24 per OD-010.audit/tools/: read-only kubelabsnapshot.sh,snapshot-diff.shandcleanup-check.sh.audit/kubelab-baseline.mdandaudit/evidence/baseline/: the pre-audit snapshot, plus the API state and DB migration level from T012.audit/evidence/rc.0/module-categories.md: 17 module categories across 30 modules.audit/inventory.mdandaudit/procedures/: capabilities enumerated from code, the completeness review, and a correctness pass over the procedures.audit/evidence/review-*/: a review of every component with independent verification (coverage.mdrows all complete).audit/findings.md: known bugs imported (T009–T011) plus the review findings, checked one tier up. Unfixed security findings are held off-git (OD-019), so the IDs have gaps..gitignore: un-ignoresspecs/*/audit/coverage.md, whichcoverage.*was catching, and ignoresspecs/*/audit/held/.Known gaps (do not merge yet)
tasks.mdcheckboxes lag the record (T014's tag is done per RC-TAG-1, T023's merge is done per its note); to be reconciled when the rounds run.Related PRs (all merged)
Test plan
check-links,check-specs,check-doc-versions)🤖 Generated with Claude Code
https://claude.ai/code/session_01UshpSigdLccuYZi7oFJX9y
This draft should not be merged or used for live release sign-off until the database, node-recovery, resource-isolation, and verification-gate failures are corrected.
Findings
<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Reinstall reuses the old database ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Rollback restores the wrong snapshot ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Stopped worker cannot restart itself ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Network policy reverts disable defaults ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Ingress remains disabled after testing ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Toggle tests replace the RC ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Image cleanup restores private builds ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Tests mutate an existing server ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Server references a nonexistent template ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">CSRF extraction includes cookie attributes ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Snapshot source uses local-path storage ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Module cleanup leaves backup records ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Cleanup omits round fixtures ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Failed queries report clean cleanup ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Helm changes escape baseline checks ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Safety fields are not compared ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Missing baseline files pass comparison ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Two required reviews are absent ▶<img alt="P1" src="https://greptile-static-assets.s3.amazonaws.com/badges/p1.svg?v=9" align="top">Tag command requires unavailable key ▶<img alt="P2" src="https://greptile-static-assets.s3.amazonaws.com/badges/p2.svg?v=9" align="top"><img alt="Security" src="https://greptile-static-assets.s3.amazonaws.com/badges/Security.svg?v=2" align="top">Raw login headers remain unprotected ▶<img alt="P2" src="https://greptile-static-assets.s3.amazonaws.com/badges/p2.svg?v=9" align="top"><img alt="Security" src="https://greptile-static-assets.s3.amazonaws.com/badges/Security.svg?v=2" align="top">Raw database diff enters evidence ▶<img alt="P2" src="https://greptile-static-assets.s3.amazonaws.com/badges/p2.svg?v=9" align="top">Created admin missing from cleanup ▶Fix with agent prompt
(6 more issues omitted due to length limits.)
Summary
This draft adds the spec 018 release-readiness audit: baseline records, component reviews and findings, live-test procedures, release criteria, and snapshot/cleanup tools. The records identify substantial known product work, but several new procedures and verification gates need correction before they can safely support live testing or a release decision.
Diagram
%%{init: {'theme': 'neutral'}}%% flowchart LR B[Record kubelab baseline] --> R[Publish and deploy RC] R --> T[Run isolated live procedures] T --> E[Record outcomes and findings] E --> F[Fix, publish next RC, re-verify] F --> T T --> C[Clean fixtures and compare baseline] C --> G[Go/no-go report]Reviews (1) · Last reviewed commit: "docs(specs): 018 rc.2 also waits for #50..."
Generated by Claude Code