feat: require exact per-mutation capability proof in reviewer reports (Closes #405) #418

Merged
sysadmin merged 4 commits from feat/issue-405-mutation-capability-proof into master 2026-07-08 21:13:08 -05:00
Owner

Summary

Closes #405.

Reviewer final reports could prove review_pr capability while also claiming merge or branch-delete mutations without separate exact capability proof. This PR enforces a mutation-capability table in final reports.

Changes

  • reviewer_mutation_capability_proof.py — per-mutation capability verifier (review/merge/delete)
  • final_report_validator.py — reviewer.mutation_capability_proof rule
  • review_proofs.py — assess_mutation_capability_proof wrapper
  • review-merge-pr.md — §31B mutation-capability table requirements
  • Tests: tests/test_reviewer_mutation_capability_proof.py (12 cases)

Validation

python3 -m unittest tests.test_reviewer_mutation_capability_proof -v

All 12 tests passed.

Worktree

branches/issue-405-mutation-capability-proof @ 2eaa001

## Summary Closes #405. Reviewer final reports could prove review_pr capability while also claiming merge or branch-delete mutations without separate exact capability proof. This PR enforces a mutation-capability table in final reports. ## Changes - reviewer_mutation_capability_proof.py — per-mutation capability verifier (review/merge/delete) - final_report_validator.py — reviewer.mutation_capability_proof rule - review_proofs.py — assess_mutation_capability_proof wrapper - review-merge-pr.md — §31B mutation-capability table requirements - Tests: tests/test_reviewer_mutation_capability_proof.py (12 cases) ## Validation python3 -m unittest tests.test_reviewer_mutation_capability_proof -v All 12 tests passed. ## Worktree branches/issue-405-mutation-capability-proof @ 2eaa001
jcwalker3 added 2 commits 2026-07-07 16:20:12 -05:00
Adds mutation-capability table validation so review_pr cannot authorize
merge or delete mutations without their own exact capability rows.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
jcwalker3 force-pushed feat/issue-405-mutation-capability-proof from 2eaa001104 to 8b551c565f 2026-07-07 16:20:12 -05:00 Compare
Author
Owner

pr: #418
branch: feat/issue-405-mutation-capability-proof
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/fix-pr418-conflicts
profile: prgs-author
session_id: unknown
phase: claimed
head_before: 8b551c565f
expires_at: 2026-07-08T08:20:14Z
reviewer_active: no

<!-- mcp-conflict-fix-lease:v1 --> pr: #418 branch: feat/issue-405-mutation-capability-proof worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/fix-pr418-conflicts profile: prgs-author session_id: unknown phase: claimed head_before: 8b551c565fb22056e0b129a486d5aa702837cc35 expires_at: 2026-07-08T08:20:14Z reviewer_active: no
jcwalker3 added 1 commit 2026-07-08 01:20:43 -05:00
jcwalker3 added 1 commit 2026-07-08 10:06:37 -05:00
Merge prgs/master into feat/issue-405-mutation-capability-proof and keep
both reviewer mutation-capability proof and post-merge cleanup proof rules.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #418
issue: #405
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 57883-dda5bcb9886a
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418
phase: claimed
candidate_head: 7d5c7df82f
target_branch: master
target_branch_sha: 2bb45c0f80
last_activity: 2026-07-08T15:28:38Z
expires_at: 2026-07-08T17:28:38Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #418 issue: #405 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 57883-dda5bcb9886a worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418 phase: claimed candidate_head: 7d5c7df82f7a07070564becd995c230419073886 target_branch: master target_branch_sha: 2bb45c0f80c2c7dfac3b784b182acc5ca627d792 last_activity: 2026-07-08T15:28:38Z expires_at: 2026-07-08T17:28:38Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #418
issue: #405
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 57883-dda5bcb9886a
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418
phase: claimed
candidate_head: 7d5c7df82f
target_branch: master
target_branch_sha: 2bb45c0f80
last_activity: 2026-07-08T15:37:06Z
expires_at: 2026-07-08T17:37:06Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #418 issue: #405 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 57883-dda5bcb9886a worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418 phase: claimed candidate_head: 7d5c7df82f7a07070564becd995c230419073886 target_branch: master target_branch_sha: 2bb45c0f80c2c7dfac3b784b182acc5ca627d792 last_activity: 2026-07-08T15:37:06Z expires_at: 2026-07-08T17:37:06Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #418
issue: #405
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 57883-dda5bcb9886a
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418
phase: claimed
candidate_head: 7d5c7df82f
target_branch: master
target_branch_sha: 2bb45c0f80
last_activity: 2026-07-08T15:44:20Z
expires_at: 2026-07-08T17:44:20Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #418 issue: #405 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 57883-dda5bcb9886a worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418 phase: claimed candidate_head: 7d5c7df82f7a07070564becd995c230419073886 target_branch: master target_branch_sha: 2bb45c0f80c2c7dfac3b784b182acc5ca627d792 last_activity: 2026-07-08T15:44:20Z expires_at: 2026-07-08T17:44:20Z blocker: none
sysadmin approved these changes 2026-07-08 10:47:31 -05:00
sysadmin left a comment
Owner

Review verdict: APPROVE

PR: #418 — feat: require exact per-mutation capability proof in reviewer reports (Closes #405)
Pinned head: 7d5c7df82f7a07070564becd995c230419073886
Reviewer: sysadmin / prgs-reviewer
Issue: #405

Validation summary

  • Targeted tests: 45 passed
  • Full unit suite: 1868 passed, 1 failed
  • Sole failure: pre-existing baseline TestMergePR::test_merge_blocked_on_stale_approval_head
  • Dry-run APPROVE: would_perform: true

Scope

Changes are limited to mutation-capability proof enforcement for reviewer final reports (#405). No unrelated files.

Mutation capability proof

Mutation Capability proof
review_pr (APPROVE) gitea_resolve_task_capability(task="review_pr") — allowed_in_current_session: true, profile: prgs-reviewer
merge_pr NOT performed — out of reviewer scope; requires separate prgs-merger session
delete_branch NOT performed — not in scope

Next actor: prgs-merger session to merge PR #418 at pinned head 7d5c7df82f7a07070564becd995c230419073886.

## Review verdict: APPROVE **PR:** #418 — feat: require exact per-mutation capability proof in reviewer reports (Closes #405) **Pinned head:** `7d5c7df82f7a07070564becd995c230419073886` **Reviewer:** sysadmin / prgs-reviewer **Issue:** #405 ### Validation summary - Targeted tests: 45 passed - Full unit suite: 1868 passed, 1 failed - Sole failure: pre-existing baseline `TestMergePR::test_merge_blocked_on_stale_approval_head` - Dry-run APPROVE: `would_perform: true` ### Scope Changes are limited to mutation-capability proof enforcement for reviewer final reports (#405). No unrelated files. ### Mutation capability proof | Mutation | Capability proof | |----------|------------------| | review_pr (APPROVE) | `gitea_resolve_task_capability(task="review_pr")` — allowed_in_current_session: true, profile: prgs-reviewer | | merge_pr | NOT performed — out of reviewer scope; requires separate prgs-merger session | | delete_branch | NOT performed — not in scope | **Next actor:** prgs-merger session to merge PR #418 at pinned head `7d5c7df82f7a07070564becd995c230419073886`.
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #418
issue: #405
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 57883-dda5bcb9886a
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418
phase: claimed
candidate_head: 7d5c7df82f
target_branch: master
target_branch_sha: 2bb45c0f80
last_activity: 2026-07-08T17:23:03Z
expires_at: 2026-07-08T19:23:03Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #418 issue: #405 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 57883-dda5bcb9886a worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418 phase: claimed candidate_head: 7d5c7df82f7a07070564becd995c230419073886 target_branch: master target_branch_sha: 2bb45c0f80c2c7dfac3b784b182acc5ca627d792 last_activity: 2026-07-08T17:23:03Z expires_at: 2026-07-08T19:23:03Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #418
issue: #405
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 57883-dda5bcb9886a
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418
phase: claimed
candidate_head: 7d5c7df82f
target_branch: master
target_branch_sha: 2bb45c0f80
last_activity: 2026-07-08T17:25:27Z
expires_at: 2026-07-08T19:25:27Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #418 issue: #405 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 57883-dda5bcb9886a worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418 phase: claimed candidate_head: 7d5c7df82f7a07070564becd995c230419073886 target_branch: master target_branch_sha: 2bb45c0f80c2c7dfac3b784b182acc5ca627d792 last_activity: 2026-07-08T17:25:27Z expires_at: 2026-07-08T19:25:27Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #418
issue: none
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 34998-e77fa255060b
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr418
phase: claimed
candidate_head: none
target_branch: master
target_branch_sha: none
last_activity: 2026-07-09T02:07:11Z
expires_at: 2026-07-09T04:07:11Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #418 issue: none reviewer_identity: sysadmin profile: prgs-reviewer session_id: 34998-e77fa255060b worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr418 phase: claimed candidate_head: none target_branch: master target_branch_sha: none last_activity: 2026-07-09T02:07:11Z expires_at: 2026-07-09T04:07:11Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #418
issue: none
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 34998-e77fa255060b
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr418
phase: released
candidate_head: none
target_branch: master
target_branch_sha: none
last_activity: 2026-07-09T02:08:32Z
expires_at: 2026-07-09T04:08:32Z
blocker: manual-release

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #418 issue: none reviewer_identity: sysadmin profile: prgs-reviewer session_id: 34998-e77fa255060b worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr418 phase: released candidate_head: none target_branch: master target_branch_sha: none last_activity: 2026-07-09T02:08:32Z expires_at: 2026-07-09T04:08:32Z blocker: manual-release
Owner

adopted_at: 2026-07-09T02:12:55Z
adopted_by_identity: sysadmin
adopted_by_profile: prgs-merger
adopted_from_session_id: 34998-e77fa255060b
adopted_from_profile: prgs-reviewer
adopted_from_reviewer_identity: sysadmin
adopted_from_comment_id: 7353
adoption_reason: merger-handoff-approved-head

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #418
issue: #405
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 94309-4516bb4eaf9a
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418
phase: adopted
candidate_head: 7d5c7df82f
target_branch: master
target_branch_sha: none
last_activity: 2026-07-09T02:12:55Z
expires_at: 2026-07-09T04:12:55Z
blocker: none

<!-- mcp-review-lease-adoption:v1 --> adopted_at: 2026-07-09T02:12:55Z adopted_by_identity: sysadmin adopted_by_profile: prgs-merger adopted_from_session_id: 34998-e77fa255060b adopted_from_profile: prgs-reviewer adopted_from_reviewer_identity: sysadmin adopted_from_comment_id: 7353 adoption_reason: merger-handoff-approved-head <!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #418 issue: #405 reviewer_identity: sysadmin profile: prgs-merger session_id: 94309-4516bb4eaf9a worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418 phase: adopted candidate_head: 7d5c7df82f7a07070564becd995c230419073886 target_branch: master target_branch_sha: none last_activity: 2026-07-09T02:12:55Z expires_at: 2026-07-09T04:12:55Z blocker: none
sysadmin merged commit 826d632173 into master 2026-07-08 21:13:08 -05:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Scaled-Tech-Consulting/Gitea-Tools#418