Quickstart — Workflow Parity Fixes 988/989/991

Verify the bugs (before the fix)

# #988 — next --json claimability
SPEC_KITTY_ENABLE_SAAS_SYNC=1 uv run spec-kitty next \
  --mission <slug-of-implement-ready-mission> \
  --json
# Expect: mission_state=implement, planned_wps>=1, wp_id=null (bug)

# #989 — lightweight review on baseline-less modern mission
uv run spec-kitty review \
  --mission <slug-with-mission-id-and-no-baseline> \
  --mode lightweight
# Expect: clean pass with "Dead-code scan skipped" message (bug)

# #991 — merge --dry-run with stale rejected review-cycle artifact
SPEC_KITTY_ENABLE_SAAS_SYNC=1 uv run spec-kitty merge \
  --mission <slug-with-rejected-cycle-on-approved-wp> \
  --dry-run \
  --json
# Expect: exit 0, normal preview, no REJECTED_REVIEW_ARTIFACT_CONFLICT (bug)

Verify the fixes (after the fix)

# #988 — next --json must serialize wp_id
uv run spec-kitty next --mission <slug> --json | jq '.wp_id, .selection_reason'
# Expect: a concrete WP id and selection_reason=null

# #989 — lightweight review must reject silently-skipped baseline
uv run spec-kitty review --mission <slug> --mode lightweight; echo $?
# Expect: non-zero exit, diagnostic code LIGHTWEIGHT_REVIEW_MISSING_BASELINE

# #991 — merge --dry-run must surface the consistency conflict
uv run spec-kitty merge --mission <slug> --dry-run --json | jq '.blockers // .errors'
# Expect: contains REJECTED_REVIEW_ARTIFACT_CONFLICT

Targeted test suites

# All four pre-existing suites that must stay green:
uv run pytest \
  tests/integration/test_mission_review_contract_gate.py \
  tests/post_merge/test_review_artifact_consistency.py \
  tests/specify_cli/cli/commands/test_review.py \
  tests/specify_cli/cli/commands/review/test_mode_resolution.py \
  -q

# Focused suites touched by this mission:
uv run pytest \
  tests/specify_cli/cli/commands/test_merge.py \
  tests/specify_cli/cli/commands/test_review.py \
  tests/next/test_next_command_integration.py \
  -q

Pre-PR checks

git diff --check
uv run mypy --strict src/specify_cli
uv run ruff check src tests