Skip to main content

Issue Lifecycle

@swamp/issue-lifecyclev2026.06.15.1· 1d agoMODELSSKILLS
01README

Interactive triage and implementation planning for swamp-club lab issues. Drives the triage/plan/iterate/approve/implement loop as a local conversation with Claude, while posting structured lifecycle entries and status transitions back to the swamp-club issue on every step.

The model operates directly on swamp-club lab issue numbers — the issue must already exist in swamp-club before you start. There is no GitHub integration.

State Machine

created ──[start]──> triaging
triaging ──[triage]──> classified
classified ──[plan]──> plan_generated
plan_generated ──[iterate]──> plan_generated  (feedback loop)
plan_generated ──[approve]──> approved
approved ──[implement]──> implementing
implementing ──[link_pr]──> pr_open
pr_open ──[link_pr]──> pr_open  (idempotent re-link)
pr_open ──[pr_failed]──> pr_failed
pr_failed ──[link_pr]──> pr_open  (retry with new PR)
pr_failed ──[implement]──> implementing  (restart implementation)
pr_open ──[pr_merged]──> releasing
releasing ──[ship]──> notify
implementing ──[complete]──> notify  (no PR linked)
pr_open ──[complete]──> notify
releasing ──[complete]──> notify
notify ──[notify]──> done  (thank external contributor)
notify ──[skip_notify]──> done  (skip notification)

Pre-flight checks enforce valid transitions: you cannot approve without a plan, cannot implement without approval, and cannot approve while critical or high adversarial findings remain unresolved. start can resume from any phase except done. complete accepts implementing, pr_open, and releasing as source phases.

Methods

  • start — fetch issue context from swamp-club (fails if the issue does not exist); auto-assigns the current user
  • triage — classify as bug/feature/platform/security and PATCH the swamp-club issue type
  • plan — generate an implementation plan
  • review — display the current plan (read-only)
  • iterate — revise the plan with feedback (versioned)
  • adversarial_review — record adversarial review findings
  • resolve_findings — mark adversarial findings as resolved
  • approve — lock the plan and transition to in_progress
  • implement — signal implementation has started
  • link_pr — link an opaque pull request URL to the lifecycle record (idempotent; transitions to pr_open). Git-host agnostic — the model persists whatever URL the agent supplies without fetching anything.
  • pr_merged — record that the linked PR was merged (transitions to releasing)
  • pr_failed — record that the linked PR failed (transitions to pr_failed; can retry via link_pr or implement)
  • ship — mark as shipped/released (transitions to notify)
  • complete — mark the lifecycle complete (transitions to notify)
  • notify — post a thank-you ripple to the issue author and transition to done
  • skip_notify — skip contributor notification and transition directly to done

Data

All resources are versioned and immutable: state, context, classification, plan, feedback, adversarialReview, pullRequest.

Prerequisites

  • swamp initialized in the repository (swamp init)
  • SWAMP_API_KEY env var (or swamp auth login) for swamp-club access
  • The target lab issue must already exist in swamp-club
02Models1
@swamp/issue-lifecyclev2026.06.15.1issue_lifecycle.ts
fn start()
Ensure the swamp-club issue exists and begin the lifecycle
fn triage(confidence: enum, reasoning: string, isRegression?: boolean, clarifyingQuestions?: array)
Classify the issue based on context
ArgumentTypeDescription
confidenceenum
reasoningstring
isRegression?booleanTrue if this is a regression (something that previously worked). Implies type=bug.
clarifyingQuestions?array
fn plan(summary: string, dddAnalysis: string, steps: array, testingStrategy: string, potentialChallenges: array)
Generate an initial implementation plan
ArgumentTypeDescription
summarystring
dddAnalysisstring
stepsarray
testingStrategystring
potentialChallengesarray
fn review(version?: number)
Display the current plan (read-only)
ArgumentTypeDescription
version?numberSpecific plan version to review
fn iterate(feedback: string, summary: string, dddAnalysis: string, steps: array, testingStrategy: string, potentialChallenges: array)
Submit feedback and a revised plan incorporating all prior feedback
ArgumentTypeDescription
feedbackstringHuman feedback on the current plan
summarystring
dddAnalysisstring
stepsarray
testingStrategystring
potentialChallengesarray
fn adversarial_review(findings: array)
Record adversarial review findings for the current plan version
ArgumentTypeDescription
findingsarray
fn resolve_findings(resolutions: array)
Mark adversarial review findings as resolved after plan revision
ArgumentTypeDescription
resolutionsarray
fn approve()
Approve the current plan
fn implement()
Signal that implementation has started
fn link_pr(url: string)
Link a pull request to the implementation. Idempotent — calling
ArgumentTypeDescription
urlstringCanonical pull request URL. Opaque to the model — pass whatever
fn pr_merged(mergedAt?: string)
Record that the linked PR has been merged. Transitions to releasing.
ArgumentTypeDescription
mergedAt?stringISO-8601 timestamp of when the PR was merged. Defaults to now.
fn pr_failed(reason: string)
Record that the linked PR has failed (CI failure, review rejection, etc.).
ArgumentTypeDescription
reasonstringWhy the PR failed: CI failure details, review rejection reason, etc.
fn ship(releaseUrl?: string, releaseNotes?: string)
Mark the release as shipped after the release build completes.
ArgumentTypeDescription
releaseUrl?stringURL of the release (e.g., GitHub release page, package registry). Optional.
releaseNotes?stringBrief release notes or summary. Optional.
fn complete()
Mark the issue lifecycle as done
fn notify(message?: string)
Thank an external contributor by posting a ripple on the issue
ArgumentTypeDescription
message?stringCustom thank-you message. If omitted, a default message is generated.
fn skip_notify()
Skip contributor notification and transition directly to done.

Resources

state(infinite)— Current lifecycle phase and metadata
context(infinite)— Issue context fetched from swamp-club
classification(infinite)— Issue triage classification
plan(infinite)— Implementation plan (versioned across iterations)
feedback(infinite)— Human feedback on plan (versioned per round)
adversarialReview(infinite)— Adversarial review findings for the current plan version
pullRequest(infinite)— Pull request linked to the implementation. Single instance,
03Skills1
issue-lifecycle5 files
04Previous Versions5
2026.04.22.2Apr 22, 2026
2026.04.20.1Apr 20, 2026

Modified 1 models

2026.04.08.2Apr 8, 2026

Modified 1 models

2026.04.08.1Apr 8, 2026

Modified 1 models

2026.04.07.1Apr 7, 2026
05Stats
Downloads
336
Archive size
46.1 KB

Not yet scored.

A score will be generated the next time this extension is published. The owner can also trigger scoring manually.

06Platforms
07Labels