Relationships
#2667 gatorwalk-factory: requireField matches only equal values
Opened by skunk-ape · 9/29/2026· Shipped 9/29/2026
Found while mapping the swamp-extensions process onto the gatorwalk lifecycle format (swamp-club #2630; see gatorwalk-factory/lifecycles/swamp-extensions.md, Format gaps).
The evidence-recorded gate's requireField can only demand that a field equal a value. 'type is not bug' or 'confidence is one of high, medium' cannot be written. In swamp-extensions.yaml triage therefore has one exit per non-bug type (feature, platform, security, all to plan), and 'confidence is not low' is a cel gate.
This matters beyond verbosity: the graph analysis only proves sibling exits exclusive through requireField, so a condition written in cel instead is reported as a possible ambiguous exit.
Wanted: requireField (or a sibling) that can express not-equal and one-of, and that the graph analysis's exclusivity check understands.
Shipped
Click a lifecycle step above to view its details.
skunk-ape commented 9/29/2026, 3:58:55 PM
Decision (2026-09-29, from the format-gap review): in play for launch. Suggested shape: do not overload requireField with operator objects, because its values may legitimately be objects, so something like an in-object would be ambiguous. Add a sibling on evidence-recorded (for example match) that takes a JSON Schema fragment per field path, validated with the same JSON Schema 2020-12 validator the format already uses, so there is no new dialect. The graph analysis's exclusivity check needs to understand const, enum and not of those. Then simplify lifecycles/swamp-extensions.yaml's triage exits with it. #2666 (conditional approval) is being built in parallel and also touches gates.ts and graph.ts, so expect a rebase.
Sign in to post a ripple.