Skip to content

refactor(source-control)!: remove resolve-conflicts in favour of the pull-request conflict mode #13138

Closed
3 of 3 issues completed

Description

@kyle-sexton

Part of #7576 (PR 3 of 3). Starts after #13137 (PR 2) closes.

Problem

Owner interview Q541: "remove the skill ... update every dependent (the pr-unblock lane)". Once PR 2 has moved conflict resolution into /source-control:pull-request, the standalone skill and every pointer at it go.

Done when

  • plugins/source-control/skills/resolve-conflicts/ and the ten plugins/source-control/evals/resolve-conflicts-* cases are gone or moved to cases of the PR 2 mode.
  • The resolve-conflicts activity's skill: and args: in docs/conventions/pr-pipeline.yaml:35-36 and docs/conventions/pr-pipeline/examples/claude-code-plugins.yaml:74 name the PR 2 skill and mode, with --unattended in args (docs/conventions/pr-pipeline.yaml:93-94), and the activity keeps its name resolve-conflicts. .github/actions/collect-base-activity/collect-base-activity.test.mjs, .github/actions/resolve-config/feedback-dispatch.test.mjs and .github/actions/resolve-config/live-config.test.mjs assert the new skill and allowed-tools grant.
  • plugins/source-control/README.md, docs/skill-cheat-sheet.md:229, plugins/work-items/skills/ship/actions/run.md:81 and its eval, and docs/upstream/mattpocock-skills.md:55,58 (which still says "keep ours pending an eval") are updated to the removal.
  • rg -n 'source-control:resolve-conflicts' plugins docs .github --glob '!**/CHANGELOG.md' --glob '!.changes/**' finds nothing, and node --test '.github/scripts/pr-unblock/*.test.mjs' exits 0 in the PR's CI.
  • A changelog fragment for source-control (major: a skill is removed).

Keeping the activity name leaves the grant files that key on it unchanged. The lane-token broker's grant does not depend on skill: (.github/actions/resolve-config/resolve.mjs:927-950), so keeping the activity name needs no broker re-pin.

Filed by Issue Triage from the #7576 spec (agent choice, verified against main). This was generated by AI.

Activity

  1. added
    priority: mediumReal value, no hard deadline; normal backlog flow.
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    on Nov 4, 2026
  2. added theissue type on Nov 4, 2026
  3. added
    work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.
    on Nov 4, 2026
  4. github-actions commented on Nov 4, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: structural
    Basis: automated intake triage; the lanes App applied this class.

    Size: Large
    Complexity: Medium
    Uncertainty: Known
    Flags: none
    Blocked by: none

    Understood: remove the standalone resolve-conflicts skill and its evals, repoint the resolve-conflicts pipeline activity at the pull-request conflicts mode (keeping the activity name), update the docs and tests that name the skill, and add a major changelog fragment for source-control.

    The last implementation attempt produced a patch over the size cap, so the work needs splitting. One natural split:

    1. Move the eval cases to the pull-request mode. The earlier comment says the cases are to be moved, not dropped.
    2. Repoint the pipeline config and its tests.
    3. Update the docs and the ship skill, then remove the skill and add the changelog fragment.

    #13137 does not appear in the open issues, so it looks done. No open duplicates found.

    Automated triage, applied by the lanes App.

  5. melodic-automation-lanes commented on Nov 4, 2026

    @melodic-automation-lanes
    Contributor

    Not admitted to the issue lane yet: sub-issue #13199 is open.

  6. kyle-sexton commented on Nov 4, 2026

    @kyle-sexton
    MemberAuthor

    From the #13149 review (thread on plugins/source-control/skills/pull-request/reference/conflicts-ci.md): the done-when item "the ten resolve-conflicts-* cases are gone or moved" should be read as moved, not dropped, for at least resolve-conflicts-ci-mode-resolves-in-place, -ci-mode-leaves-workflows-alone, -ci-mode-runs-no-gates (to invoke /source-control:pull-request conflicts --ci --unattended) and -refuses-bulk-ours-and-abort (to invoke ready). Until then those cases are the only coverage of the rules #13149 moved into the pull-request skill.

  7. added
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Nov 4, 2026
  8. github-actions commented on Nov 4, 2026

    @github-actions
    Contributor
    No description provided.
  9. github-actions commented on Nov 4, 2026

    @github-actions
    Contributor
    No description provided.
  10. melodic-automation-lanes commented on Nov 4, 2026

    @melodic-automation-lanes
    Contributor

    The work-resolve-issue lane stopped on this issue (scan-refused-patch): the scan job refused the run's patch for its size, and the run job's scan of it found no credential shape or binary hunk: the work is too large for one patch, so admission parks it for intake's split (owner Q93) at whatever Size it was triaged (admit.mjs patchCapStopped), and the split files its sub-issues, as for split-required.
    It removed agent-ready and status: ready, so the hourly triage sweep sends it back through intake triage, and it waits on no decision from a person.

    In the run's words:

    The scan job refused the run's output, so nothing was published: too-large: the patch was over its 262144-byte cap. The run's log names its size.

    Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/41805610261

  11. removed
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    on Nov 4, 2026
  12. github-actions commented on Nov 4, 2026

    @github-actions
    Contributor

    The triage sweep dispatched intake triage for this issue (dispatch 1; 2 runs that reach intake, or 6 dispatches, hand it to a maintainer).

  13. melodic-automation-lanes commented on Nov 4, 2026

    @melodic-automation-lanes
    Contributor

    Split at intake (owner Q93). This issue is Size Large, so its done-when is split into 3 sub-issues, each holding its task-list lines as written.

    Automated split by the lanes App. Admission waits on this issue while a sub-issue is open; work-unblock closes it as completed once every sub-issue is closed as completed by a merge or a listed human and its done-when is covered.

  14. melodic-automation-lanes commented on Nov 4, 2026

    @melodic-automation-lanes
    Contributor

    Every sub-issue of this split is closed as completed by a listed human or a merge (#13197, #13198, #13199), so the lanes App closes it as completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: mediumReal value, no hard deadline; normal backlog flow.work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.

    Type

    Fields

    Work status

    ready

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions