Self-review as a supervisory control program; CI verifies instead of reviewing - #236
Merged
Conversation
…reviewing boatstack-reviewer runs the review loop locally on the generic kernel: an untrusted proposer submits candidate findings under the admitted policy, deterministic admission gates each round, and a converged loop seals a receipt bound to the receipt-excluded head tree. The codex-action CI reviewer is removed; review-verified checks the sealed receipt with no model or API key in CI.
boatstack-reviewer show prints the exact archived findings of the latest round (or --round <n>) and any staged candidate, so a driver can read the review before deciding to resolve or submit.
…sons The verifier no longer trusts receipt-declared convergence bounds; a receipt sealed under bounds or weights that differ from the admitted policy fails verification. Untargeted resolve now reports the domain's exact submission disposition alongside the kernel decision.
…th, chunked candidate transport
…ts admit the same policy bytes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
boatstack/cmd/boatstack-reviewer, a supervisory-control review program built directly on the domain-neutral kernel (its first production consumer). The review loop runs locally: an untrusted proposer (coding agent or human) submits candidate findings under the admitted review policy, and every round passes deterministic admission — exact schema validation against.github/codex/review-output-schema.json, diff-anchor validation against the exactmerge-base..headdiff, committed-tree freshness binding, and a priority-weighted convergence measure (bounds calibrated from the last 30 PRs' mined review history intestdata/review_rounds.json)..github/reviews/<instance>.receipt.json, bound to the receipt-excluded head tree so committing the receipt does not invalidate it. The receipt carries the full kernel receipt chain, the round trajectory, and the final review bytes.openai/codex-actionCI reviewer entirely. The newreview-verifiedworkflow builds the verifier and deterministically checks the sealed receipt against the base-admitted policy — no model or API key in CI. Repository contracts updated accordingly; the kernel-runtime expectedFailure marker is now the permanent positive production-reachability assertion.resolve(state + instructions + exact submission disposition),submit,status,show(read a recorded review without resolving),seal,verify,reopen(human capability),recover,reset. Agent-facing walkthrough indocs/self-review.md.skills/self-reviewandskills/self-review-solve), registered for Cursor, Codex, and Claude Code.self-reviewruns one review round and reports the verdict without changing code (it verifies afterwards that no tracked file changed);self-review-solvedecides from the committed control state what is needed — fixes open findings in code, reopens a drifted converged instance, asks the human before reopening an escalated loop — then converges, seals, and commits the receipt.yskill doctor --testexercises both against a sentinel-switched scratch repository so testing never touches real review state.Test plan
go test ./cmd/boatstack-reviewer— program law, calibration fixture, admission soundness/completeness, stall law, full loop e2e, stale/dirty refusals, escalation + human reopen, tamper/forgery/bypass rejection, bounds-drift rejection, recovery, CLI verify/show/resolvego test ./flow/standard— source inventory registers the reviewer's writer and command boundariesyskill doctor skills/self-review --testandyskill doctor skills/self-review-solve --test— deterministic fixture runs against a scratch repository, including the untracked-file regressionverify --base origin/main --head HEADpasses all 8 checks against the committed receiptreview-verifiedCI job passes on this PR (verifies the committed receipt)