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.
The domain work is concentrated in prompts and taxonomy. The main chat system prompt, the project-context block, tabular extraction and review prompts, and the generate_docx tool description are all rewritten for finance work with explicit citation-auditability framing. The practice-area list is wholesale replaced: 19 legal practices out, 17 finance verticals in. Column presets are handled additively - neutral contract columns carry over, and twelve finance-specific columns are added (Revenue, EBITDA, FCF, Debt Ratio, Interest Coverage, Maturity, Coupon/Rate, Currency, Capex, Margin, Reporting Period, and Net Income).
The twelve built-in workflows are deliberately left untouched; a real finance workflow library is deferred to Phase 11. The existing string-typed practice field plus an "Others" fallback keeps old values rendering in the meantime.
The rename is wider than copy changes: nine type identifiers (MikeMessage, MikeWorkflow, MikeChat, and the rest) become Gordon*, mike-icon.tsx and mikeApi.ts get renamed, MIME types change from application/mike-* to application/gordon-*, the localStorage key changes, and the R2 bucket default changes. Two operational consequences: deployments relying on the default R2 bucket name need to set the variable explicitly, and the localStorage key rename will silently reset every user's last-selected model on their next visit. Archibald312 calls that acceptable one-time friction; assess that against your own user base.
LEGAL_NUMBERING_REF in shared/generateDocx.ts is intentionally not renamed - it refers to Word's built-in numbering style named "legal," not the legal domain. That distinction is documented in decisions.md along with the rationale for deferring workflow names.
Backend and frontend tsc --noEmit clean; Vitest 57/57 passing.
Spotted something wrong? Or know the PR text has fresher detail than the writeup above?