{"slug": "the-cryptid-field-office-an-ai-triages-sightings-a-person-signs-off", "title": "The Cryptid Field Office: an AI triages sightings, a person signs off", "summary": "A developer built the Cryptid Field Office, a Sanity-based report-triage pipeline in which an AI Field Investigator scores public sighting reports and routes them through the same workflow actions available to human staff, with a person signing off on unclear cases. The project runs three surfaces on one Sanity content lake — a public Next.js case map and Director's Desk, a Sanity App SDK corkboard for staff, and a Studio for editors — all sharing a single fireAction audit trail. The developer, who describes themselves as non-technical, directed Claude Code to build the system and published the repo with a planning runbook and build log.", "body_md": "*This is a submission for the [Sanity Challenge, Path Two: Vibe-Code Something Strange](https://dev.to/challenges/sanity-2026-09-16)*\n\n**The Cryptid Field Office**: a deadpan government bureau that takes every unexplained sighting seriously. Cryptids, lights over the desert, a figure on the stairs, a jinn in the storeroom, a lodge that is on no property register. You file a report. An AI **Field Investigator** reads it, scores it and decides where it goes. A person signs off on anything unclear. Every case ends in a stamp: CLASSIFIED, DEBUNKED or INCONCLUSIVE.\n\nIt is silly on the surface and serious underneath. Take away the Bigfoot and it is a **report-triage pipeline**: public intake, AI screening, linking related reports, a human decision, and an audit trail. Swap the creatures for potholes and you have a city 311 system. The same pattern runs bug trackers, insurance claims and fraud review. That was the point: something strange, built on something real.\n\nIt has three surfaces on one Sanity content lake:\n\n|  | What it is | Who uses it | \n|---|---|---|\n| **Public site** (Next.js) | Case map and files, a four-step report form, a live \"your report is being triaged\" page, and a public **Director's Desk** | Anyone. No login. | \n| **Case Board** (Sanity**App SDK** ) | A live corkboard: drag case photos around, pull a red pin from one card onto another to draw a string, approve or reject the AI's suggested links, fire workflow actions | Bureau staff | \n| **Studio** | Custom desk, status badges, a map location picker, and the official **Workflows** plugin | Editors | \n\nThe part I am proudest of: **the agent and a person move a case through exactly the same workflow actions.** The AI triages a report, a visitor on the Director's Desk opens an investigation, and a staff member closes it from the Case Board, and all three are the same `fireAction` on the same instance, recorded in one audit trail.\n\n**Live site (no login needed): [https://cryptid-field-office-mubeen9.vercel.app](https://cryptid-field-office-mubeen9.vercel.app)**\n\nTry it in about a minute:\n\nThe Studio and Case Board need a Sanity login, so the video and screenshots below show them. The Director's Desk gives you the same workflow power without one.\n\nThe video shows the whole loop, from a public report to a stamp, and it is the only place to see the Case Board and Studio without a Sanity login.\n\n[https://github.com/MAMubeenKhan/cfo](https://github.com/MAMubeenKhan/cfo)\n\nThe repo includes `PLAN.md` (the full runbook I had Claude write *before* any code) and `BUILDLOG.md` (an honest day-by-day log, including everything that broke).\n\n**Tools:** Claude Code (Opus 5.5 for planning, Sonnet 5 for most building), the official `sanity-best-practices` agent skill, Playwright, axe-core and Lighthouse for testing. I am non-technical; I directed, Claude built.\n\nMy first prompt was the challenge page pasted in, plus: *\"give me options on what we should make and tell me what is best and why.\"* Claude scored four ideas against the four judging criteria and both bonuses and recommended the cryptid bureau, because a case moving from triage to a verdict is exactly the \"agent moves it forward, a person approves it\" pattern, and a red-string board is a natural App SDK app.\n\nMy honest worry was: *\"won't it be weird and silly and make me a joke?\"* Claude's answer became the design rule for the whole project: **play it deadpan.** The humour lives in the bureaucracy (case numbers, stamps, memos), never in the subject. A silly idea with a real workflow reads as clever; a silly idea with three screens reads as a joke.\n\nThen I kept pushing the scope: *\"include UFOs, aliens, Area 51\"*, then *\"ghosts, jinn, spirits and occult\"*, then *\"secret cults and societies.\"* That created a real design question I want to be upfront about, because it shaped the code:\n\nBefore writing code I asked for *\"an end to end plan so a new session doesn't have to do any planning, including edge cases, no tests until completion, only one comprehensive test at the end.\"* Claude read the Workflows and App SDK docs, checked real package versions, and wrote a ~500-line runbook. Three mid-flight prompts shaped it: *\"it should be attractive with good UX and highly polished\"*, *\"as per current standards\"* (this became a WCAG 2.2 AA, Core Web Vitals, dark-mode, reduced-motion spec), and my memory file (a `memory.md` Claude reads at every session start and appends lessons to).\n\n`connection` document with provenance and confidence: the red strings. Witnesses are anonymous codenames with a credibility score computed across their cases.`case-lifecycle` definition: five stages, five automated effects, human actions for the Director and Investigator. It passed `sanity-workflows deploy --check` on the first attempt. I then ran all 30 seeded cases through the `client.agent.action.prompt`.` useQuery` streams, `useWorkflowEngine`, `useWorkflowSession`, `@sanity/workflow-diagram`).\nI would rather show the dead ends than pretend there were none.\n\n`npm install` left a half-extracted `zod`, which made every Sanity CLI command fail with `MODULE_NOT_FOUND`, then made a second install fail with `Invalid Version:`. Fix: delete `node_modules` and the lockfile, install fresh, in the background. On this network installs took 10 to 25 minutes.`sanity-best-practices` skill and it caught that `@sanity/icons` v5 has `framework: nextjs` and a redeploy fixed it. Deployment Protection was also putting a login in front of the site.`scripts/deploy-web.sh`).` static` folder. And demo cases I had hidden were still appearing as \"related files\" on public pages, so the query now drops a connection if either end is hidden.`noindex` header to its free addresses.`prod.wf-instance.<caseId>`) made starting a case idempotent.` Bureau settings`.` cyh4xyo1` · `production` (public)`https://cyh4xyo1.api.sanity.io/v2026-09-01/data/query/production?query=*[_type==\"case\"][0...5]{caseNumber,title,category,status}`\n`case` (workflow subject with a status mirror), `witness` (anonymous, credibility computed across cases), `subject` (six categories), `region` (a `restricted` flag drives the Area 51 banner and redactions).", "url": "https://wpnews.pro/news/the-cryptid-field-office-an-ai-triages-sightings-a-person-signs-off", "canonical_source": "https://dev.to/mamubeenkhan/the-cryptid-field-office-an-ai-triages-sightings-a-person-signs-off-57go", "published_at": "2026-09-25 11:07:12+00:00", "updated_at": "2026-09-25 11:30:44.988279+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "artificial-intelligence"], "entities": ["Sanity", "Next.js", "Claude Code", "Anthropic", "GitHub", "Vercel", "MAMubeenKhan"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/the-cryptid-field-office-an-ai-triages-sightings-a-person-signs-off", "markdown": "https://wpnews.pro/news/the-cryptid-field-office-an-ai-triages-sightings-a-person-signs-off.md", "text": "https://wpnews.pro/news/the-cryptid-field-office-an-ai-triages-sightings-a-person-signs-off.txt", "jsonld": "https://wpnews.pro/news/the-cryptid-field-office-an-ai-triages-sightings-a-person-signs-off.jsonld"}}