Archibald312 ↗ analysis ↗ GitHub Archibald312/GordonOSS
Archibald312 takes the Mike codebase out of law and rebuilds it as GordonOSS, a diligence assistant for finance.
GordonOSS is Archibald312's reworking of Mike for the deal world. Where the original serves legal practice, this fork points squarely at finance: M&A diligence, private equity, private credit, leveraged finance, and equity research. The rename runs all the way through - the project no longer calls itself Mike, and if you're here expecting a legal tool, know up front that Archibald312 has walked it in a different direction.
The work so far is less about flashy features and more about laying a serious foundation. Archibald312 stood up continuous integration, a real test suite, and a privacy guard that keeps customer documents off free-tier models unless you deliberately opt in. On top of that sits a tamper-resistant audit trail and a routing layer that lets the system decide which AI model handles which matter - both explicitly built as groundwork for paid data connectors and local inference that are planned but not yet here.
One opinionated thread runs through it: Archibald312 is betting against letting AI do the heavy lifting on data extraction. Spreadsheets are read cell by cell, and when the assistant cites one, it points to the exact cell. This is a fork with a clear thesis and a phased plan - worth a click through to GitHub if finance diligence tooling is your beat.
What's in it
- Finance diligence focus Reframed for M&A, private equity, private credit, leveraged finance, and equity research - the legal origins are gone, replaced by deal-world work.
- Cell-level spreadsheet reading Excel and CSV files are first-class documents, read cell by cell, with citations that point to the exact cell rather than a vague summary.
- Free-tier privacy guard Customer documents are kept away from free-tier models unless you explicitly opt in - a deliberate line between convenience and confidentiality.
- Tamper-resistant audit trail An append-only record of who saw what and which tools ran, built so an app-layer compromise can add entries but never quietly rewrite history.
- Per-matter model routing A switchboard that decides which AI model handles which matter, laid down ahead of the data connectors and local inference on the roadmap.
- Test and CI foundation A working CI pipeline, unit tests, and end-to-end product-flow checks establish a quality baseline and signal a fork meant to run independently.
Direction
securityinfrastructurebranding
Activity
Archibald312 ↗ analysis ↗ GitHub Archibald312 ↗ analysis ↗ GitHub Archibald312 ↗ analysis ↗ GitHub Archibald312 ↗ analysis ↗ GitHub Archibald312 ↗ analysis ↗ GitHub Archibald312 ↗ analysis ↗ GitHub Archibald312 ↗ analysis ↗ GitHub Archibald312 ↗ analysis ↗ GitHub Show 6 more
Threads of work (detailed view)
Archibald312 builds the switchboard before plugging anything in
GordonOSS can now decide which AI model handles which matter - even though, for today, nothing has changed.
Pre-Phase-7: routing resolver lands before connectors need it
Rather than bake model selection into each connector at ingest time, Archibald312 landed the routing surface first. Local inference (Ollama/vLLM) is deferred to post-launch; the resolver that will eventually dispatch to it is already there, tested, and audited. Every chat today still resolves to the user's requested model - the columns are nullable, so behavior is unchanged.
Archibald312 wires in an audit trail the app can't rewrite
A new activity log records who did what, and the database itself refuses to let anyone quietly edit or delete the history.
Phase 6: tamper-evident audit log with DB-trigger immutability
Archibald312 wrapped every LLM call and tool invocation in an append-only audit trail: UPDATE and DELETE on the `audit_log` table raise an exception at the database trigger level, not in application code. Before third-party data connectors arrive, the stated goal is a provable record of who saw what and which model handled it.
Archibald312 teaches Mike to read spreadsheets, cell by cell
Excel and CSV files are now first-class documents - and when the AI cites one, it points to the exact cell.
Phase 5: xlsx/xls/xlsm/csv ingestion, per-cell citations, and XlsxView component
Phase 5 makes spreadsheets first-class documents: upload, extract, cite by cell address, and export with citations baked back into ExcelJS comments on the source cells. The extractors are pure side-effect-free pipelines with their own unit tests, which makes them the most portable piece of this PR.
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.
Phase 4: legal-to-finance domain swap and Mike-to-Gordon rename in one atomic PR
Archibald312's Phase 4 PR repositions the fork from legal AI to finance AI - M&A diligence, PE, private credit, leveraged finance, IB, equity and credit research - while simultaneously completing the Mike-to-Gordon brand rename. The two moves touch the same surfaces, so bundling them avoids a second sweep across 89 files.
Archibald312 stops the privacy guard from crying wolf
A small fix unblocks legitimate requests that carried no documents at all, and makes upload failures actually legible.
Archibald312 clears the runway for audit logging
A sprawling, single-file pile of AI tools gets broken into tidy pieces - and the real prize is what that makes possible next.
PR #1: CI pipeline, 57 unit tests, Playwright e2e suite, and fork hygiene docs
The first PR on Archibald312's GordonOSS fork lands a four-job GitHub Actions workflow, a Vitest unit suite, a Playwright e2e runner, and two living-doc files (`FORK.md`, `TECHDEBT.md`) establishing the quality baseline. If you're evaluating whether this fork is actively maintained and testable, this commit is the place to start.
Pre-Phase-7: model routing seam added before connector work begins
Archibald312 deferred local inference (Ollama, vLLM) to post-launch and instead landed the routing surface that connectors and the eventual local-inference adapter will plug into. The behavioral change today is zero - every chat still resolves to the user's requested model - but the decision point now exists as a tested, audited abstraction.
Phase 6: append-only audit trail for LLM calls and tool invocations
Archibald312 added a tamper-resistant audit log covering every LLM call and tool invocation - database triggers block UPDATE and DELETE outright, so an app-layer compromise can append rows but not rewrite history. The groundwork is explicitly tied to paid data connectors coming in a later phase: before third-party data flows in, the system needs a provable record of who saw what.
Phase 4: legal-to-finance domain swap bundled with the Mike-to-Gordon rename
Archibald312's Phase 4 PR reframes the fork as a finance AI assistant - M&A diligence, private equity, private credit, leveraged finance, and equity research - while finishing the Mike-to-Gordon rename. The two changes share enough surface area (system prompts, type identifiers, MIME types, copy) that bundling them in one PR avoids a redundant second sweep.
Free-tier Gemini unblocked in dev; four Playwright specs back online
Two stuck things fixed together: the free-tier Gemini path failed before it could check the allowlist, and all four product-flow e2e specs had been sitting behind `test.describe.skip()` since the UI drifted away from their selectors.
chatTools monolith split into typed tool registry
Archibald312 broke a 3,284-line orchestration file into ten per-tool modules behind a single registry. The orchestrator shrank by roughly 70% and now handles only what genuinely belongs there.
CI, test suite, and free-tier LLM guard wired up for the finance fork
Archibald312 laid down the infrastructure a hard fork needs to run independently: a four-job GitHub Actions pipeline, 57 unit tests, five Playwright e2e specs, and a guard that blocks customer documents from free-tier Gemini unless you explicitly opt in.
Pull requests (detailed view)
🟢 Open (1)
Archibald312 · opened 2mo ago ✅ Merged (7)
Archibald312 · opened 2mo ago · merged 2mo ago by Archibald312 Archibald312 · opened 2mo ago · merged 2mo ago by Archibald312 Archibald312 · opened 2mo ago · merged 2mo ago by Archibald312 Archibald312 · opened 2mo ago · merged 2mo ago by Archibald312 Archibald312 · opened 2mo ago · merged 2mo ago by Archibald312 Archibald312 · opened 2mo ago · merged 2mo ago by Archibald312 Archibald312 · opened 2mo ago · merged 2mo ago by Archibald312 ⛔ Closed without merge (1)
Archibald312 · opened 2mo ago · closed 21d ago