Files
Jeffrey Emanuel d0922f5e5b test(spec): INV-cass-23 starter_workflows canonical-subcommand drift guard
Extends INV-cass-18's cross-surface drift pattern from
recommended_commands[] to starter_workflows[] — the agent-onboarding
catalog cass triage --json emits. Each starter workflow advertises a
first_command + follow_up_commands[]; agents reading the triage
envelope execute every command verbatim.

Until this file, existing cli_robot.rs tests positionally
spot-checked one or two workflows (e.g. bounded-search includes a
"cass view " command). Nothing cross-validated EVERY advertised
command's subcommand against the canonical names from cass
introspect --json::commands[].name.

Two invariants:

  1. Every starter_workflows[] entry has the documented
     agent-parseable keys (first_command, follow_up_commands,
     intent, name, note, parse_contract). Drift detection on
     the parseable shape.
  2. Every advertised command's second word (the subcommand after
     `cass`) is in the canonical name set from introspect. Global-
     flag invocations like `cass --robot-help` are intentionally
     skipped — they are not subject to subcommand-rename drift.

Sample coverage on this run (cass triage --json --data-dir <empty>):
  - cold-start: triage + capabilities, robot-docs, introspect (+ skipped --robot-help)
  - api-discovery: capabilities + introspect, robot-docs
  - health-preflight: health + status, index, doctor
  - bounded-search: search + view, expand, pack
  - answer-pack: pack + search, view
  - session-drilldown: view + expand, context, resume
  - semantic-models: models

All 7 workflows × all their commands are validated against
introspect's 34-name canonical set on every test run.

fmt + clippy clean. ubs --ci --fail-on-warning: 0 critical, 0 warning.
2026-05-29 00:17:08 -04:00
..