Skip to main content
← Back to list
01Issue
FeatureShippedSwamp CLIPublic
Assigneesstack72

Relationships

#2700 issue-lifecycle: link issues that ship together and ship duplicates

Opened by stack72 · 9/29/2026· Shipped 9/29/2026

The @swamp/issue-lifecycle model drives exactly one swamp-club issue per lifecycle. When one piece of work fixes several issues, or an issue duplicates one that is already fixed, the only option today is to close the extra issues by hand. Their reporters never see them shipped, and nothing records the connection.

1. Linked issues move through the lifecycle together

Add a link_issue method to the primary issue N's lifecycle.

  • It creates a related_to ("Sibling of") relationship in swamp-club from N to the linked issue M.
  • Every status transition on N is applied to each linked issue too (triaged → in_progress → shipped). swamp-club only accepts one step at a time, so an issue linked late is walked step by step until it reaches N's status.
  • Milestone (non-verbose) lifecycle entries are copied onto linked issues with a pointer back to N. Verbose working entries (plan, reviews) stay on N only.
  • The attestation is posted once. It is keyed by commit, not by issue.
  • notify and summarize cover each linked issue.
  • Linking is refused if M already has an active lifecycle of its own.

2. Mark an issue as a duplicate and ship it

Add a mark_duplicate method to the duplicate issue M's own lifecycle. It uses the duplicate_of relationship added in swamp-club#2682.

  • If the canonical issue N has already shipped: link duplicate_of, walk M to shipped with N's PR URL, then notify and summarize.
  • If N is still in progress: attach M to N's lifecycle as a linked issue.
  • If N never shipped: refuse.

3. Send the PR URL when shipping

ship/complete currently PATCH only {status: "shipped"}. Send githubPrUrl/githubPrNumber too, so swamp-club records the PR on each issue and the reporter's automatic "issue shipped" notification includes a View PR link.

02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 10 MOREREVIEW+ 21 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

9/29/2026, 8:31:18 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack729/29/2026, 4:08:25 PM

Sign in to post a ripple.