Live workflow implemented. Explore the recorded example or the live preview — Plan 02 real-account qualification is pending.See the roadmap

Engineering

How Boardroom is built

A decision tool has to be trustworthy before it is clever. This page is for engineers and reviewers: the choices behind the current build, what each one costs, and where to check it in the repository.

Application tests
143deterministic integration and end-to-end tests, run on every change
Qualified platforms
3Windows x64, Linux x64, macOS arm64, each installed without Node in CI

The CLI and its Ink renderer call the application service, which owns state in a domain SQLite database with immutable source snapshots and writes each new Markdown plan and decision memo. Live phases use LangGraph checkpoints containing identities; the application controls authorized provider calls and their receipts. The doctor probe stays separate.

The terminal renders results; the application service owns state. Architecture and tradeoffs · Qualification evidence

Decisions and their tradeoffs

Every choice below links to the document or test that shows it.

  1. 01

    A bundled Node runtime, not a single binary

    The official LangGraph SQLite checkpointer depends on better-sqlite3 12, whose native code targets Node’s V8 interfaces. Each package therefore ships its own pinned Node 24.12.0 and prepared native modules, so users install nothing.

    Tradeoff Larger packages built per platform, instead of an unproven compile step.

    Evidence: BOARDROOM_V1_SPEC.md · Evidence: architecture.md

  2. 02

    Exports that never pretend to be atomic

    An export records its intent and planned paths before writing anything, claims a single attempt, then stores a receipt with the hash of every file written. A process killed mid-way leaves an unconfirmed operation that is never replayed automatically.

    Tradeoff Uncertain outcomes ask for inspection rather than silently retrying.

    Evidence: architecture.md · Evidence: journal.test.ts

  3. 03

    Citations that cannot drift

    Original bytes and extracted text are saved under their SHA-256. Citations point to text lines, physical PDF pages or saved DOCX blocks, and a missing or altered snapshot is refused instead of being replaced.

    Tradeoff DOCX blocks are not Word page numbers, and scanned PDFs need OCR that is not offered.

    Evidence: architecture.md · Evidence: document-evidence.test.ts

  4. 04

    Real terminals in the test suite

    Terminal tests drive the actual CLI in OS pseudoterminals and read a headless VT screen: three window sizes, accents, emoji, multiline paste, and Escape or Ctrl+C exiting with code 130 and restoring the terminal.

    Tradeoff A pinned beta of node-pty, chosen after the stable release kept Windows workers alive.

    Evidence: architecture.md · Evidence: terminal.test.ts

  5. 05

    Installation proven on clean machines

    CI builds a package on each platform, then installs it on a separate machine with Node removed — and, on Linux, an offline image with no Node at all — into a path with spaces and accents.

    Tradeoff Qualifies three platforms only; other architectures are not implied.

    Evidence: installation-qualification.md · Evidence: ci.yml

  6. 06

    Tests first, with the evidence kept

    Each behaviour starts from a failing test at a public boundary — service, CLI or installed package — and the observed red and green results are recorded alongside the code.

    Tradeoff Some integrity guards gained characterization tests during acceptance review; the record says so.

    Evidence: plan-01-progress.md · Evidence: plan-01-acceptance.md

What is not proven yet

Plan 01 was accepted with reservations. They are listed here as plainly as the achievements, from the same acceptance record.

  • Real-account qualification pending

    OpenAI and Anthropic adapters, protected call bounds and the complete live workflow are implemented. Deterministic HTTP tests do not prove real account access, schema acceptance or remote billing/cancellation.

    Source: plan-02-acceptance.md
  • No tool isolation demonstrated

    Isolation candidates were measured, none demonstrated protection, so commands and MCP servers stay unavailable.

    Source: plan-01-acceptance.md
  • Semantic retrieval not attempted

    No embedding runtime or model assets are packaged; lexical search is the only retrieval checked.

    Source: plan-01-acceptance.md
  • Participation during phases remains limited

    The installed live terminal is tested with external deterministic HTTP streams. During work, inspection, stop, conclusion and export are allowed; free contributions and pause/resume belong to Plan 03.

    Source: interactive-live-terminal.md
  • Release engineering still ahead

    Signed installers, production dependency pruning and reproducible release builds remain to be done.

    Source: architecture.md

Read the code, run the tests.

Everything on this page can be checked from a fresh clone.