feat: require live PR head re-pin before conflict-fix classification (Closes #522) #563

Merged
sysadmin merged 3 commits from feat/issue-522-conflict-fix-classification into master 2026-07-09 07:41:33 -05:00
Owner

Summary

Closes #522.

Open PR inventory mergeable / head_sha fields can be stale (observed on PRs #508 and #493). Author sessions were starting unnecessary conflict-fix work from inventory alone.

Changes

  • conflict_fix_classification.py — live head re-pin classifier:
    • stale_inventory_skip when inventory says conflicted but live is mergeable
    • conflict_fix_needed only when live mergeable is false (worktree allowed on pinned live head)
    • live_mergeable_skip / incomplete_live_repin for the remaining cases
    • final-report proof parser for tool citation + live head SHA + classification
  • gitea_assess_conflict_fix_classification MCP tool (read-only)
  • Final-report rule on work_issue tasks
  • Author workflow §20A in work-issue.md + README tool row
  • Tests covering #508/#493-style stale inventory cases

Validation

# from worktree only:
python -m pytest tests/test_conflict_fix_classification.py tests/test_final_report_validator.py tests/test_assess_conflict_fix_push_tool.py -q
# 47 passed, 3 subtests passed

Worktree discipline

All implementation was done in:
/Users/jasonwalker/Development/Gitea-Tools/branches/feat-issue-522-conflict-fix-classification @ add87b5

No root checkout feature commits.

Self-review

Not allowed (author = jcwalker3).

## Summary Closes #522. Open PR inventory `mergeable` / `head_sha` fields can be stale (observed on PRs #508 and #493). Author sessions were starting unnecessary conflict-fix work from inventory alone. ## Changes - `conflict_fix_classification.py` — live head re-pin classifier: - `stale_inventory_skip` when inventory says conflicted but live is mergeable - `conflict_fix_needed` only when live mergeable is false (worktree allowed on pinned live head) - `live_mergeable_skip` / `incomplete_live_repin` for the remaining cases - final-report proof parser for tool citation + live head SHA + classification - `gitea_assess_conflict_fix_classification` MCP tool (read-only) - Final-report rule on `work_issue` tasks - Author workflow §20A in `work-issue.md` + README tool row - Tests covering #508/#493-style stale inventory cases ## Validation ```bash # from worktree only: python -m pytest tests/test_conflict_fix_classification.py tests/test_final_report_validator.py tests/test_assess_conflict_fix_push_tool.py -q # 47 passed, 3 subtests passed ``` ## Worktree discipline All implementation was done in: `/Users/jasonwalker/Development/Gitea-Tools/branches/feat-issue-522-conflict-fix-classification` @ `add87b5` No root checkout feature commits. ## Self-review Not allowed (author = jcwalker3).
jcwalker3 added 1 commit 2026-07-08 21:30:38 -05:00
Treat inventory mergeable/head as advisory. Add classification helper and
MCP tool so author sessions re-pin the live PR head before creating a
conflict-fix worktree, skip stale inventory false-negatives, and prove
classification in final reports.
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #563
issue: #522
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 82807-1c5ef77b796a
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/feat-issue-522-conflict-fix-classification
phase: claimed
candidate_head: add87b5708
target_branch: master
target_branch_sha: 9a2e585a9e
last_activity: 2026-07-09T02:51:52Z
expires_at: 2026-07-09T04:51:52Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #563 issue: #522 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 82807-1c5ef77b796a worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/feat-issue-522-conflict-fix-classification phase: claimed candidate_head: add87b5708d00c741d3d1ec1b7388963794b3bd3 target_branch: master target_branch_sha: 9a2e585a9ef6e0efa0883b8d6a73c7067ce2216e last_activity: 2026-07-09T02:51:52Z expires_at: 2026-07-09T04:51:52Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #563
issue: #522
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 82807-1c5ef77b796a
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/feat-issue-522-conflict-fix-classification
phase: released
candidate_head: add87b5708
target_branch: master
target_branch_sha: 9a2e585a9e
last_activity: 2026-07-09T02:52:17Z
expires_at: 2026-07-09T04:52:17Z
blocker: manual-release

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #563 issue: #522 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 82807-1c5ef77b796a worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/feat-issue-522-conflict-fix-classification phase: released candidate_head: add87b5708d00c741d3d1ec1b7388963794b3bd3 target_branch: master target_branch_sha: 9a2e585a9ef6e0efa0883b8d6a73c7067ce2216e last_activity: 2026-07-09T02:52:17Z expires_at: 2026-07-09T04:52:17Z blocker: manual-release
sysadmin added 1 commit 2026-07-08 21:52:48 -05:00
sysadmin added 1 commit 2026-07-08 22:45:06 -05:00
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #563
issue: #522
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 82807-1c5ef77b796a
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr563-issue-522
phase: claimed
candidate_head: 95ec891bd2
target_branch: master
target_branch_sha: b68805e88a
last_activity: 2026-07-09T04:17:17Z
expires_at: 2026-07-09T06:17:17Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #563 issue: #522 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 82807-1c5ef77b796a worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr563-issue-522 phase: claimed candidate_head: 95ec891bd2ca588548c9891f5ecf93f6565b71a5 target_branch: master target_branch_sha: b68805e88a044d720223003d0fea413f62ab0322 last_activity: 2026-07-09T04:17:17Z expires_at: 2026-07-09T06:17:17Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #563
issue: #522
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 78110-472fa3d9f314
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/feat-issue-522-conflict-fix-classification
phase: claimed
candidate_head: 95ec891bd2
target_branch: master
target_branch_sha: none
last_activity: 2026-07-09T12:40:32Z
expires_at: 2026-07-09T14:40:32Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #563 issue: #522 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 78110-472fa3d9f314 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/feat-issue-522-conflict-fix-classification phase: claimed candidate_head: 95ec891bd2ca588548c9891f5ecf93f6565b71a5 target_branch: master target_branch_sha: none last_activity: 2026-07-09T12:40:32Z expires_at: 2026-07-09T14:40:32Z blocker: none
sysadmin approved these changes 2026-07-09 07:40:55 -05:00
sysadmin left a comment
Owner

APPROVE PR #563 (Closes #522)

Head: 95ec891bd2ca588548c9891f5ecf93f6565b71a5
Reviewer: sysadmin / prgs-reviewer
Author: jcwalker3 (not self-review)

Scope (7 files, clean)

  • New conflict_fix_classification.py + MCP tool gitea_assess_conflict_fix_classification (read-only)
  • Live head re-pin classifications: stale_inventory_skip / conflict_fix_needed / live_mergeable_skip / incomplete_live_repin
  • Final-report proof rule on work_issue + review_proofs wrapper
  • work-issue.md §20A workflow; README tool row
  • Unit tests for #508/#493-style stale inventory

Validation

pytest tests/test_conflict_fix_classification.py tests/test_final_report_validator.py tests/test_assess_conflict_fix_push_tool.py -q
# 53 passed, 3 subtests passed

Worktree: branches/feat-issue-522-conflict-fix-classification @ 95ec891

APPROVE — mergeable; ready for prgs-merger.

## APPROVE PR #563 (Closes #522) **Head:** `95ec891bd2ca588548c9891f5ecf93f6565b71a5` **Reviewer:** sysadmin / prgs-reviewer **Author:** jcwalker3 (not self-review) ### Scope (7 files, clean) - New `conflict_fix_classification.py` + MCP tool `gitea_assess_conflict_fix_classification` (read-only) - Live head re-pin classifications: stale_inventory_skip / conflict_fix_needed / live_mergeable_skip / incomplete_live_repin - Final-report proof rule on work_issue + review_proofs wrapper - work-issue.md §20A workflow; README tool row - Unit tests for #508/#493-style stale inventory ### Validation ``` pytest tests/test_conflict_fix_classification.py tests/test_final_report_validator.py tests/test_assess_conflict_fix_push_tool.py -q # 53 passed, 3 subtests passed ``` Worktree: `branches/feat-issue-522-conflict-fix-classification` @ `95ec891` **APPROVE** — mergeable; ready for prgs-merger.
Owner

adopted_at: 2026-07-09T12:41:16Z
adopted_by_identity: sysadmin
adopted_by_profile: prgs-merger
adopted_from_session_id: 78110-472fa3d9f314
adopted_from_profile: prgs-reviewer
adopted_from_reviewer_identity: sysadmin
adopted_from_comment_id: 7856
adoption_reason: merger-handoff-approved-head

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #563
issue: #522
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 82300-9e8b8dd9ecd9
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/feat-issue-522-conflict-fix-classification
phase: adopted
candidate_head: 95ec891bd2
target_branch: master
target_branch_sha: none
last_activity: 2026-07-09T12:41:16Z
expires_at: 2026-07-09T14:41:16Z
blocker: none

<!-- mcp-review-lease-adoption:v1 --> adopted_at: 2026-07-09T12:41:16Z adopted_by_identity: sysadmin adopted_by_profile: prgs-merger adopted_from_session_id: 78110-472fa3d9f314 adopted_from_profile: prgs-reviewer adopted_from_reviewer_identity: sysadmin adopted_from_comment_id: 7856 adoption_reason: merger-handoff-approved-head <!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #563 issue: #522 reviewer_identity: sysadmin profile: prgs-merger session_id: 82300-9e8b8dd9ecd9 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/feat-issue-522-conflict-fix-classification phase: adopted candidate_head: 95ec891bd2ca588548c9891f5ecf93f6565b71a5 target_branch: master target_branch_sha: none last_activity: 2026-07-09T12:41:16Z expires_at: 2026-07-09T14:41:16Z blocker: none
sysadmin merged commit 0631e2e155 into master 2026-07-09 07:41:33 -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#563