Summary
We built the foundation the whole system stands on before adding any AI: a governed data backbone where each customer’s data is walled off, every engineering decision is signed and replayable, and AI is fenced in by design. By the end of the week we were reading three real, structurally different rulebooks (ABS, US Coast Guard, IACS) and turning them into clean, citable structured rules, and a shipyard owner corrected a core assumption: the regulation on the page is not the whole rulebook.What we shipped
Milestones M0 and M1.- A multi-tenant backbone where customer data is isolated at the database level, not only by application code, so one yard’s work can never surface in another’s (M0).
- The Engineering Decision Ledger: every decision recorded with its rationale and cryptographically signed, so it can be replayed and verified later (M0).
- A capability catalog: instead of free-form AI agents, every AI capability is a defined, versioned entry with an explicit ceiling on how much it is allowed to do (M0).
- A sensitivity checkpoint every AI call must pass through, with restricted-data-never-leaves enforced and tested exhaustively, so defense-adjacent data can never reach an outside provider (M0, M1).
- A source registry that separates public regulatory sources (ABS, USCG, IACS) from yard-private sources, so shared reference material and a customer’s own data are never mixed (M1).
- A data model for a rule as a tree (part, chapter, section, requirement, exception, note), each requirement individually addressable, plus the structure for “which vessels does this apply to” (M1).
- Local AI search: a local embedding model running behind the governance checkpoint with weights that never leave the machine, a structure-aware chunker that keeps each requirement whole, and a full audit trail for every AI run (M1).
- Three parsers, one per authority (ABS Steel Vessel Rules, USCG 46 CFR, an IACS international requirement), each handling that body’s own citation style, mandatory language, exceptions, definitions, and tables, preceded by a written grammar specification signed off before any parser code (M1).
- A review queue: confident results become canonical rules; anything uncertain becomes a candidate flagged for a human, never silently dropped. Verbatim citations (e.g. “4-1-1/3.1”) are preserved on every requirement (M1).
- A cost-efficient extraction cascade for applicability: a fast rule-based pass, then a local model, escalating to a stronger model only for uncertain cases, all behind the governance checkpoint (M1).
What we learned
- Build the guardrails before the AI forces clarity. You cannot fence in an AI you have not first defined, so the capability catalog and sensitivity checkpoint came first, deliberately.
- “Which rules apply to this vessel” is its own problem, separate from the rule text. It depends on vessel type, size, service, and flag, so we modeled those as structured fields rather than loose text tags.
- Even local, internal model use has to be governed and logged the same way an external one would be. Treating “local” as a free pass would quietly undermine the audit story, so local calls go through the same checkpoint.
- The three regulators differ enough that a single generic parser would have failed. Reading the real documents before writing code caught conventions we would have guessed wrong.
- The biggest input of the week came from the field. A shipyard owner told us that much of what the Coast Guard actually enforces is not in the CFR text. It lives in interpretive guidance (NVICs), technical notes, policy letters, and the Marine Safety Manual. His example was structural fire protection, where reading the CFR alone gives the wrong answer and NVIC 9-97 is what is actually applied. A system trained only on the codified text would be confidently wrong exactly where it matters most.
Blockers & open questions
- How strictly to separate shared reference data (public regulations, identical for everyone) from customer-private data. We decided to treat them as two distinct categories from day one rather than retrofit the split later.
- What to do when vessel data is missing during an applicability check. We chose to abstain and flag for review rather than guess.
- Requirements embedded in tables (common in the IACS material) are a different parsing problem. For now we capture the whole table for later rather than guess at its cells.
- We are now scoping the full interpretive layer, not just the CFR. We committed it to the near-term roadmap and started acquiring NVIC 9-97 as the first proof case.
Next week
- Finish the rules-and-retrieval layer so the work shows up in front of an engineer: citation-checked rules search, prior-vessel memory, and the start of governed decisions.