Skip to main content
← Back to list
01Issue
FeatureShippedExtensionsPublic
Assigneesskunk-ape

Relationships

⊘ blocked by #2794⊘ blocks #2797⊘ blocks #2800⊘ blocks #2801⊘ blocks #2820

#2795 gatorwalk-factory: a lifecycle chooses its tracker, and status shows projection lag

Opened by skunk-ape · 9/30/2026· Shipped 10/1/2026

Part of the tracker-seam decision (https://claude.ai/artifact/TDidgyVjxKXU7JsNH1baNy). Needs #2794. Takes over part 2 of #2771 (making the lag visible).

Change

  • Lifecycle level: tracker: { kind: builtin | swamp-club | linear, prefix?: <PREFIX> }. Default builtin.
  • Stage level: rename the projection block to tracker (_lib/lifecycle_schema.ts:555-624, checks at about :1062-1190). Seth approved the rename. Nothing is published, so no upgrade path is needed; update every bundled lifecycle, example and test lifecycle.
  • The lifecycle holder binds a tracker instance by name beside the lifecycle. start pins it into the run record next to externalRefs. validate checks that the instance's model type matches tracker.kind.
  • status reads the pinned tracker instance's cursor (cursor-<key>) as data, with no network call, and shows the journal version delivered against the journal's length, so a driver sees when publish is behind. The work item still never talks to a tracker. The driving skill's per-step loop uses it.

Done when

  • A lifecycle naming swamp-club with a holder bound to a Linear instance fails validate with a clear message.
  • status shows "tracker behind by N events" after writes with no publish, and nothing once published. Tested against the Lab fake.
  • skill_test.ts covers the changed commands, and #2771's part 2 "Done when" holds.
02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 9 MOREPR_LINKED+ 2 MORESESSION_SUMMARIZED

Shipped

10/1/2026, 12:10:36 AM

Click a lifecycle step above to view its details.

03Sludge Pulse
skunk-ape assigned skunk-ape9/30/2026, 9:52:53 PM
skunk-ape linked blocked by #27949/30/2026, 3:45:55 PM
skunk-ape marked as blocked9/30/2026, 3:45:55 PM
skunk-ape linked blocks #27979/30/2026, 3:45:55 PM
skunk-ape linked blocks #28009/30/2026, 3:45:56 PM
skunk-ape linked blocks #28019/30/2026, 3:45:57 PM
skunk-ape linked blocks #28209/30/2026, 4:49:54 PM
skunk-ape unblocked automatically9/30/2026, 7:27:31 PM
Editable. Press Enter to edit.

skunk-ape commented 9/30/2026, 7:09:39 PM

Hand-off from #2794 (PR https://git.swamp-club.com/swamp-club/swamp-extensions/pulls/391). #2794 added these as tracker-instance global arguments, and this issue moves them into the factory definition's tracker block:

  • built-in tracker (@swamp/gatorwalk-factory/tracker): prefix (required, lowercase), statuses (list, default open, in_progress, shipped, closed; any direction), types (list, default bug, feature, security)
  • Linear: teamId (the team create files in) and types (issue type to label name)

The built-in tracker's externalRefs key is builtin. Claimed keys now lead with the display id (external) or the prefix (built-in); a built-in ticket's first work item takes the ticket id.

skunk-ape commented 9/30/2026, 9:09:53 PM

From #2818 (authoring skill): two things for when the factory definition declares its tracker. (1) references/authoring.md, sections State 1 and The tracker, sets the tracker up as an adapter instance next to the factory and says the definition does not name it yet; once this lands, the interview's tracker answer should be written into the definition's tracker field, and those sections need updating. (2) The examples use the status key triaged for their first stages, but the built-in tracker's default statuses are open, in_progress, shipped, closed, so a starter copied as-is with the built-in tracker has stages whose status publish refuses. Authoring tells the agent to reconcile them by hand; with tracker config in the definition, validate could check that every stage status key is one of the tracker's statuses.

Sign in to post a ripple.