{"slug": "shipcheck-an-autonomous-react-agent-that-stops-cloud-outages-before-they-happen", "title": "SHIPCHECK: An Autonomous ReAct Agent That Stops Cloud Outages Before They Happen", "summary": "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.", "body_md": "*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).*\n\nModern 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).\n\n**In production infrastructure, vector similarity search is dangerous.** If you ask:\n\n*\"Can I upgrade payment service from v2 to v4 tonight?\"*\n\nVector 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.**\n\n**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)**.\n\nBefore any code deployment or pull request is merged:\n\n`DO NOT SHIP YET` to `SAFE TO SHIP` before touching live servers.`kubectl` rollout commands, migration schemas, and emergency rollback scripts.\n\n`70rd1u6b` (Dataset: `production`)\nRather than using Sanity as a passive CMS, SHIPCHECK uses Sanity as the **cognitive brain and grounding environment** for the agent.\n\nWe designed 3 core document types in Sanity (`70rd1u6b`):\n\n`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:\n`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.\nSHIPCHECK exposes Sanity to AI coding agents via a typed MCP JSON-RPC 2.0 interface. The agent autonomously invokes 4 specialized tools:\n\n`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.\nWhen you instruct SHIPCHECK with:\n\nThe agent executes a 13-step ReAct cognitive loop:\n\n```\n[THOUGHT]       Deconstruct proposed change: Component=\"Payment Service\", Target=\"v4\"\n[TOOL_CALL]     invoke: query_sanity_component(\"Payment Service\")\n[OBSERVATION]   Found active production component running v2.0.0\n[THOUGHT]       Query version constraints linked to target version v4\n[TOOL_CALL]     invoke: query_version_constraints(\"Payment Service\", \"v4\")\n[OBSERVATION]   Hop-1 Constraint: Payment Service v4 mandates Payment SDK >= v3.0.0\n[THOUGHT]       Audit live production cluster state for Payment SDK\n[TOOL_CALL]     invoke: audit_cluster_dependencies(\"Payment SDK\")\n[OBSERVATION]   Hop-2 Collision: Active cluster is running Payment SDK v2.4.1 (v2.4.1 < v3.0.0)\n[THOUGHT]       Scan organizational knowledge base for documentation drift or policies\n[TOOL_CALL]     invoke: query_knowledge_graph(\"Payment Service\")\n[OBSERVATION]   Stale Wiki (Auth 4) assumes XML payloads. Official v4 Release Notes (Auth 10) mandates JSON v2.\n[DECISION]      Authority 10 supersedes Authority 4.\n[DECISION]      VERDICT: DO NOT SHIP YET. Hard blocker identified.\n```\n\n`lib/agent/preflightAgent.ts`` lib/engine/groqTraversal.ts``lib/engine/remediationEngine.ts`\nBuilding an agent that verifies other agents taught us two critical lessons:\n\n*Built with ❤️ for the Sanity Context MCP Hackathon (Path One).*", "url": "https://wpnews.pro/news/shipcheck-an-autonomous-react-agent-that-stops-cloud-outages-before-they-happen", "canonical_source": "https://dev.to/rajan_mishra_a9f78ad216b4/shipcheck-an-autonomous-react-agent-that-stops-cloud-outages-before-they-happen-5ag1", "published_at": "2026-09-26 00:09:15+00:00", "updated_at": "2026-09-26 00:30:47.083431+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "ai-tools", "developer-tools", "mlops"], "entities": ["SHIPCHECK", "Sanity", "Model Context Protocol", "Claude Code", "Cursor", "GitHub Copilot", "Pinecone", "Groq"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/shipcheck-an-autonomous-react-agent-that-stops-cloud-outages-before-they-happen", "markdown": "https://wpnews.pro/news/shipcheck-an-autonomous-react-agent-that-stops-cloud-outages-before-they-happen.md", "text": "https://wpnews.pro/news/shipcheck-an-autonomous-react-agent-that-stops-cloud-outages-before-they-happen.txt", "jsonld": "https://wpnews.pro/news/shipcheck-an-autonomous-react-agent-that-stops-cloud-outages-before-they-happen.jsonld"}}