* feat(cli): add confirmOrAbort method to AuthCommand
Mode-aware confirmation flow: prompts in interactive mode, returns
structured JSON with exit code 2 in agent/CI mode. Supports --force
bypass and --dry-run preview.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(cli): add confirmation flow to incident write commands
incidents create/update/resolve now require --force in agent and CI
modes. Without it, they return structured JSON preview with exit code 2.
Supports --dry-run for preview-only mode. incidents list gets read-only
metadata.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(cli): annotate all commands with safety metadata
Add readOnly, destructive, and idempotent classifications to all
non-hidden commands. No behavior change — metadata only.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* test(cli): add metadata guard test for command classification
Ensures all non-hidden commands have explicit readOnly, destructive,
and idempotent metadata. Validates invariants like read-only commands
cannot be destructive.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(cli): address PR review feedback
Remove unnecessary `as any` casts in command-metadata guard test.
Add dry-run and agent-mode tests verifying notify-subscribers flag
appears correctly in preview output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(cli): include severity in incident update confirmation preview
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(cli): add --force to incidents E2E tests
The confirmation flow requires --force for non-interactive subprocess
execution. Without it, prompts hangs waiting for TTY input and the
test times out.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>