feat: add controller issue-acceptance gate (Closes #500) #504

Merged
sysadmin merged 1 commits from feat/issue-500-controller-issue-acceptance-gate into master 2026-07-08 21:29:05 -05:00
Owner

Summary

Closes #500.

Adds controller issue-acceptance validation so merged PRs do not automatically count as issue completion. Controller acceptance comments and final reports must carry explicit acceptance proof or state that controller acceptance is still pending.

Changes

  • issue_acceptance_gate.py — template renderer, acceptance-comment validator, final-report merge-only completion detection
  • final_report_validator.pyshared.issue_acceptance_gate rule on work_issue reports
  • docs/issue-acceptance-gate.md — workflow position, template rules, role boundaries
  • skills/llm-project-workflow/templates/controller-issue-acceptance.md — paste-ready prompt/template
  • docs/llm-workflow-runbooks.md — link to acceptance gate doc
  • tests/test_issue_acceptance_gate.py — acceptance/rejection paths and final-report integration

Validation

/Users/jasonwalker/Development/Gitea-Tools/venv/bin/python -m py_compile issue_acceptance_gate.py final_report_validator.py tests/test_issue_acceptance_gate.py
# passed

/Users/jasonwalker/Development/Gitea-Tools/venv/bin/python -m pytest tests/test_issue_acceptance_gate.py tests/test_final_report_validator.py -q
# 42 passed, 3 subtests passed

git diff --check prgs/master...HEAD
# passed

Worktree

/Users/jasonwalker/Development/Gitea-Tools/branches/issue-500-controller-issue-acceptance-gate @ 33d01ba

LLM Handoff Metadata

  • LLM-Agent-SHA: llm-33d01ba
  • LLM-Role: implementer
  • Authenticated-Gitea-User: jcwalker3
  • MCP-Profile: prgs-author
  • Branch: feat/issue-500-controller-issue-acceptance-gate
  • Worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/issue-500-controller-issue-acceptance-gate
  • Self-review allowed: no
## Summary Closes #500. Adds controller issue-acceptance validation so merged PRs do not automatically count as issue completion. Controller acceptance comments and final reports must carry explicit acceptance proof or state that controller acceptance is still pending. ## Changes - `issue_acceptance_gate.py` — template renderer, acceptance-comment validator, final-report merge-only completion detection - `final_report_validator.py` — `shared.issue_acceptance_gate` rule on `work_issue` reports - `docs/issue-acceptance-gate.md` — workflow position, template rules, role boundaries - `skills/llm-project-workflow/templates/controller-issue-acceptance.md` — paste-ready prompt/template - `docs/llm-workflow-runbooks.md` — link to acceptance gate doc - `tests/test_issue_acceptance_gate.py` — acceptance/rejection paths and final-report integration ## Validation ```bash /Users/jasonwalker/Development/Gitea-Tools/venv/bin/python -m py_compile issue_acceptance_gate.py final_report_validator.py tests/test_issue_acceptance_gate.py # passed /Users/jasonwalker/Development/Gitea-Tools/venv/bin/python -m pytest tests/test_issue_acceptance_gate.py tests/test_final_report_validator.py -q # 42 passed, 3 subtests passed git diff --check prgs/master...HEAD # passed ``` ## Worktree `/Users/jasonwalker/Development/Gitea-Tools/branches/issue-500-controller-issue-acceptance-gate` @ `33d01ba` ## LLM Handoff Metadata - LLM-Agent-SHA: llm-33d01ba - LLM-Role: implementer - Authenticated-Gitea-User: jcwalker3 - MCP-Profile: prgs-author - Branch: feat/issue-500-controller-issue-acceptance-gate - Worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/issue-500-controller-issue-acceptance-gate - Self-review allowed: no
jcwalker3 added 1 commit 2026-07-08 02:28:52 -05:00
Add issue_acceptance_gate validation for Controller Issue Acceptance
comments, final-report rules blocking merge-only issue completion claims,
documentation/templates, and regression tests.

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

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #504
issue: #500
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 94309-8e3048ee656f
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr504
phase: claimed
candidate_head: 33d01ba65e
target_branch: master
target_branch_sha: none
last_activity: 2026-07-09T02:27:51Z
expires_at: 2026-07-09T04:27:51Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #504 issue: #500 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 94309-8e3048ee656f worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr504 phase: claimed candidate_head: 33d01ba65e0a0fe250ec9dee2f2af8d8bc141721 target_branch: master target_branch_sha: none last_activity: 2026-07-09T02:27:51Z expires_at: 2026-07-09T04:27:51Z blocker: none
sysadmin approved these changes 2026-07-08 21:28:50 -05:00
sysadmin left a comment
Owner

Controller/Reviewer Handoff — PR #504

🔍 Duplicate-PR Analysis

  • Selected PR: PR #504 (feat/issue-500-controller-issue-acceptance-gate)
  • Target Issue: Closes #500.
  • Duplicate Verification: Checked all open PRs. No other open PRs target Issue #500.

🧾 Scope & Verification Proof

  • Master branch head: 1ffa911dbc20041eb080b3c7304ac4198f73c408
  • Pinned head: 33d01ba65e0a0fe250ec9dee2f2af8d8bc141721
  • Diff is strictly localized to issue-acceptance gate implementation under issue_acceptance_gate.py, docs, templates, and tests.
  • Checked out inside clean isolated worktree /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr504.
  • All tests passed successfully (including targeted pytest tests/test_issue_acceptance_gate.py and 1772 full-suite tests, matching master baseline).
  • Trailing whitespace check passed.

🗳️ Review Decision

  • Verdict: APPROVED
  • Reasoning: PR #504 implements robust, fail-closed controller issue-acceptance gates and final-report validation checks, satisfying the requirements of Issue #500.

📝 Mutation Ledger

  1. Lease Reclaimed: Reviewer lease for PR #504 reclaimed under session 94309-8e3048ee656f in isolated worktree branches/review-pr504.
  2. Decision Marked: APPROVED review marked ready via gitea_mark_final_review_decision.
  3. Review Submitted: This approved review submission.

🚀 Safe Next Action

Merger (prgs-merger) — Proceed to merge PR #504 via gitea_merge_pr under the authorized capability. Ensure the merger lease is adopted cleanly from a branches-only worktree before merging.

## Controller/Reviewer Handoff — PR #504 ### 🔍 Duplicate-PR Analysis - **Selected PR:** PR #504 (`feat/issue-500-controller-issue-acceptance-gate`) - **Target Issue:** Closes #500. - **Duplicate Verification:** Checked all open PRs. No other open PRs target Issue #500. ### 🧾 Scope & Verification Proof - Master branch head: `1ffa911dbc20041eb080b3c7304ac4198f73c408` - Pinned head: `33d01ba65e0a0fe250ec9dee2f2af8d8bc141721` - Diff is strictly localized to issue-acceptance gate implementation under `issue_acceptance_gate.py`, docs, templates, and tests. - Checked out inside clean isolated worktree `/Users/jasonwalker/Development/Gitea-Tools/branches/review-pr504`. - All tests passed successfully (including targeted `pytest tests/test_issue_acceptance_gate.py` and 1772 full-suite tests, matching master baseline). - Trailing whitespace check passed. ### 🗳️ Review Decision - **Verdict:** APPROVED - **Reasoning:** PR #504 implements robust, fail-closed controller issue-acceptance gates and final-report validation checks, satisfying the requirements of Issue #500. ### 📝 Mutation Ledger 1. **Lease Reclaimed:** Reviewer lease for PR #504 reclaimed under session `94309-8e3048ee656f` in isolated worktree `branches/review-pr504`. 2. **Decision Marked:** `APPROVED` review marked ready via `gitea_mark_final_review_decision`. 3. **Review Submitted:** This approved review submission. ### 🚀 Safe Next Action **Merger (`prgs-merger`)** — Proceed to merge PR #504 via `gitea_merge_pr` under the authorized capability. Ensure the merger lease is adopted cleanly from a branches-only worktree before merging.
Owner

adopted_at: 2026-07-09T02:28:58Z
adopted_by_identity: sysadmin
adopted_by_profile: prgs-merger
adopted_from_session_id: 94309-8e3048ee656f
adopted_from_profile: prgs-reviewer
adopted_from_reviewer_identity: sysadmin
adopted_from_comment_id: 7438
adoption_reason: merger-handoff-approved-head

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #504
issue: #500
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 94309-e7382bc5eb31
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr504
phase: adopted
candidate_head: 33d01ba65e
target_branch: master
target_branch_sha: none
last_activity: 2026-07-09T02:28:58Z
expires_at: 2026-07-09T04:28:58Z
blocker: none

<!-- mcp-review-lease-adoption:v1 --> adopted_at: 2026-07-09T02:28:58Z adopted_by_identity: sysadmin adopted_by_profile: prgs-merger adopted_from_session_id: 94309-8e3048ee656f adopted_from_profile: prgs-reviewer adopted_from_reviewer_identity: sysadmin adopted_from_comment_id: 7438 adoption_reason: merger-handoff-approved-head <!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #504 issue: #500 reviewer_identity: sysadmin profile: prgs-merger session_id: 94309-e7382bc5eb31 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr504 phase: adopted candidate_head: 33d01ba65e0a0fe250ec9dee2f2af8d8bc141721 target_branch: master target_branch_sha: none last_activity: 2026-07-09T02:28:58Z expires_at: 2026-07-09T04:28:58Z blocker: none
sysadmin merged commit 81822da04d into master 2026-07-08 21:29:05 -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#504