Disclosure: DROZlegal publishes this guide and builds the corporate entity, minute-book generation, and compliance-scanning tools described below. Third-party statistics here are sourced directly from the Canadian Bar Association, Corporations Canada, and ION Analytics research, verified for this article, not ours.
Why a Canadian minute book quietly falls out of compliance
Nobody opens a minute book on a good day. It gets pulled out during a financing, a share sale, or a lender's due-diligence request — and that's usually the first moment anyone notices the annual resolutions stopped three years ago, or the ISC register was never started at all.
Part of the problem is structural, not just neglect. The Canadian Bar Association's June 2026 submission to policymakers, Regulatory relief for business requires both legislative and operational reform, told Ottawa directly that the federal "annual return" filing's name causes "recurring confusion with the CRA income tax return, leading to inadvertent non-compliance" — and flagged it as an increased risk of administrative dissolution, particularly for small private corporations without a dedicated compliance function watching the calendar. Source: Canadian Bar Association, cba.org, published June 4, 2026.
That's a federal-filing-name problem specifically, not a claim about Ontario's separate CIA filing — but the underlying pattern holds across both regimes: a minute book decays by omission, one skipped annual resolution at a time, until the gap is large enough that someone outside the firm finds it first.
The eight OBCA/CBCA documents AI minute-book generation software actually drafts
A minute-book generation tool is only as useful as what it actually produces, and the honest list is short and specific — not a generic template library. DROZlegal's corporate module drafts exactly eight OBCA/CBCA-cited document types directly from an entity's own stored data:
| Document | What it captures |
|---|---|
| Organizational resolution | Initial post-incorporation resolution — by-law adoption, officer appointments, initial share issuance |
| Annual directors' resolution | Yearly resolution ratifying the prior year's decisions |
| Annual shareholders' resolution | Yearly resolution electing directors and addressing the auditor |
| Share certificate | Evidence of share ownership tied to the entity's own capitalization data |
| Directors register | Record-keeping requirement, OBCA s.140 / CBCA s.20 |
| Shareholders register | Record-keeping requirement, OBCA s.140 / CBCA s.20 |
| ISC register | Individuals-with-significant-control record, OBCA Part XIII.1 / CBCA s.21.1 |
| Unanimous shareholder agreement | Shareholder-level governance document drafted from the entity's own facts |
Every prompt behind these eight documents frames its output as a review-gated draft, never a final record: where the entity's own source data doesn't supply a fact, the draft leaves a bracketed [TO BE CONFIRMED: ...] marker instead of inventing one, and the prompts are explicitly forbidden from reproducing third-party precedent-form wording verbatim. The ISC register — the document most likely to hold sensitive beneficial-ownership data — is redacted before anyone but an authorized user sees it, consistent with how DROZlegal handles client data across the platform: hosted in Canada, encrypted at rest, and never used to train a model. Source: docs/CAPABILITIES.md, Section 6; backend/app/prompts/corporate_generation.py.
The deterministic compliance scan — and why "zero LLM calls" is the differentiated claim
Most vendors market compliance-checking as AI-powered. DROZlegal's corporate compliance scanner is built on the opposite claim, deliberately: the compliance_scanner_agent (CO-33) makes zero LLM calls. Every date and status judgment runs on pure Python calendar math against the entity's own stored records — nothing is inferred, guessed, or generated.
That distinction matters because a hallucinated compliance finding is worse than no finding at all. A lawyer who trusts a wrong "you're compliant" flag from a language model has a bigger problem than the one they started with; a deterministic scan either finds the gap in the data or it doesn't — there's no plausible-sounding middle ground.
The scan surfaces four specific findings, each tied to a statutory citation:
- annual_resolution_overdue — a resolution whose next annual due date has passed
- filing_overdue — an open corporate filing whose due date has passed
- registers_empty — an active entity with zero register entries of any kind (OBCA s.140 / CBCA s.20)
- isc_register_absent — an OBCA or CBCA entity with no individuals-with-significant-control register entries (OBCA Part XIII.1 / CBCA s.21.1)
The scan is manual, not automatic: it's registered auto_dispatchable=False, so a lawyer initiates it directly — it doesn't run in the background and surface findings unprompted. Source: docs/CAPABILITIES.md, Section 6; backend/app/corporate/agents/compliance_scanner_agent.py.