← 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
startauto-assigns the issue to the stored login's user and postsassigned(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.
claimnever writes to the tracker (_lib/claim.ts:25), so assignment is the Lab adapter's separateassignmethod (extensions/models/swamp_club.ts:387-465). The driving skill never mentions it:SKILL.mdandreferences/driving.mdhave no "assign". OnlyREADME.md:437andswamp-extensions.md:39do. 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 untilpublishis re-run" (:1304-1306). A sweep or driver tick is deferred (:1215-1216, #2631). Neitherstatusnor 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
- Assign through
publish. On the work item'sstartedevent,publishassigns, keyed in the delivery ledger and best effort as in issue-lifecycle, then writesassignedaftertriage_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 withprojection.assignOnStart. - 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
publishuntil 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 sostatuscan 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_startedthenassigned, and no separateassigncall. - 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.tscovers the commands (see #2711 for adapter-specific methods).
02Bog Flow
Closed
No activity in this phase yet.
03Sludge Pulse