Skip to main content
← Back to list
01Issue
BugOpenSwamp CLIPublic
AssigneesNone

Relationships

#2321 issue-lifecycle: contributor check compares swamp-club handles against GitHub logins, so every author reads as external

Opened by skunk-ape · 9/21/2026

The issue-lifecycle skill decides whether to thank an issue author by testing a swamp-club handle against a list of GitHub logins. The two are independent namespaces with no mapping, so the test is meaningless and fails open in the wrong direction.

The check

From .claude/skills/issue-lifecycle/SKILL.md, Phase 5:

gh api /repos/swamp-club/swamp/collaborators --jq '.[].login' | grep -qx '<author>'

<author> is the author field of the swamp-club lab issue. That is a swamp-club username. The list on the other side of the grep is GitHub logins.

Observed

Shipping swamp-club#2313, whose author is the account that filed it:

  • swamp auth status reports username skunk-ape
  • gh api /repos/swamp-club/swamp/collaborators returns seth, adamhjk, stack72, zacharyhamm, mahirl, johnrwatson, keeb
  • the grep therefore misses, and the skill instructs notify

notify would have posted a public thank-you ripple to a core team member for their own issue. I called skip_notify instead on the reasoning that the identifiers come from different systems, but an agent following the documented rule literally would have posted it.

Why this is more than cosmetic

The skill states notify does not roll back: "If it fails after the ripple posted, the phase has already advanced — do not re-run it, or the contributor is thanked twice." A wrong call cannot be undone, so a false external reading leaves a spurious public comment on the issue.

Since swamp-club handles are chosen independently of GitHub logins, the check misses for any user whose two names differ — which is the normal case, not an edge case. Effectively every issue is classified external.

Note on the same call elsewhere

AGENTS.md uses the same gh api collaborators call for deciding commit co-authorship, and that usage is correct: it applies to GitHub issues, where the author already is a GitHub login. The skill appears to have copied the pattern into a context where the identifier comes from a different system.

Possible directions

  • Have swamp-club expose collaborator or team membership for lab issues, and check that instead of reaching for GitHub.
  • Add an explicit handle mapping, and treat an unmapped handle as unknown rather than external.
  • Failing either, invert the default: ask the human when the author cannot be positively identified as external, rather than posting an irreversible public comment on a guess.
02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED

Open

9/21/2026, 6:16:15 PM

No activity in this phase yet.

03Sludge Pulse

Sign in to post a ripple.