Skip to main content
← Back to list
01Issue
FeatureShippedSwamp CLIPublic
Assigneesstack72

Relationships

#3334 Workflow YAML, extension exports and serve grants accept the behavior spelling alongside model

Opened by stack72 · 10/12/2026· Shipped 10/13/2026

Summary

Let users author with the behavior spelling in every stored format, while the model spelling stays accepted and is still what swamp writes.

Scope

  • Workflow step YAML: also accept type: behavior with behavior / behaviorType / behaviorName, normalised by the existing compatibility preprocessing to the current model_method step. Swamp keeps writing the model_method form so older binaries can still read repos.
  • Extension API: also accept export const behavior = {...} and an extensions/behaviors/ directory alongside export const model and extensions/models/, in loading, bundling, the content extractor and push/pull.
  • Serve grants: behavior:<type> is an exact synonym of model:<type>, normalised the same way (swamp-club#3130: a misspelled deny must not silently match nothing).
  • Audit filters accept behavior.* spellings; stored audit actions stay model.*.

Out of scope: models/ directory, JSON keys, error codes, CEL model.*.

Acceptance

  • Workflow YAML, extensions and serve grants created with the last release load and behave identically on the branch.
  • Property test: old and new YAML spellings normalise to the same step.
  • A behavior: deny matches everything the equivalent model: deny matches.
  • A repo touched by the new binary still works with the previous release.

Direction

behavior replaces model as the product term wherever people or agents read it. swamp-club#3265 shipped swamp behavior run (alias behaviour) as a CLI word only; this series takes the term product-wide.

Glossary: model → behavior, model definition → behavior definition, model type → behavior type, model output → behavior output. "method" stays: swamp behavior run <behavior> <method>.

Compatibility rule (applies to every issue in the series)

The existing system MUST NOT regress. Every change is additive: behavior is the preferred spelling, and every model spelling and stored format keeps working exactly as today.

Unchanged: the models/ directory and .swamp/ layout, JSON output keys and error codes (model_not_found, model_id, ...), audit action names as stored (model.method.run, ...), serve protocol, CEL model.*, libswamp and domain class names, log categories. Writers keep emitting the old form of any stored format.

No-regress gates: swamp-uat passes unchanged (new UAT tests are only added, tracked separately); legacy commands give byte-identical output and exit codes on the released binary vs the branch binary in log and JSON mode; every new test is red-checked against main.

Series

  1. Design record — the glossary and compatibility rules in design/ 2a. Factory refactor of the model command tree, no visible change 2b. The full swamp behavior command tree and behavior wording
  2. Skills and generated agent guidance
  3. Serve dashboard wording
  4. Stored formats accept the behavior spellings alongside model ones
02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 7 MOREREVIEW+ 10 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

10/13/2026, 4:38:15 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack7210/12/2026, 10:31:32 PM

Sign in to post a ripple.