Skip to main content
← Back to list
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

  1. Argument names say model. Usage lines and the swamp help JSON show <model_id_or_name>, <model_or_type> and <output_id_or_model_name> (e.g. Usage: swamp behavior get <model_id_or_name>).
  2. Suggestions say <model>. Unknown-command hints read swamp behavior run <model> <method>, swamp behavior describe <model> <method> and swamp behavior history <model> (src/cli/unknown_command_handler.ts, hybridSuggestionFor).
  3. The env-var warning on behavior run is 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 from src/libswamp/models/run.ts, written verbatim by src/presentation/renderers/model_method_run.ts).
  4. behavior history search is titled "outputs search", the same title as behavior output search (src/presentation/renderers/model_output_search.tsx).
  5. Bash and fish completion scripts have no behaviour entry; the zsh script does. Needs confirming against the pinned Cliffy version; if the generator ignores aliases, document it.

Root help

  1. model is listed before behavior, and reads "Manage models" with nothing marking it as the legacy spelling (registerCommands in src/cli/mod.ts).
  2. Global --log is described as "Show model and workflow run logs in terminal output".
  3. The legacy swamp model type describe and swamp model type search help 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

  1. The generated Claude allowlist has no swamp behaviour … entries, so the alias prompts where swamp behavior … does not (getClaudeAllowedCommands in src/domain/repo/repo_service.ts).
  2. The parity test uses a hand-written twin table (TWINS in src/cli/commands/behavior_test.ts), so a command added only under swamp model does not fail it.
  3. No test resolves the real root command with the behaviour spelling; alias coverage is in unit tests with hand-built trees.

Notes

  • Renaming the argument names (gap 1) changes arguments[].name in swamp help behavior … JSON, and telemetry classifies positionals by argument name (SENT_ARGUMENTS in src/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 stay model.

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 behavior first and marks model as the legacy spelling.
  • Legacy swamp model … output is unchanged except the group description and the corrected type examples.
  • A test fails when a leaf exists under swamp model with no swamp behavior twin.
02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 2 MOREREVIEW+ 7 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

10/13/2026, 11:30:55 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack7210/13/2026, 10:26:09 PM

Sign in to post a ripple.