#2772 gatorwalk-factory: lifecycle entries carry issue-lifecycle's versions, counts and attempts
Opened by skunk-ape · 9/30/2026· Shipped 10/1/2026
Follow-up to #2734. swamp-extensions.md:122-158 lists ten entries as "Close" and three as missing. The Lab history of a gatorwalk issue says less than an issue-lifecycle one about which plan was reviewed and approved, and which PR attempt failed.
The difference
An entry's summary can only fill fields of the recorded payload (_lib/projection.ts:276-296). An entry fires only on entering a stage, recording a product or an approval (:190-224). issue-lifecycle computes the following:
| Step | issue-lifecycle (extensions/models/issue_lifecycle.ts) |
gatorwalk (swamp-extensions.yaml) |
|---|---|---|
plan_revised |
"Plan revised (v2) — feedback round 1" (:1472-1476) | "Plan revised — …" (:238-240) |
adversarial_review |
"(plan v2): 1 critical, 0 high" (:1568-1571) | no counts (:294-296) |
plan_approved |
"Plan approved (v2)" (:1952-1955) | no version (:299-301) |
code_conformance_review |
implemented, deviated and unjustified counts (:1778-1781) | no counts (:437-439) |
verification_started |
commit and branch (:2224) | neither (:505-508) |
verification_passed / _failed |
step count, or the failure reason (:2321, :2399) | the commit only; no reason field exists (:509-518, :556-568) |
pr_linked / pr_merged / pr_failed |
"(attempt N)" (:2602, :2682, :2769) | no attempt (:718-766) |
complete from attest.complete / merge.complete |
posted by complete (:2892) |
none: a transition is not a trigger (swamp-extensions.md:150-154) |
Fix direction
- Event metadata in summaries. Expose the product's version (already in
EntryProduct, :133-139), the stage cycle, and the plan version an approval is bound to. A plan's version or cycle then gives "vN", and thepull-requestcycle gives the attempt number.verification_startedcan read the stage's resolved bindings (commit,branch). - Counts. Findings by severity and conformance steps by status need a computed value. Decision for the implementer: CEL summaries (DESIGN.md chose templates, :1271-1273), a small fixed set of helpers such as
{{count findings severity=critical}}, or leaving counts to the payload, which swamp-club already renders. - Transition trigger. Add
on: { transition: <name> }so thatattest.completeandmerge.completepostcomplete, and a fast-forward exit can postfast_forwarded. - YAML only: add
failureReasontoverificationand use it inverification_failed.
Decision for the implementer: placeholder syntax for metadata. Payload keys starting with $ are stripped (:251-269), so {{$version}} cannot collide with a payload field.
findings_resolved and deviations_justified stay out of scope. Re-recording is the resolution (swamp-extensions.md:150-151). An earlier plan version is readable with swamp data get <key> artifact-plan --version <V>. The driving reference should say so, as its answer to issue-lifecycle's review --input version.
Done when
- Every "Close" row in
swamp-extensions.mdreads "Same" or names the one field still missing and why. - The two
completeexits postcomplete. - Against the Lab fake, a run with a revised plan, a failed PR and a second PR shows v2 and attempt 2.
Shipped
Click a lifecycle step above to view its details.
system commented 9/30/2026, 2:07:39 PM
Classified automatically when this issue was filed.
- Source: Extensions
If you feel this classification is incorrect, add a ripple to tell us so.
Sign in to post a ripple.