fix(review): allow MCP-backed private PR verification #27

Merged
adrian.tkacz merged 2 commits from issue-26-private-forgejo-review into develop 2026-10-11 16:13:37 +00:00
Member

Scope and Authority

Refs #26. Implements issue #26's bounded review-workflow contract change only. Independent reviewers use read-only Forgejo MCP metadata as canonical evidence for repository identity, current PR state, target/head/base refs and exact SHAs; anonymous Git enumeration is no longer a prerequisite. Review still requires a clean primary-prepared checkout with exact local objects, independently verified merge base and complete diff. Missing/mismatched evidence refuses approval. Reviewer MCP remains read-only and credentials remain unavailable to shell/model output.

Changes and Acceptance

  • Removed anonymous git ls-remote allowances from the reviewer; existing deny patterns remain.
  • Required MCP owning-repository identity, open/unmerged develop PR, exact metadata refs/SHAs, same-owner head repository, and supplied expected SHA match.
  • Required clean local expected HEAD, both local commit objects, locally calculated merge base consistent with metadata when present, and complete merge-base-to-HEAD inspection; missing/mismatched evidence yields COMMENT.
  • Reviewer now uses individually allowed read-only Git commands; semantic tests guard MCP/local binding, fail-closed evidence and command-permission compatibility.
  • Updated finish/review command and Forgejo authority references; preserved reviewer context/binding, permissions, JSON contract, validation, ordinal accounting, merge authority and issue-open handoff.

Tracked changes: .kilo/agents/pr-reviewer.md, .kilo/command/finish-pr.md, .kilo/command/review-pr.md, .kilo/rules/20-forgejo-mcp.md, tests/workflow-contract.test.mjs. No credentials, MCP writes by reviewer, product code, dependency or lockfile changes.

Exact Subject

Base and merge base: 2b73960b56cf89a8d1b7141ac950d9887990a757.
HEAD: 7d2915843b9556e15a98d8b8533cbfa01da44904.
Branch: issue-26-private-forgejo-review.

Validation

  • Node 24.19.0 / npm 11.17.0.
  • Focused npm_config_offline=true npm test -- tests/workflow-contract.test.mjs: passed, 16 tests.
  • make check: passed formatting, Markdown lint (20 files), local links, current-public secret scan, strict TypeScript, 21 tests across 3 files, ephemeral static build and runtime MIT license validation.
  • Committed base-to-HEAD git diff --check: passed; exact HEAD has expected base ancestry.

Limitations: Offline tests validate the review instruction and permission contract; no live private-repository reviewer execution is claimed. PR remains unmerged and issue #26 remains open pending independent review.

## Scope and Authority Refs #26. Implements issue #26's bounded review-workflow contract change only. Independent reviewers use read-only Forgejo MCP metadata as canonical evidence for repository identity, current PR state, target/head/base refs and exact SHAs; anonymous Git enumeration is no longer a prerequisite. Review still requires a clean primary-prepared checkout with exact local objects, independently verified merge base and complete diff. Missing/mismatched evidence refuses approval. Reviewer MCP remains read-only and credentials remain unavailable to shell/model output. ## Changes and Acceptance - Removed anonymous `git ls-remote` allowances from the reviewer; existing deny patterns remain. - Required MCP owning-repository identity, open/unmerged develop PR, exact metadata refs/SHAs, same-owner head repository, and supplied expected SHA match. - Required clean local expected HEAD, both local commit objects, locally calculated merge base consistent with metadata when present, and complete merge-base-to-HEAD inspection; missing/mismatched evidence yields COMMENT. - Reviewer now uses individually allowed read-only Git commands; semantic tests guard MCP/local binding, fail-closed evidence and command-permission compatibility. - Updated finish/review command and Forgejo authority references; preserved reviewer context/binding, permissions, JSON contract, validation, ordinal accounting, merge authority and issue-open handoff. Tracked changes: `.kilo/agents/pr-reviewer.md`, `.kilo/command/finish-pr.md`, `.kilo/command/review-pr.md`, `.kilo/rules/20-forgejo-mcp.md`, `tests/workflow-contract.test.mjs`. No credentials, MCP writes by reviewer, product code, dependency or lockfile changes. ## Exact Subject Base and merge base: `2b73960b56cf89a8d1b7141ac950d9887990a757`. HEAD: `7d2915843b9556e15a98d8b8533cbfa01da44904`. Branch: `issue-26-private-forgejo-review`. ## Validation - Node 24.19.0 / npm 11.17.0. - Focused `npm_config_offline=true npm test -- tests/workflow-contract.test.mjs`: passed, 16 tests. - `make check`: passed formatting, Markdown lint (20 files), local links, current-public secret scan, strict TypeScript, 21 tests across 3 files, ephemeral static build and runtime MIT license validation. - Committed base-to-HEAD `git diff --check`: passed; exact HEAD has expected base ancestry. **Limitations:** Offline tests validate the review instruction and permission contract; no live private-repository reviewer execution is claimed. PR remains unmerged and issue #26 remains open pending independent review.
fix(review): allow MCP-backed private PR verification
All checks were successful
Development Checks / check (pull_request) Successful in 16s
d92aa78bfa
fix(review): use individually allowed git checks
All checks were successful
Development Checks / check (pull_request) Successful in 16s
7d2915843b
adrian.tkacz deleted branch issue-26-private-forgejo-review 2026-10-11 16:13:37 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Creatidy/creatidy-console!27
No description provided.