Twelve, in depth
Each diagram shows where the AI sits, what checks it, and who decides. Client names are left out.
Policy impact checker (Secretary Keeper v2)
Shipped, Oct 2026
Staff ask in plain language which company policies a change affects, and get an answer, a table and an Excel workbook with evidence, all on self-hosted models.
Problem. Finding which policies conflict with, already comply with, or cite a changed policy is slow and error-prone by hand.
Source code
- Staff ask question
- Find related clauses
- Model judges clauses
- Code builds the table
- Staff type decide
- Excel with evidence
- The chat model never decides; a code pipeline builds the answer
- The only network exit is one gateway container; everything else sits on internal networks
- Approval comes only from the person's typed 'decide' message, so the model cannot approve itself
System parts
- Chat front end (Open WebUI)
- Policy API
- Clause-diff pipeline
- Model gateway (single exit)
- Postgres + vector store
- 3 checker variants
In operation
- 85 API tests recorded on v1
- Three variants run on one self-hosted 30B model: plain, agent-framework and LangGraph with saved checkpoints
- Public MIT repository with a PDF handbook and diagrams
- Demo mode runs; a real-stack test on the client VM is pending
Stack Docker Compose, vLLM, IBM Granite 4.2 30B, FastAPI, Postgres + pgvector, Open WebUI, TEI embeddings, LangGraph, Hermes Agent, nginx
CauseCode (injury external-cause coding)
In development, Sep–Oct 2026
Reads injury notes and suggests ICD-10-CM external cause codes, each with evidence quotes and the guideline rules it passed, then routes to a clinician or coder.
Problem. Coding the mechanism, place, activity and status of injuries consistently across thousands of notes.
- Clinical note in
- Mark evidence spans
- Candidates from spans
- Rules engine checks
- Clinician or coder decides
- Accepted code logged
- The model never emits a code: evidence spans feed candidates, and a rules engine produces the code
- A simple word-list baseline fails the gate on unseen notes, so it cannot ship on its own
- Policy questions stay marked unapproved until a government reviewer decides
System parts
- Span extractor
- Candidate builder
- Rules engine
- Clinician acceptance card
- Coder queue
- Static console (no outbound calls)
- Signed edge sync
In operation
- 97 tests recorded
- Three independent gold sets: held-out A, held-out B and calibration C, written by separate agents
- Deployment checks: 23 on the Compose + mTLS gateway path, 14 on k3s
- Runs in shadow mode behind a release gate
Stack Python 3.14, FastAPI, pydantic, SQLite (Postgres-portable), Qwen3-4B (local), vanilla JS, Docker / mTLS, k3s
Restricted-environment AI integration
In development, Oct 2026
Lets engineers in a controlled site use Claude Code with a sanitizing proxy, a local knowledge server and signed software bundles, sending back only reviewed structured reports.
Problem. Sensitive sites cannot let raw prompts, code or data leave, but their engineers still need AI help.
- Engineer prompt
- Sanitizing proxy redacts
- Cloud model answers
- Placeholders restored
- Reviewer approves report
- Structured report out
- Redaction uses stable placeholders so answers can be restored locally
- Bundles are signed with ssh-keygen and installed by atomic symlink swap
- Managed settings lock telemetry, updates and marketplace installs off
System parts
- Sanitizing local proxy
- Knowledge server (MCP)
- Signed core bundle
- Report validator
- Editor approve queue
- Secure cloud connection
In operation
- About 120 tests recorded
- Five MCP tools: vault search, read, write note, ask HQ, HQ answers
- Report schema has no free-text fields, so data values cannot leave
- Designed for AWS Bedrock GovCloud connectivity
Stack Python 3 (standard library only), MCP, AWS Bedrock GovCloud, ssh-keygen signing, VS Code extension
ShockTalk (university advisor)
Live demo, Oct 2026
A searchable brain of a university's public site and catalog that answers students and advisors with cited links and prerequisite-aware planning.
Problem. Students and advisors struggle to navigate catalog rules, prerequisites and scattered web pages.
Open it
- Student asks
- Keyword + vector search
- Prerequisite graph
- Local model writes
- Answer with sources
- Keyword search first, vectors optional, because it already ranked the right catalog page first
- Answers come from the prerequisite graph or templates; the local model only phrases them
- No hosted AI services; everything runs on the local machine
System parts
- Crawler
- SQLite search index
- Prerequisite graph
- Local model
- Web app (streaming)
- Mobile API contract
In operation
- About 22,000 site pages plus 1,000 catalog pages, 5,100 courses and 538 programs indexed
- Warm search p50 126 ms and p95 288 ms
- 228 tests passing; 43 commits in two weeks
- Separate link audit checked 956,526 links and flagged 18,360 issues
Stack Python 3.14, SQLite FTS5, sqlite-vec, bge-small embeddings, Qwen3-4B via mlx-lm, FastAPI, SSE
Little Consult (AI business analysis)
Live, 2025–Sep 2026
Small businesses get a 10-section analysis report, a free health-check, weekly coach check-ins and a Business Pressure Index, on a paid subscription.
Problem. Small businesses cannot afford consultants.
Open it
- Owner enters business
- Research gathered
- Statistics engine computes
- Model writes narrative
- 10-section report
- Deterministic statistics compute the numbers; the model only narrates them
- Tier limits live in database functions, not in the app
- Edge-function CORS locked to the production domain
System parts
- Report engine
- Health-check funnel
- Pressure index and KPI series
- Weekly check-ins
- Stripe billing tiers
- Admin tools
In operation
- About 35 edge functions and 40+ migrations
- 872 commits since the project began
- Four Stripe tiers: free, standard, pro, enterprise; CI added
Stack Vite, React, TypeScript, Supabase (Deno edge functions), Stripe, Perplexity, Gemini, Vercel
Corporate housing platform
Private demo, Aug–Sep 2026
A rebuild of a legacy property-management system for a corporate-housing company, covering inventory, bookings, operations and finance with native iOS apps.
Problem. A dated property system could not meet modern operations and finance needs.
- Staff or guest acts
- Web or iOS app
- Validated, market-scoped
- Ledger and audit log
- Agent reads via MCP
- Every input is parsed through one validator; ledger accounts are constants, never string literals
- Audit log is append-only; illegal status jumps are rejected on the server
- Arrival assistant uses a model when a key exists and an offline matcher otherwise
System parts
- Next.js web app
- 4 SwiftUI iOS apps
- Postgres + Drizzle
- Read-only MCP server
- Two switchable interface skins
- Arrival assistant
In operation
- 38 commits in the first three weeks; migrations through 0018
- Four SwiftUI apps: staff, client, partner and guest
- Read-only MCP server with separate operations and finance API keys
Stack Next.js 15, Drizzle, Neon Postgres, Tailwind 4, SwiftUI, MCP, Anthropic SDK (optional)
Integrated farm operations platform
In development, Jun–Oct 2026
One system for a farm's public site, shop, point of sale, back office, staff kiosk, customer tabs and two iOS apps, replacing a separate website and tools.
Problem. A farm ran its website, sales and staffing on disconnected tools.
- Customer or staff acts
- Site, POS or kiosk
- Server checks permissions
- Card payment or hold
- Ledger + reports
- Built audit-ready from day one (SOC 2 / ISO 27001 mindset)
- One ledger view handles revenue double-count traps; every new report reads it
- The platform kernel imports no business code, enforced by a test
System parts
- Public site and shop
- POS
- Back-office admin
- Staff kiosk
- Farm tabs
- 2 iOS apps
In operation
- 724 tests passing; 288 commits
- Hand-numbered migrations through 097
- Seven scheduled jobs
- A $50 card hold when a tab opens, shipped
Stack Next.js 16, TypeScript, Supabase, Stripe Terminal, SwiftUI, Kotlin, Vercel
Museum operations platform
Private demo, Sep 2026 onward
Admissions, ticketing, memberships, collections, retail, kiosk and visitor guide on one spine, with a legacy collections import.
Problem. Museum systems for tickets, collections and visitors were separate and aging.
- Visitor asks
- 17 guardrail layers
- Approved records quoted
- Volunteer review queue
- Staff-approved update
- Answers are extractive: approved records are quoted with sources, and the generative layer ships off
- Plan is an on-site server (Docker Compose, Postgres 17, nightly dump backups)
- Web and native app read one data source; the export throws if staff-only fields leak
System parts
- Visitor web app
- Native iOS app with staff mode
- Collections and records
- Ticket and booking engine
- Legacy-data importer
- Admin dashboard
In operation
- 292-case red-team bank and 17 guardrail layers decided before retrieval
- Own reader for the legacy collections database format, with idempotent apply and rollback
- 10 bundled serverless functions; go-live planned for 1 Jan 2027
Stack React 19, TypeScript, Vite, Postgres, Docker, Stripe, SwiftUI + SceneKit, three.js
Agent-driven accessibility testing
In development, Sep–Oct 2026
Agents try real customer tasks under a disabled person's constraints (screen reader, keyboard only) and report where they stopped, which WCAG 2.2 criteria apply and the fix.
Problem. Accessibility audits check rules, not whether a person can actually finish buying or booking.
- Staff start a run
- Queue worker + browser
- Agent plays the user
- Cause and WCAG score
- Trainer confirms finding
- Client report
- A client never sees a finding until a trainer confirms it
- The hosted worker refuses private and loopback addresses through an egress proxy
- The site is its own release gate: the platform's personas test it before deploy
System parts
- API with organizations
- Queue worker with Playwright
- Agent runtime
- Reviewer dashboard
- Marketing site
- iOS companion app
- 14 shared packages
In operation
- 36 commits in five weeks across five apps and 14 packages
- 97 seed training lessons loaded for the testing personas
- Demo runs are scripted; the benchmark against axe-core has not yet been run with a real model
Stack TypeScript, pnpm + turbo, Fastify 5, Better Auth, BullMQ, Playwright, Prisma, Next 14, SwiftUI
Brain (agent memory, hooks and MCP server)
Live, private, Sep 2026 onward
A long-term memory of typed notes exposed to Claude Code as an MCP server, with hooks that enforce rules and skills that capture lessons.
Problem. Coding agents repeat mistakes and lose context between sessions.
- Developer starts task
- Notes retrieved
- Agent works
- Hooks enforce rules
- Lesson saved and pushed
- Rules that keep being broken become hooks, not text
- A Stop hook pushes notes to git automatically
- MCP tools are deferred, so adding servers costs little until used
System parts
- Typed note vault
- MCP server
- Guardrail hooks
- Capture skills
- Benchmark harness
In operation
- 720 commits
- Launch context measured at 28k tokens
- A benchmark harness tests whether notes and skills improve output
Stack Markdown / Obsidian, Python 3, MCP, git
Lookout and AegeTower (error tracking and ops cockpit)
Live, sign-in, Oct 2026
A Sentry-compatible error tracker for all projects with iOS and Android apps, plus a strict self-hosted open-source core for teams with sensitive data.
Problem. One place was needed for errors and agent status across many projects without sending data to a third party.
- App error captured
- Scrub and group
- Alert thresholds
- Phone push
- Owner approves fix
- Official Sentry SDKs work unchanged; secrets are scrubbed after Unicode normalization
- Only an approve action can queue a runner job, enforced by a database constraint
- AegeTower targets NIST 800-53 Rev 5 High, uses a pinned distroless image, and tests fail on any outbound fetch
System parts
- Intake API
- Web dashboard
- iOS and Android apps
- Cockpit device summaries
- Approval queue
- AegeTower self-hosted core
In operation
- Live check listed 82 projects; 41 commits in two weeks
- Each Mac pushes a roughly 35 KB summary every 60 seconds
- Station routes added with 70 tests passing
- Alerts on new issue, regression and counts of 10, 100, 1,000 and 10,000
Stack Next.js 16, Neon Postgres, Vercel, iOS (TestFlight), Android, Docker, APNs
010 TAG (live globe)
Live, access-gated, Sep 2026
A live 3D globe fed by keyless public feeds (flights, ships, quakes, satellites, weather, webcams) with replay, alert rules and a Claude agent.
Problem. Many real-time public feeds are hard to see as one picture.
- Public feeds in
- Adapters + event bus
- Alert rules watch
- Agent answers over tools
- Analyst sees globe
- Topology is config: in-memory in one process or NATS with split roles
- Alert rules can be backtested on the recorded stream's clock
- A Cloudflare Worker proxies a source that blocks datacenter IPs
System parts
- Ingest adapters
- Event bus
- Historian (record/replay)
- Alert rules (watchman)
- Agent package
- Desktop shell
In operation
- 47 commits, 10 workspace packages
- Desktop shell is about 6 MB
- One container plus Caddy on any Ubuntu box; push to main deploys
Stack TypeScript, pnpm, Cesium, Postgres/Timescale, NATS, Tauri, Caddy