You can read this page without signing in.Sign in
Compliance
Standards & compliance posture
Where CodeCheck uses AI and where it doesn't, what it enforces by construction, and what still requires a formal step before production use in a Canadian regulatory setting. Claims below are deliberately conservative: in a compliance tool, overclaiming is itself a defect.
Where the AI is used, and where it isn't
How it works today- The checklist review is AI reading. An AI reads every sheet (a picture of the page plus the text on it) and proposes, for each line of the checklist, whether the drawings show it, with the words and the spot on the sheet. A second pass, the examiner's read, raises problems nobody asked about; each is a lead to check, not a ruling.
- Fixed rules check that reading, with no AI. A line is marked Done only when the words the AI quotes match the page's own text word for word and a second, stronger read agrees; the final review can only take a Done away, never add one. The counts come from the lines themselves. The drawing list against the sheets present, wall tags against the legend, sheet sizes, and What changed between drawing sets run with no AI at all.
- A person decides. Every line is the AI's reading until someone marks it It's there, Not done or Doesn't apply. The results say how many lines a person has decided (“Reviewed by a person: N of M”), and so do the exports. CodeCheck never calls a set complete.
- The code-rule check is different. For houses, a separate tool runs 25 draft NBC Part 9 rules through a fixed rule engine. There an AI may suggest a value read off a sheet, but only values a person confirms reach the rules, and the result comes from the rules alone (next section).
The code-rule check: no AI in its decision
Enforced by design- Code-rule results are produced only by a bounded predicate interpreter over reviewer-confirmed facts: comparisons, boolean composition, presence checks and whitelisted computations. No free code execution, no network calls, and no language-model output can reach a code-rule result.
- Identical confirmed facts and ruleset version always produce byte-identical canonical results, proven by SHA-256 hashes recorded on every run and re-checkable with the built-in determinism replay.
- Language models only propose candidate facts; every proposal must be confirmed by a person, with the reviewer's name recorded, before the engine can use it. This matches the architecture sought by NRC's Innovative Solutions Canada challenge for deterministic AI-assisted compliance checking of permit applications.
Four-state honesty in the code-rule check
Enforced by design- Every applicable rule returns Pass, Fail, Information Not Available, or Uncertain: the engine never guesses and never hides missing information.
- Each deficiency item follows municipal plans-examination convention: code provision, location, sheet/evidence reference, the exact values compared, the action required, concrete remediation options (with computed shortfalls, e.g. how many m² of window opening are missing), and, for missing information, which submission document typically shows it.
- Resubmission rounds are first-class: corrected documents are uploaded into a new round and consecutive runs are diffed, so an examiner sees exactly which items cleared.
Code content governance: the P.Eng. gate
Pending formal step- All 25 rules are DRAFT. Values were compiled from official provincial publications of NBC-harmonized code text (BC Building Code full text, Halifax NBC 2020 advisory, Alberta Safety Codes Council, City of Saskatoon), but no rule is authoritative until re-verified against the authorized code text for the edition in force and approved by a licensed P.Eng., with approver identity and content hash recorded.
- What an approval changes: recording a P.Eng. approval on Ruleset & approvals marks that rule approved, bound to the SHA-256 of its content, so any later edit puts it back to draft. Today the approval is kept in the browser that recorded it, and draft rules still run, with their results labelled draft.
- Rules are pinned to a code edition; a rule whose edition does not match the project's is skipped and reported, never silently applied. Known provincial deltas (OBC, BCBC) are recorded per rule.
- Jurisdiction awareness includes Newfoundland and Labrador's actual legal situation: the province-wide adoption under NLR 45/12 excludes Part 9 for one- and two-family dwellings, so house permits are governed municipally. The tool surfaces this rather than assuming province-wide applicability.
Privacy and data residency
Pending formal step- Drawings, specs, review results and comments are stored in CodeCheck's private cloud store (Vercel Blob, private access) in the United States (US East), not in Canada. Nothing in the store is public: a signed-in browser is given a link to one file at a time, and the link expires after 10 minutes.
- Every request is checked on the server against the signed-in account, so an account reaches only its own space's projects. Michael O'Brien, as administrator, and the holder of the hosting account can open the store. A trade share link shows the sheets confirmed as one trade, and the lines whose proof is all on them, to anyone who holds it, without signing in, until it is switched off.
- CodeCheck never trains or changes any model. Hosted drawing reads use Anthropic's Claude Opus 5.5 through Anthropic's API. Under Anthropic's commercial API terms, inputs are not used to train its models. The review computer's AI: Not confirmed yet: whether Anthropic may use the review sessions to improve its models. It is a setting on the Claude account the review computer uses, and nobody has confirmed here that it is off.
- The full statement, including what leaves the building, the 30-day trash and what must never be uploaded, is on How we handle your drawings.
Auditability and reproducibility
Enforced by design- Every state-changing action (upload, decision, correction, dismissal, AI proposal, run, determinism check) is recorded append-only in the project's History with who and when.
- Corrected values preserve the original machine proposal; every fact the code-rule check used carries its extraction method, confidence, reviewer, and the exact drawing region it came from.
- The evidence bundle export (manifest, canonical results/facts/ruleset JSON, hashes, deficiency report, audit log) lets an independent reviewer reproduce and verify a code-rule run.
Official languages
Pending formal step- The applicant-facing report carries bilingual (English/French) headings. A fully bilingual interface and report body, required for federal deployment under the Official Languages Act, is a translation task over the UI string set and fact/rule labels, planned once the ruleset content is P.Eng.-frozen (translating draft rule text twice is wasted effort).
Accessibility
Pending formal step- The interface uses semantic HTML, labelled controls, keyboard-operable actions and WCAG-conscious contrast, targeting WCAG 2.1 AA. A formal accessibility audit (required for Government of Canada web standards) has not yet been performed and is listed as a pre-deployment step.
Path to production for a government deployment
- P.Eng. verifies and approves each rule against the authorized code text for the target jurisdiction and edition (the app records approver + content hash).
- Validation run on real permit sets with engineer-labelled ground truth; agreement, extraction precision/recall and disagreement analysis reported separately.
- Deployment hardening: Canadian-region hosting for shared storage, a business AI account that does not train on the drawings, an accessibility audit and a full bilingual UI.