Readiness
:::info Source
Sourced from services/authoring-service/15-SERVICE_READINESS.md in the documentation repo.
:::
1. Level per Milestone
| M | Level | Scope |
|---|---|---|
| M0 | — | Block schema RFC, Prompt eval corpus, Author research |
| M1 | L1 (skeleton) | Block runtime exists (learner side); no authoring UI yet |
| M2 | L3 | Block editor + AI co-author MVP + publish saga + SCORM 1.2 import |
| M3 | L3 | Branching scenarios + SCORM 2004 additions |
| M4 | L4 | Live collab (Yjs) + offline authoring + full GA |
| M5 | L4 | Localization, i18n polish |
2. Gates
G1 — Domain
- CourseDraft aggregate with invariants (CrossTenant, AIProvenanceRequired, BlockOrderContiguous, DraftPublishReadiness).
- State machine enforced:
editing → in_review → approved → publishing → published_idle. - Unit coverage ≥ 95%, mutation ≥ 80%.
G2 — API
- OpenAPI published.
- Idempotency-Key on writes; problem+json; cursor pagination.
- Pact contracts: content, catalog, media, ai-gateway.
G3 — Events
-
authoring.course_draft.*,authoring.block.*,authoring.publish_saga.*registered. - Outbox + inbox.
- Pact consumer contracts.
G4 — Sync
- CourseDraft, Block, Module registered for offline (M4+);
crdt_yjspolicy. - Sync conformance test green.
G5 — AI
- All AI via AIClient port.
- AIProvenance on every AI block (invariant).
- Prompt registry: block-generation, quiz-generation, text-improvement, translation, summarization.
- Prompt regression + safety eval suites.
- HITL enforced:
draft_aistatus cannot berequired: true.
G6 — Observability
- SLO: block preview p95 < 100ms, publish saga p95 < 60s, AI accept-rate ≥ 50%.
- Dashboards: saga state, AI accept/reject per prompt, collab active sessions.
G7 — Performance
- Block preview < 100ms p95.
- Publish saga p95 < 60s.
- HTML export < 3s.
- 500 active collab sessions/pod.
G8 — Security
- Answer keys encrypted at rest.
- Embed provider allowlist per tenant.
- Cross-tenant block reference rejected by invariant.
- SCORM import sandboxed.
- Two-tenant isolation suite green.
3. SLOs
| SLI | Target |
|---|---|
| API availability | 99.95% |
| Block write p95 | < 200ms |
| Publish saga success rate | > 99% |
| AI accept-rate | ≥ 50% |
| AI refusal rate | < 2% |
| Collab connection uptime | 99.9% |
4. DoD
- Unit + integration + contract tests green.
- OpenAPI updated.
- Event schemas registered.
- Migrations fwd+back.
- AI changes: prompt regression + safety eval pass.
- Block kind changes: forward-compat test (S1 bundle loads in latest player).
- Two-tenant isolation test.
- Dashboards + runbooks updated.
5. Release Checklists
S2 Release (M2 — Authoring MVP + Co-Author)
- Block editor + 8 core block kinds shipped.
- AI co-author ≥ 50% accept-rate across 5 core prompts.
- Publish saga p95 < 60s; compensations tested.
- SCORM 1.2 import → publish → play E2E green.
- Provenance badge visible + clickable in UI.
- Authoring guide (≥ 30 help articles).
S5 Release (M4 — Live Collab + Offline)
- Live collab stable (5+ authors in one draft, 2-hour session).
- Offline authoring conflict rate < 1%.
- Yjs merge correctness tested with adversarial edit vectors.
- Side-by-side diff UI for conflicts.
- 30-day retention for pre-merge backups.