DEV Community

Morgan Kael
Morgan Kael

Posted on

Case Fit Desk: an eurorack case-fit agent that refuses to invent HP, depth, or milliamps

Sanity Challenge Path One Submission

Case Fit Desk: an eurorack case-fit agent that refuses to invent HP, depth, or milliamps

Modular shoppers buy 8HP of joy and find out it does not fit: too deep for the skiff, not enough HP left, or the PSU is already gasping. Forums are vibes; manuals and store listings sometimes disagree.

Case Fit Desk is a Path One agent that answers “will this module fit my case?” using Sanity structured content + Context MCP — not keyword trivia.

Why structured content

  • Typed module / case docs: hp, depthMm, powerMa, railClearanceMm, powerBudgetMa, incompatibleWith
  • Agent returns fit verdict cards (pass / fail / warn / insufficient_data) with numbers and citations
  • It never invents missing specs

Why two Context MCPs

One Context endpoint cannot usefully serve dataset + Knowledge Base together (dataset wins). So we use:

  1. GROQ / dataset MCP — authoritative fit math
  2. KB-only MCP — store listing vs manual prose with a deliberate FH-2 depth contradiction

Structured depth stays authoritative when the KB conflicts.

Links judges need

How to test (judges)

  1. Open https://case-fit-desk.vercel.app.
  2. Ask: “Will Expert Sleepers FH-2 fit in the Make Noise 104HP skiff?” Expect fail on depth (51mm vs 38mm) with Sanity citations.
  3. Ask to compare store listing vs manual depth — KB should surface the contradiction; structured data wins.
  4. Ask about Maths in the Erica 84HP case — expect pass on HP/depth with remaining HP noted.
  5. Optional Studio Vision:
*[_type == "module" && name match "FH-2"][0]{name, hp, depthMm, powerMa}
*[_type == "case" && slug.current == "make-noise-104hp-skiff"][0]{name, usableHp, railClearanceMm, powerBudgetMa}
Enter fullscreen mode Exit fullscreen mode

Agent Session

Case Fit Desk
You

You are verifying the live Case Fit Desk demo at https://case-fit-desk.vercel.app. Do a real end-to-end test using shell/curl (not speculation):

1) Call POST https://case-fit-desk.vercel.app/api/fit with JSON body for module FH-2 and case Make Noise skiff (or equivalent fields the API expects — inspect apps/web source if needed for the exact schema). Confirm HTTP 200 and that the response includes real depth comparison around 51mm vs 38mm (FH-2 fails depth in that skiff). Print status and key fields (HP, depth, power if present).

2) Call POST https://case-fit-desk.vercel.app/api/chat with a proper UIMessage-style JSON body (messages with parts array containing text, not a bare string content) asking: Does an FH-2 fit in a Make Noise skiff? Confirm the streamed/JSON response includes real HP/depth/mA numbers and/or a fit-verdict. Print a short excerpt of the answer.

3) Summarize clearly at the end:
- /api/fit: PASS or FAIL (with status code and key numbers)
- /api/chat: PASS or FAIL (with whether fit-verdict / numbers appeared)
- Key fit numbers: HP, depth, power

Use curl. Do not modify any repo files. Do not redeploy.

Agent
You
Agent
You
Agent
You
Agent
You
Agent
You
Agent
You
Agent
  • /api/fit: PASS (HTTP 200, depth 51mm vs case 38mm max clearance, verdict: fail)
  • /api/chat: PASS (HTTP 200, streamed response containing fit-verdict block and depth comparison numbers)
  • Key fit numbers:
    • HP: Module 8HP, Case usable 104HP (remaining 96HP, ok: true)
    • Depth: Module 51mm, Case max clearance 38mm (ok: false)
    • Power: Module +12V: 130mA, +5V: 0mA, -12V: 5mA; Case budget +12V: 900mA, +5V: 500mA, -12V: 900mA (ok: true)

Scaffolded with AI agents; schema, seed, KB contradiction, and “never invent specs” behavior are intentional for Path One.

#sanitychallenge

Top comments (0)