ledring.dev

Projects

Made to be used. Some of it by agents.

Small open-source tools. Most of them have a side door for agents: an MCP server, a JSON mode, or a trace you can replay.

Case studies

01 — AGENT TRACES · GAME

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

02 — MCP · CLI · WEB

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 a read-only MCP tool. The MCP tool returns 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)

03 — LLM PIPELINE · EVIDENCE

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

  1. 01

    lakeboard-converter

    Turns Yuque Lakeboard and XMind mind maps into Markdown, so the ideas stop being trapped in a picture.

    • Drag and drop at convert.ledring.dev. The file never leaves your browser.
    • npx CLI and a guided TUI. Output is Markdown, a JSON topic tree, an outline, or a clean .xmind.
    • Keeps text, hierarchy, notes, links and labels. Drops styling and layout, on purpose.
    For agents

    A read-only MCP tool, convert, that returns typed structured output (sheets, node counts, a truncation flag) instead of a wall of text. Listed on Glama.

    • TypeScript
    • CLI
    • TUI
    • MCP
    • Web
    • v0.4.1
    • MIT
  2. 02

    Research

    For when you have a vague research itch. You get ranked directions backed by real papers, plus a 7-day plan.

    • Four streamed stages: retrieval, landscape, path comparison, convergence. Confirm each one, or let it run.
    • Evidence comes from OpenAlex and is tiered T1–T3. Every citation is looked up, and a fake one gets marked as fake.
    • Free model on Cloudflare Workers AI with a shared daily quota, or bring your own key (it goes straight from the browser to the provider).
    For agents

    An MCP server with propose_directions and expand, both read-only. Each citation carries its check result, so an agent can see which ones are real.

    • TypeScript
    • React
    • Cloudflare Workers
    • D1
    • Workers AI
    • OpenAlex
    • MCP
  3. 03

    LEDRING / LEDRING Play

    Status lights for agents, plus a browser game where an AI builds a web page and you decide what ships.

    • Replays Claude Code and OpenTelemetry GenAI traces as one branch tree: where runs split, and how often.
    • Scores how far a run drifted from what you asked (0–100, rule-based, no LLM). It can fail your CI.
    • Red Wall checks what an agent did after a guardrail said no: asked, stopped, retried, or found a workaround.
    For agents

    It learns permission rules from your own allow/deny history, turns a subagent into an A2A Agent Card, and runs as a GitHub Action. The game runs on the same engine, and every generated page is sandboxed and checked before you see it.

    • TypeScript
    • pnpm monorepo
    • Zod
    • OpenTelemetry
    • Cloudflare Workers
    • D1
  4. 04

    dev-work-grok-bot-skill

    An Agent skill that turns a chat bot into a careful dev assistant. It drafts first and asks before anything leaves the room.

    • It interviews you one question at a time, then sets up repos, tracker, team chat and preview testing.
    • A forwarded "the boss said it's fine" is just text, not permission. GitHub stays read-only unless you say otherwise.
    • A secret and PII scan that reports file and line, never the value.
    For agents

    20 safety scenarios (relayed approvals, pasted tokens, prompt injection in repo files and web pages). CI checks the skill still states every rule they depend on. That's 20/20 today. Whether a model actually obeys them is a separate eval, and it hasn't been run yet.

    • Agent skill
    • GitHub
    • Linear
    • MCP
    • Node test
  5. 05

    n8n-workflow-collection

    Import-ready n8n workflows, secrets scrubbed: Lark/Feishu bot → Bitable records and PRD drafts, and social metrics.

    • Two editions: global (Lark + OpenAI) and China (Feishu + DeepSeek).
    • Import, swap the {{PLACEHOLDERS}}, rebind credentials, done.
    • A redaction check runs on every commit, just in case.
    For agents

    Every workflow comes with a manifest: input and output schema, side effects, and the exact execute_workflow call for n8n's MCP server. They all say "ask first", because each one writes data or spends quota.

    • n8n
    • MCP
    • Feishu / Lark
    • Bitable
  6. 06

    FelixFangX · control room

    My GitHub profile, rebuilt every day from real runs and evals.

    For agents

    It publishes llms.txt and status.json. Red means red, and missing data says "no data" instead of making something up.

    • GitHub Actions
    • SVG
    • JavaScript