This is a submission for the Sanity Challenge, Path One: Ship an Agent That Queries Real Content.
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).