Archibald312/GordonOSS

Archibald312 takes the Mike codebase out of law and rebuilds it as GordonOSS, a diligence assistant for finance.

A concentrated burst - ten commits across seventeen threads in a tight mid-May 2026 window - that has been quiet since the last push on May 21.

View on GitHub →

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

Direction

securityinfrastructurebranding

Activity

Themed changes and pull requests touching this fork, newest first. Themed changes that haven't been turned into a public post yet still appear — they're real work even without a published writeup.

📝 Re-enable product-flow e2e specs (projects, documents, chat, tabular) 1 commit 2mo ago minor change
📝 Rebrand backend and frontend packages to GordonOSS 0 commits minor change
📝 Rename packages from mike to GordonOSS to match the fork 0 commits minor change
Show 6 more
📝 chatTools monolith split into typed tool registry 0 commits infrastructurechat-ui draft
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.
📝 Unblock free-tier LLM calls and surface real errors 0 commits minor change
📝 Pre-Phase-7: model routing seam added before connector work begins 0 commits infrastructurecompliance draft
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 - ev…

Threads of work (detailed view)

17 threads have been distilled into posts.

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.

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.

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.

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.

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.

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)

9 PRs touch this fork — inbound (filed against it) or outbound (filed from it). State icons match the editorial dashboard.

🟢 Open (1)

✅ Merged (7)

⛔ Closed without merge (1)