Skip to main content
← Back to list
01Issue
FeatureOpenExtensions
AssigneesNone

Relationships

#691 Official @swamp/linear extension — first-class Linear API model type

Opened by ynm · 6/19/2026

Problem

Linear is a widely used issue tracker, and wiring it into swamp workflows (fetch issue details, classify tickets, post comments, apply/remove labels, transition status, set assignee) is a common need. Today there is no official, first-class Linear model type. Teams either wrap the Linear API via command/shell (brittle, untyped, no data-model integration) or rely on community/third-party extensions.

The third-party route has a concrete failure mode: when a Linear model type is provided by an extension that also layers broader lifecycle logic on top, the Linear methods are coupled to that parent extension's lifecycle. Pulling a different channel/version of the parent can silently drop the added methods from the base type — e.g. a type that exposed getIssue, listProjectIssues, addComment, addLabel, setStatus regresses to only createIssue, listTeams, listProjects, listStates, breaking every workflow that depended on the richer surface. Consumers have no stable Linear API surface to depend on.

Proposed solution

Publish an official @swamp/linear extension providing a stable @swamp/linear model type:

  • Global args: apiKey (sensitive, vault-backed), optional defaultTeamId.
  • Read methods: getIssue, listIssues / listProjectIssues, listProjects, listTeams, listStates.
  • Mutation methods (all supporting dryRun): createIssue, addComment, addLabel, removeLabel, setStatus, setAssignee.
  • CEL-friendly resource outputs keyed by issue identifier so workflows chain via data.latest("<model>", "<identifier>").attributes.*.

A first-class, versioned base type gives higher-level extensions (lifecycle/automation tooling) a dependency they can pin, instead of re-deriving Linear methods or having them vanish on a channel bump.

Alternatives considered

  • command/shell wrapping the Linear API/CLI — works but brittle, untyped, and bypasses the data model.
  • Community/third-party Linear extensions — functional, but couple Linear methods to unrelated lifecycle logic and offer no stable, independently versioned surface (see failure mode above).
02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED

Open

6/19/2026, 3:06:40 PM

No activity in this phase yet.

03Sludge Pulse

Sign in to post a ripple.