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

Relationships

#2771 gatorwalk-factory: the Lab issue stays current only if the driver remembers assign and publish

Opened by skunk-ape · 9/30/2026

issue-lifecycle writes to the Lab inside every method. gatorwalk writes to the Lab only when the driver runs two separate adapter commands, and nothing reminds the driver when either is missed.

What issue-lifecycle does

  • start auto-assigns the issue to the stored login's user and posts assigned (extensions/models/issue_lifecycle.ts:992-1034).
  • Every method posts its entry and status move before it returns, and fails if the entry is refused (changelog 2026.09.18.1, :350-362). The Lab cannot fall behind the local state.

What gatorwalk does

  • Assign. claim never writes to the tracker (_lib/claim.ts:25), so assignment is the Lab adapter's separate assign method (extensions/models/swamp_club.ts:387-465). The driving skill never mentions it: SKILL.md and references/driving.md have no "assign". Only README.md:437 and swamp-extensions.md:39 do. A driver following the skill leaves the issue unassigned.
  • Publish. The skill asks for publish "after each write" (references/driving.md:365-384). DESIGN.md lists this as a known gap: "the Lab falls behind until publish is re-run" (:1304-1306). A sweep or driver tick is deferred (:1215-1216, #2631). Neither status nor anything else says the ticket is behind.

Why it matters

In swamp-extensions the Lab issue is the audit trail, and it is what reviewers and the weekly report read. A driver that forgets one publish before a human stop leaves the issue showing the wrong phase for as long as the person takes to answer.

Fix direction

  1. Assign through publish. On the work item's started event, publish assigns, keyed in the delivery ledger and best effort as in issue-lifecycle, then writes assigned after triage_started, in issue-lifecycle's order. Decision for the implementer: whom to assign. The options are the stored login, as issue-lifecycle does, or the start event's actor principal, and whether the lifecycle opts in, for example with projection.assignOnStart.
  2. Make the lag visible. The adapter gets a read method that reports the journal version delivered against the work item's journal length. The driving skill's per-step loop says to run publish until it reports nothing new. Decision for the implementer: whether to go further, with a scheduled sweep or with the work item naming its tracker instances so status can show the lag. The second breaks "the work item never talks to swamp-club" (swamp-extensions.yaml:13).

Done when

  • Against the Lab fake, a work item claimed, started and published once is assigned, with triage_started then assigned, and no separate assign call.
  • A driver can tell from one read command that the ticket is behind, and the driving skill uses it.
  • The driving reference documents both, and skill_test.ts covers the commands (see #2711 for adapter-specific methods).
02Bog Flow
✓OPEN○TRIAGED○IN PROGRESS◉CLOSED

Closed

9/30/2026, 3:58:32 PM

No activity in this phase yet.

03Sludge Pulse
Editable. Press Enter to edit.

skunk-ape commented 9/30/2026, 3:58:31 PM

Closing as superseded by the tracker decision. Part 1 (assign when work starts) is #2801. Part 2 (showing that the Lab issue is behind) is #2795.

Sign in to post a ripple.