When a shipped MCP breaks, what happens and who fixes it?
The repair loop closes the post-shipment feedback cycle: verified anomalies become a Repair Blueprint, route to the creator, and auto-reverify/reship on a successful fix.
- Collection
- documentation
- Updated
- 2026-07-29
- min read
- 7
- Version
- v1
Observation detects drift and produces a scoped Repair Blueprint with hypotheses, not confirmed causes; the creator always applies the actual fix; SaSame never edits creator code; a successful fix is reverified under the same test contract and automatically reshipped.
What triggers a repair case
Two paths lead to a Repair Blueprint: (1) a managed monitoring run detects endpoint, schema, tool or version drift against the shipment baseline, or (2) a creator directly reports a defect on an already-shipped product. Both route to the same REPAIR station.
OBSERVATION -> drift detected -> REPAIR_RECOMMENDED
REPAIR -> repair_blueprint_receipt (root_cause_hypothesis)
(creator owns the fix) -> new commit
REVERIFICATION -> reverification_receipt (new build)
RESHIPMENT -> new shipment manifest, same product lineage
OBSERVATION -> resumesA duplicate incident matching an existing case's dedup key (product_id + failure_classification + affected_surfaces) groups into that one case — it never forks a parallel case for the same underlying problem.
What a Repair Blueprint actually contains
A fixed 12-field record: observed_fact, timestamp, product_version, evidence_refs, reproduction_procedure, expected_vs_observed, affected_surfaces, failure_classification, confidence, candidate_causes, recommended_direction, prohibited_out_of_scope.
Every candidate_causes entry is explicitly marked a hypothesis — none may be asserted as a confirmed root cause. Repair advice is advisory, never a safety or quality endorsement.
SaSame never edits creator code
This is a hard, repeated rule, not a preference: SaSame proposes a Repair Blueprint; it never silently edits creator code. The creator executes the actual repair. A Repair Blueprint is not actioned until the creator explicitly accepts or rejects it — a rejected or ignored blueprint stays open, it is never silently closed as resolved. A creator-submitted fix creates a new version lineage entry; it never overwrites the prior, failing version.
Reverification: the same 7-layer contract, not a lighter pass
Reverification re-runs the identical inspection contract used at first shipment — the "before/after" test contract stays the same unless a migration is explicitly justified and recorded, never silently relaxed.
| Layer | Role | Blocking |
|---|---|---|
| L1 source preflight | source/package/repo checks | yes |
| L2 metadata/schema | schema validation | yes |
| L3 auth/effect classification | read vs. write vs. side-effect | yes |
| L4 boundary checks | secret/SSRF/egress/license scope | yes |
| L5 runtime | real initialize + tools/list | yes |
| L6 external call | a real external tool call with real arguments | yes |
| L7 observation | error/timeout/latency/compatibility | no |
L6 is the layer that upgrades a creator's self-reported local test pass (Guided Build's BUILD-03) into independently verified evidence: "a check whose observer is self or local, or whose endpoint is missing, does NOT satisfy L6 — self/local tests cannot replace external-call evidence."
An unknown result on a blocking layer is never silently counted as pass or fail — it routes to manual review instead. Every inspection and reverification receipt carries a fixed forbidden-word list (safe, trusted, approved, endorsed, recommended, malware-free, malware scan, certified-safe) — the record states only what was measured.
Successful vs. failed reverification
A successful reverification automatically triggers reshipment and a distribution update. A failed reverification returns to the creator with the new evidence — never reported as a false completion. This is enforced at the data layer, not just by convention: a reshipped-resolved state requires a passing reverification result to exist first, and at most one active repair case can exist per product/failure-classification pair at a time.
Examples
2- 01
A schema-drift alert on a Factory Pro plan (daily managed monitoring) reaches the creator as a notification the same day; on Free Listing (best-effort, no guarantee) the same drift may sit unnoticed until the next best-effort check.
- 02
A creator who disagrees with a candidate cause can reject the blueprint; the case stays open with the disagreement on record rather than being marked resolved.