SHIPCHECK: An Autonomous ReAct Agent That Stops Cloud Outages Before They Happen A developer built SHIPCHECK, an autonomous ReAct agent that acts as a pre-flight production release gatekeeper by querying a live Sanity Content Lake through a typed MCP JSON-RPC 2.0 interface. The agent runs a 13-step reasoning loop across four tools — query_sanity_component, query_version_constraints, audit_cluster_dependencies, and query_knowledge_graph — to catch multi-hop dependency collisions and documentation drift that naive vector similarity search misses, returning verdicts from DO NOT SHIP YET to SAFE TO SHIP. This is a submission for the Sanity Challenge, Path One: Ship an Agent That Queries Real Content https://dev.to/challenges/sanity-2026-09-16 . Modern engineering teams increasingly rely on autonomous AI coding agents Claude Code, Cursor, GitHub Copilot to generate code and push infrastructure pull requests. However, when these agents evaluate whether a service can be safely promoted to production, they almost universally rely on naive vector similarity search e.g., Pinecone, standard RAG . In production infrastructure, vector similarity search is dangerous. If you ask: "Can I upgrade payment service from v2 to v4 tonight?" Vector search finds semantic text matches on "payment service" and happily responds "Looks safe " — completely blind to upstream multi-hop dependencies, active cluster container versions, and contradictory documentation. The result? Catastrophic P0 outages in production. SHIPCHECK is an autonomous pre-flight production release gatekeeper. Built as a full ReAct Reasoning + Acting Agent , SHIPCHECK connects directly to a live Sanity Content Lake via the Model Context Protocol MCP . Before any code deployment or pull request is merged: DO NOT SHIP YET to SAFE TO SHIP before touching live servers. kubectl rollout commands, migration schemas, and emergency rollback scripts. 70rd1u6b Dataset: production Rather than using Sanity as a passive CMS, SHIPCHECK uses Sanity as the cognitive brain and grounding environment for the agent. We designed 3 core document types in Sanity 70rd1u6b : component : Represents microservices with their live cluster version, health status, and environment. versionConstraint : Encodes relational rules requiresComponent , operator , version , criticality . knowledgeEntry : Stores architectural specifications, policies, and release notes with explicit semantic links: contradicts : Directed references indicating which older specs are superseded. isExceptionOf : Encodes policy bypass conditions e.g., emergency security hotfix bypassing a 24h soak period . authorityLevel : An integer from 1 to 10 ensuring the agent knows which document wins when specs disagree. SHIPCHECK exposes Sanity to AI coding agents via a typed MCP JSON-RPC 2.0 interface. The agent autonomously invokes 4 specialized tools: query sanity component componentName : Fetches live cluster state and metadata. query version constraints componentName, targetVersion : Discovers relational constraints. audit cluster dependencies dependencyName : Audits upstream pod versions. query knowledge graph query : Resolves documentation drift and exceptions by authority level. When you instruct SHIPCHECK with: The agent executes a 13-step ReAct cognitive loop: THOUGHT Deconstruct proposed change: Component="Payment Service", Target="v4" TOOL CALL invoke: query sanity component "Payment Service" OBSERVATION Found active production component running v2.0.0 THOUGHT Query version constraints linked to target version v4 TOOL CALL invoke: query version constraints "Payment Service", "v4" OBSERVATION Hop-1 Constraint: Payment Service v4 mandates Payment SDK = v3.0.0 THOUGHT Audit live production cluster state for Payment SDK TOOL CALL invoke: audit cluster dependencies "Payment SDK" OBSERVATION Hop-2 Collision: Active cluster is running Payment SDK v2.4.1 v2.4.1 < v3.0.0 THOUGHT Scan organizational knowledge base for documentation drift or policies TOOL CALL invoke: query knowledge graph "Payment Service" OBSERVATION Stale Wiki Auth 4 assumes XML payloads. Official v4 Release Notes Auth 10 mandates JSON v2. DECISION Authority 10 supersedes Authority 4. DECISION VERDICT: DO NOT SHIP YET. Hard blocker identified. lib/agent/preflightAgent.ts lib/engine/groqTraversal.ts lib/engine/remediationEngine.ts Building an agent that verifies other agents taught us two critical lessons: Built with ❤️ for the Sanity Context MCP Hackathon Path One .