Skip to content
KJ

Systems that know when to stop.

Seven projects below. Each one is introduced by the thing it refuses to do, because that’s the decision that took the thinking.

See what they refuse

7 projects · 5 deployed · graduating 2027

Kevin Jones, Chennai, India, B.Tech Computer Science and Engineering, 2027.


It won’t upload your photo.It won’t answer when the evidence is weak.It won’t submit the application.It won’t run a workflow that doesn’t check out.It won’t serve a stale listing.It won’t call the scrollback buffer memory.It won’t run what the agent proposes.

01Selected work

Seven systems, and what each one won’t do.

Every refusal below is a documented decision in that project’s own README or agent context. Press the button on each one and ask it anyway.

01 / 07Client-side MLLive

StarMatch

Upload a photo and find which public figure you most resemble. Face detection and the 128-dimension embedding both run inside your browser tab.

Refuses

It won’t upload your photo.

There is no endpoint to upload it to. The privacy claim is architectural rather than a promise on a policy page — adding a server-side inference path would mean deleting the property the project exists to demonstrate.

  • Euclidean, not cosine
  • 8/10 top-1 on held-out probes
  • 12 MB weights, lazy-loaded

Next.js 16 · TensorFlow.js · face-api · visx

02 / 07Governed AILive

Frontier Platform

Three services — grounded retrieval, a multi-agent workflow, and the guardrail library both of them import — behind an evaluation suite wired into CI.

Refuses

It won’t answer when the evidence is weak.

Three independent floors gate every answer: IDF term coverage, reranker score, and a composite grounding score. Miss one and the service says which one it missed. On the committed golden set it refuses exactly the three unanswerable questions and none of the thirteen answerable ones.

  • 99 tests passing
  • CI fails on a quality drop
  • Runs offline, no API key

Python 3.12 · React · TypeScript · GitHub Actions

03 / 07AutomationCLI

Job Autopilot

Seven public board APIs in, one ranked approval queue out. Hard gates disqualify and store the reason; survivors get a 0–100 score that carries its own For and Against.

Refuses

It won’t submit the application.

Unattended form-fill means typing a real address into third-party forms and clicking irreversible controls. It also gets accounts restricted and trips ATS duplicate filters, which costs you the roles you wanted. The pipeline stops at a queue a human reads.

  • 1,341 postings scanned in a day
  • 6 hard gates
  • 2 dependencies

Python 3.11 · SQLite · PyYAML

04 / 07Visual toolingLive

CodeAuto

A drafting sheet for HR processes. You draw the workflow on a ruled grid and a checker marks up what is wrong in the margin before it will run.

Refuses

It won’t run a workflow that doesn’t check out.

The defining behaviour is the validation, not the canvas. “Must have an End node”, “node is not connected” — every outstanding issue is numbered in the margin, and clicking one selects the offending node. Numbering appears only there, where the count is real.

  • 5 node types
  • Click-to-locate issues
  • Live structural validation

React 19 · React Flow · Zustand · MSW

05 / 07RetrievalLive

JobMatch RAG

Natural-language search over scraped remote listings. A metadata prefilter narrows the field, vector ranking orders what’s left, and results stream back as structured cards.

Refuses

It won’t serve a stale listing.

Every job carries a lastSeen stamp and anything past 48 hours is pruned from the index on ingest. A job board that returns filled roles is worse than no job board, so the index is allowed to shrink.

  • Hybrid metadata → vector
  • 48-hour prune
  • Portable JSON index

Next.js · Gemini · Vercel AI SDK · Cheerio

06 / 07Agent memoryLive

MemoryVault AI

Durable memory for agents on CockroachDB. Facts, preferences and project context are distilled out of conversations and retrieved into later prompts automatically.

Refuses

It won’t call the scrollback buffer memory.

Chat history is ephemeral turns you scroll through to remind the model, and it is lost between sessions. Memory is distilled facts that survive across days and projects and are retrieved into every prompt. The vault is the product; chat is one way into it.

  • CockroachDB
  • Bedrock Titan embeddings
  • Cited retrieval

Next.js · Drizzle ORM · AWS Bedrock · Auth.js

07 / 07Agent toolingCLI

agentshell

One prompt, a chain of agent CLIs: Claude Code, Codex, Antigravity, then a local model. Ask with ? and the agent’s proposed command lands in your input buffer, not your shell.

Refuses

It won’t run what the agent proposes.

Nothing in the codebase executes agent output. A proposal waits in the input buffer for you to press Enter, and the ?, fix and explain commands run each CLI in its own read-only mode, so the agent can’t skip the review by just doing the task.

  • 113 tests, no agent CLI spawned
  • 5-backend failover chain
  • 1 dependency

Python 3.11 · prompt_toolkit · SQLite · PowerShell


02How I work

Four rules that cost something to learn.

Each one is committed to a docs file in the repo it came out of, alongside the failure that produced it.


03About

I build the boring parts on purpose.

I’m Kevin — a third-year computer science engineering student at SRM Institute of Science and Technology, Ramapuram, working out of Chennai.

Most of what I build is retrieval, evaluation and automation: the machinery that decides whether an answer is good enough to show someone. That machinery is where the failures live, so it’s where I spend the time — writing the gate, the benchmark and the rejection log before the interface that sits on top.

I write the reasoning down as I go. Every project here carries a decisions file explaining why it works the way it does, which is the only reason the rules in the section above are quotable.

Languages
Python · TypeScript · SQL · C++
Frontend
Next.js · React · Tailwind · GSAP · visx
Backend
FastAPI · Node · Drizzle · SQLite · Postgres
AI
RAG · reranking · embeddings · Bedrock · Gemini
Infra
Vercel · Docker · GitHub Actions
James Kevin Jones presenting a project at an expo