metis

Spec Changes

This file tracks breaking and significant changes to specs in docs/specs/. Its purpose is to prevent cross-spec drift: when one spec changes a contract, this log records which other specs reference that contract and need verification.

How to use this file

When making a substantive change to a spec, add an entry below with:

  1. Date — when the change was made.
  2. Spec — which spec changed.
  3. Change — one-line description.
  4. Typebreaking (consumers must update) or additive (consumers can ignore).
  5. References to verify — which other specs reference the changed contract and must be checked for consistency.
  6. Statuspending review until cross-references are verified, then verified.

Trivial edits (typos, wording) don’t need entries. Use judgment.

When working on a spec PR, scan this file for pending review entries against specs you depend on; verify them before landing.

Specs in scope

Cross-reference map

A snapshot of which specs reference which (refresh when adding a spec):

Source spec Depends on
canonical-message-format.md (none — foundation)
event-bus-and-trace-catalog.md canonical-message-format, routing-engine
routing-engine.md canonical-message-format, event-bus-and-trace-catalog
streaming-protocol.md canonical-message-format, event-bus-and-trace-catalog, routing-engine
provider-adapter-contract.md (planned) canonical-message-format, event-bus-and-trace-catalog, streaming-protocol
tool-dispatcher.md (planned) canonical-message-format, event-bus-and-trace-catalog
server-api.md (planned) canonical-message-format, event-bus-and-trace-catalog, streaming-protocol
analytics-api.md canonical-message-format, event-bus-and-trace-catalog, server-api
benchmark.md analytics-api, event-bus-and-trace-catalog, canonical-message-format, provider-adapter-contract
deployment-shape.md the project strategy (private), market-research/synthesis.md (rationale only — no contract dependency)
gateway.md canonical-message-format, provider-adapter-contract, routing-engine, event-bus-and-trace-catalog, server-api, analytics-api
context-assembler.md canonical-message-format, provider-adapter-contract (planned), analytics-api
pattern-store.md canonical-message-format, event-bus-and-trace-catalog, routing-engine, memory-store, analytics-api, evaluator
skill-format.md canonical-message-format, event-bus-and-trace-catalog, tool-dispatcher, context-assembler
evaluator.md event-bus-and-trace-catalog, canonical-message-format, analytics-api, benchmark, routing-engine, pattern-store (planned)
multi-user.md canonical-message-format, event-bus-and-trace-catalog, gateway, routing-engine, analytics-api
delegation.md canonical-message-format, event-bus-and-trace-catalog, routing-engine, streaming-protocol, server-api, tool-dispatcher, context-assembler, pattern-store, evaluator, analytics-api
pricing.md the project strategy (private), deployment-shape, multi-user, analytics-api, gateway, canonical-message-format (rationale + composability — no contract dependency)
skill-curator.md skill-format, event-bus-and-trace-catalog, evaluator, canonical-message-format, analytics-api, memory-store, multi-user (planned), pattern-store (planned)
api-versioning.md gateway, analytics-api, server-api (planned)
gateway-hardening.md gateway, multi-user, server-api, event-bus-and-trace-catalog
observability.md event-bus-and-trace-catalog, gateway, server-api (planned), multi-user, evaluator, pattern-store
redaction.md event-bus-and-trace-catalog, audit-log, analytics-api, multi-user, canonical-message-format
audit-log.md event-bus-and-trace-catalog, canonical-message-format, gateway, multi-user, analytics-api
trace-retention.md event-bus-and-trace-catalog, audit-log, STRATEGY (rationale)

When changing a spec, the dependent specs (right column whose left column is the changed spec) must be checked.


Change log

2026-05-20 — credentials.md v1 shipped: CredentialResolver + metis auth CLI + runtime hookup

2026-05-16 — Wave 16 GA launch sync: Phase 3 shipped sign-off, billing self-service, first-customer concierge artifacts, launch collateral, and operational readiness

2026-05-16 — AGENTS.md / README.md test-count + Wave-15 doc-sync (GA-blocker fixes + concierge + status-page + observability v1.1 + billing); phase-claim posture preserved

2026-05-16 — pricing.md ratified (§5.5.4 open-core + per-seat Pro + reserved enterprise %-of-savings); Wave 15 billing module shipped

2026-05-16 — observability.md v1.1: latency percentiles, error-rate counters, gateway auth-failure tracking + PrometheusRule + Grafana dashboard + observability-runbook.md (Wave 14a)

2026-05-16 — concierge-onboarding flow: customer_tier keystore field + metis customer-report + metis trial-status + the concierge runbook (private) (Wave 14b)

