3.2.0a6 is a prerelease hardening sweep that restores the documented
fresh-project golden path (init → charter setup/generate/
synthesize → next), locks in strict JSON for covered --json commands
under any SaaS state, fixes agent identity parsing and review-cycle
accounting, adds paired profile-invocation lifecycle observability for
spec-kitty next, and tightens merge/review/status recovery paths. The
release introduces the new top-level spec-kitty review mission-review
command and no new top-level runtime dependencies.
Fixed
charter bundle validate --jsonnow fail-closes on incomplete Charter
synthesis state while preserving strict JSON stdout. Sidecar-only bundles,
manifest-only bundles, incompatible bundle versions, missing provenance
sidecars, dangling sidecar references, and synthesis manifest integrity
failures all produce parseable failure envelopes with actionable
synthesis_statedetails (#914, closes the final Phase 7 release gap for
#469/#515).- Stamp
schema_versionand aschema_capabilitiesblock in
.kittify/metadata.yamlonspec-kitty initso a fresh project no
longer requires hand-edits before subsequent CLI commands; existing
schema fields are preserved (additive, idempotent) (#840, WP01). - Strict JSON envelope contract for covered
--jsoncommands: stdout is
parseable byjson.loadsregardless of SaaS sync state (disabled,
unauthorized, network-failed, success); sync/auth diagnostics route to
stderr or nest inside the envelope (#842, WP02). WPMetadata.resolved_agent()parses 4-segment colon-delimited agent
strings (tool:model:profile:role) and preserves every supplied field
through implement and review prompt rendering, with deterministic
fallback for partial strings (#833, WP03).- Review-cycle counter advances exactly once per genuine reviewer
rejection; reclaim/regenerate of animplementprompt no longer
inflates the counter or writes a spuriousreview-cycle-N.md
artifact (#676, WP04). spec-kitty nextwrites pairedstarted/completedprofile-invocation
lifecycle records keyed to the canonical mission step + action it
issued, observable viaspec-kitty doctor invocation-pairing(#843,
WP05).charter generateauto-tracks the producedcharter.mdand ensures
the required.gitignoreentries exist;charter bundle validate
succeeds immediately afterwards with no operatorgit addbetween
the two commands. Outside a git working tree,generatefails fast
with an actionable error that namesgit initas the remediation
(#841, WP06).charter synthesizesucceeds on a fresh project via the public CLI
with no hand-seeded.kittify/doctrine/; the bounded fresh-project
path materialises a minimal doctrine tree (PROVENANCE.md) so the
shipped doctrine layer can supply content (#839, WP06).spec-kitty merge --abortnow clears the global merge lock, removes
legacy merge-state files, aborts an in-progress Git merge when present,
and remains idempotent when no merge is active (#903).- Approved/done work packages with stale
verdict: rejectedreview
artifacts are now surfaced across status views, including
spec-kitty agent tasks statusandshow_kanban_status(). Review
artifact lookup follows the realtasks/<WP-slug>/review-cycle-N.md
layout, andin_reviewwork packages now warn when reviewer movement
stalls beyond the configured threshold (#904, #909). - Review lane-guard failures now name the planning branch and include a
concretegit show <planning-branch>:<path>command for the first
contaminated path, instead of a placeholder path (#905). - Work-package review definition-of-done coverage now includes real error
path and artifact-deletion regressions, not only happy-path review
behavior (#906). - Broad
except Exception/ BLE001 suppressions in touched runtime paths
were audited and now carry inline justification where fail-open behavior
is intentional (#907). spec-kitty review <mission>is now a first-class mission-review CLI
command with structured status/exit behavior for post-merge mission
fidelity checks (#908).
Internal
- Consolidated golden-path E2E (
tests/e2e/test_charter_epic_golden_path.py)
rewritten to drive the fresh-project chain through the public CLI
only — no hand seeding of.kittify/doctrine/, no edits to
.kittify/metadata.yaml, no manualgit addof charter artifacts
betweengenerateandbundle validate. Runs in well under the
120-second NFR-007 budget. Also exercises strict JSON parsability of
mission branch-context --json(WP02 spot-check) and thestarted
lifecycle record (WP05 spot-check) (WP07). - Governance setup docs (
docs/how-to/setup-governance.md) note that
charter generatenow auto-trackscharter.md, removing any
expectation that operators rungit addbetweengenerateand
bundle validate(WP07). - Added regression coverage for merge abort cleanup, stale rejected review
artifacts, stalled in-review work packages, lane-guard remediation text,
mission-review command behavior, review DoD deletion/error cases, and
agent-shard coverage for status warning paths (#903-#909).
Tranche-2 acceptance pass (SC-001..SC-008)
- SC-001 (Fresh-path completion) —
tests/e2e/test_charter_epic_golden_path.py::test_charter_epic_golden_pathwalksinit → charter interview → generate → bundle validate → synthesize → mission create → setup-plan → finalize-tasks → nextagainst a fresh project with no.kittify/hand-edits and nogit addof charter artifacts. Passes locally in <20s. - SC-002 (JSON parsability) —
tests/integration/test_json_envelope_strict.py(WP02) covers the SaaS state matrix; the consolidated E2E spot-checksmission branch-context --jsonviajson.loads(stdout). - SC-003 (Identity preservation rate) — WP03 unit + integration tests cover colon arities 1–4 and assert
model/profile_id/rolein rendered prompts. - SC-004 (Review-cycle precision) — WP04 tests assert the counter is unchanged across ≥3 reclaim/regenerate runs and advances by exactly 1 on a real rejection.
- SC-005 (Lifecycle observability) —
tests/integration/test_next_lifecycle_records.py(WP05) covers ≥5 issuances with mid-cycle orphan; the consolidated E2E asserts at least onestartedrecord afternextissues an action and that thecanonical_action_idmatches the issued step id. - SC-006 (Charter parity rate) —
tests/specify_cli/cli/commands/test_charter_generate_autotrack.py(WP06) covers the auto-track + non-git fail-fast contract; the consolidated E2E exercisesgenerate → bundle validatewith no intervening git ops. - SC-007 (Documentation/CLI agreement) —
docs/how-to/setup-governance.mdupdated; no documented governance-setup flow contains agit add charter.mdstep betweencharter generateandcharter bundle validate. - SC-008 (Release-surface discipline) — Diff inventory: one new top-level public CLI command,
spec-kitty review, added for mission-review fidelity checks (#908); one newspec-kitty doctor invocation-pairingsubcommand under the existingdoctorgroup for lifecycle observability; zero new top-level runtime dependencies inpyproject.toml[project.dependencies].