Skip to main content

Bylaws: Codex structural review (2026-09-25)

Recorded by the orchestrator from Codex's final message (its sandbox is read-only). Verdict: FAIL.

The references are clean: 54 rules, 43 clauses and 23 cases, with no duplicates, no orphans and every id resolving. Six clauses are never asserted by a test: CL-FISCAL-YEAR, CL-AGM, CL-VOTING-MEMBERS, CL-BOARD-MEETINGS, CL-OFFICERS and CL-EFFECTIVE.

idsevlocationproblemfix
F1lowtestsThe 6 clauses above have no clause-level assertionsAdd tests for each clause and each rendered branch
F2mediumBL-TC-01..11, input modelSelectors are omitted and there are no global defaults, so the exact clause set can't be determinedDefine canonical defaults for every selector, or have each test supply all selectors
F3highCL-ART-DISSOLUTION-QD / BL-TC-02The clause is statically kind: mandatory, but the test wants it offered and not labelled mandatorySplit into mandatory and recommended variants, or make kind dynamic
F4highCL-AGM / BL-TC-04CL-AGM always prints "public accountant", but Ontario forbids that languageMake the AGM text jurisdiction-specific
F5highCL-ARTICLES-CROSSREF / BL-TC-06US output gets Canadian special-resolution and articles-of-amendment wordingAdd a text_US variant
F6highCL-MEMBER-CONDITIONS / BL-TC-08, 21Requires ≥1 condition and an admitting_body, which the tests don't supplySupply them in the tests or add validated defaults
F7mediumBL-TC-22dissolution_choice is not a defined inputAdd the field and its validation, or rewrite the test
F8highBL-TC-23 vs CL-BOARD-NUMBER / CA-FED-06The invariant forbids a director range in the by-law, but the mandatory clause prints itDecide whether the repetition is allowed, then fix the invariant or the clause
F9highCL-MEMBER-CONDITIONS / BL-TC-11The covenant refers to a Schedule B that doesn't exist; Schedule A can be referenced without its clauseAdd a Schedule B clause and cross-field validation
F10mediumCL-NOTICE-CA-FEDThe notice method both has no template branch or validationDefine its rendering and a combined validation
F11mediumCL-MEMBER-CONDITIONSProfession of faith is always emitted, although it is presented as selectableMake it conditional, or document it as mandatory
F12highCL-AMEND-MEMBERS-ONLY + CL-EFFECTIVE / BL-TC-09The members-only document contradicts the Board-passage effective clauseGive CL-EFFECTIVE authority-specific variants
F13highCL-BOARD-TERM + CL-BOARD-EMPLOYEE-CAP-ON / CA-ON-05An ex-officio voting pastor contradicts "directors are elected by members"Add an ex-officio exception and explain how its term ends
F14mediumCL-VOTING-MEMBERSabsentee_voting defaults to "none" but is used as a truthy value, so it can print "vote by none"Use an explicit condition and an enum-to-prose map
F15mediumCL-BOARD-TERM / BL-TC-19(c)There is no minimum term, so 0 years isn't rejectedAdd director_term_years >= 1
F16mediumamendment_thresholdThe input model, the enum and the tests disagreeUse one numeric representation with a 2/3 minimum
F17highCL-INTERP, CL-MEMBER-CLASSES-BYLAW, CL-AUDIT-US, CL-DISCLAIMERstate, admitting_body, us_review_level_phrase and date are used but not declaredDeclare them and add a pre-render completeness check
F18highpurpose, statement-of-faith, denominational and property-trust clausesFree text has no non-blank requirement and no escaping contractRequire the text where applicable and escape it (the engine's renderTemplate escapes variables and throws on missing ones)
F19mediumCL-PASTOR-CALL, CL-OFFICERS, CL-AUDIT-US, CL-BOARD-TERMRaw enum values render badly ("at least simple", "search_committee", "one 3th")Add display maps and formatter variables
F20mediumage, inactivity, requisition %, US notice, board notice, consecutive terms, AGM timingNo boundsAdd bounds, or refer to state law

Numeric values Codex confirmed are consistent: ON directors ≥3; FED soliciting ≥3 with ≥2 independent; FED non-soliciting ≥1; ON employee cap ≤ floor(n/3); ON notice 10–50 days; FED mail notice 21–60 and electronic 21–35; quorum 1–100%; discipline response ≥15 days; special resolution ≥2/3; ON director term ≤4 AGMs.