Pull from everywhere
Documents, transcripts, emails, screenshots — collected from separate reservoirs, normalized, cross-referenced.
What runs underneath. The corpus, the pipeline, the deploy targets, the gates that fail when something drifts. Written for an engineer skimming on a phone — not for a deck.
Documents in. Cited evidence out. Every claim walks back to the file it came from — cross-linked across cases, people, dates, and patterns.
Documents, transcripts, emails, screenshots — collected from separate reservoirs, normalized, cross-referenced.
A working taxonomy of institutional behaviors, attached to the artifacts that prove them. Every pattern walks back to the receipts.
Every cast member, case, date, and citation is indexed. Ask the question; the answer arrives with sources attached.
Live deadlines, settlement posture, expert status, matter readiness — current with the docket, not chasing it.
Three layers. A prompt core that drives the work. A flat-file catalog that indexes every artifact. A codex layer that keeps the names, the dates, and the case posture straight across the whole corpus.
Where retrieval gets ordered and the companion skills get dispatched. The voice and the guardrails live here.
One markdown manifest, every artifact indexed. Search by character, pattern, date, case, or keyword. Derived indexes open other doors into the same ground truth.
Cast, case, artifact, phenomenology, deposition. The reference layer that keeps identity, chronology, patterns, and matter posture from drifting.
Ingestion, transcription, email consolidation, and two-way sync with the operational systems where the work actually happens.
Rule: the manifest points — the file proves.
Three runtimes, two static surfaces, one bot, one flat-file corpus, one signed-in console. Boring on purpose — the work is the corpus, not the infrastructure.
| Languages | Python 3.12 Node 24 TypeScript Markdown |
|---|---|
| Corpus database | Flat-file (Markdown + JSON) SQLite — catalog/manifest.md is the single source of truth; SQLite mirrors it for keyword search. |
| Public surfaces | Vercel — landing + portal SPA + insights + this page, all statically rendered with public-corpus data. |
| Corpus API |
FastAPI
Uvicorn
httpx
— api.stonewall.esq serves the canonical
corpus stats and reader endpoints from the same flat-file
manifest the static surfaces consume.
|
| Operator console |
Next.js 15
React
Tailwind
— app.stonewall.esq, authenticated, carries
the live-matter workspaces, readers, billing, and
command palette.
|
| Bot runtime |
Railway
Docker
Telegram Bot API
— Stonewall Telegram Bot, polling, deployed from the
repo root scripts/stonewall_bot/.
|
| AI surface | Claude Opus Whisper Gemini TTS-1-HD — orchestration core, voice-to-text, music analysis, voice output. Brain pack mirrors the canonical codices. |
| Sync & intake | pypdfium2 Tesseract extract-msg Notion API — gold-standard 300dpi raster OCR sidecars, email consolidation, Filevine/Domo bridges. |
| CI & gates | GitHub Actions pytest Vitest Playwright — verify-all suite gates manifest consistency, ontology validation, language audit, and brain-pack drift. |
Three places, one record. The repo holds the canon, the workspace holds the work in progress, the reservoirs are where new evidence comes from. All three move with the docket — nothing here is a snapshot.
The catalog, the codex, the source artifacts, the static site. Version-controlled, grep-able, inspectable to the byte.
Matter registry, archive, message thread, task backlog — relations wired across, morning brief on top.
Documents, transcripts, exports, screenshots. Pulled from upstream sources, normalized, then read.
Search the corpus, count the deadlines, see how patterns reach across matters. The signed-in console holds the live record.
Ship pillars: reliability, security, performance, operations, cost — full table on the standards page.