2026-05-16 — status-page.md “Live deployment” + monitoring checks + SEV-mapped templates + helm statusPage.enabled sidecar (Wave 11 implementation)

2026-05-16 — gateway.md §4.8 model normalization (GA blocker 2 fix)

2026-05-16 — routing-engine.md §4.5.1 NETWORK escalation refinement (GA blocker 1 fix)

2026-05-15 — AGENTS.md / README.md test-count + Wave-14 sync + the project strategy (private) §A3-rev7 partial readout (Wave 14 docs sync)

2026-05-15 — the GA-readiness audit (private) + 5 tiny in-pass fixes (Wave 14 GA-readiness audit)

2026-05-15 — gateway.md §12 “Self-serve signup” + metis_gateway/signup.py + /signup + /account/keys (Wave 14)

2026-05-15 — sales toolkit landed under docs/sales/ (one-pager + competitive comparison + objection handling + buyer FAQ + case-study template)

2026-05-15 — evaluator.md §5.4 v1.2 partial-credit primitive (§A3-rev6 / 13a-1 follow-up — Wave 14a-7 path-a)

2026-05-15 — product-site GA polish (post-Wave-13 numbers + comparison page + how-it-works + pricing placeholder)

2026-05-15 — mkdocs-material doc site scaffolding (mkdocs.yml + docs/index.md + infra/docs/ + docker-compose docs profile)

2026-05-15 — AGENTS.md / README.md / the project strategy (private) post-Wave-13 sync + the phase-claim proposal (private) drafted (post-Wave-13 docs sync)

2026-05-15 — docs/operations/trace-performance.md + 5 expression indexes + WAL gauge + metis trace vacuum (Wave 13a-5)

2026-05-15 — benchmark.md §3.1 signal_strength field + §4.1 v2 suite partition + 13a-1 smoke (Wave 13a-1)

2026-05-15 — pattern-store.md §17 “Production tuning” + concurrency hardening + cache-hit metric (Wave 13a-4)

2026-05-15 — operations/quickstart.md + metis trial + infra/gateway/scripts/{quickstart,tear-down}.sh + benchmarks/workloads-trial/ (Agent 12b-?)

2026-05-15 — benchmark.md §6.4 --seed-passes N flag + statistical reporting (§A3-rev6 path 2; Agent 12b-2)

2026-05-15 — gateway-hardening.md §2.1 lifts loopback-only bind constraint (Wave 13)

2026-05-15 — redaction.md v1 + EventRedactor + metis audit export --redact <mode> (Wave 12a-3)

2026-05-15 — analytics-api.md §4.10 GDPR portability + forget endpoints (Wave 12a-4)

2026-05-15 — trace-retention.md v1 + trace.swept event + metis trace prune (Wave 12a-2)

2026-05-15 — routing-engine.md §5.5 cost_weight default lowered 0.1 → 0.05 (§A3-rev5 follow-up; Wave 12)

2026-05-15 — docs/operations/soc2-readiness.md + compliance-overview.md added (SOC2 gap audit; Wave 12)

2026-05-15 — audit-log.md v1 (new spec; audit subset + JSONL/CSV export + metis audit export; Wave 12)

2026-05-15 — pattern-store.md §16 v2 recording-side wiring fix + cluster-tightening A/B landed (Wave 11)

2026-05-15 — delegation.md §11.1 + benchmark workload multi-step-with-delegation (planner-driven delegation validation; Wave 11)

2026-05-15 — gateway-hardening.md v1 (perimeter posture + rate-limit middleware; Wave 12 prep)

2026-05-15 — api-versioning.md v1 enforcement live (410 unsupported, sunset auto-rejection, OPTIONS pre-flight, state plumbing; Wave 11)

2026-05-15 — docs/operations/ added (incident response, status page, SLA template; buyer-facing)

2026-05-15 — observability.md v1 (Prometheus /metrics on gateway + server)

2026-05-15 — delegation.md v1 MVP shipped (delegate() tool + worker sessions; Wave 10)

2026-05-15 — api-versioning.md v1 (new spec; lightweight middleware shipped on both apps)

2026-05-15 — gateway.md §11 key lifecycle (revoke / rotate / list + audit events; Wave 10)

2026-05-15 — event-bus-and-trace-catalog.md §7.5 (trace-DB backup & restore contract)

2026-05-14 — pattern-store.md §16 (v2 hybrid fingerprint shipped; Wave 10)

