Case studies
maptaste: give agents a better eye for maps
Coding agents ship rainbow MapLibre styles. maptaste gives them a check + revise loop: global and cn skill packs set the rules, maptaste check returns scored findings, and MCP brings the checks into their workflow. The Before / After showcase puts the result on real OpenFreeMap San Francisco buildings at pitch ~57°: Set1 categorical Before, cinematic sequential-blue After. Light / Dark toggles change paint only, keeping the city and camera fixed so the styling speaks for itself.
Stack · TypeScript · MapLibre · MCP · Vite
LEDRING: what did the agent do after it was told no?
LEDRING parses agent traces (Claude Code JSONL, or OpenTelemetry GenAI spans) into one schema and draws N runs of the same task as a single branch tree, the way some story games show you every path players took. A rule-based score says how far each run drifted from the instruction. Editing a file you said not to touch is never forgiven, even if the agent behaves afterwards. The part I like most is Red Wall: a guardrail that blocks git push --force is only half the test. What matters is whether the agent then asked you, or tried --force-with-lease. Then I made it a game. CX-417 builds a web page live, may cut corners, and you decide what ships. Every page it generates runs in a locked-down sandbox and gets scanned before you see it, because letting an AI write arbitrary HTML into your browser is exactly the kind of thing LEDRING is supposed to catch.
Stack · TypeScript · Zod · pnpm monorepo · parse5 / acorn · Playwright · Cloudflare Workers + D1 · Workers AI
lakeboard-converter: mind maps for me, Markdown for my agents
I plan in mind maps, and my agents read text. An XMind or Yuque file is JSON underneath, but an agent has to dig through IDs, styles and layout before it reaches a single idea. The converter keeps the tree and drops the picture. The same core runs in three places: the browser (nothing uploaded), an npx CLI with a --json envelope, and four read-only MCP tools (convert, from_markdown, convert_many, inspect). The tools return typed structured output (which sheets exist, how many nodes, whether it cut anything off at 2,000), so an agent can decide what to do without parsing my Markdown back. Old XMind 8 files get a clear error instead of a creative guess.
Stack · TypeScript · MCP SDK · Zod · JSZip · Vite · Cloudflare Workers (static)
Research: ranked directions, and it checks its own citations
LLMs are great at inventing plausible papers, so this one isn't allowed to just talk. A vague interest goes through four streamed stages: pull real evidence from OpenAlex, map the landscape, compare paths, converge on a 7-day plan. Every citation gets looked up and comes back marked verified, not-found, broken or search-link. It runs on a free Cloudflare Workers AI model, so most of the engineering is unglamorous: per-IP and global daily quotas in D1, a cost estimate before every call, and a bring-your-own-key path that skips my server entirely. There's an eval on 20 sample interests. Its most useful result was showing the template-only mode verified 0% of its citations, which is why demo evidence is labelled illustrative only. To be honest, it's a fixed pipeline, not an agent picking its own tools. The MCP server does let your agent call it like one.
Stack · TypeScript · React · Vite · Cloudflare Workers · D1 · Workers AI · OpenAlex · Zod · MCP