← Back to listInside the
01Issue
FeatureShippedSwamp CLIPublic
Assigneesstack72
Relationships
#3409 swamp behavior help, hints and root help still say model in places
Opened by zack · 10/13/2026· Shipped 10/13/2026
Summary
swamp behavior (swamp-club#3265, swamp-club#3331) is a full replacement for swamp model: every model leaf has a behavior twin with the same arguments, options, aliases and action code. A behavior-first user still reads "model" in several places inside the swamp behavior tree and in root help. These are wording gaps only; no command behaves differently.
This is one of several issues from an audit of the two command groups. It covers the behavior tree and root help only. Behavior spellings for --model flags elsewhere in the CLI, telemetry, docs and the deprecation path for swamp model are tracked separately.
Gaps
Inside the swamp behavior tree
- Argument names say model. Usage lines and the
swamp helpJSON show<model_id_or_name>,<model_or_type>and<output_id_or_model_name>(e.g.Usage: swamp behavior get <model_id_or_name>). - Suggestions say
<model>. Unknown-command hints readswamp behavior run <model> <method>,swamp behavior describe <model> <method>andswamp behavior history <model>(src/cli/unknown_command_handler.ts,hybridSuggestionFor). - The env-var warning on
behavior runis mixed. The heading says "Environment variables detected in behavior definition"; the body says "Data stored under this model will vary … Consider using separate models per environment" (message fromsrc/libswamp/models/run.ts, written verbatim bysrc/presentation/renderers/model_method_run.ts). behavior history searchis titled "outputs search", the same title asbehavior output search(src/presentation/renderers/model_output_search.tsx).- Bash and fish completion scripts have no
behaviourentry; the zsh script does. Needs confirming against the pinned Cliffy version; if the generator ignores aliases, document it.
Root help
modelis listed beforebehavior, and reads "Manage models" with nothing marking it as the legacy spelling (registerCommandsinsrc/cli/mod.ts).- Global
--logis described as "Show model and workflow run logs in terminal output". - The legacy
swamp model type describeandswamp model type searchhelp examples name a command that is not registered:swamp type describe aws-ec2,swamp type search(MODEL_TYPE_DESCRIBE_SYNTAX,MODEL_TYPE_SEARCH_SYNTAX).
Generated config and tests
- The generated Claude allowlist has no
swamp behaviour …entries, so the alias prompts whereswamp behavior …does not (getClaudeAllowedCommandsinsrc/domain/repo/repo_service.ts). - The parity test uses a hand-written twin table (
TWINSinsrc/cli/commands/behavior_test.ts), so a command added only underswamp modeldoes not fail it. - No test resolves the real root command with the
behaviourspelling; alias coverage is in unit tests with hand-built trees.
Notes
- Renaming the argument names (gap 1) changes
arguments[].nameinswamp help behavior …JSON, and telemetry classifies positionals by argument name (SENT_ARGUMENTSinsrc/cli/telemetry_invocation.ts), so the new names need the same classification as the model-named ones. - The renderers for create, edit, history, output and type are called without the command surface. None prints a noun today, so nothing is visibly wrong, but wording added later would say "model" on both trees.
- Out of scope, deliberate per
design/primitives/behaviors.md: JSON keys, error codes, error messages, audit actions, serve request types and log categories staymodel.
Acceptance
- No
swamp behavior …usage line, example, suggestion or log-mode line says "model", apart from the names the design doc keeps. - Root help lists
behaviorfirst and marksmodelas the legacy spelling. - Legacy
swamp model …output is unchanged except the group description and the correctedtypeexamples. - A test fails when a leaf exists under
swamp modelwith noswamp behaviortwin.
02Bog Flow
Shipped
Click a lifecycle step above to view its details.
03Sludge Pulse
Sign in to post a ripple.