2026-05-14 — event-bus-and-trace-catalog.md §3 EventBus.drain() loops to quiescent (closes the §A3-rev3 outcome-update bug)

2026-05-14 — skill-curator.md v1 (new spec; gated on agent-authored skills Phase 2.5)

2026-05-14 — multi-user.md §5 / gateway.md §6.4 ship: per-key quota caps with hard breakers, soft alerts, and team_budget_remaining_lt routing predicate (Wave 9a-2)

2026-05-14 — pattern-store.md §16 (v2 hybrid fingerprint contract; Phase 4 pending §A3-rev3)

2026-05-14 — pricing.md v1 (commercial pricing model — recommendation, awaiting owner ratification)

2026-05-14 — routing-engine.md §5.5 / pattern-store.md §8.1 / §9.4 / §15.4: pattern.min_confidence default lowered from 0.30.05 (slot-4 confidence gate scales with cost_weight=0.1)

2026-05-14 — context-assembler.md v3 §5.2 lands: explicit-activation budget + pre-activation events + [preloaded] index annotation

2026-05-14 — gateway.md §3.3 / §6 — gateway keys gain optional user_id / team_id tags (Wave 8a-5)

2026-05-14 — evaluator.md §5.4 adds grounding_tokens / forbidden_grounding workload-rubric primitive (v1.1)

2026-05-14 — multi-user.md §4.4 foundation: user_id / team_id land on LLMCallCompleted, TurnCompleted, MessageMetadata

2026-05-14 — analytics-api.md §4.1 + new §4.9 (user/team rollups land)

2026-05-14 — pattern-store.md §5.1 adds optional workload_id near-keyed partition

2026-05-14 — routing-engine.md §5.5 cost_weight default lowered 0.3 → 0.1

2026-05-14 — event-bus-and-trace-catalog.md §4.4.1 enforced; eval.completed floor inverted

2026-05-14 — delegation.md v1 (Phase 4 worker-session design)

2026-05-14 — multi-user.md v1 (per-user / per-team identity & rollup layer)

2026-05-14 — evaluator.md §5.1 turn rubric reads tool.completed.success=False

2026-05-14 — evaluator.md §5.1 turn-completed signals_extra plumbed for LLM judge

2026-05-14 — gateway.md v1 (captures shipped surface) + per-key analytics rollup

2026-05-14 — provider-adapter-contract.md v1.2 (CanonicalResponse returns content, not Message)

2026-05-14 — context-assembler.md v3 (skill activation)


2026-05-14 — context-assembler.md v2 (minimum-cacheable-prefix rule)

2026-05-14 — benchmark workload diversity v1 (two discriminating fixtures)

2026-05-14 — evaluator: LLM-as-judge + hybrid escalation tier shipped

2026-05-14 — evaluator: opt-in content penalty (refusal / empty response)

2026-05-13 — evaluator v1 implementation (heuristic tier)

2026-05-13 — pattern-store v1 implementation

2026-05-08 — routing-engine v3.1

2026-05-08 — event-bus v2

2026-05-08 — routing-engine v3

2026-05-08 — Cross-spec reconciliation sweep (event-bus v3, streaming v2, others)

Several spec-boundary inconsistencies surfaced in cross-spec review and were resolved together:

2026-05-08 — Post-v3 micro-sweep (streaming-protocol numbering, project-overview diagram)

Followup to the cross-spec sweep — five small but real defects caught in review:

2026-05-12 — event-bus: skill.loaded.source added


2026-05-12 — analytics-api.md v1 drafted


2026-05-13 — benchmark.md v1 drafted


2026-05-13 — context-assembler.md v1 drafted


2026-05-13 — deployment-shape.md v1 + gateway.md v0 drafted


2026-05-14 — event-bus catalog v3.1: pattern.* and eval.* payloads landed


2026-05-13 — pattern-store.md v1 drafted


2026-05-13 — evaluator.md v1 drafted


2026-05-14 — Pattern-store ↔ evaluator reconciliation sweep

Wave 3 produced pattern-store.md and evaluator.md in parallel. Each spec’s §15 listed touchpoints assumed about the other surface. This sweep walks those touchpoints and pins the reconciled contract, following the 2026-05-08 cross-spec reconciliation pattern.


2026-05-13 — skill-format.md v1 drafted (retrospective)


2026-05-12 — Implementation milestone + doc refresh

Not a spec change; an alignment pass between the docs and what’s actually been built.


Pending cross-references

When you land a spec change, move it from “pending review” up here for visibility, then back to “verified” when the dependent spec is updated.