Context and Problem Statement
In current CLI behavior, spec-kitty verify-setup is the setup diagnostics entrypoint and the root command function name (verify_setup) maps to spec-kitty verify-setup.
Current command registration still binds verify_setup at top level, and the only existing doctor surface is nested under spec-kitty agent status doctor.
For 2.x, product intent is that verify should represent implementation-vs-artifact validation (post-merge mission audit), not environment diagnostics.
This creates a namespace and semantic conflict that blocks a clean audit UX.
Decision Drivers
- Align command semantics with mission-oriented 2.x behavior.
- Keep top-level command names intuitive for humans and agents.
- Minimize migration pain for existing users and automation.
- Preserve deterministic CLI contracts during rollout.
Considered Options
- Keep
verify-setupas-is and introduceauditas a separate command. - Repurpose
verifyfor mission audit and move diagnostics todoctor setup(chosen). - Keep
verifyfor diagnostics and introduce a new audit-only name.
Decision Outcome
Chosen option: "Repurpose verify for mission audit and move diagnostics to doctor setup", because it best matches user expectation and 2.x mission verification direction.
Command Contract
spec-kitty verifyruns mission audit for the selected/current feature context.spec-kitty doctor setupruns environment/setup diagnostics.spec-kitty verify-setupremains as a compatibility alias todoctor setupwith deprecation warning.- Deprecation period is explicit and versioned in release notes.
Consequences
Positive
- Command names match user mental model (
verify= validation,doctor= diagnostics). - Clean base for mission-native audit UX.
- Reduced ambiguity in prompt templates and agent instructions.
Negative
- Existing scripts using
verify-setupmust migrate. - Requires docs, onboarding, and template updates.
Neutral
- Short-term alias support adds temporary command redundancy.
Confirmation
This decision is correct when:
verifyanddoctor setupboth operate with stable CLI behavior.- New user guidance references
verifyfor post-merge audit without confusion. - Alias usage trends downward across release telemetry.
Pros and Cons of the Options
Option 1: Keep verify-setup, add separate audit
Use a new command family while leaving diagnostics untouched.
Pros:
- Minimal immediate migration work.
- Lower risk of breaking old scripts.
Cons:
- Preserves semantic confusion around
verifynaming. - Increases command-surface complexity.
Option 2: Repurpose verify, move diagnostics to doctor setup
Adopt clear command taxonomy with explicit diagnostics namespace.
Pros:
- Strong semantic alignment.
- Better long-term command design.
Cons:
- Requires migration and deprecation handling.
- Requires broad docs/template updates.
Option 3: Keep verify for diagnostics, create new audit-only verb
Retain old behavior and avoid touching existing verify paths.
Pros:
- Least churn for legacy CLI behavior.
- Straightforward short-term implementation.
Cons:
- Conflicts with product expectation that verification means artifact validation.
- Leaves 2.x mission audit UX less discoverable.
More Information
- PRD reference:
<spec-kitty-planning-repo>/product-ideas/mission-collaboration-platform-ddd/prd-mission-post-merge-audit-and-verify-repurpose-v1.md - Existing command registration:
src/specify_cli/cli/commands/__init__.py - Existing diagnostics command implementation:
src/specify_cli/cli/commands/verify.py