Require explicit continuation mode before working an issue already represented by an open PR #188

Closed
opened 2026-07-05 14:40:12 -05:00 by jcwalker3 · 1 comment
Owner

Evidence:
A Gemini author run was asked to continue working the issue queue without a specific issue selected. It authenticated correctly as jcwalker3 / prgs-author, checked both repos, selected Gitea-Tools issue #183, committed changes on branch feat/issue-183-harden-author-run-reporting, pushed commit dfcbca7355cb01782d7aab48be95491548bf9c6e, updated PR #187, and labeled issue #183 as status:in-progress.

Positive behavior:

  • Stayed in author role.
  • Did not review, approve, request changes, merge, or close issues.
  • Included exact capability proof.
  • Included exact validation counts:
    • tests/test_review_proofs.py56/56 passed
    • tests/test_review_proofs.py tests/test_pr_queue_inventory.py72/72 passed
    • full suite → 696 passed, 6 skipped
  • Included exact secret/provenance grep command.
  • Included a Controller Handoff.

Problem:
The run claimed issue #183 had "no duplicate PR open," but also stated that PR #187 already existed for #183 and was being continuation-reconciled. That is contradictory.

For an issue-selection task, an issue already represented by an open PR should be excluded unless the operator explicitly asks to continue/update that existing PR.

Required behavior:

  1. Issue queue work must classify each issue as:

    • unclaimed and no PR
    • already represented by open PR
    • in-progress
    • continuation explicitly requested
    • excluded
  2. If an issue has an open PR, the workflow must not select it for new issue work unless:

    • the operator explicitly requested continuation, or
    • the workflow clearly enters continuation mode and proves it is safe.
  3. Continuation mode must report:

    • existing PR number
    • existing PR author
    • existing branch
    • old PR head SHA
    • new PR head SHA after push
    • whether the current session authored or previously touched the PR
    • why continuation is allowed
  4. Open PR inventory must include any open PR that the run later edits.
    If PR #187 is open and updated, it must appear in the open PR inventory or the report must explain why it was absent.

  5. The final report must not say "no duplicate PR open" when a PR for the selected issue exists.

Tests/harness assertions:

  • issue with open PR is excluded from fresh issue selection
  • continuation mode requires explicit operator instruction or explicit safe-mode classification
  • report with "no PR open" plus later PR edit is downgraded
  • open PR inventory must include edited PRs
  • continuation report must include old head SHA and new head SHA

Acceptance criteria:
An author issue-selection run earns an A only when it selects an issue with no open PR, or explicitly and correctly enters continuation mode for an existing PR with full evidence.

Related:

  • Second precedent the same day: a Claude author run continuation-rebased PR #186 (issue #182) during a blind queue task after finding it mergeable: false — it classified the unit explicitly as "issue #182 continuation, no new issue claimed" and reported old head bd6cbe28 → new head 45c5cac2, which is the disclosure shape requirement 3 formalizes. The Gemini #183/#187 run shows what happens without that classification: contradictory "no duplicate PR" claims.
  • #183 (in-progress, PR #187) covers author-run reporting fields; this issue adds the selection-time classification wall.
  • mcp-control-plane #75 (mutation scope lock) is the MCP-level analogue: continuation mode is a scope-lock mode for the selected unit.
  • Complements #77's complete-inventory wall: requirement 4 extends inventory to include any PR the run later edits.
Evidence: A Gemini author run was asked to continue working the issue queue without a specific issue selected. It authenticated correctly as `jcwalker3 / prgs-author`, checked both repos, selected Gitea-Tools issue #183, committed changes on branch `feat/issue-183-harden-author-run-reporting`, pushed commit `dfcbca7355cb01782d7aab48be95491548bf9c6e`, updated PR #187, and labeled issue #183 as `status:in-progress`. Positive behavior: * Stayed in author role. * Did not review, approve, request changes, merge, or close issues. * Included exact capability proof. * Included exact validation counts: * `tests/test_review_proofs.py` → `56/56 passed` * `tests/test_review_proofs.py tests/test_pr_queue_inventory.py` → `72/72 passed` * full suite → `696 passed, 6 skipped` * Included exact secret/provenance grep command. * Included a Controller Handoff. Problem: The run claimed issue #183 had "no duplicate PR open," but also stated that PR #187 already existed for #183 and was being continuation-reconciled. That is contradictory. For an issue-selection task, an issue already represented by an open PR should be excluded unless the operator explicitly asks to continue/update that existing PR. Required behavior: 1. Issue queue work must classify each issue as: * unclaimed and no PR * already represented by open PR * in-progress * continuation explicitly requested * excluded 2. If an issue has an open PR, the workflow must not select it for new issue work unless: * the operator explicitly requested continuation, or * the workflow clearly enters `continuation mode` and proves it is safe. 3. Continuation mode must report: * existing PR number * existing PR author * existing branch * old PR head SHA * new PR head SHA after push * whether the current session authored or previously touched the PR * why continuation is allowed 4. Open PR inventory must include any open PR that the run later edits. If PR #187 is open and updated, it must appear in the open PR inventory or the report must explain why it was absent. 5. The final report must not say "no duplicate PR open" when a PR for the selected issue exists. Tests/harness assertions: * issue with open PR is excluded from fresh issue selection * continuation mode requires explicit operator instruction or explicit safe-mode classification * report with "no PR open" plus later PR edit is downgraded * open PR inventory must include edited PRs * continuation report must include old head SHA and new head SHA Acceptance criteria: An author issue-selection run earns an A only when it selects an issue with no open PR, or explicitly and correctly enters continuation mode for an existing PR with full evidence. Related: * Second precedent the same day: a Claude author run continuation-rebased PR #186 (issue #182) during a blind queue task after finding it `mergeable: false` — it classified the unit explicitly as "issue #182 continuation, no new issue claimed" and reported old head `bd6cbe28` → new head `45c5cac2`, which is the disclosure shape requirement 3 formalizes. The Gemini #183/#187 run shows what happens without that classification: contradictory "no duplicate PR" claims. * #183 (in-progress, PR #187) covers author-run reporting fields; this issue adds the selection-time classification wall. * mcp-control-plane #75 (mutation scope lock) is the MCP-level analogue: continuation mode is a scope-lock mode for the selected unit. * Complements #77's complete-inventory wall: requirement 4 extends inventory to include any PR the run later edits.
jcwalker3 added the status:in-progress label 2026-07-06 10:39:04 -05:00
Author
Owner

Claimed and implemented on feat/issue-188-continuation-selection-wall.

Approach: classify_issue_for_selection excludes issues with open PRs from fresh selection; continuation mode requires explicit operator request plus full disclosure (PR #, author, branch, old/new head SHAs). assess_contradictory_no_pr_claim blocks contradictory "no duplicate PR" claims.

Tests: 6 unit tests in TestIssueSelectionContinuation — all pass.

PR #246 opened for review.

Claimed and implemented on `feat/issue-188-continuation-selection-wall`. **Approach:** `classify_issue_for_selection` excludes issues with open PRs from fresh selection; continuation mode requires explicit operator request plus full disclosure (PR #, author, branch, old/new head SHAs). `assess_contradictory_no_pr_claim` blocks contradictory "no duplicate PR" claims. **Tests:** 6 unit tests in `TestIssueSelectionContinuation` — all pass. PR #246 opened for review.
sysadmin removed the status:in-progress label 2026-07-06 11:26:12 -05:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

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