Archibald312 reskins Mike for finance - and bets against AI-first extraction

GordonOSS turns the legal assistant into an M&A, private-equity, and credit diligence tool, but the real move is a deliberate refusal to let AI do the heavy lifting on data extraction.

infrastructurediscovery

The cosmetic part is a wholesale rebrand: legal copy and workflows swapped for finance ones - deal diligence, equity research, investment banking - and "Mike" renamed "Gordon" across the codebase. Worth a glance, but not the story.

The story is a written architecture principle Archibald312 has committed to: pull numbers, dates, currencies, and named entities out of documents with deterministic, rule-based methods, and reserve AI for the genuinely open-ended work - reconciling conflicting definitions across documents, ambiguous judgment calls, freeform Q&A. The explicit target is tools like Hebbia and Rogo (AI-native finance research platforms) that lean on a language model for extraction itself; Archibald312 treats that as a weakness to exploit, citing cost, speed, and auditability. The roadmap builds outward from there.

So what Anyone weighing a base for finance document analysis should pressure-test this deterministic-first bet - it's the decision that shapes everything the fork does next.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from Archibald312/GordonOSS, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
8a33897e Phase 4: Domain swap (legal → finance) + Mike → Gordon rename (#5) Archibald312 2026-05-15 ↗ GitHub
commit body
* Phase 4: Domain swap (legal → finance) + Mike → Gordon rename

Repositions the fork from a legal-AI assistant to a finance-AI assistant
for M&A diligence, PE, private credit, leveraged finance, IB, and equity
and credit research.

Visible copy
- InitialView disclaimer updated to cover financial/investment/accounting/legal advice.
- Layout metadata, login/signup/support pages, and demo-service notice rebranded.
- Chat title generator prompt reframed for the finance domain.

System prompts
- chatTools SYSTEM_PROMPT rewritten with finance framing and citation-auditability emphasis.
- projectChat project-context block updated for finance deal/mandate workstreams.
- tabular extraction/review prompts ("legal document analyst" → "finance document analyst").
- generate_docx tool description rewritten for finance artifacts.

Practice areas
- Replaced 19 legal practices with 17 finance verticals (M&A Diligence, PE, Private Credit,
  Lev Fin, Project Finance, IB, Equity/Credit Research, Restructuring, Public Markets, etc.).
- Old workflow practice values flow through unchanged via string typing.

Column presets
- Kept neutral legal contract presets (apply to finance contracts too).
- Added 12 finance presets (Revenue, EBITDA, Net Income, FCF, Leverage Ratio,
  Interest Coverage, Reporting Period, Maturity, Coupon/Rate, Currency, Capex, Margin).

Mike → Gordon rename
- 9 type identifiers (MikeMessage/Workflow/Chat/... → Gordon*).
- File renames: mike-icon.tsx → gordon-icon.tsx; mikeApi.ts → gordonApi.ts.
- MIME types (application/mike-* → application/gordon-*), localStorage key,
  R2 bucket default, README, docs.
- FORK.md upstream URLs to willchen96/mike intentionally preserved.

Deferred per plan
- All 12 built-in workflows kept untouched; finance workflow library is Phase 11.
- LEGAL_NUMBERING_REF in shared/generateDocx.ts left as-is (it refers to Word's
  built-in 'legal' numbering style, not legal documents).

Rationale recorded in decisions.md. Backend + frontend tsc --noEmit clean;
backend Vitest 57/57 passing.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Fix: free-tier guard blocks dev chats with empty allowlist

PR #3 ("allow free-tier LLM in dev mode") wired up the ALLOW_FREE_TIER_LLM
env opt-in but never added an actual dev-mode pathway: ALLOW_FREE_TIER_LLM=true
with an empty FREE_TIER_FIXTURE_ALLOWLIST still throws on every call, even
plain chat with no documents attached, because the empty-allowlist check ran
before the no-docs short-circuit. Users hit a hard error on first chat.

Add a dev-mode bypass: when NODE_ENV !== "production" AND no documents are
attached, allow the call through. Production still requires an explicit
allowlist so the operator has consciously enumerated which fixtures may be
processed. Documents attached in any environment still require allowlist
matching.

Tests: pin the existing empty-allowlist throw to NODE_ENV=production; add
two new tests covering the dev-mode no-doc bypass and the dev-mode-with-docs
strict path. 59/59 backend tests green.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-423.md from inside the repo you want the changes in.

⬇ Download capture-thread-423.md