4.0.0 — Hosted collaboration & the open-core structural finish
Milestone: 4.0.0 release scope (open; the GA gate) ·
Status: active (release-candidate stage; 4.0.0rc5 published 2026-10-02, 4.0.0rc6 open on main) · Declared: 2026-09-04 · Re-anchored: 2026-10-06 ·
Supersedes the retired 3.3.x
declaration for the hosted/experience work · Originally advanced (see Where the goals stand for today's state): epics #1800 (SaaS sync &
event-envelope hardening), #1091 (Team Kitty launch gate), #3322 (CLI auth & token-lifecycle
reliability), #2173 (infra-to-logic ports), #2519 (charter authoring & lifecycle), #3549
(event-log integrity).
Direction amendment (2026-10-01). Team Kitty / SaaS work is frozen while the commercial vision is reviewed, so G1 (hosted collaboration) is off the critical path: nothing hosted gates 4.0.0 GA, which is the 4.0.0 release scope milestone alone. External interaction flows through the CLI's adapter module (the status fan-out, the seam for a publish/subscribe system); producing events and draining them are separate concerns with separate toggles; and the charter may ship as its own package once
specify_clireaches it only through a stable API (#645). The G1 text below is kept as the record of the original intent. The operator detail is in the 4.0.0 Milestone Roadmap.
Where the goals stand (2026-10-06)
The goals below are the record of what was declared on 2026-09-04. What 4.0.0 GA now means:
- GA is local CLI integrity. The CLI never reports success while it loses, overwrites or strands local work. The 4.0.0 release scope milestone (14 open, 210 closed, due 2026-10-16) is the whole gate; 119 of its 201 closed issues were P0.
- G1 (hosted collaboration) is frozen. Every G1 epic and P0 is closed or closed as not
planned; the client-side successor epics #3892 and #3893 wait on 4.x Work. Since
2026-10-06 Team Kitty is no longer actively supported, and its CLI entries are hidden
from listings (ADR
2026-10-06-1). - G2 is split. #2173 (infrastructure ports) closed on 2026-09-27; #2519 (charter authoring) continues on CLI 4.x stable.
- G3 (structural strangler) continues after GA on the 4.x line: #645 (stable application API, with the Mission Status Read API as its read facet), #1619 (one execution context) and the pack-ecosystem epics. None of it gates GA.
Where the goals stand (2026-10-12). GA now ships done-when-done: there is no date gate,
release candidates keep shipping, and each one still needs green CI before it is released.
The GA gate has three legs: local integrity, charter modular extraction (#645, ADR
2026-10-12-2), and the mission-status API backend. (2026-10-19: the charter leg is now a frozen
charter.offering.api seam and a green conformance corpus, not an extraction; ADR 2026-10-12-2
is superseded by spec-kitty-charter ADR-0008 and ADR-0010.)
The operator detail, including the open GA issues and the decisions still owed, is in the 4.0.0 Milestone Roadmap.
Why now
A release-queue reconciliation on 2026-08-23 retired the 3.3.x milestone (its open work
re-triaged into 4.0.0 or Product backlog), repurposed the former 3.2.x milestone (#4) into
Product backlog, and split the near-term work into discrete 3.2.6 (stabilization,
code-complete), 3.2.7 (post-reconciliation follow-ups — doctrine-term renames,
profile-load consolidation, perf CI, dedups), and 4.0.0 (this cycle) milestones. 4.0.0
is the largest open milestone (80 open issues) and had no declaration-of-intent, breaking
the project's own release-goals convention (one durable declaration per
milestone). This document is that declaration. The taxonomy re-anchor that surfaced the gap
is recorded in the milestone roadmap's
2026-09-04 addendum.
Theme
With 3.2.x's core-domain single-sources-of-truth substantially in place and 3.2.6 shipped clean, 4.0.0 turns to hosted collaboration and next-generation product capabilities — the hosted Team Kitty surface (sync, consent/identity, auth, launch) and the charter/runtime depth that builds on the stabilized core. It is also the intended landing zone for the open-core structural strangler that 3.2.x exists to finish — committed to this cycle by operator decision (2026-09-04). Same discipline as the prior cycles: no new shadow paths — route or extract onto an existing authority, never build a parallel one.
Goals
G1 — Hosted collaboration (Team Kitty)
Off the critical path since 2026-10-01 (see the direction amendment above).
Make the hosted surface a coherent, trustworthy product rather than a set of bolt-ons. The durable invariants and sub-areas were held by the SaaS & Hosted Sync domain plan (retired 2026-09-06, Convergence #3881 — the surface re-homed to the authoritative upstream repos); this cycle ships their release-scoped work:
- Sync & event-envelope integrity — sync never reports success while authored state is
stranded; every synced event carries a contract-valid envelope. Epic #1800; load-bearing
P0 #3278 (sync false success while
MissionCreatedstranded). - Consent & identity boundary — only explicitly consenting projects transmit, under one unambiguous project→identity resolution. Load-bearing P0 #3178 (wrong-authority egress); P1s #3197 / #3196 / #3198.
- Auth & token lifecycle — a logged-in CLI stays authenticated, human auth is browser-mediated, machine/CI auth has a supported path, refresh failures are named. Epic #3322 (owns #3279 / #3277 / #3233).
- Hosted rollout & launch gate — fail-closed-by-default rollout, named readiness failures, launch defaults. Epic #1091.
- Event-log integrity — one canonical event store, honestly reported, delivered without silent loss. Epic #3549.
G2 — Next-generation product capabilities
Deepen the governance and runtime surfaces the stabilized core now supports:
- Charter authoring & lifecycle robustness — the author/observe/reproduce paths, charter domain events, deterministic intake. Epic #2519 (moved 3.2.x → 4.0.0 in the reconciliation; see the Doctrine & Charter Domain Plan §3.1).
- Infrastructure-to-logic separation — inject ports for FS, Clock, GitOps, SaaSQueue, Renderer; keep the core pure and stub-testable. Epic #2173 (moved 3.2.x → 4.0.0).
G3 — Finish the open-core structural strangler
The G1/G2 strangler spine the 3.2.x cycle exists to finish — see Structural strangler spine — committed to 4.0.0 — is the structural foundation for 4.0.0's hosted and next-gen work. Committed to 4.0.0 by operator decision (2026-09-04): the spine epics now carry milestone 4.0.0 on the live tracker.
Committed scope (verified milestone 4.0.0, 2026-09-04)
These epics and P0s carry milestone 4.0.0 on the live tracker:
| Item | Role | Goal | State (2026-10-06) |
|---|---|---|---|
| #1800 | Epic: SaaS sync & event-envelope hardening | G1 | Closed |
| #1091 | Epic: Team Kitty launch gate | G1 | Closed |
| #3322 | Epic: CLI auth & token-lifecycle reliability | G1 | Closed; successor #3892 frozen on 4.x Work |
| #3549 | Epic: event-log integrity | G1 | Closed; successor #3893 on 4.x Work |
| #3278 | P0: sync reports success while MissionCreated stranded |
G1 | Closed as not planned |
| #3178 | P0: wrong-authority egress (FR-007 not discharged by FR-002) | G1 | Closed |
| #2519 | Epic: charter authoring & lifecycle robustness | G2 | Open, CLI 4.x stable |
| #2173 | Epic: infrastructure-to-logic separation (ports) | G2 | Closed |
Verify live state via gh issue view <n> --repo spec-kitty/spec-kitty before acting; the
milestone description carries the one-line pointer back here.
Structural strangler spine — committed to 4.0.0 (2026-09-04)
The open-core structural strangler spine — the G1/G2 structural work the 3.2.x cycle exists to finish — is committed to 4.0.0 by operator decision (2026-09-04). It had sat in Product backlog (validated, but on no committed release — exit criterion 8's anti-drift guard fired in a blind spot, and the work rode into Product backlog silently instead of onto a release). The epics below now carry milestone 4.0.0 on the live tracker:
| Epic | Role | Milestone (2026-09-04) | State (2026-10-06) |
|---|---|---|---|
| #1619 | mission-execution-context root (P0) | 4.0.0 | Open, CLI 4.x stable |
| #1797 | degod / unshim delivery | 4.0.0 | Closed as not planned |
| #1868 | seam-binding enabler (WS4 / WS6) | 4.0.0 | Open, CLI 4.x stable |
| #1746 | Mission Clarity Layer (P1) | 4.0.0 | Open, CLI 4.x stable |
| #2160 | coord-artifact authority (P0) | 4.0.0 | Closed on 4.0.0 release scope |
| #1676 | deterministic structured authoring (P0) | 4.0.0 | Open, CLI 4.x stable |
| #2466 / #2467 / #2468 | pack ecosystem + extensibility kinds | 4.0.0 | Open, 4.x Work |
| #2539 | pack trust / verified distribution | 4.0.0 | Open, 4.x Work |
| #645 / #3179 | stable public API surface for doctrine & charter | 4.0.0 | #645 open on 4.x Work; #3179 closed |
Security-debt coupling. The 21 SonarCloud security findings (the sole failing quality
gate — 17 S6350 subprocess + 3 S2083 path-traversal, all pre-dating any current release
candidate) map almost 1:1 onto the degod slices above, so the security backlog rides with this
structural remediation — now both scheduled in 4.0.0. The 3 S2083 blockers remain a
called-out ~90-min targeted fix that can land independent of any wave. (2026-10-06: the
security findings are tracked by #4304, #4305 and #2970 on 4.x Work, outside the GA gate.)
Non-goals
- Re-opening the 3.2.x core-domain SSOTs — they are the stabilized foundation 4.0.0 builds on, not scope to re-litigate.
- The 3.2.7 stabilization tail — doctrine-term renames, profile-load consolidation,
perf CI, and dedups shipped under milestone
3.2.7(released 2026-09-10), not here.
Success criteria
Rewritten 2026-10-06; the 2026-09-04 placeholder criteria are listed below as the record.
For 4.0.0 GA:
- [ ] The 4.0.0 release scope milestone is closed, or each open issue is re-milestoned with a rationale.
- [ ] The nightly is green on the release commit; any
skip_nightlywaiver is an explicit, recorded operator decision. - [ ] No command reports success while it loses, overwrites or strands local work (the consolidation, status and workflow P0s), with an explicit decision on #5780 and #5758.
- [ ] No new shadow path: no re-introduced sync transport, and only the adapter seam talks to an external system.
For the 4.x line after GA:
- [ ] The structural strangler spine lands or is explicitly re-dispositioned; no epic is left implicitly "cycle work" while off a release.
- [ ] #645 gives CLI, UI, MCP and SDK consumers one versioned surface, and
specify_clireaches the charter only through it.
Deferred with G1 (frozen 2026-10-01): hosted no-false-success and no-loss under load; the consent/identity boundary; CLI auth across device-flow and machine paths (#3892); the Team Kitty launch gate (closed as #1091).
Emergent patches
Declared when the cycle activates (3.2.7 stabilization tail lands first). Following the emergent-milestone model: each patch advances one of the goals above; the milestone stays open until the goals are structurally met.
Links
- Milestone: https://github.com/spec-kitty/spec-kitty/milestone/11 (4.0.0 release scope; the original 4.0.0 milestone 8 is now "4.x Work") · Convention:
release-goals.md· Prior cycle:3.2.x.md - Retired predecessor declaration:
3.3.x.md(milestone3.3.xclosed 2026-08-23) - Durable domain plans: SaaS & Hosted Sync (retired 2026-09-06, Convergence #3881) · Doctrine & Charter
- Operator execution roadmap + taxonomy re-anchor: 3.2.x Milestone Roadmap