Skip to content

repo: per-change version bump + top-insert CHANGELOG serialize concurrent same-plugin PRs (conflict by construction) #464

Description

@kyle-sexton

Lane: work (issue-execution loop, up to 2 concurrent per-issue subagents)
Category: operational (throughput friction)

Triggering example

Each plugin follows a per-change convention: every PR bumps that plugin's .claude-plugin/plugin.json version AND prepends a CHANGELOG.md entry. Two independent issues on the SAME plugin therefore both edit the version line (same line) and both insert at the top of the CHANGELOG — a guaranteed textual conflict. In this session:

Net effect: the "up to 2 concurrent subagents" model collapses to serialized-per-plugin whenever the ready queue clusters on one plugin, and the second PR to merge always needs a rebase on the version/CHANGELOG lines.

Observed vs expected

  • Observed: Per-change version bump + top-insert CHANGELOG makes concurrent same-plugin PRs conflict by construction. Orchestrator must track plugin "occupancy" and avoid parallel same-plugin picks, reducing effective concurrency.
  • Expected: Concurrent PRs on the same plugin should not conflict on bookkeeping-only lines.

Suggested fix (options)

  1. Move version bumping to merge time (release step / CI) instead of per-PR, so PR branches never touch plugin.json.
  2. Use a CHANGELOG fragment directory (e.g. changelog.d/<pr>.md, towncrier-style) assembled at release, so entries never collide.
  3. Keep per-PR bumps but document the occupancy rule so pickers serialize same-plugin work deliberately.
    Recommend (2) as the modern low-friction fix; (1) if a release step already exists.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: mediumReal value, no hard deadline; normal backlog flow.status: needs-decisionAwaiting a human or maintainer judgment call.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions