Part of #2643 (ADR-0087). The AI-native consumption channel for the D4 artifacts, plus the rehearsal topology (D6). Deferred behind P0–P2 and evidence-gated per the ADR (built when there are enough external consumers to justify the surface).
Depends on P2 (the MCP tools serve the change manifest + migration set).
Scope
D4 — MCP upgrade tools (@objectstack/mcp)
A consumer-side agent asks "what breaks me between 10 and 14?" and gets data, not documentation.
D6 — RC rehearsal (topology inverts)
Acceptance criteria
- The three MCP tools answer from
spec-changes.json for an arbitrary from/to pair spanning multiple majors, with no separate documentation lookup.
- A documented, reproducible RC-consumer loop exists (an agent can rehearse an upgrade against
next before latest).
- The Release workflow publishes
next before latest for a major; hotcrm smoke remains the only release-blocking external gate.
Boundaries
- The consumer-side autonomous-upgrade agent itself is out of scope (consumers / ADR-0033 toolchain own it); P3 makes it possible by exposing the surface.
- Evidence gate: build the MCP tools + RC step when external-consumer demand justifies the operational surface (ADR-0087 §Boundaries, like ADR-0054 Phase 3).
Refs: #2643, ADR-0087 (D4 tools, D6), ADR-0025, ADR-0033.
Part of #2643 (ADR-0087). The AI-native consumption channel for the D4 artifacts, plus the rehearsal topology (D6). Deferred behind P0–P2 and evidence-gated per the ADR (built when there are enough external consumers to justify the surface).
Depends on P2 (the MCP tools serve the change manifest + migration set).
Scope
D4 — MCP upgrade tools (
@objectstack/mcp)spec_changes(from, to)— any version pair, folded across majors from the composable per-majorspec-changes.json.spec_deprecations(stackPath)— which conversions my metadata currently triggers.spec_migrate(dryRun)— preview / apply the chain.A consumer-side agent asks "what breaks me between 10 and 14?" and gets data, not documentation.
D6 — RC rehearsal (topology inverts)
nextdist-tag at least one RC cycle beforelatest.validate && typecheck && test(the P0 handshake → P1/P2 migrate → verify loop) in a branch, and opens its own migration PR. The framework only publishes the RC + D4 artifacts — it never executes other repos' CI.Acceptance criteria
spec-changes.jsonfor an arbitraryfrom/topair spanning multiple majors, with no separate documentation lookup.nextbeforelatest).nextbeforelatestfor a major; hotcrm smoke remains the only release-blocking external gate.Boundaries
Refs: #2643, ADR-0087 (D4 tools, D6), ADR-0025, ADR-0033.