Manifest as load-bearing wall
Sequential artifact IDs, typed rows, character/pattern/case joins, analysis flags — searchable without spinning up Postgres.
catalog/manifest.md · A001–A2697+May 2026 edition · show-ready
Stonewall is what happens when you build a real litigation practice on top of a versioned corpus. A flat-file database, agents that route on purpose, CI that refuses drift, four deploy surfaces that all read the same truth file, and a cockpit that still works when the API is down.
Part I
catalog/manifest.md is the database. Agents grep it; lawyers diff it; CI refuses drift.
Sequential artifact IDs, typed rows, character/pattern/case joins, analysis flags — searchable without spinning up Postgres.
catalog/manifest.md · A001–A2697+Stdlib-only stonewall.py: stats, find, case, character, pattern, timeline, show, validate, doctor — every session queries the corpus on purpose.
corpus_crossref.py rebuilds indexes; verify_all.py runs KPI + crossref + graph validators before merge.
Design law: pointers are not facts. Manifest rows route you to verbatim source — never replace opening the file.
Part II
Routing bundles replace "read the whole repo." Machine snapshots tell the next agent where to look first — ordered paths per task instead of breadth-first context burn.
MASTER_INDEX.md → WORKFLOW_BUNDLES.md: ordered paths per task (bootstrap, verify, cockpit, OCR gold, …).
refresh_agent_context.py emits repo shape + corpus navigation line maps for partial reads of 200k-token codices.
Type one settlement sentence in chat. The script propagates the change to every codex, the KPIs, the bot brain, the cockpit snapshot, and the chronological prohibitions — in one sweep, no manual fan-out.
scripts/lock_case_state.pyPart III
verify_all.py is the merge contract. Fast and corpus-only modes for the cheap PRs. The whole suite for anything that touches the codex. CI argues with you before opposing counsel does.
KPIs, case parties, asset stamps, SHA-256 dedupe index, pattern coverage, codex↔corpus wiring — stale generated artifacts fail closed.
scripts/verify_all.pyFour classes of subtle wrong: rendering substring conflation, codex claims that contradict reality, cross-surface mirror drift, identity prohibitions. Each one has its own audit gate. Pattern 278 is the canonical example.
scripts/audit_horn_corns.pyTwo tiers. Anything a malpractice carrier might read — PR title, branch name, release notes — stays in neutral counsel voice. Commit bodies can carry the internal vocabulary, since they live inside the working file.
scripts/audit_pr_language.pyPart IV
surfaces.toml is the single truth file for what's deployed where. The public build is sealed: minify, content-hash stamp, catalog-only portal export, an export-scope guard that fails the build if anything sensitive sneaks into docs/.
Vercel stonewall → vercel_build.sh → docs/
Next.js cockpit · Clerk · bundled offline JSON
Railway FastAPI · corpus API shape canary
Isolated Telegram service — never on API hostname
Part V
Sidecars are permanent screen records. 300+ dpi raster OCR floor. Nested reply chains preserved as blockquotes. Bubble colors named, emojis transcribed, every visual bracketed. The principle: the operator should never have to open the original to know what's in it.
The May 1 Domo package — 31,000+ clickstream rows from the case-management system — is the audit anchor for every chronology claim. When the codex and the clickstream disagree, the clickstream wins.
Part VI
The signed-in workspace. 45-second artifact reads, snapshot fallback when the live API preview comes back empty, a Domo reading room. Built to keep working even when Railway is having a bad afternoon.
Stats, ledger, per-artifact source_contexts previews — built by build_cockpit_operator_snapshot.py.
Domo audit + burn-book control packets at /reading — hotkey g y.
Live API → bundled snapshot → public artifacts.json — one warn per route per process.
Part VII
A daily watch opens one rolling editor PR when the docs and the API stop agreeing. A janitor closes the duplicates that background agents tend to spawn. Graphite is the canonical review surface; corpus-only PRs skip the cockpit gates.
Part VIII
Ninety-six merges in eight days, May 11–18. Then the May 19–20 front: artifact reader, agent snapshots, public hero, vision intake, Graphite migration, governance trims. The longest sustained push since the corpus was born.
Public perf, cockpit streaming, codex sharding, graph wiring, audit gates, deterministic indexes — chronicled in the May engineering epic.
#881 artifact reader · #885 agent context · #884 docs API drift pass · #855/#835 public surface polish.
Part IX
This is not a startup deck. It is a working litigation memory machine with production gates around it.
Part X
Azure Well-Architected discipline on a Vercel + Next.js stack. Every row in the pillar table points at a real file in this repo or a CI gate that runs on every push.
SWR caching tiers, content-hashed ?v= stamps, cockpit offline bundles, surfaces.toml live probes.
gitleaks, public export guard, Clerk allowlist, HSTS preload, frame deny, SHA-pinned Actions.
vercel_build.sh · web/middleware.tsSpeed Insights deferred past LCP; ISR revalidate=60; check_web_perf_invariants.py blocks TTFB regressions.
Two Vercel projects, drift watch, deploy runbooks, frozen lockfile cockpit builds, path-scoped verify.
docs/platform-elite-practices.mdPublic build no-op install, corpus-only CI for doc PRs, concurrency groups, three brain zips max.
detect_pr_change_scope.pyDeep dive: pillar tables, post-deploy curl checklists, and executive mapping — Platform Elite Practices (full contract).