Case Study 01 / 05 · Design Engineering · System Thinking

Sentinel

A local context harness that feeds AI what it needs and keeps everything versioned.

April 2026 → present·Shipped to daily use·Solo build

Problem

I needed a context harness: somewhere to feed notes into AI and pull structured output back, with everything versioned in git. No org-level tool did this. I wanted the structure of Notion with the speed of Obsidian, running locally and never sending data out. So I built my own.

What I did

V1 was built through Claude Code sessions, one conversation at a time: Express server, git-backed file API, React frontend with wiki-links and backlinks, D3 graph, command palette, drag-and-drop sidebar, Python MCP server, macOS Launch Agent. For V2 I moved to Claude Design to rethink the structure and visual language. Two design passes: warm paper first, then Tina DS.

How AI was used

All development happened conversationally through Claude Code. The MCP server is the key piece: it gives Claude direct read/write access to my notes, so the harness works in both directions. I send context in, Claude pulls from it, and everything commits to git automatically.

Where human judgment mattered

I ran the security audit myself and caught five vulnerabilities Claude had introduced: swapped exec for execFile to block command injection, added path traversal guards, and locked down the file API. Four sidebar rewrites, every architecture decision. AI wrote the code, but I decided what was safe to run.

Security & Architecture

15 commits since 2026-04-11, zero external services, and no data leaves the machine. Every save auto-commits to git for a full audit trail. No auto-linking, no remote calls, no Tailwind dependency chain. The full stack is React + Express + Python MCP + D3.

5Vulnerabilities caught
15+Commits shipped
0External services

Architecture Stack

Frontend
React
Backend
Express
AI Layer
MCP
Viz
D3
Persistence
Git
Phase 1 — Foundation

Express server, file API with path traversal guards, markdown rendering with wiki-link syntax.

Phase 2 — Intelligence

Python MCP server for Claude brain access, SSE file watcher for live updates, D3 knowledge graph.

Phase 3 — Design

Two visual passes: warm paper aesthetic, then Tina DS. Four sidebar rewrites preserving all prior features.

Phase 4 — Security Hardening

Human-led security audit: blocked command injection (exec → execFile), added path traversal guards, locked file API endpoints. Git auto-commit on every save for full audit trail.

Context HarnessLocal-onlyMCPGit-versionedAI Infrastructure

Get in touch

For detailed case studies, reach out.

hello@tinasingh.app