Skip to content

feat(cli): add --scenario flag with name matching and list command#13

Merged
Swiftyos merged 2 commits into
mainfrom
symphony/SYM-16
Apr 15, 2026
Merged

feat(cli): add --scenario flag with name matching and list command#13
Swiftyos merged 2 commits into
mainfrom
symphony/SYM-16

Conversation

@Swiftyos

Copy link
Copy Markdown

Intent

Add support for running specific scenarios by ID or name, and a list command for scenario discovery. Closes SYM-16.

Previously, --scenario-id only accepted a single exact ID match. Users had no way to run a scenario by its human-readable name, discover available scenarios, or select multiple scenarios at once.

Behavior changes

  • --scenario <id-or-name> flag added as an alias for --scenario-id, matching by both scenario ID and scenario name
  • Comma-separated values supported: --scenario id1,name2 runs multiple scenarios
  • Error messages now list available scenario IDs and names when no match is found
  • New list command: agentprobe list --scenarios <path> prints each scenario's ID, name, and tags

Validation

  • ./scripts/fast-feedback.sh passed (repo validation, lint, typecheck, 85 tests)
  • Behavior docs updated (platform.md, current-state.md, e2e-checklist.md)

Screenshots / video

N/A for CLI-only changes.

Symphony Agent and others added 2 commits April 15, 2026 14:39
Summary:
- Add --scenario flag as alias for --scenario-id with name matching support
- Support comma-separated scenario IDs/names in --scenario flag
- Match scenarios by both id and name (e.g., --scenario "Refund smoke question")
- Improve error message to list available scenarios with IDs and names
- Add list command to display available scenarios for discovery
- Extend selectDashboardScenarios with same name-matching logic
- Fix db.test.ts expected error message to match new format

Rationale:
- Users want to run a single scenario without running the entire file.
- Matching by name is more ergonomic than requiring exact kebab-case IDs.
- The list command helps users discover scenario IDs/names before running.
- Comma-separated values allow running multiple specific scenarios.

Tests:
- bun run test: 82 pass, 0 fail
- bun run test:e2e: 15 pass, 0 fail
- Added unit test for scenarioId filtering by name in runSuite
- Added unit test for comma-separated scenario selection
- Added e2e test for --scenario flag alias
- Added e2e test for name-based scenario matching

Co-authored-by: Codex <codex@openai.com>
Summary:
- Update scenario filters spec to describe --scenario flag, name matching,
  comma-separated values, and improved error messages
- Add "List command shows available scenarios" spec section
- Add list command to current-state.md as implemented
- Add list command to e2e-checklist.md as planned
- Add e2e test for no-match scenario-id returning available IDs

Rationale:
- Product spec must reflect the --scenario and list command behavior
  introduced in the previous commit before marking work complete.

Tests:
- bun run fast-feedback: all gates pass (repo validation, lint, typecheck, 85 tests)

Co-authored-by: Codex <codex@openai.com>
@Swiftyos Swiftyos merged commit b1ecb2d into main Apr 15, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant