Relationships
#3410 Decide and add behavior spellings for --model flags, enum values and SWAMP_MODELS_DIR outside the behavior tree
Opened by zack · 10/13/2026· Shipped 10/14/2026
Summary
swamp behavior is the preferred spelling of swamp model (swamp-club#3265, swamp-club#3331), and workflow steps, grants, audit filters and extensions already accept a behavior spelling alongside model (swamp-club#3334, swamp-club#3338). Outside those, a user who only knows "behavior" still has to type model for about ten flags and enum values. design/primitives/behaviors.md lists the names that deliberately stay model, but does not mention any of the ones below, so it is not recorded whether they are intentional.
This issue is to decide, per item, whether a behavior spelling is accepted alongside the model one, record the decision in the design doc, and implement the ones that are accepted. It came from an audit of the two command groups; wording inside the swamp behavior tree is swamp-club#3409.
Model-only spellings found
Flags and positionals
| Command | Spelling | Where |
|---|---|---|
data get, list, versions, delete, rename |
--model <model>, positional [model_id_or_name] |
src/cli/commands/data_get.ts, data_list.ts, data_versions.ts, data_delete.ts, data_rename.ts |
data search |
--model <name> |
data_search.ts |
report get, report search |
--model <name> |
report_get.ts, report_search.ts |
datastore lock release |
--model <model> |
datastore_lock.ts |
serve |
--restricted-model-types |
serve.ts |
Enum values
| Command | Value |
|---|---|
report search --scope |
model |
data search --owner-type |
model-method |
extension search --content-type |
models (closed list; anything else is rejected) |
extension source add --only |
models |
Other
data queryuses the predicate fieldmodelNameand the functionmodel("…"); no behavior form exists.SWAMP_MODELS_DIRis the only environment variable; there is no behavior-spelled one.- The global Cliffy types are
model_nameandmodel_type, which appear as option value strings inswamp helpJSON.
Help prose and examples (no flag involved)
data: "Manage model data".run,run gc,doctor,access can-i: descriptions say model.access grant --on: the example ismodel:@acme/deploy, althoughbehavior:is accepted.extension fmt,push,quality,version,promote: examples useextensions/models/..., althoughextensions/behaviors/loads too.
Questions to settle
- Does
--behaviorbecome a synonym for--modelondata,reportanddatastore lock release? If so, which spelling does help show first? - Do the enum values (
--scope,--owner-type,--content-type,--only) accept a behavior form? serve --restricted-model-typesandSWAMP_MODELS_DIRare operator-facing configuration. Do they get a synonym, or join the list of names that staymodel?- Does
data queryget abehavior("…")function /behaviorNamefield, or do query predicates stay model like JSON keys do?
Constraints
behaviors.mdsays any new behavior spelling must follow the existing rules: the model form keeps working, swamp keeps writing the model form to stored formats, and the accepted synonyms are listed insrc/domain/terminology/behavior_aliases.ts.behaviouris a CLI group alias only, not a synonym in stored formats.- The help prose and examples can be changed independently of the decisions above.
Acceptance
design/primitives/behaviors.mdstates, for each item above, whether a behavior spelling is accepted or the name staysmodel.- Each accepted spelling works alongside the model one, with tests for both.
- Help prose and examples outside the
swamp modeltree use "behavior".
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.