Download canlex/reviewed_code.py from Beemer0/CanLex: direct link, hf CLI and curl.
- Browser
- Download file 141 kB
-
https://huggingface.co/spaces/Beemer0/CanLex/resolve/main/canlex/reviewed_code.py
- Command line
-
hf download hf://spaces/Beemer0/CanLex/canlex/reviewed_code.py
-
curl -L -o reviewed_code.py https://huggingface.co/spaces/Beemer0/CanLex/resolve/main/canlex/reviewed_code.py
141 kB
| """Officer-facing legal wording and routing that lives in CODE, registered for | |
| the pre-deploy review gate (verifier, 2026-09-12; governing principle 1). | |
| Legal characterisations belong in data/curated/*.json, where the review gate | |
| (data/curated/review_state.json + tools/predeploy.py) holds them until the | |
| maintainer signs off. Some legal text and routing live in code instead -- the | |
| allegation, removal-path, s. 44, family, IAD and fee lines, the tie map, the | |
| publisher labels, the rehabilitation methodology and caveats, the s. 17 and | |
| single-occurrence rules. A composed release ships main's CODE, so without | |
| this registry that text would reach the Space with no approval step. | |
| tools/predeploy.py reads REVIEWED from the deploy tree (with `ast`, never by | |
| importing it), fingerprints each named top-level assignment or function in | |
| that tree (its AST, docstrings dropped -- formatting and comments do not | |
| count, words and logic do) TOGETHER WITH every top-level canlex definition it | |
| reaches (the names its body uses, in its own module or imported from another | |
| canlex module, transitively -- wave 2 verifier: a change to a helper such as a | |
| unit table or a negation window must hold the registered name relying on it) | |
| and compares it with the same name at the approved-code commit recorded in | |
| data/curated/review_state.json ("approved_code"). A name that is new or | |
| differs is HELD (the gate names the reached definitions that changed), and | |
| the review check fails unless the maintainer approves it (record the | |
| reviewed commit: `python tools/predeploy.py --print-review-state <commit>`) | |
| or the deploy is run with --allow-held. tests/test_reviewed_code.py checks | |
| that every entry names a top-level definition that exists, and that every | |
| definition a registered name reaches is classified: registered here if it | |
| carries legal wording or routing, else listed in PLUMBING below. | |
| Add an entry when new officer-facing legal wording or routing goes into code. | |
| Each entry: (repo-relative path, top-level name, why it is legal content). | |
| """ | |
| REVIEWED = ( | |
| # the screening memo's allegation and next-steps block (roadmap T1.7) | |
| ("canlex/server.py", "_ALLEGATION", "verbatim IRPA s. 36 allegation wording"), | |
| ("canlex/server.py", "_allegation_lines", "which paragraph is drafted; the no-allegation rules"), | |
| ("canlex/server.py", "_REMOVAL_FN", "removal path for a foreign national (IRPR ss. 228, 229, 42)"), | |
| ("canlex/server.py", "_REMOVAL_PR", "removal path for a permanent resident (IRPA s. 44(2))"), | |
| ("canlex/server.py", "_S44_NOTE", "s. 44 discretion note (Cha; ENF 5)"), | |
| ("canlex/server.py", "_PARDON_LINE", "foreign-relief and previous-removal pointers"), | |
| ("canlex/server.py", "_family_line", "IRPA s. 42 / IRPR s. 23 family-member line"), | |
| ("canlex/server.py", "_next_steps", "removal, TRP, fee, IAD routing of the memo"), | |
| ("canlex/server.py", "FEE_PATTERNS", "which IRPR fee is quoted for which ground"), | |
| ("canlex/server.py", "_ASSUMED_TEXT", "what the chain assumes when a fact is missing"), | |
| ("canlex/server.py", "_YOUTH_ENTRIES", | |
| "the youth dispositions read as the analogue of s. 17's Young Offenders Act exception " | |
| "(H3: on the clock for the headline, the exception as a reading)"), | |
| ("canlex/server.py", "_DEFAULT_ELEMENTS_QUESTION", "the default elements question"), | |
| ("canlex/server.py", "_other_candidate_line", "how a second pairing is presented"), | |
| ("canlex/server.py", "_tran_needs", "the offence-date question for a straddled maximum"), | |
| ("canlex/server.py", "_pairing_block", "the Tran and elements wording around each pairing"), | |
| # limb-aware Tran histories, in-force dates, point-in-time floor (T1.13, T3.1) | |
| ("canlex/server.py", "_resolve_pairing", "which limb readings are resolved; in-force and floor flags"), | |
| ("canlex/server.py", "_resolve_limb", "the Tran, value, schedule, attempt and elements rules for one limb"), | |
| ("canlex/server.py", "_combine_limbs", "settled vs 'limb-open' when the record's words select no limb"), | |
| ("canlex/server.py", "_limb_lines", "how the candidate provisions and readings are presented"), | |
| ("canlex/server.py", "_not_in_force_line", "provision not in force at commission: the two readings"), | |
| ("canlex/server.py", "_nif_entry", | |
| "not in force at commission: which reading the result follows; each reading's branch"), | |
| ("canlex/server.py", "_open_reason", "why a result is not settled (date, limb, quantity)"), | |
| ("canlex/server.py", "_reading", "how each open reading is named in the memo"), | |
| ("canlex/server.py", "canlex_screen_record", | |
| "step-3 routing, 'not reached' rules, bottom line, the organization fact and s. 37 block"), | |
| ("canlex/server.py", "canlex_screen_history", | |
| "record-level count, s. 17 clock (youth exclusion, undated convictions), deeming " | |
| "answer, record-level s. 37 block"), | |
| ("canlex/server.py", "us_record_screening", | |
| "the guided screening prompt: routing to canlex_transborder and the organization fact"), | |
| # organized criminality, IRPA s. 37 (roadmap T2.5) | |
| ("canlex/server.py", "_S37_GROUNDS", "s. 37(1)(a)/(b) wording and the elements to establish"), | |
| ("canlex/server.py", "_S37_AUTHORITIES", "Sittampalam and B010 pointers"), | |
| ("canlex/server.py", "_S37_ORG_CONDITION", "when s. 37(1)(a) is conditional"), | |
| ("canlex/server.py", "_s37_consequences", | |
| "no conviction, no rehabilitation, s. 42.1 FN-only, no IAD appeal, s. 42(2), R229(1)(e)"), | |
| ("canlex/server.py", "_s37_flags", "which s. 37 paragraph a pairing or the facts raise"), | |
| ("canlex/server.py", "_s37_text", "how the s. 37 block is presented"), | |
| ("canlex/server.py", "_s37_block", "the s. 37 block and its CANLEX_RESULT value"), | |
| # transborder criminality, IRPA s. 36(2.1) (roadmap T2.1) | |
| ("canlex/server.py", "canlex_transborder", "the transborder memo, bottom line and result"), | |
| ("canlex/server.py", "AMENDED_REFERENCES", "the A36(2)(d) repealed-provision note on guidance"), | |
| ("canlex/server.py", "_amended_notes", "where the repealed-provision note is shown"), | |
| ("canlex/transborder.py", "R19_ACTS", "the six Acts IRPR s. 19(1) names; open class vs table"), | |
| ("canlex/transborder.py", "GOODS", "the IRPR s. 19(1)(d)-(e) goods classes"), | |
| ("canlex/transborder.py", "MD_ORDERABLE", "the IRPR s. 228(1)(a.01)(i)-(v) delegate offences"), | |
| ("canlex/transborder.py", "S36_2_1", "s. 36(2.1) quotation"), | |
| ("canlex/transborder.py", "ALLEGATION_2_1", "s. 36(2.1) allegation wording"), | |
| ("canlex/transborder.py", "R19_2", "IRPR s. 19(2) hybrid deeming quotation"), | |
| ("canlex/transborder.py", "S36_3_C", "s. 36(3)(c) quotation (no rehabilitation)"), | |
| ("canlex/transborder.py", "S36_3_E", "s. 36(3)(e) quotation"), | |
| ("canlex/transborder.py", "S36_3_E_I", "s. 36(3)(e)(i) quotation (contraventions)"), | |
| ("canlex/transborder.py", "S36_3_B", "s. 36(3)(b) quotation (final acquittal)"), | |
| ("canlex/transborder.py", "S36_3_B_CONV", "s. 36(3)(b) quotation (based on a conviction)"), | |
| ("canlex/transborder.py", "ACQUITTAL_NOTE", | |
| "a final acquittal and s. 36(2.1): both readings, not settled"), | |
| ("canlex/transborder.py", "R228_OPENING", "IRPR s. 228(1) no-other-ground condition"), | |
| ("canlex/transborder.py", "R228_4_A", "IRPR s. 228(4)(a) unaccompanied-minor exception"), | |
| ("canlex/transborder.py", "R229_D1", "IRPR s. 229(1)(d.1) quotation"), | |
| ("canlex/transborder.py", "CA_8_1_A", "Contraventions Act s. 8(1)(a) quotation"), | |
| ("canlex/transborder.py", "CR_S1", "Contraventions Regulations s. 1 quotation"), | |
| ("canlex/transborder.py", "GUIDANCE_CURRENT", "ENF 5 / ENF 6 (2025) pointers"), | |
| ("canlex/transborder.py", "GUIDANCE_STALE", "the old A36(2)(d) and 'present tense' guidance"), | |
| ("canlex/transborder.py", "TABLE_HELD", "what the tool says when the (c)-(g) table is absent"), | |
| ("canlex/transborder.py", "resolve_act", "which Act the officer's words name"), | |
| # the code audit of 2026-09-21 (HELD): an Act named inside a longer spelling, a | |
| # chapter cite or a trailing 's. N' is still one of the six; genuinely other Acts stay 'other' | |
| ("canlex/transborder.py", "act_and_section", | |
| "which of the six Acts a spelling names (containment), and the section it carries"), | |
| ("canlex/transborder.py", "_ACT_CITE", "the chapter citations stripped from an Act's spelling"), | |
| ("canlex/transborder.py", "_ACT_TRAILING_SECTION", "the trailing section an Act's spelling carries"), | |
| ("canlex/transborder.py", "_ACT_SUBSECTION", | |
| "the subsection or paragraph a trailing section carries (audit follow-up 2026-09-21)"), | |
| ("canlex/transborder.py", "_ACT_CODES", "the short Act codes matched as whole tokens only"), | |
| ("canlex/transborder.py", "mode_from_pairing", "the mode read from a curated pairing"), | |
| ("canlex/transborder.py", "pairing_act", "the Act read from a curated pairing"), | |
| ("canlex/transborder.py", "_schedule_act", "which Act a contraventions schedule is for"), | |
| ("canlex/transborder.py", "contravention_schedules", | |
| "which Acts the contraventions schedules are for (one per schedule), the count printed"), | |
| ("canlex/transborder.py", "contravention_check", "the s. 36(3)(e)(i) carve-out rule and text"), | |
| ("canlex/transborder.py", "_open_class", "the s. 19(1)(a)/(b) mode rule"), | |
| ("canlex/transborder.py", "_md", "the s. 228(1)(a.01) delegate rule"), | |
| ("canlex/transborder.py", "_from_table", "how the (c)-(g) table answers, readings and needs"), | |
| ("canlex/transborder.py", "assess", "the transborder result: prescribed, branch, removal"), | |
| ("canlex/transborder.py", "render", "the transborder memo text and allegation"), | |
| ("canlex/transborder.py", "bottom_line", "the transborder bottom line"), | |
| # source labels and subsequent history (roadmap T1.10, T1.11) | |
| ("canlex/server.py", "_GUIDANCE_FORCE", "legal-force label of administrative guidance"), | |
| ("canlex/server.py", "_PUBLISHERS", "publisher and legal-force labels"), | |
| ("canlex/server.py", "_NEUTRAL_PUBLISHER", "label of an unmapped guidance source"), | |
| ("canlex/server.py", "SUPERSEDED_CITES", "the Saini (FCA) subsequent-history note"), | |
| # screening rules (roadmap T1.3, T1.4; critic single-occurrence rule) | |
| ("canlex/screening.py", "TIE_FACTS", "which fact decides each tie, and which pairing each answer selects"), | |
| ("canlex/screening.py", "_GENERIC_TIE_QUESTION", "the question for an unmapped tie"), | |
| ("canlex/screening.py", "_BRANCH_TEXT", "the s. 36 branch descriptions"), | |
| ("canlex/screening.py", "branch_for", "the s. 36 branch rule (PR, summary-only, depends)"), | |
| ("canlex/screening.py", "occurrence_range", "the different-dates-means-separate-occurrences proxy"), | |
| ("canlex/screening.py", "select_limbs", "which limb a record's words (or amount) select"), | |
| ("canlex/screening.py", "QUANTITY_LINE_KG", "the former CDSA Schedule VII cannabis amount (3 kg)"), | |
| ("canlex/screening.py", "QUANTITY_LIMBS", "which side of the quantity line each limb is"), | |
| ("canlex/screening.py", "quantity_kg", "how an amount is read from the record's text"), | |
| ("canlex/screening.py", "_AMOUNT_QUALIFIER", | |
| "a bounded, approximate, ranged, multiplied, per-unit or gross amount leaves the quantity open " | |
| "(LEGAL-1/2/3, 2026-09-22)"), | |
| ("canlex/screening.py", "_GROUPED_AMOUNT", | |
| "a comma followed by three digits is a thousands separator, not a decimal (code audit 2026-09-21)"), | |
| ("canlex/screening.py", "_GROUP_SEP", | |
| "the digit-group separators an amount may carry: comma, space, no-break spaces (audit follow-up 2026-09-21)"), | |
| ("canlex/screening.py", "_GROUP_SEP_RE", "the separators dropped from a grouped amount"), | |
| ("canlex/screening.py", "_amount_number", | |
| "how a grouped, decimal or fractional amount becomes a number; a zero denominator is no amount"), | |
| ("canlex/screening.py", "penalty_at", "the Tran rule: the maximum at commission, limb by limb"), | |
| ("canlex/screening.py", "PIT_FLOOR_NOTE", "maximum before the point-in-time floor not verified"), | |
| ("canlex/screening.py", "not_in_force", "when a provision is treated as not in force at commission"), | |
| ("canlex/screening.py", "CANNABIS_BARE_NOTE", "bare cannabis read as possession"), | |
| ("canlex/screening.py", "CANNABIS_CONCENTRATE_NOTE", "Cannabis Act Schedule 3 note"), | |
| ("canlex/screening.py", "UCMJ_NOTE", "when 'Article N' is read as UCMJ"), | |
| # finality: a decided appeal that left the conviction standing (T2.7 audit) | |
| ("canlex/screening.py", "APPEAL_UPHELD", | |
| "'appeal dismissed' / 'affirmed on appeal' is a conviction, not a dismissal or a pending appeal"), | |
| ("canlex/screening.py", "CONVICTION_UPHELD", "'conviction affirmed' keeps the conviction word"), | |
| ("canlex/screening.py", "strip_appeal_upheld", "where the decided-appeal phrases are removed"), | |
| ("canlex/screening.py", "_cue_text", "the words the disposition cues and entries read"), | |
| # rehabilitation (roadmap T1.8, T1.9, T1.12) | |
| ("canlex/rehab.py", "EXCEPT_CONTRAVENTION_YCJA", "IRPR s. 18(2) exception clause"), | |
| ("canlex/rehab.py", "_CONDITIONS", "the s. 18(2) limbs as printed"), | |
| ("canlex/rehab.py", "_TRP_CAVEAT", "TRP caveat"), | |
| ("canlex/rehab.py", "CUSTODY_CAVEAT", "six-month limb caveat (Tran; intermittent sentences)"), | |
| ("canlex/rehab.py", "GUIDE_5312_DIVERGENCE", "where Guide 5312 departs from the Regulations"), | |
| ("canlex/rehab.py", "_pr_appeal", "IAD appeal rule for a Canadian conviction (s. 64(2))"), | |
| ("canlex/rehab.py", "assess", "the rehabilitation rules and their explanations"), | |
| ("canlex/rehab.py", "_assess_canada", "the in-Canada conviction rules"), | |
| ("canlex/rehab.py", "METHODOLOGY", "canlex://methodology/rehabilitation"), | |
| # Canadian convictions in the screening tools (roadmap T2.2) | |
| ("canlex/rehab.py", "CANADA_CURE", "the cure for a Canadian conviction (record suspension only)"), | |
| ("canlex/rehab.py", "CANADA_SENTENCES", "the Canadian sentences and outcomes the rules distinguish"), | |
| ("canlex/rehab.py", "_NO_CUSTODY", "sentences read as no term of imprisonment when no months are given"), | |
| ("canlex/rehab.py", "DISCHARGE_TEXT", "a Canadian discharge is not a conviction (C-46 s. 730(3))"), | |
| ("canlex/rehab.py", "NOT_CONVICTED_TEXT", "a Canadian charge without a conviction grounds nothing"), | |
| ("canlex/rehab.py", "CONTRAVENTION_TEXT", "s. 36(3)(e)(i) contraventions"), | |
| ("canlex/rehab.py", "YOUTH_SENTENCE_TEXT", "s. 36(3)(e)(ii)-(iii) youth sentences; adult sentences not excluded"), | |
| ("canlex/rehab.py", "RECORD_SUSPENSION_TEXT", "s. 36(3)(b) record suspension"), | |
| ("canlex/rehab.py", "ACT_OF_PARLIAMENT_NOTE", "provincial offences are not reached by s. 36(1)(a)/(2)(a)"), | |
| ("canlex/rehab.py", "CONDITIONAL_SENTENCE_NOTE", "a conditional sentence counts as no custody (Tran)"), | |
| ("canlex/rehab.py", "INTERMITTENT_NOTE", "intermittent sentences are not settled; both readings"), | |
| ("canlex/rehab.py", "CANADA_REMOVAL_FN", "R228(1)(a) delegate deportation order; R228(4) exceptions"), | |
| ("canlex/rehab.py", "CANADA_REMOVAL_PR", "ID referral, R229(1)(c), for a PR on s. 36(1)(a)"), | |
| ("canlex/rehab.py", "CANADA_BRANCH_TEXT", "the Canadian branch descriptions"), | |
| ("canlex/rehab.py", "_CANADA_STD_BRANCH", "which Canadian branch maps to which screening branch"), | |
| ("canlex/rehab.py", "_CANADA_SENTENCE_WORDS", "which words name a Canadian sentence or discharge"), | |
| ("canlex/rehab.py", "_CANADA_RECORD_SUSPENSION", "which words name a record suspension"), | |
| ("canlex/rehab.py", "_CANADA_NO_CONVICTION", "which words mean no Canadian conviction"), | |
| ("canlex/rehab.py", "_CANADA_SET_ASIDE", "which words mean a Canadian conviction was set aside"), | |
| # the code audit of 2026-09-21 (HELD): a refused, pending, revoked or ceased record | |
| # suspension is no s. 36(3)(b) bar; a negated or refused set-aside leaves the conviction | |
| ("canlex/rehab.py", "_CANADA_CLAUSE", "where a Canadian record's clauses break"), | |
| ("canlex/rehab.py", "_CANADA_RS_CLAUSE", | |
| "where the relief clauses break: a parenthesis stays inside its clause (audit follow-up 2026-09-21)"), | |
| # G2, the verification fixes of 2026-09-22 (HELD): the relief reader is an ALLOWLIST -- | |
| # one naming clause stands, everything else is not in force or NOT SETTLED | |
| ("canlex/rehab.py", "_RS_DATE", "the one date or one year a naming clause may carry"), | |
| ("canlex/rehab.py", "_RS_LOSS_PHRASE", "the losses a keep clause negates (revoked, ceased to have effect)"), | |
| ("canlex/rehab.py", "_RS_NEG_LOSS", "a negated loss ('has not been revoked')"), | |
| ("canlex/rehab.py", "_RS_KEEP", | |
| "the keep clause: 'not revoked or ceased' negates both, 'not revoked and ceased' does not"), | |
| ("canlex/rehab.py", "_CANADA_RS_KEEP", "the only words after a naming clause that leave it standing"), | |
| ("canlex/rehab.py", "_CANADA_RS_NAMING", | |
| "the naming clause: record suspension | pardon | pardoned [granted|ordered|issued|in force] [date]"), | |
| ("canlex/rehab.py", "_CANADA_RS_CONVICTION", | |
| "the only disposition words that may precede a naming clause (the conviction words)"), | |
| ("canlex/rehab.py", "_CANADA_RS_ABBREVIATION", | |
| "shorthand for a record suspension ('RS'): never stands; the not-in-force note prints (REL-13)"), | |
| ("canlex/rehab.py", "_CANADA_RS_RELIEF_WORDS", | |
| "relief words beside a key-only relief that take it away (Parole Board, CRA, prerogative)"), | |
| ("canlex/rehab.py", "_CANADA_RS_LOSS", | |
| "loss words beside a key-only relief that take it away (revoked, ceased, rescinded, no longer)"), | |
| ("canlex/rehab.py", "_CANADA_RS_LATER_OFFENCE", | |
| "another conviction's words beside a key-only relief take it away (CRA s. 7.2(a))"), | |
| ("canlex/rehab.py", "_CANADA_RS_YEAR", | |
| "a year in the disposition's words not before the relief's takes it away"), | |
| ("canlex/rehab.py", "_CRA_PARDON_LAST_DAY", | |
| "a 'pardon' dated after 2012-03-12 may be no record suspension (CRA s. 2, s. 4.1; AI-4)"), | |
| # H2 (2026-09-22): the readings the relief grammar opens instead of settling -- | |
| # G2-REL-B (before the Act), G2-REL-A (an undated pardon), G2-REL-E (an undated | |
| # record suspension the entry's dates cannot place) | |
| ("canlex/rehab.py", "_CRA_FIRST_DAY", | |
| "the first day the corpus can place a Criminal Records Act relief on (G2-REL-B)"), | |
| ("canlex/rehab.py", "PARDON_UNDATED_TEXT", | |
| "an UNDATED pardon is NOT SETTLED: its date may fall after 2012-03-12 (CRA ss. 2, 9; G2-REL-A)"), | |
| ("canlex/rehab.py", "RELIEF_BEFORE_CRA_TEXT", | |
| "a relief dated before the Act as the corpus carries it is NOT SETTLED, quoting its " | |
| "s. 1 history line and s. 9 (G2-REL-B)"), | |
| ("canlex/rehab.py", "RELIEF_UNDATED_TEXT", | |
| "an undated record suspension on a dated entry is NOT SETTLED, quoting CRA s. 4(1) (G2-REL-E)"), | |
| ("canlex/rehab.py", "relief_before_cra", | |
| "whether the relief's date may fall before the Criminal Records Act (G2-REL-B)"), | |
| ("canlex/rehab.py", "relief_unplaced", | |
| "an undated relief on an entry that carries a date to place it against (G2-REL-E)"), | |
| ("canlex/rehab.py", "_S36_3_B_WORDS", "verbatim IRPA s. 36(3)(b) words the relief notes quote"), | |
| ("canlex/rehab.py", "PARDON_AFTER_2012_TEXT", | |
| "a pardon dated after 2012-03-12 is NOT SETTLED, quoting CRA ss. 2, 4.1 (definition), 9 and IRPA s. 36(3)(b)"), | |
| ("canlex/rehab.py", "RELIEF_LATER_CONVICTION_TEXT", | |
| "a later conviction may have ended the record suspension: NOT SETTLED, quoting CRA ss. 7.2, 7"), | |
| ("canlex/rehab.py", "RELIEF_OPEN_TEXT", "which note each NOT SETTLED relief reading prints"), | |
| ("canlex/rehab.py", "_rs_clauses", "how the relief words are cut into clauses"), | |
| ("canlex/rehab.py", "_rs_naming", "a naming clause stands only with a grant word, a date or 'pardoned'"), | |
| ("canlex/rehab.py", "_rs_relief_part", "one naming clause followed by keep clauses only"), | |
| ("canlex/rehab.py", "_rs_when", "the earliest and latest day a relief's date can mean"), | |
| ("canlex/rehab.py", "relief_reading", | |
| "the relief words read together (disposition and key): stands only on the grammar (REL-1..10, REL-3)"), | |
| ("canlex/rehab.py", "relief_dates_stand", | |
| "a relief dated before the offence or conviction is not this conviction's (REL-11)"), | |
| ("canlex/rehab.py", "pardon_after_2012", "a bare 'pardon' dated after 2012-03-12 is NOT SETTLED (AI-4)"), | |
| ("canlex/rehab.py", "_CANADA_RS_PREROGATIVE", | |
| "which words name a pardon under the royal prerogative of mercy or Criminal Code s. 748"), | |
| ("canlex/rehab.py", "_CANADA_RS_MERCY", "a prerogative mention counts only beside pardon, mercy or clemency"), | |
| ("canlex/rehab.py", "PREROGATIVE_PARDON_TEXT", | |
| "a prerogative pardon is no record suspension: NOT SETTLED, citing CC s. 748(2)/(3) and IRPA s. 36(3)(b)"), | |
| ("canlex/rehab.py", "_rs_text", "how the relief words are split (a section citation stays in its clause)"), | |
| ("canlex/rehab.py", "prerogative_pardon", "a prerogative pardon routes to NOT SETTLED, never s. 36(3)(b)"), | |
| ("canlex/rehab.py", "RECORD_SUSPENSION_NOT_IN_FORCE_TEXT", | |
| "relief words that do not stand on the grammar: screened as it stands, and how to re-run"), | |
| ("canlex/rehab.py", "record_suspension_in_force", | |
| "whether the record suspension the words name stands (s. 36(3)(b)), on the allowlist grammar"), | |
| ("canlex/rehab.py", "_CANADA_SET_ASIDE_NEGATED", "negation before a set-aside word"), | |
| ("canlex/rehab.py", "_CANADA_SET_ASIDE_MOTION", "the motion words a refused set-aside binds to"), | |
| ("canlex/rehab.py", "_CANADA_SET_ASIDE_REFUSED", "the refusal words of a motion to set aside"), | |
| ("canlex/rehab.py", "_set_aside", "a set-aside that stands: not negated, not a refused motion's"), | |
| ("canlex/rehab.py", "_no_conviction_words", | |
| "the charge's own no-conviction words, never a refused motion's 'dismissed'"), | |
| ("canlex/rehab.py", "_appeal_pending", "an appeal noted that no clause says was decided"), | |
| ("canlex/rehab.py", "_CANADA_OTHER_COUNTS", | |
| "no-conviction words that name other counts: the conviction stands"), | |
| ("canlex/rehab.py", "_CANADA_APPEAL_ALLOWED", "an appeal allowed: conviction not settled"), | |
| ("canlex/rehab.py", "_LIMB_WORDS", "how the s. 36(1)(a) limbs are named in the either-way line"), | |
| ("canlex/rehab.py", "_APPEAL_WORDS", "how each IAD appeal reading is named"), | |
| ("canlex/rehab.py", "either_way_note", | |
| "an answer every reading settles the same way: the limbs it rests on"), | |
| # the H3 fixes of 2026-09-22 (S17-INT-1, NEW-1; HELD): the Canadian outcome words -- | |
| # a discharge (CC s. 730(3)) and a YCJA youth sentence (IRPA s. 36(3)(e)(iii)) -- are | |
| # an ALLOWLIST, settling only as the disposition's own outcome clause | |
| ("canlex/rehab.py", "_CANADA_DISCHARGE_PHRASE", "the discharge phrases that can settle 'no conviction'"), | |
| ("canlex/rehab.py", "_CANADA_YOUTH_PHRASE", "the youth-sentence phrase that can settle 'no ground'"), | |
| ("canlex/rehab.py", "_CANADA_OUTCOME_SPLIT", "where one statement of a Canadian record ends"), | |
| ("canlex/rehab.py", "_CANADA_DISCHARGE_CLAUSE", | |
| "the clause a discharge may be: the court's own order and nothing else (CC s. 730(1))"), | |
| ("canlex/rehab.py", "_CANADA_DISCHARGE_CONTRA", | |
| "what no other clause may say beside a discharge (convict, revoke, refuse, appeal, " | |
| "set aside, another count -- CC s. 730(3)(b), s. 730(4))"), | |
| ("canlex/rehab.py", "_CANADA_YOUTH_CLAUSE", | |
| "the clause a youth sentence may be: the sentence the young person received"), | |
| ("canlex/rehab.py", "_CANADA_YOUTH_CONTRA", | |
| "what no other clause may say beside a youth sentence (refused, set aside, as an adult)"), | |
| ("canlex/rehab.py", "_CANADA_OUTCOME_ALLOW", "which words are read on the outcome allowlist"), | |
| ("canlex/rehab.py", "canada_clauses", "a Canadian disposition's clauses, as the allowlists read them"), | |
| ("canlex/rehab.py", "canada_outcome_stands", | |
| "whether a discharge or youth-sentence word is the disposition's own outcome"), | |
| # the J1 fixes of 2026-09-23 (HELD): the five Canadian outcome READINGS that still keyed | |
| # on a word ANYWHERE -- the NCR verdict (CC s. 672.35), a set-aside, the no-conviction | |
| # words, an appeal allowed and a new trial (CC s. 686(2), s. 579) -- are an ALLOWLIST too | |
| ("canlex/rehab.py", "_CANADA_EMPTY_VALUE", | |
| "a clause that is an empty or negative form value refuses every reading ('NCR: no')"), | |
| ("canlex/rehab.py", "_CANADA_NCR_CLAUSE", | |
| "the clause an NCR verdict may be: the verdict itself and nothing else (CC s. 672.35)"), | |
| ("canlex/rehab.py", "_CANADA_NCR_CONTRA", | |
| "what no other clause may say beside an NCR verdict (convict, refuse, set aside, " | |
| "appeal, assessment, another count, a term)"), | |
| ("canlex/rehab.py", "_CANADA_SET_ASIDE_CLAUSE", | |
| "the clause a set-aside may be: this conviction quashed, and s. 686(2)'s 'appeal " | |
| "allowed and the conviction quashed'"), | |
| ("canlex/rehab.py", "_CANADA_SET_ASIDE_CONTRA", | |
| "what no other clause may say beside a set-aside (convict, restore, refuse, a motion, " | |
| "a new trial, another count, a term -- CC s. 686(1)(b), (3))"), | |
| ("canlex/rehab.py", "_CANADA_NO_CONVICTION_CLAUSE", | |
| "the clause an acquittal, withdrawal, dismissal or stay may be"), | |
| ("canlex/rehab.py", "_CANADA_NO_CONVICTION_CONTRA", | |
| "what no other clause may say beside a no-conviction word (convict, recommence, " | |
| "another count, a refused motion, a term -- CC s. 579(2))"), | |
| ("canlex/rehab.py", "_CANADA_APPEAL_ALLOWED_CLAUSE", | |
| "the clause an appeal allowed may be: the allowance itself, never one as to sentence"), | |
| ("canlex/rehab.py", "_CANADA_APPEAL_ALLOWED_CONTRA", | |
| "what no other clause may say beside an appeal allowed (convict, affirm, restore, " | |
| "as to, in part, another count or file)"), | |
| ("canlex/rehab.py", "_CANADA_NEW_TRIAL_CLAUSE", | |
| "the clause a new trial ordered may be (CC s. 686(2)(b))"), | |
| ("canlex/rehab.py", "_CANADA_NEW_TRIAL_CONTRA", | |
| "what no other clause may say beside a new trial ordered (convict, refuse, a motion, " | |
| "another count or file)"), | |
| ("canlex/rehab.py", "_CANADA_ROUTED_NO_CONVICTION", | |
| "the routing's own words that mean the charge ended without a conviction"), | |
| ("canlex/rehab.py", "_CANADA_READING_ALLOW", | |
| "which Canadian outcome readings are read on the allowlist, and what keeps each"), | |
| ("canlex/rehab.py", "canada_reading_stands", | |
| "whether an NCR verdict, a set-aside, a no-conviction word, an appeal allowed or a " | |
| "new trial is the disposition's own outcome"), | |
| ("canlex/rehab.py", "_canada_cue_settles", | |
| "when the shared non-conviction cue table may settle a Canadian entry"), | |
| # the K1 fixes of 2026-09-23 (HELD): the OTHER clauses beside a settled Canadian | |
| # outcome are an allowlist too -- every one must be a clause the grammar can place -- | |
| # and the five denylists share one derived floor (CC ss. 686(2)-(4), 579(2), 737, 742.1, | |
| # 672.54; CRA s. 2.1(1); IRPA s. 36(3)(b)) | |
| ("canlex/rehab.py", "_SENT_UNIT_LONG", | |
| "the units screening reads a written term in, as the outcome tables read them"), | |
| ("canlex/rehab.py", "_SENT_UNIT_SHORT", | |
| "the one-letter units, read only after a number"), | |
| ("canlex/rehab.py", "_CANADA_TERM_UNIT", | |
| "a term of imprisonment in any unit the sentence reader knows (a term in weeks was " | |
| "read by one reader and missed by the other)"), | |
| ("canlex/rehab.py", "_CANADA_TERM_WRITTEN", | |
| "a term of imprisonment the record's own words stated, which a routing rewrite may " | |
| "not silently drop"), | |
| ("canlex/rehab.py", "_CANADA_SENTENCE_WORD_CONTRA", | |
| "the Canadian sentence words, as a contradiction of a no-conviction outcome"), | |
| ("canlex/rehab.py", "_CANADA_TERM_CONTRA", | |
| "a sentence or ancillary order that can only follow a finding of guilt (CC s. 742.1 " | |
| "conditional sentence, s. 737 victim surcharge, community service, restitution, DNA, " | |
| "s. 109 prohibition, SOIRA, forfeiture)"), | |
| ("canlex/rehab.py", "_CANADA_LIVE_CONTRA", | |
| "a clause saying the charge has not ended -- warrant, remand, adjournment, next " | |
| "appearance (CC s. 579(2): stayed proceedings may be recommenced)"), | |
| ("canlex/rehab.py", "_CANADA_UNDONE_CONTRA", | |
| "a clause saying the outcome did not survive -- annulled, rescinded, nullified, " | |
| "revoked, substituted (CC s. 686(3), (4)(b))"), | |
| ("canlex/rehab.py", "_CANADA_SCOPE_CONTRA", | |
| "a clause scoped to another count, information, indictment, docket, file or matter " | |
| "(CC s. 686(1)(b)(i))"), | |
| ("canlex/rehab.py", "_CANADA_RELIEF_CONTRA", | |
| "a relief clause, which presupposes the conviction it would suspend (CRA ss. 2.1(1), " | |
| "4(1), 4.1(1); IRPA s. 36(3)(b))"), | |
| ("canlex/rehab.py", "_CANADA_SHARED_CONTRA", | |
| "the floor every one of the five contra tables is a superset of"), | |
| ("canlex/rehab.py", "_CANADA_DATE_TEXT", "a bare date beside an outcome"), | |
| ("canlex/rehab.py", "_CANADA_ACT_NAME", "the Acts a Canadian record cites"), | |
| ("canlex/rehab.py", "_CANADA_SECTION", "a section or paragraph reference"), | |
| ("canlex/rehab.py", "_CANADA_COURT", "the Canadian courts a record names"), | |
| ("canlex/rehab.py", "_CANADA_OFFENCE_NAME", | |
| "a bare offence name beside an outcome; a name this grammar lacks leaves the reading " | |
| "NOT SETTLED, never settled"), | |
| ("canlex/rehab.py", "_CANADA_COMPATIBLE_CLAUSE", | |
| "what a clause BESIDE a settled Canadian outcome may be, and nothing else"), | |
| ("canlex/rehab.py", "_CANADA_CONVICTION_QUASHED_CLAUSE", | |
| "the s. 686(2) keep: the CONVICTION quashed, the noun mandatory -- an acquittal or an " | |
| "NCR verdict set aside is that verdict destroyed (CC ss. 676(1)(a), 686(4)(b))"), | |
| ("canlex/rehab.py", "_CANADA_REVIEW_BOARD_CLAUSE", | |
| "the Part XX.1 disposition the court or Review Board makes instead of a sentence " | |
| "(CC s. 672.54), which is the NCR verdict's own consequence"), | |
| ("canlex/rehab.py", "canada_disposition", "conviction / discharge / record suspension from a Canadian record"), | |
| ("canlex/rehab.py", "canada_std_branch", "the screening branch for a Canadian answer"), | |
| ("canlex/rehab.py", "canada_removal", "the removal path for a Canadian answer"), | |
| ("canlex/rehab.py", "_READING_WORDS", "how each open Canadian reading is named"), | |
| ("canlex/rehab.py", "_READING_NEEDS", "the questions a Canadian answer asks"), | |
| ("canlex/rehab.py", "_INTERMITTENT_NEED", "the intermittent-sentence question"), | |
| ("canlex/rehab.py", "assess_canadian", | |
| "discharge, contraventions, youth sentences, record suspension, custody (Tran), readings"), | |
| ("canlex/server.py", "_CANADA_NOTE", "Canada given to a foreign-record tool: where to screen it"), | |
| ("canlex/server.py", "CANADA_SCREEN_NOTE", "a Canadian record is screened on s. 36(1)(a)/(2)(a)"), | |
| ("canlex/server.py", "CANADA_ALSO_CHECK", "the Canadian also-check line (s. 36(2)(a) count, s. 18.1 'solely')"), | |
| ("canlex/server.py", "_CANADA_PARAMS_IGNORED", "Canadian inputs ignored for a foreign record"), | |
| ("canlex/server.py", "_canada_offence", "the Canadian maximum and mode: officer first, else the pairing"), | |
| ("canlex/server.py", "_canada_limbs_text", "how the s. 36(1)(a) limbs are named"), | |
| ("canlex/server.py", "_canada_allegation", "the s. 36(1)(a)/(2)(a) draft allegation by limb"), | |
| ("canlex/server.py", "_canada_screen", "the Canadian memo: steps, readings, removal, TRP, cure, bottom line"), | |
| ("canlex/server.py", "_canada_history_row", "a Canadian entry of screen_history"), | |
| ("canlex/server.py", "_canada_history_notes", "the record-level Canadian lines of screen_history"), | |
| # youth at the offence (roadmap T2.6) | |
| ("canlex/server.py", "YOUTH_STATUTE", "s. 36(3)(e) as statute: Canadian youth dispositions only"), | |
| ("canlex/server.py", "YOUTH_STATUTE_CANADA", "s. 36(3)(e) applied to a Canadian record"), | |
| ("canlex/server.py", "YOUTH_POLICY", "the ENF 14 foreign-youth questions, labelled policy"), | |
| ("canlex/server.py", "UNDER_12", "C-46 s. 13 for a foreign record"), | |
| ("canlex/server.py", "UNDER_12_CANADA", "C-46 s. 13 for a Canadian record"), | |
| ("canlex/server.py", "_youth_screen", "the age at the offence, its bands and the YOUTH block"), | |
| ("canlex/server.py", "_youth_bottom_line", "the youth bottom-line bullets"), | |
| ("canlex/server.py", "_youth_history_notes", "the record-level YOUTH lines"), | |
| # finality: convictions in absentia (roadmap T2.7) | |
| ("canlex/server.py", "ABSENTIA_CLOCK", "no rehabilitation clock for an in-absentia sentence not served"), | |
| ("canlex/server.py", "_ABSENTIA_RULE", "the rehab_clock value the tools honour"), | |
| ("canlex/server.py", "_clocks", "which clocks step 3 runs; the in-absentia rule"), | |
| # the whole record, IRPR s. 18(2) and s. 18.1 limb by limb (roadmap T2.3) | |
| ("canlex/rehab.py", "RECORD_CLASSES", "the offence classes the limbs distinguish"), | |
| ("canlex/rehab.py", "S18_CHAPEAU", "IRPR s. 18(2)(a)-(c) chapeaux, verbatim"), | |
| ("canlex/rehab.py", "S18_1_LIMBS", "IRPR s. 18.1 limbs, verbatim"), | |
| ("canlex/rehab.py", "HYBRID_READINGS", | |
| "roadmap DECISION (a): a hybrid equivalent in (iv)/(vi), both readings"), | |
| ("canlex/rehab.py", "ANCHOR_READINGS", | |
| "roadmap DECISION (b): the anchor of 'the last N years', both readings"), | |
| ("canlex/rehab.py", "RECORD_NOTES", "record suspensions and youth dispositions in the limbs: not settled"), | |
| ("canlex/rehab.py", "S34_1_C", "Interpretation Act s. 34(1)(c), verbatim (a hybrid convicted summarily)"), | |
| ("canlex/rehab.py", "PROSECUTED", "the Crown's election on a Canadian hybrid offence"), | |
| ("canlex/rehab.py", "YCJA_EXCEPTION_LIMBS", "which s. 18(2) limbs carry the YCJA exception"), | |
| ("canlex/rehab.py", "_could", "whether a paragraph's subject can be on a record too open to run"), | |
| ("canlex/rehab.py", "_normalize", "what a record entry is for the limbs (kind, class, dates)"), | |
| ("canlex/rehab.py", "_dims", "which open facts are run both ways, and the question each asks"), | |
| ("canlex/rehab.py", "_anchor_bounds", "an undated conviction read between offence and completion"), | |
| ("canlex/rehab.py", "_window_end", "when a conviction leaves 'the last N years' (day-after convention)"), | |
| ("canlex/rehab.py", "_none_within", "'has not within the last N years been convicted'"), | |
| ("canlex/rehab.py", "_at_most_one_before", "'not before the last N years ... more than one'"), | |
| ("canlex/rehab.py", "_one_old_at_most", "limb (iv): Canadian summary convictions"), | |
| ("canlex/rehab.py", "_paragraph", "every limb of s. 18(2)(a)-(c) and s. 18.1 as a rule on the entries"), | |
| ("canlex/rehab.py", "_outcome", "when a paragraph holds: every limb at once, or never"), | |
| ("canlex/rehab.py", "_evaluate", "pass / fail / unknown over every open fact; what decides a limb"), | |
| ("canlex/rehab.py", "_limb_text", "how each limb is named"), | |
| ("canlex/rehab.py", "check_limbs", "one paragraph, limb by limb"), | |
| ("canlex/rehab.py", "_s17", "the s. 17 clock over the record; conviction vs act basis"), | |
| # the G3 fixes of 2026-09-22 (S17-1/2/3, PREROG-2/3, AI-5; HELD): the s. 17 clock takes | |
| # every matter and every entry that may be a conviction at its strictest reading | |
| ("canlex/rehab.py", "_s17_is_open", | |
| "which entries are read both ways on the s. 17 clock (an open verdict; a conviction in " | |
| "Canada the words do not settle, save a conditional prerogative pardon; H3: an entry " | |
| "step 1 places without settling, and a youth disposition)"), | |
| ("canlex/rehab.py", "_s17_entries", | |
| "which convictions, open entries, youth dispositions and acts are on the s. 17 clock"), | |
| ("canlex/rehab.py", "_s17_other_readings", | |
| "the clock entry's other s. 17 readings (one per open entry; 'no federal equivalent' together)"), | |
| ("canlex/rehab.py", "_s17_act_matter", | |
| "which committed acts s. 17(b) runs from, on the conviction basis too (a permanent " | |
| "resident's act under the 10-year line left out there)"), | |
| ("canlex/rehab.py", "_PREROGATIVE_CONDITIONAL", | |
| "the one phrase that counts a prerogative-pardoned conviction plainly on the s. 17 clock"), | |
| ("canlex/rehab.py", "_PREROGATIVE_FREE", "'free' beside it keeps both s. 17 readings"), | |
| ("canlex/rehab.py", "prerogative_kind", | |
| "a conditional prerogative pardon (CC s. 748(2)/(3)) leaves the conviction on the s. 17 clock"), | |
| ("canlex/rehab.py", "_reading_answer", "the record-level status and explanation of one reading"), | |
| ("canlex/rehab.py", "assess_record", | |
| "the record-level answer: readings that decide it, dates, PR, no foreign ground"), | |
| ("canlex/server.py", "_pairing_classes", "a curated pairing's class for the limbs"), | |
| ("canlex/server.py", "_limb_classes", "the classes an unresolved entry can be"), | |
| ("canlex/server.py", "_record_entries", "screen_history rows as the record the limbs read"), | |
| ("canlex/server.py", "_PROSECUTED_WORDS", "how canada_prosecuted may be written"), | |
| ("canlex/server.py", "_limb_when", "how a limb's start / stop date is printed"), | |
| ("canlex/server.py", "_para_outcome", "each paragraph's answer as printed"), | |
| ("canlex/server.py", "_limb_table", "the limb table"), | |
| ("canlex/server.py", "_limb_section", "the limb section: readings, warnings, no paragraph"), | |
| ("canlex/server.py", "_deem_clock_text", "which limb and entry set the deeming clock"), | |
| # foreign pardons and relief by effect: the Saini checklist (roadmap T2.8) | |
| ("canlex/screening.py", "SAINI_QUOTES", "Saini para 24 elements and ENF 3 s. 10.9 phrases, verbatim"), | |
| ("canlex/screening.py", "SAINI_SOURCES", "the chunks the Saini checklist cites"), | |
| ("canlex/screening.py", "saini_checklist", "the Saini checklist an entry with pardon_test prints"), | |
| ("canlex/server.py", "_DISP_PHRASE_ONLY", "a lone 'refused' name matches as a phrase only"), | |
| ("canlex/server.py", "_FOREIGN_RELIEF", "which relief entry answers a non-US record"), | |
| ("canlex/server.py", "_foreign_relief", "the US-framed relief entry replaced for a non-US record"), | |
| ("canlex/server.py", "_match_dispositions", | |
| "which disposition entry a record's words reach (cancelled-conviction names, non-US relief)"), | |
| # record wording read in record order; relief never creates a conviction | |
| # (disposition roadmap T1.6, T1.7, T1.4 and the critic's items, 2026-09-16) | |
| ("canlex/screening.py", "DISPOSITION_CUE_TABLE", | |
| "the one record-order cue table: not-guilty plea, trial set, programme / revocation / " | |
| "adjudication, adult court, refused relief, stayed term, no disposition, sentencing " | |
| "pending, count scope, dismissal after conviction words, set-aside mechanism words"), | |
| ("canlex/screening.py", "_SEGMENT_BREAK", "where a record's segments break (revocation, refusal)"), | |
| ("canlex/screening.py", "DISPOSITION_FLAGS", "the record-wording flags and their order"), | |
| ("canlex/screening.py", "QUESTION_FLAGS", "which flags leave step 1 NOT SETTLED"), | |
| ("canlex/screening.py", "_revoked_then_adjudicated", | |
| "a programme revoked then guilt adjudicated: bound revocation, continuation block, later judgment"), | |
| ("canlex/screening.py", "record_order", | |
| "the routing rules that rewrite the record's words, and the question flags raised"), | |
| ("canlex/server.py", "_US_ONLY_ENTRIES", "entries never matched for a non-US record (set-aside-1203-4)"), | |
| ("canlex/server.py", "_RELIEF_YIELDS_TO", "the verdicts before which a relief entry yields"), | |
| ("canlex/server.py", "_relief_yields", "relief can remove a conviction, never create one"), | |
| ("canlex/server.py", "DISPOSITION_FLAG_LINES", "the memo and card wording of each record-wording flag"), | |
| ("canlex/server.py", "DISPOSITION_FLAG_QUESTIONS", "the deciding question of each question flag"), | |
| ("canlex/server.py", "STEP1_ONE_READING", "an entry printed as one reading when the wording leaves step 1 open"), | |
| ("canlex/server.py", "_FLAG_ENTRIES", "the entries each question flag answers for"), | |
| # state rows and non-US routing (disposition roadmap T1.8, T1.9, 2026-09-16) | |
| ("canlex/server.py", "_FOREIGN_RELIEF_WORDS", | |
| "the words a non-US record must carry for expungement to yield to the rehabilitation-law entry"), | |
| ("canlex/server.py", "_GATE_BONUS", | |
| "a place-gated match breaks a tie: ahead for its listed place, behind with no place named"), | |
| ("canlex/server.py", "_place_gate", | |
| "when a place-gated entry or name meets a record: listed place, no place (phrase only), other"), | |
| ("canlex/server.py", "_combine_gates", "an entry's gate and a name's gate combined"), | |
| ("canlex/screening.py", "_CONVICTION_NOT_RECORDED", | |
| "'conviction not recorded' / 'without proceeding to conviction' / 'without recording a " | |
| "conviction' cancel the conviction word"), | |
| ("canlex/server.py", "_step1_flags", | |
| "a question flag makes step 1 fact-specific with no state row; the set-aside exception"), | |
| ("canlex/server.py", "_entry_brief", | |
| "the disposition answer: the step-1 headline, the governing row, the Saini checklist"), | |
| # element resolvers for pairings that depend on the elements (roadmap T2.10) | |
| ("canlex/screening.py", "resolve_elements", | |
| "which Canadian provision an element answer or the element's words select; when it stays open"), | |
| ("canlex/screening.py", "_NOT_ASSERTED", "words that negate or doubt an element cue"), | |
| ("canlex/screening.py", "_CLAUSE_BREAK", "where a negation stops reaching"), | |
| ("canlex/screening.py", "element_cues_found", "how an element's words are found in the record"), | |
| ("canlex/screening.py", "resolver_answers", "how an element answer is read from the facts"), | |
| ("canlex/screening.py", "_without_answers", "a fact's own name is never read as an element's words"), | |
| ("canlex/screening.py", "outcome_max", "an outcome's maximum at the offence date (Tran)"), | |
| ("canlex/screening.py", "_resolver_need", "the element question and its options"), | |
| ("canlex/server.py", "_resolver_lines", "the resolved element or the deciding question, as printed"), | |
| ("canlex/server.py", "_term_notes", "which curated element split a record's words raise"), | |
| ("canlex/server.py", "_equivalency_report", "the equivalency report; element questions routed to facts"), | |
| # matcher routing added with the gold misses (track A step A9) | |
| ("canlex/screening.py", "_PC_664", "'PC 664/NNN' read as an attempt of section NNN"), | |
| ("canlex/screening.py", "is_attempt", "when a record is read as an attempt (s. 463)"), | |
| ("canlex/screening.py", "PENALTY_GROUP_NOTE", "a Texas penalty group is not a CDSA schedule"), | |
| ("canlex/screening.py", "_TX_PENALTY_GROUP", "which words are read as a Texas penalty group"), | |
| ("canlex/screening.py", "_DRUG_CONTEXT", "when an amount or penalty group is dropped from a drug charge"), | |
| # inchoate and party liability (track A step A10, roadmap T2.4) | |
| ("canlex/screening.py", "_INCHOATE_CUES", | |
| "which words read as an attempt, accessory, counselling, conspiracy or party"), | |
| ("canlex/screening.py", "INCHOATE_READINGS", "each reading's Criminal Code rule and label"), | |
| ("canlex/screening.py", "KIND_READINGS", | |
| "which readings each kind has (counselling committed or not; a bare accessory)"), | |
| ("canlex/screening.py", "INCHOATE_FACT", "the facts answer that settles a two-reading kind"), | |
| ("canlex/screening.py", "INCHOATE_OPEN_REASON", "why an inchoate result is not settled"), | |
| ("canlex/screening.py", "EXPRESS_EXCEPTIONS", | |
| "the express exceptions to ss. 463-465 for murder (ss. 239, 240, 465(1)(a), 464(a))"), | |
| ("canlex/screening.py", "inchoate", "the kind, cue and object read from the record's words"), | |
| ("canlex/screening.py", "inchoate_match", | |
| "the object matched on its own; when a term names a complete offence instead"), | |
| ("canlex/screening.py", "inchoate_max", | |
| "ss. 463(a)-(d), 464, 465(1)(c)/(d), 21(1) and the express exceptions"), | |
| ("canlex/screening.py", "attempt_max", "the s. 463 attempt maximum"), | |
| ("canlex/screening.py", "limb_provision", "the curated provision the exceptions are keyed on"), | |
| ("canlex/screening.py", "_INCHOATE_BASE", "the statute summary printed for each kind"), | |
| ("canlex/screening.py", "EXPRESS_EXCEPTIONS_NOTE", "the express-exceptions note"), | |
| ("canlex/screening.py", "inchoate_note", "which note an inchoate record prints"), | |
| ("canlex/screening.py", "attempt_note", "the note for a record's inchoate words"), | |
| ("canlex/screening.py", "_INCHOATE_STEM", "which curated terms can carry an inchoate cue"), | |
| ("canlex/screening.py", "_AID_ABET", "'aiding and abetting' is one liability, not two offences"), | |
| ("canlex/screening.py", "_COUNT_SUFFIX", | |
| "a count suffix after a comma ('theft, 2 counts') stays with its offence (audit follow-up 2026-09-21)"), | |
| ("canlex/screening.py", "_DIGIT_GROUP_COMMA", "a comma-space inside a digit group is the amount's"), | |
| ("canlex/screening.py", "_COUNT_WORDS", "a count beside the offence leaves the matching text"), | |
| ("canlex/screening.py", "_UNIT_WORDS", "the unit words that make a digit an amount, not a count"), | |
| ("canlex/screening.py", "_MULTIPLIED_AMOUNT", | |
| "a multiplier before an amount ('2 x 2 kg') leaves the quantity unsettled (review of the follow-up)"), | |
| ("canlex/screening.py", "split_offences", "where one record string is split into offences"), | |
| ("canlex/screening.py", "_best_match", | |
| "a curated term also matches with its abbreviations expanded, as the record is read"), | |
| ("canlex/server.py", "_step2", "an inchoate record is matched by its object offence"), | |
| ("canlex/server.py", "_reading_label", "how a limb and/or inchoate reading is named"), | |
| ("canlex/server.py", "_inchoate_decisive", "when the inchoate-role fact decides the band"), | |
| ("canlex/server.py", "_inchoate_field", "the CANLEX_RESULT 'inchoate' readings"), | |
| ("canlex/server.py", "_INC_KIND", "how each inchoate kind is named"), | |
| ("canlex/server.py", "_inchoate_applied", "the rule named beside each period's maximum"), | |
| ("canlex/server.py", "_inchoate_lines", "the inchoate lines of the step-2 block"), | |
| # wave 2 verifier: helpers carrying legal routing that the registered | |
| # names above rely on (the gate now also fingerprints each registered | |
| # name with everything it reaches -- tools/predeploy.py CodeTree) | |
| ("canlex/screening.py", "tran_bound", "Tran with no offence date: the conviction/completion bound"), | |
| ("canlex/screening.py", "tran_outcomes", "the periods a straddled maximum is reported in (Tran)"), | |
| ("canlex/screening.py", "history_rows", | |
| "which history rows apply to a limb; methodology (b) for a row higher than now"), | |
| ("canlex/screening.py", "limb_max", "a limb's current maximum"), | |
| ("canlex/screening.py", "pit_floor", "the point-in-time floor a pairing is checked from"), | |
| ("canlex/screening.py", "PIT_FLOOR", "where CanLex's point-in-time research starts"), | |
| ("canlex/screening.py", "MURDER", "the provision the express exceptions are keyed on"), | |
| ("canlex/screening.py", "LIFE", "the structured stand-in for imprisonment for life"), | |
| ("canlex/screening.py", "OPEN_BRANCHES", "the branches reported with several readings, no band"), | |
| ("canlex/screening.py", "STRUCTURED_LIMB", | |
| "the limb key that selects a pairing's structured-maximum penalty_history rows"), | |
| ("canlex/screening.py", "STATED_LIMB", | |
| "the limb key that selects a pairing's stated-high penalty_history rows"), | |
| ("canlex/screening.py", "_KG_PER_UNIT", "unit conversions deciding the former 3 kg Schedule VII line"), | |
| ("canlex/screening.py", "_AMOUNT", "which written amounts are read as a quantity"), | |
| ("canlex/screening.py", "_asserted", "the negation window for element cues (three words)"), | |
| ("canlex/screening.py", "_WORDS_AND_BREAKS", "the words and breaks the negation window counts"), | |
| ("canlex/screening.py", "_singular", "plural record words read as the curated term"), | |
| ("canlex/screening.py", "ABBREVIATIONS", "record shorthand read as offence words"), | |
| ("canlex/screening.py", "PHRASE_ABBREVIATIONS", "record shorthand phrases read as offence words"), | |
| ("canlex/screening.py", "SUBSTANCES", "drug names and the CDSA schedule each resolves to"), | |
| ("canlex/screening.py", "ALIASES", "statute codes read as offence words"), | |
| ("canlex/screening.py", "_EXTRA_ALIASES", "statute codes read as offence words (code table)"), | |
| ("canlex/screening.py", "match_pairings", "which pairing a record's words match (negative terms)"), | |
| ("canlex/screening.py", "MIN_SCORE", "the score below which a pairing is not a match"), | |
| ("canlex/screening.py", "is_tie", "when two pairings match a label equally"), | |
| ("canlex/screening.py", "tie_spec", "the deciding fact of a tie"), | |
| ("canlex/screening.py", "resolve_tie", "which supplied fact settles a tie, and how"), | |
| ("canlex/screening.py", "offence_notes", "the notes an offence's words print"), | |
| ("canlex/screening.py", "RECORD_SUSPENSION_NOTE", "the record-suspension note"), | |
| ("canlex/screening.py", "_CANCELLED_CONVICTION", "words that cancel a conviction"), | |
| ("canlex/screening.py", "_CONVICTION_CUES", "words read as a conviction"), | |
| ("canlex/screening.py", "_NON_CONVICTION_CUES", "words read as no conviction"), | |
| ("canlex/screening.py", "_NEGATED", "negations of a disposition word"), | |
| ("canlex/screening.py", "_NEGATED_CONVICTION", "negated conviction words"), | |
| ("canlex/screening.py", "disposition_cues", "conviction / non-conviction read from the words"), | |
| ("canlex/screening.py", "disposition_notes", "the notes a disposition's words print"), | |
| ("canlex/screening.py", "add_years", "rehabilitation dates: N years on (29 February)"), | |
| ("canlex/screening.py", "full_years", "rehabilitation dates: full years elapsed"), | |
| ("canlex/screening.py", "years_since", "rehabilitation dates: years since completion"), | |
| # wave 2 verifier, blockers 1 and 2: the maxima a pairing's verify rows | |
| # quote; a maximum at commission higher than now (methodology (b)) | |
| ("canlex/screening.py", "_NUM_WORDS", "number words in statute phrases"), | |
| ("canlex/screening.py", "_STATED_MAX", "which statute phrases state a maximum"), | |
| ("canlex/screening.py", "maxima_stated", "the maxima a statute phrase states"), | |
| ("canlex/screening.py", "STRUCTURED_LABEL", "how the structured-maximum reading is named"), | |
| ("canlex/screening.py", "STATED_LABEL", "how the higher quoted maximum's reading is named"), | |
| ("canlex/screening.py", "STATED_OPEN_REASON", "why a limb-less inchoate result is not settled"), | |
| ("canlex/screening.py", "stated_limbs", | |
| "a limb-less pairing's higher quoted maximum as a second reading of an inchoate record"), | |
| ("canlex/screening.py", "lenient_since", "a maximum at commission higher than now"), | |
| ("canlex/screening.py", "lenient_rows", "the rows whose maximum at commission is higher than now"), | |
| ("canlex/screening.py", "LENIENT_LABELS", "how methodology (b) and Tran-strict readings are named"), | |
| ("canlex/screening.py", "LENIENT_OPEN_REASON", "why such a result is not settled"), | |
| ("canlex/screening.py", "LENIENT_QUESTION", "the question such a result asks"), | |
| ("canlex/screening.py", "LENIENT_NOTE", "the MAXIMUM AT COMMISSION HIGHER THAN NOW note"), | |
| ("canlex/screening.py", "MURDER_HELD_NOTE", "the approved baseline's murder forms: s. 239 / s. 240"), | |
| ("canlex/screening.py", "MURDER_EXCEPTION_TEXT", "the express exception for each inchoate kind"), | |
| ("canlex/screening.py", "murder_held_note", "when the murder note is printed"), | |
| ("canlex/screening.py", "OFFENCE_WORDS_NOTE", | |
| "an element cue in the offence text alone suggests, never settles (principle 5)"), | |
| ("canlex/rehab.py", "_INDICTABLE", "the s. 36(3)(a) hybrid-as-indictable class"), | |
| ("canlex/rehab.py", "_occurrences", "the single-occurrence rule over a record"), | |
| ("canlex/rehab.py", "_limb", "one s. 18(2) limb as a rule on the entries"), | |
| ("canlex/rehab.py", "_holds", "when a limb holds for an entry"), | |
| ("canlex/rehab.py", "_none_of", "'has not been convicted of' over the entries"), | |
| ("canlex/rehab.py", "_PARAS", "the s. 18(2) paragraphs the record rules run"), | |
| ("canlex/rehab.py", "_ANY_CLASS", "the classes an unresolved entry can be"), | |
| ("canlex/rehab.py", "_ACT_OFFENCE", "the act-branch class of an entry"), | |
| ("canlex/rehab.py", "conditions_for", "which s. 18 conditions are printed for an answer"), | |
| ("canlex/rehab.py", "METHODOLOGY_QUOTES", "verbatim quotes in the rehabilitation methodology"), | |
| ("canlex/server.py", "_DISP_APPEAL_DECIDED", "which decided-appeal words read as an acquittal"), | |
| ("canlex/server.py", "_DISP_CANCEL", "disposition words that cancel a conviction"), | |
| ("canlex/server.py", "_DISP_GENERIC", "disposition words too generic to match an entry alone"), | |
| ("canlex/server.py", "_DISP_STOP", "disposition words ignored in matching"), | |
| ("canlex/server.py", "_DISP_WEAK", "disposition words that match only with others"), | |
| ("canlex/server.py", "_CONVICTION_ENTRY", "the entry a bare conviction reads as"), | |
| ("canlex/server.py", "_LIMB_HOLDS", "how each s. 18(2) limb outcome is printed"), | |
| ("canlex/server.py", "_gives", "what each reading of the record gives"), | |
| ("canlex/server.py", "_canada_inputs", "which inputs a Canadian record reads"), | |
| ("canlex/server.py", "_history_desc", "the Tran history text officers read"), | |
| ("canlex/server.py", "_step1", "step 1: which disposition entry and verdict"), | |
| ("canlex/server.py", "canlex_us_disposition", | |
| "the disposition memo: one resolved step 1 for text and result; the framework pointer"), | |
| ("canlex/server.py", "_disposition_result", "the disposition answer and non-US relief printing"), | |
| ("canlex/server.py", "NON_US_LABEL", "the non-US record label"), | |
| ("canlex/server.py", "_allegation_text", "the allegation paragraph"), | |
| ("canlex/server.py", "_application_warning", "the application-type warning"), | |
| ("canlex/server.py", "_rehab_brief", "the one-line rehabilitation answer"), | |
| ("canlex/server.py", "_rehab_report", "the rehabilitation report"), | |
| ("canlex/server.py", "_elapsed_line", "the Elapsed line"), | |
| ("canlex/server.py", "_s18_compact", "the compact s. 18 answer"), | |
| ("canlex/server.py", "_superseded_notes", "the subsequent-history notes"), | |
| ("canlex/server.py", "_with_superseded", "where the subsequent-history notes are appended"), | |
| ("canlex/server.py", "_term_note_lines", "how a curated element split is printed"), | |
| ("canlex/server.py", "_tie_fields", "the result of an unresolved tie"), | |
| ("canlex/server.py", "_tie_resolved_line", "how a settled tie is printed"), | |
| ("canlex/server.py", "_basis_label", "how each footing is named"), | |
| ("canlex/server.py", "_jurisdiction", "US / non-US / Canada routing of a record"), | |
| ("canlex/server.py", "_jurisdiction_summary", "how the jurisdiction reading is printed"), | |
| ("canlex/server.py", "_fee", "the fee quoted"), | |
| ("canlex/server.py", "_lenient_lines", "the MAXIMUM AT COMMISSION HIGHER THAN NOW lines"), | |
| ("canlex/server.py", "ABSENTIA_HELD", "the held in-absentia rule absent from a deployment"), | |
| ("canlex/server.py", "_ABSENTIA_WORDS", "which words say a conviction was in absentia"), | |
| ("canlex/transborder.py", "section_relation", "whether a cited section matches an IRPR s. 19 row"), | |
| ("canlex/transborder.py", "parse_section", "how a cited section is read"), | |
| ("canlex/transborder.py", "MODES", "the prosecution modes a row can carry"), | |
| ("canlex/transborder.py", "load_table", "the (c)-(g) table read (held; absent: TABLE_HELD)"), | |
| ("canlex/commentary.py", "_entry_text", "the disposition checklist as rendered"), | |
| ("canlex/commentary.py", "_STATUS_LABEL", "authority-status labels"), | |
| ("canlex/commentary.py", "_VERDICT_LABEL", "verdict labels"), | |
| ("canlex/commentary.py", "SURVEY_NOTE", "the state-survey note"), | |
| ("canlex/commentary.py", "BANNER", "the curated-commentary banner"), | |
| # provenance of state rows and statute-code aliases (roadmap T3.5, track A | |
| # step A11): how each row's source is labelled; which statute a code is | |
| # read as, for which state and offence date, and what is printed | |
| ("canlex/commentary.py", "provenance_label", "the provenance tier printed with every state row"), | |
| ("canlex/commentary.py", "row_tier", "the step-1 provenance tier of a state row"), | |
| ("canlex/commentary.py", "row_notes", "the held characterisation and what-decides-it lines of a row"), | |
| ("canlex/commentary.py", "row_provenance", "the CANLEX_RESULT provenance tier of a state row"), | |
| ("canlex/screening.py", "ALIAS_JURISDICTIONS", "the state each code-table bare section number is read as"), | |
| ("canlex/screening.py", "_BARE_KEY", "which statute codes name no state (the state rule)"), | |
| ("canlex/screening.py", "_MAINE_MRS", "Maine 'M.R.S.' read as 'M.R.S.A.'"), | |
| ("canlex/screening.py", "alias_key", "a statute code read as a record is read (which codes can fire)"), | |
| ("canlex/screening.py", "_alias_reading", | |
| "which reading of a code applies: offence date, bare number vs the record's state"), | |
| ("canlex/screening.py", "_alias_what", "how the statute a code was read as is named"), | |
| ("canlex/screening.py", "alias_note", "'read <code> as <jurisdiction> <catchline>' and the not-applied notes"), | |
| ("canlex/screening.py", "alias_needs", "the offence-date question a date-dependent code asks"), | |
| ("canlex/server.py", "_step2_match", "step 2's matching, tie, candidates and fields (the former _step2)"), | |
| # the criminality route's promotable provisions (roadmap T5.2, track A | |
| # step A12): which statutes _ensure_primary may put in front of an | |
| # officer on an s. 36 question -- a legal characterisation, like | |
| # transborder.R19_ACTS. The route's firing heuristics and the allowlist | |
| # assembly are PLUMBING below; these two constants are the content. | |
| ("canlex/index.py", "_CRIMINALITY_STATIC", | |
| "the provisions that govern criminal inadmissibility and relief from it " | |
| "(IRPA ss. 33/36/37/44, IRPR ss. 17-19, YCJA ss. 82/119, CC s. 730)"), | |
| ("canlex/index.py", "_CRIMINALITY_ACTS", "the Criminal Records Act, promotable whole"), | |
| # the authority registry wired into the tools (roadmap T3.2; track A fixer, | |
| # wave-3 verifier 2026-09-15): what the officer is told about where a cited | |
| # decision's text is, which pin is shown, which statute sentence is quoted | |
| # behind a verified maximum, and when the registry is printed at all | |
| ("canlex/authorities.py", "HELD_NOTE", "registry absent: cites not linked; never canlex_case"), | |
| ("canlex/authorities.py", "READ_NOTE", "how to read the pointers; the only treatment check held"), | |
| ("canlex/authorities.py", "NO_POINTER_NOTE", "the closing line when no pointer is printed"), | |
| ("canlex/authorities.py", "UNLINKED", "a cite the registry does not hold"), | |
| ("canlex/authorities.py", "STATUS_TEXT", "in-corpus / absent / secondary-only / unavailable pointers"), | |
| ("canlex/authorities.py", "NO_SECONDARY", "no corpus source describes the decision"), | |
| ("canlex/authorities.py", "VERIFY_LABEL", "the VERIFIED TEXT label"), | |
| ("canlex/authorities.py", "VERIFY_MISSING", "the statute text is not in this deployment"), | |
| ("canlex/authorities.py", "VERIFY_NOT_FOUND", "a verify phrase gone from the corpus: re-verify"), | |
| ("canlex/authorities.py", "renderable", "when the registry's rows are printed beside the holdings"), | |
| ("canlex/authorities.py", "read_note", "which closing line an answer citing decisions prints"), | |
| ("canlex/authorities.py", "pointer", "the pointer line under a cited authority"), | |
| ("canlex/authorities.py", "_pick_pin", "which pinned passage is shown"), | |
| ("canlex/authorities.py", "_officer_pin", "a reviewer note is never printed as a pin label"), | |
| ("canlex/authorities.py", "_where", "which secondary sources are named, in what order"), | |
| ("canlex/authorities.py", "authority_lines", "the Authorities bullets with their pointers"), | |
| ("canlex/authorities.py", "superseded_entries", "the reversed decisions guidance cites (Saini)"), | |
| ("canlex/authorities.py", "statute_sentence", "which statute sentence is quoted for a verify phrase"), | |
| ("canlex/authorities.py", "_GENERAL_CLAUSE", "the 'in any other case' limb is the one quoted"), | |
| ("canlex/authorities.py", "_CLAUSE_MARK", "where the general limb's own paragraph starts"), | |
| ("canlex/authorities.py", "_general_clause_quote", "the lead-in ... general limb quotation"), | |
| ("canlex/authorities.py", "verify_rows", "which verify rows are quoted for a pairing and limb"), | |
| ("canlex/authorities.py", "verify_lines", "the VERIFIED TEXT lines under a verified maximum"), | |
| ("canlex/server.py", "_superseded_specs", "the registry's subsequent-history entries, else SUPERSEDED_CITES"), | |
| ("canlex/server.py", "_element_readings", "each limb of an element-split code, run through step 2"), | |
| ("canlex/server.py", "_element_reading_lines", "the EACH READING block: no limb is chosen"), | |
| ("canlex/commentary.py", "row_tag", "the provenance tag of a state row in the 'all' index"), | |
| # statute codes: the element split, shared designators, the forms read | |
| # alike (track A fixer, 2026-09-15) | |
| ("canlex/screening.py", "_element_pick", "which limb of an element-split code the facts answer"), | |
| ("canlex/screening.py", "_CODE_TABLE_TEXAS_PC", "the code table's Texas 'PC' keys"), | |
| ("canlex/screening.py", "_CODE_TABLE_PREFIX_STATES", "the state each code-table designator is read as"), | |
| ("canlex/screening.py", "_code_table_jurisdiction", "the state a code-table key is read as"), | |
| ("canlex/screening.py", "_UCMJ_FORMS", "'UCMJ 111' and '10 USC 911' read as UCMJ Art. 111"), | |
| ("canlex/screening.py", "_MV_ACT_FORMS", "the Indian Motor Vehicles Act forms read as one key"), | |
| ("canlex/screening.py", "_code_forms", "where the UCMJ and Motor Vehicles Act forms are read"), | |
| ("canlex/screening.py", "_CODE_COMMA", "a comma before 'UCMJ' or 'court-martial' separates no offence"), | |
| # read next, the policy caveat and held content (roadmap T3.6; wave 2 | |
| # verifier -- track A step A13, 2026-09-15, HELD) | |
| ("canlex/readnext.py", "HEADING", "the READ NEXT heading"), | |
| ("canlex/readnext.py", "COMPACT_PREFIX", "the memo's read-next label"), | |
| ("canlex/readnext.py", "ATIP_FLAG", "the flag on an unofficial ATIP copy of a withdrawn chapter"), | |
| ("canlex/readnext.py", "ATIP_SHORT", "the short ATIP flag on the memo's read-next line"), | |
| ("canlex/readnext.py", "UNRESOLVED", "a read-next key the corpus lacks is said, never dropped"), | |
| ("canlex/readnext.py", "label", "how a corpus source is named"), | |
| ("canlex/readnext.py", "flags", "the status shown with a source (ATIP copy, archived, date)"), | |
| ("canlex/readnext.py", "resolved", "official sources before unofficial ATIP copies"), | |
| ("canlex/readnext.py", "lines", "the READ NEXT block"), | |
| ("canlex/readnext.py", "compact_line", "the memo's read-next line"), | |
| ("canlex/readnext.py", "with_fallback", "when a pairing shows the framework's read-next"), | |
| ("canlex/commentary.py", "POLICY_CAVEAT_HEAD", "the policy caveat is not settled; both readings"), | |
| ("canlex/commentary.py", "policy_caveat_lines", "the policy caveat and its two readings"), | |
| ("canlex/server.py", "_pairing_read_next_items", "which read-next items a step-2 answer shows"), | |
| ("canlex/server.py", "HELD_PREFIX", "the 'HELD FOR REVIEW -- not in this deployment' label"), | |
| ("canlex/server.py", "HELD_WHAT", "how held content is named"), | |
| ("canlex/server.py", "HELD_TODO", "what the officer does when the held content is absent"), | |
| ("canlex/server.py", "HELD_ALIAS", "a statute-code reading held for review"), | |
| ("canlex/server.py", "_held_note", "the held-content line"), | |
| ("canlex/server.py", "_held_disposition", "when a disposition's words reach held content first"), | |
| ("canlex/server.py", "_held_pairing", "when an offence's words reach held content first"), | |
| ("canlex/server.py", "_held_alias", "when a statute code is read only by a held alias"), | |
| # the pure chain, the decisive facts, the confidence block, the result | |
| # card and completion IF SERVED AS IMPOSED (roadmap T4.1, T4.2, T4.7, | |
| # T4.5 -- track A step A14, 2026-09-15, HELD) | |
| ("canlex/server.py", "_chain_entry", "the chain: which facts each step reads, match -> resolve -> assess"), | |
| ("canlex/server.py", "_chain_step3", "step 3 as data: which footings and clocks are assessed"), | |
| ("canlex/server.py", "_record_date_warnings", "the conviction and sentence date checks"), | |
| ("canlex/server.py", "_allegation_paras", "which IRPA paragraphs the allegation names"), | |
| ("canlex/server.py", "_NOT_SETTLED_BRANCHES", "the branches read as not settled"), | |
| ("canlex/server.py", "_rehab_signature", "what counts as a change in the rehabilitation answer"), | |
| ("canlex/server.py", "_paragraph_signature", "what counts as a change in the allegation"), | |
| ("canlex/server.py", "_chain_signature", "what a decisive fact must change"), | |
| ("canlex/server.py", "_reading_signature", "the answer one reading of an open result gives"), | |
| ("canlex/server.py", "_period_date", "the date a re-run uses for a period of commission"), | |
| ("canlex/server.py", "DECISIVE_HEAD", "the THE ANSWER CHANGES WITH THESE FACTS heading"), | |
| ("canlex/server.py", "DECISIVE_NONE", "the line when no missing fact changes the answer"), | |
| ("canlex/server.py", "DECISIVE_SUFFIX", "the ASSUMED line a decisive fact replaces"), | |
| ("canlex/server.py", "DECISIVE_QUESTIONS", "the questions the decisive facts ask"), | |
| ("canlex/server.py", "DECISIVE_ASSUMED", "which assumed code each re-run replaces"), | |
| ("canlex/server.py", "DECISIVE_RELIEF", "the relief the chain tries (pardon, expungement)"), | |
| ("canlex/server.py", "DECISIVE_AGES", "the ages the chain tries"), | |
| ("canlex/server.py", "_DECISIVE_BRANCH", "how each branch is named in the block and the card"), | |
| ("canlex/server.py", "_DECISIVE_REHAB", "how a rehabilitation answer with no status is named"), | |
| ("canlex/server.py", "_decisive_keep", "only facts whose values change the answer are kept"), | |
| ("canlex/server.py", "_need_trials", "an open result's questions, each answered with every option"), | |
| ("canlex/server.py", "_record_decisive", "which missing facts canlex_screen_record re-runs"), | |
| ("canlex/server.py", "_canada_decisive", "which missing facts a Canadian record re-runs"), | |
| ("canlex/server.py", "_decisive_answer", "one value's answer as printed"), | |
| ("canlex/server.py", "_decisive_lines", "the decisive-facts block"), | |
| ("canlex/server.py", "_chain_confidence", "the confidence block of canlex_screen_record"), | |
| ("canlex/server.py", "_canada_confidence", "the confidence block of a Canadian record"), | |
| ("canlex/server.py", "_transborder_confidence", "the confidence block of canlex_transborder"), | |
| ("canlex/server.py", "_projection_lines", | |
| "the IF SERVED EXACTLY AS IMPOSED footing: no verdict, the margin flag"), | |
| ("canlex/server.py", "CARD_FULL", "the card's pointer to the full memo"), | |
| ("canlex/server.py", "CARD_NOT_SETTLED_ACTION", "the card's action when the answer is open"), | |
| ("canlex/server.py", "CARD_NO_GROUND_ACTION", "the card's action when nothing is engaged"), | |
| ("canlex/server.py", "CARD_DEEMED_ACTION", "the card's action when deemed rehabilitated"), | |
| ("canlex/server.py", "CARD_REPORT_FN", "the card's action for a foreign national (s. 44(1), TRP, IRPR s. 42)"), | |
| ("canlex/server.py", "CARD_REPORT_PR", "the card's action for a permanent resident (s. 44(2))"), | |
| ("canlex/server.py", "CARD_REHAB_OPEN", "the card's rehabilitation-on-application clause"), | |
| ("canlex/server.py", "_card_action", "which action the card names"), | |
| ("canlex/server.py", "_card_changes", "the card's decisive-facts line"), | |
| ("canlex/server.py", "_card_dates", "the card's dates line (a projection is not a finding)"), | |
| ("canlex/server.py", "_record_card", "the result card of canlex_screen_record"), | |
| ("canlex/server.py", "_canada_card", "the result card of a Canadian record"), | |
| ("canlex/server.py", "_history_rows", | |
| "canlex_screen_history's per-entry chain (moved from the tool; conviction date as a Tran bound)"), | |
| # the verification fixes of 2026-09-22 (F1: LEGAL-7/8/9, BI-4; HELD): the s. 17 clock | |
| ("canlex/server.py", "_S17_QUESTION_WORDS", | |
| "why a later conviction may not be a s. 17 subsequent offence, as the memo names it"), | |
| ("canlex/server.py", "_s17_open_question", | |
| "which later convictions get the second s. 17 reading (no federal equivalent, unpaired, " | |
| "a conviction in Canada not shown under an Act of Parliament)"), | |
| ("canlex/server.py", "_s17_moved_clause", | |
| "'grounds no inadmissibility itself' only for a no-federal-equivalent conviction"), | |
| # the G3 fixes of 2026-09-22 (PREROG-2/3, AI-5, S17-2; HELD) | |
| ("canlex/server.py", "S17_CONDITIONAL_PARDON", | |
| "a conditional prerogative pardon counted as a conviction on the s. 17 clock (CC s. 748(2)/(3))"), | |
| ("canlex/server.py", "_s17_conditional", "when that sentence is printed"), | |
| ("canlex/server.py", "_s17_open_why", "why an entry's conviction status is open, as the s. 17 lines say"), | |
| # the H3 fixes of 2026-09-22 (S17-INT-4/5/6/7, REG-7; HELD) | |
| ("canlex/server.py", "_s17_open_lead", | |
| "how the s. 17 lines name an open entry (a youth disposition's conviction is settled; " | |
| "s. 17's Young Offenders Act exception is what is open)"), | |
| ("canlex/server.py", "CARD_OPEN_FACT_NOTE", | |
| "the Dates-line note when an open fact cannot remove the s. 44(1) report"), | |
| ("canlex/server.py", "CARD_DEEMED_FOREIGN_ONLY", | |
| "IRPR s. 18(2) reaches the foreign matters only (IRPA s. 36(3)(b) for a conviction in Canada)"), | |
| ("canlex/server.py", "_card_deemed_open", | |
| "whether deemed rehabilitation holds, or could hold today, on some reading"), | |
| ("canlex/server.py", "_CARD_GROUND_OPEN_FACTS", | |
| "the decisive facts that can take a ground away (the card cannot state the report)"), | |
| ("canlex/server.py", "_card_report_holds", | |
| "whether a s. 44(1) report stands on every reading although a fact is open"), | |
| ("canlex/server.py", "_s17_reading_text", | |
| "the NOT SETTLED sentence for each other s. 17 reading (one per open entry)"), | |
| ("canlex/server.py", "_s17_missing", "what the card asks when an s. 17 date is missing"), | |
| ("canlex/server.py", "_canada_open_question", | |
| "what the record card asks when an open conviction in Canada is the only possible ground"), | |
| ("canlex/server.py", "_history_answer", | |
| "canlex_screen_history's record step: count, s. 17 clock, deeming (moved from the tool)"), | |
| ("canlex/server.py", "_history_signature", "what a decisive fact must change on a whole record"), | |
| ("canlex/server.py", "_history_decisive_answer", "one value's answer on a whole record, as printed"), | |
| ("canlex/server.py", "_history_decisive", "which missing facts canlex_screen_history re-runs"), | |
| ("canlex/server.py", "_history_confidence", "the confidence block of canlex_screen_history"), | |
| ("canlex/server.py", "_history_card", "the result card of canlex_screen_history"), | |
| ("canlex/screening.py", "confidence_block", "the shared confidence block's shape"), | |
| ("canlex/screening.py", "step1_confidence", "what step 1 rests on: entry status, row verification"), | |
| ("canlex/screening.py", "authorities_in_corpus", "how many cited decisions are in the corpus"), | |
| ("canlex/screening.py", "maximum_source", "where the maximum applied comes from"), | |
| ("canlex/screening.py", "step2_confidence", "what step 2 rests on"), | |
| ("canlex/screening.py", "step3_confidence", "the s. 18(2) limbs left unknown"), | |
| ("canlex/screening.py", "GUIDE_5312_CHUNK", "the Guide 5312 chunk the projection cites"), | |
| ("canlex/screening.py", "GUIDE_5312_RULES", "Guide 5312's five-year rules, verbatim"), | |
| ("canlex/screening.py", "GUIDE_5312_COURT", "Guide 5312's criminal-court driving prohibition, verbatim"), | |
| ("canlex/screening.py", "IF_SERVED_LABEL", "the IF SERVED EXACTLY AS IMPOSED label (not a bound)"), | |
| ("canlex/screening.py", "MARGIN_MONTHS", "the margin a projected date is flagged within"), | |
| ("canlex/screening.py", "_SENT_FINE", "which words read as a fine"), | |
| ("canlex/screening.py", "_SENT_DRIVING", "which words read as a driving prohibition"), | |
| ("canlex/screening.py", "_SENT_PROBATION", "which words read as probation"), | |
| ("canlex/screening.py", "_SENT_PAROLE", "which words read as parole"), | |
| ("canlex/screening.py", "_SENT_JAIL", "which words read as a term of imprisonment"), | |
| ("canlex/screening.py", "_SENT_SUSP", "which words read as a suspended term"), | |
| ("canlex/screening.py", "_SENT_SUSPENDED_SENTENCE", "'suspended sentence' alone"), | |
| ("canlex/screening.py", "_SENT_BARE", "'N SUSP' after a term: the part suspended"), | |
| ("canlex/screening.py", "_SENT_FILLER", "words a sentence part may carry that change nothing"), | |
| ("canlex/screening.py", "_sentence_part", "one part of a sentence read, or not read"), | |
| ("canlex/screening.py", "parse_sentence", "a written sentence read into parts"), | |
| ("canlex/screening.py", "projected_completion", | |
| "completion if served as imposed: which part ends last; what blocks it (a fine)"), | |
| ("canlex/screening.py", "add_months", "N months on (Interpretation Act s. 28(c))"), | |
| ("canlex/screening.py", "_add", "a term added to the sentence date"), | |
| ("canlex/screening.py", "within_margin", "the margin test"), | |
| # the DRAFT s. 44(1) narrative skeleton, EN and FR, and the typed-entry | |
| # screening tool (roadmap T4.6, T4.4 -- track A step A15, 2026-09-15, HELD) | |
| ("canlex/narrative.py", "HEAD", "the narrative skeleton's heading"), | |
| ("canlex/narrative.py", "INTRO", "what the skeleton is and what its brackets mean (ENF 5 s. 13.1)"), | |
| ("canlex/narrative.py", "MULTI", "one allegation per report (ENF 5 s. 13.4, quoted)"), | |
| ("canlex/narrative.py", "HELD_NOTE", "report provisions held: the provision and maximum stay CONFIRM"), | |
| ("canlex/narrative.py", "EN_FRAME", "ENF 5 s. 13.1's English narrative frames, verbatim"), | |
| ("canlex/narrative.py", "FR_FRAME", "ENF 5 s. 13.1's French narrative frames, verbatim"), | |
| ("canlex/narrative.py", "FR_ALLEGATION", "the IRPA s. 36 paragraphs in French, verbatim"), | |
| ("canlex/narrative.py", "FR_PARAGRAPH", "how each IRPA paragraph is cited in French"), | |
| ("canlex/narrative.py", "IRPA_EN", "the Act the allegation names"), | |
| ("canlex/narrative.py", "IRPA_FR", "the Act the French allegation names"), | |
| ("canlex/narrative.py", "EN_ACT", "the act-branch narrative (drafted, not ENF 5 wording)"), | |
| ("canlex/narrative.py", "FR_ACT", "the French act-branch narrative (drafted)"), | |
| ("canlex/narrative.py", "EN_TWO", "the two-offence narrative (drafted, not ENF 5 wording)"), | |
| ("canlex/narrative.py", "FR_TWO", "the French two-offence narrative (drafted)"), | |
| ("canlex/narrative.py", "TEXT", "every label and CONFIRM note of the skeleton, EN and FR"), | |
| ("canlex/narrative.py", "_BOUND_WHAT", "how a Tran bound is named in the maximum's basis"), | |
| ("canlex/narrative.py", "NO_SKELETON", "why no skeleton is drafted for a matter"), | |
| ("canlex/narrative.py", "_EN_TERM", "which English statute words are read as the maximum term"), | |
| ("canlex/narrative.py", "_FR_TERM", "which French statute words are read as the maximum term"), | |
| ("canlex/narrative.py", "term_words", "the statute's own words for the maximum, in each language (one rule)"), | |
| ("canlex/narrative.py", "term_years", "the years those words state"), | |
| ("canlex/narrative.py", "fr_cite", "the French citation's preposition"), | |
| ("canlex/narrative.py", "choose", | |
| "which report provision is proposed: the limb, the maximum at commission, history, open"), | |
| ("canlex/narrative.py", "provision_text", "the provision bracket"), | |
| ("canlex/narrative.py", "maximum_text", "the maximum bracket: statute words, history, reading"), | |
| ("canlex/narrative.py", "_basis", "how the maximum's basis is named (offence date, bound, current)"), | |
| ("canlex/narrative.py", "_years", "how a maximum is written, per language"), | |
| ("canlex/narrative.py", "_date_text", "the date bracket: which date ENF 5 asks for is left open"), | |
| ("canlex/narrative.py", "_place_text", "the place bracket"), | |
| ("canlex/narrative.py", "_allegation_line", "the allegation sentence with the paragraph's words"), | |
| ("canlex/narrative.py", "_narrative", "the narrative sentences in ENF 5's form"), | |
| ("canlex/narrative.py", "_status_line", "the status line: FN verbatim, PR unsourced, status assumed"), | |
| ("canlex/narrative.py", "render", "the skeleton block"), | |
| ("canlex/narrative.py", "result_field", "CANLEX_RESULT 'narrative'"), | |
| ("canlex/server.py", "_NARRATIVE_WHY", "why no skeleton is drafted for an open branch"), | |
| ("canlex/server.py", "_narrative_place", "the place the skeleton names"), | |
| ("canlex/server.py", "_narrative_reading", "what the provision choice reads from a step-2 result"), | |
| ("canlex/server.py", "_narrative_allegations", | |
| "one allegation per paragraph and per open reading; the no-skeleton notes"), | |
| ("canlex/server.py", "_narrative_held", "when the report provisions are held"), | |
| ("canlex/server.py", "_history_narrative", | |
| "a record's allegations: per entry, the two-offence limb, Canadian entries"), | |
| ("canlex/server.py", "_NO_RELIEF", "which words confirm there is no relief"), | |
| ("canlex/server.py", "ScreenEntry", "the entry keys canlex_screen accepts and how each is described"), | |
| ("canlex/server.py", "_HistoryEntry", | |
| "canlex_screen_history's entry: ScreenEntry's keys and checks, unknown keys ignored " | |
| "(code audit 2026-09-21)"), | |
| ("canlex/server.py", "canlex_screen", "the typed-entry screening tool: relief, the card by default"), | |
| ("canlex/server.py", "_screen_entries", | |
| "the record pipeline canlex_screen_history and canlex_screen share (moved from the tool): " | |
| "relief, the assumed list, the skeleton"), | |
| # wave-4 verifier (2026-09-15): changed this wave and not reached by a | |
| # registered name until now | |
| ("canlex/server.py", "GROUNDING_NOTE", | |
| "the answering instructions every search result carries: grounding, citing, and the " | |
| "routing to related provisions"), | |
| ("canlex/server.py", "canlex_list_acts", "the corpus listing tool, with its canlex_case routing text"), | |
| ("canlex/server.py", "_publisher", "which publisher label a listed source gets"), | |
| ("canlex/commentary.py", "build", | |
| "renders the curated commentary and the registry pointers into the corpus the tools cite"), | |
| ("canlex/screening.py", "_SPLIT", | |
| "which separators split a record's words into offences (a code comma is not one) -- " | |
| "decides the offence matched"), | |
| # wave-4 fixer: relief on a conviction in Canada, the held card line, the | |
| # open-readings note, provisions not in force at commission | |
| ("canlex/server.py", "_CANADA_RELIEF_WORDS", | |
| "Board or CRA words in a relief key that names no record suspension: the flag says so " | |
| "(G2: they no longer admit a relief, REL-12)"), | |
| # G2 (2026-09-22): the NOT SETTLED relief readings on the card, the relief read with the | |
| # entry's dates, and a record suspension a later Canadian conviction may have ended | |
| ("canlex/server.py", "CANADA_PARDON_AFTER_2012_QUESTION", | |
| "the card question for a 'pardon' dated after 2012-03-12 (AI-4)"), | |
| ("canlex/server.py", "CANADA_LATER_CONVICTION_QUESTION", | |
| "the card question for a record suspension a later conviction may have ended (CRA ss. 7.2(a), 7(a))"), | |
| # H2 (2026-09-22): the card questions and conditional lines of the three readings it opens | |
| ("canlex/server.py", "CANADA_PARDON_UNDATED_QUESTION", | |
| "the card question for an UNDATED pardon (G2-REL-A)"), | |
| ("canlex/server.py", "CANADA_BEFORE_CRA_QUESTION", | |
| "the card question for a relief dated before the Criminal Records Act as the corpus carries it (G2-REL-B)"), | |
| ("canlex/server.py", "CANADA_RELIEF_UNDATED_QUESTION", | |
| "the card question for an undated record suspension on a dated entry (CRA s. 4(1); G2-REL-E)"), | |
| ("canlex/server.py", "_RELIEF_OPEN_LINES", | |
| "the conditional lines of a NOT SETTLED reading of a relief that is not only a pardon"), | |
| ("canlex/server.py", "CANADA_CARD_LATER_CONVICTION_ACTION", | |
| "the card action for it: a report if it ceased or was revoked, no ground (s. 36(3)(b)) if not"), | |
| ("canlex/server.py", "_PARDON_OPEN_LINES", "the conditional lines of a pardon's NOT SETTLED reading"), | |
| ("canlex/server.py", "_CANADA_RELIEF_OPEN", | |
| "each NOT SETTLED relief reading's question, action and conditional lines"), | |
| ("canlex/server.py", "CANADA_RELIEF_OPEN_NOTE", | |
| "the card notes for a pardon after 2012-03-12 and a record suspension a later conviction may have ended"), | |
| ("canlex/server.py", "_canada_card_relief_notes", | |
| "which card note each Canadian entry's relief prints (prerogative, after 2012, later conviction, key)"), | |
| ("canlex/server.py", "_canada_entry_disposition", | |
| "a Canadian entry's relief read with its own words, relief key, dates and later convictions"), | |
| ("canlex/server.py", "_canada_later_convictions", | |
| "which other Canadian entries may be later convictions that ended a record suspension (REL-5)"), | |
| ("canlex/server.py", "CANADA_RELIEF_NOT_APPLIED", | |
| "the flag when relief is not applied to a conviction in Canada"), | |
| ("canlex/server.py", "CANADA_PREROGATIVE_NOTE", | |
| "the card note for a prerogative pardon on a conviction in Canada: NOT SETTLED (LEGAL-6, 2026-09-22)"), | |
| ("canlex/server.py", "_canada_relief", | |
| "a conviction in Canada reads only its own record suspension, never the record-level relief"), | |
| ("canlex/server.py", "_is_canada_entry", "which entry is a conviction in Canada (relief routing)"), | |
| ("canlex/server.py", "CARD_HELD", "the record card's HELD FOR REVIEW line"), | |
| ("canlex/server.py", "_whole_answer_only", | |
| "which re-runs compared only the whole answer on a result not settled at step 2"), | |
| ("canlex/server.py", "DECISIVE_OPEN_NOTE", | |
| "the note that status and relief were not compared reading by reading"), | |
| ("canlex/narrative.py", "in_force_at", | |
| "a report provision not in force at commission is never proposed"), | |
| # the act branch on step 1's footing: acquittal readings, ENF 2 s. 3 caveats, | |
| # the Rodriguez Anzola caveat (disposition roadmap T1.5, T1.10; critic, 2026-09-16) | |
| ("canlex/commentary.py", "CAVEAT_CLASSES", | |
| "which branch each curated caveat id bears on; after an acquittal no act-branch draft"), | |
| ("canlex/commentary.py", "AUTHORITY_CAVEAT_HEAD", | |
| "a case-law caveat on the conviction branch is not settled; both readings"), | |
| ("canlex/commentary.py", "caveat_class", "a caveat's class ('act' by default)"), | |
| ("canlex/commentary.py", "caveat_in_play", "which caveats print on which step-1 footing"), | |
| ("canlex/screening.py", "programme_running", | |
| "when the record says a programme still runs (ENF 2 s. 3: the trial has not concluded)"), | |
| ("canlex/screening.py", "duress_words", "when the record says the plea or the act was coerced"), | |
| ("canlex/server.py", "STEP1_FOOTING_LABEL", "the footing named on the card's step-1 line"), | |
| ("canlex/server.py", "ENF2_RUNNING_LINE", | |
| "ENF 2 s. 3's concluded-trial condition for a programme still running"), | |
| ("canlex/server.py", "ACT_NOT_SETTLED_DRAFT", | |
| "the allegation line after an acquittal: NOT SETTLED, no act-branch allegation"), | |
| ("canlex/server.py", "ACT_NOT_SETTLED_NEXT", | |
| "no removal path or s. 44 note on the act footing alone after an acquittal"), | |
| ("canlex/server.py", "ACT_NOT_SETTLED_WHY", "the card's reason an acquittal answer is not settled"), | |
| ("canlex/server.py", "BOTTOM_LINE_ACT_NOT_SETTLED", | |
| "the bottom line after an acquittal: never 'the act branch remains'"), | |
| ("canlex/server.py", "CAVEAT_BOTTOM_LINE", "the bottom-line clause of each caveat class"), | |
| ("canlex/server.py", "CAVEAT_NOT_IN_PLAY", | |
| "why an entry's caveat is not printed on the record's footing"), | |
| ("canlex/server.py", "CARD_POLICY_CAVEAT", "the card Action's POLICY CAVEAT clause (T1.5 and T1.10)"), | |
| ("canlex/server.py", "CARD_ACT_NOT_SETTLED_ACTION", | |
| "the card's action after an acquittal: no act-branch report"), | |
| ("canlex/server.py", "CARD_RUNNING", "the card's running-programme clause"), | |
| ("canlex/server.py", "CARD_DURESS", "the card's coercion clause (Rodriguez Anzola)"), | |
| ("canlex/server.py", "CARD_HISTORY_ACT_OPEN", | |
| "the record card's clause for entries whose act branch is not settled"), | |
| ("canlex/server.py", "HISTORY_ACT_COUNTED", | |
| "the record-level count reads an acquitted entry as a committed act: one reading"), | |
| ("canlex/server.py", "HISTORY_CAVEAT_WHERE", "where a record's caveat readings are printed"), | |
| ("canlex/server.py", "IF_ACT_USED", | |
| "the TRP, rehabilitation and step-3 lines are conditional after an acquittal"), | |
| ("canlex/server.py", "_footing", "the verdict-to-footing rule"), | |
| ("canlex/server.py", "_caveat_label", "the short source label a caveat clause names"), | |
| ("canlex/server.py", "_act_branch", | |
| "how step 1 leaves the act branch: not in play, not settled, running, caveat, open"), | |
| ("canlex/server.py", "_act_not_settled", "when no act-branch allegation is drafted"), | |
| ("canlex/server.py", "_caveat_block", "which caveat lines step 1 prints on the record's footing"), | |
| ("canlex/server.py", "_caveat_bottom_lines", "which caveat clauses the bottom line prints"), | |
| ("canlex/server.py", "_card_step1_clause", "the card's step-1 footing, running and coercion clauses"), | |
| ("canlex/server.py", "_if_act_used", "when the conditional prefix applies"), | |
| ("canlex/server.py", "_history_step1_clause", "the record card's per-entry step-1 clause"), | |
| ("canlex/server.py", "_history_step1_result", "each entry's step 1 in the record's CANLEX_RESULT"), | |
| # row selection by mechanism and the step-1 headline (disposition roadmap | |
| # T1.11, T6.1; 2026-09-16) | |
| ("canlex/server.py", "_select_row", | |
| "which state row governs: covers among same-state rows, other programmes routed to their " | |
| "entry or verdict, not_for, a mechanism mismatch, a vacatur ground not stated"), | |
| ("canlex/server.py", "_readings_agree", | |
| "a mismatch is not raised when the entry's reading and the row share one footing"), | |
| ("canlex/server.py", "_row_words", | |
| "the record words row selection reads: refused segments and negated words dropped"), | |
| ("canlex/server.py", "_resolve_step1", | |
| "step 1 on the matched entries: routed entry, floored verdict, then the question flags"), | |
| ("canlex/server.py", "ROW_MISMATCH_LINES", "the ROW NOT APPLIED wording of each row-selection outcome"), | |
| ("canlex/server.py", "ROW_MISMATCH_CARD", "the card clause when a state row is not applied"), | |
| ("canlex/server.py", "ROW_MISMATCH_TIER", "the memo's step-1 tier when a state row is not applied"), | |
| ("canlex/server.py", "ROW_PROGRAM_NOTE", "how an other-programme note is appended"), | |
| ("canlex/server.py", "_row_mismatch_line", "which ROW NOT APPLIED line or card clause prints"), | |
| ("canlex/server.py", "_row_mismatch_result", "the row_mismatch field of CANLEX_RESULT"), | |
| ("canlex/server.py", "STEP1_HEADLINE", "canlex_us_disposition's first line: the governing verdict"), | |
| ("canlex/server.py", "STEP1_GOVERNS", "what governs step 1: a row, an entry, the wording, a routing"), | |
| ("canlex/server.py", "STEP1_CONSEQUENCE", "the footing a step-1 verdict puts the record on"), | |
| ("canlex/server.py", "STEP1_CONSEQUENCE_ACT", | |
| "the act-branch clause of the consequence (acquittal, ENF 2 caveat, running programme)"), | |
| ("canlex/server.py", "STEP1_DECIDES", "the WHAT DECIDES IT line"), | |
| ("canlex/server.py", "STEP1_DECIDES_TEXT", "what decides step 1 in each case"), | |
| ("canlex/server.py", "ENTRY_LEVEL_VERDICT", "the entry verdict, demoted and labelled"), | |
| ("canlex/server.py", "OTHER_STATES_COUNT", "the other states as a count when a state is given"), | |
| ("canlex/server.py", "ROW_NOT_APPLIED_HEAD", "the heading of a state row that is not applied"), | |
| ("canlex/server.py", "FRAMEWORK_POINTER", | |
| "the conviction framework in brief: Burgon, Barnett, Saini para 24, s. 33 and Mugesera " | |
| "para 114, s. 36(3)(d)"), | |
| ("canlex/server.py", "_step1_headline", "the STEP 1 FOR THIS RECORD, CONSEQUENCE and WHAT DECIDES IT lines"), | |
| ("canlex/server.py", "_deciding_sentence", "which sentence of a curated text is shown as deciding"), | |
| # the review of batch 1 (fixer, 2026-09-16): later judgments, refused offers and | |
| # transfers, split counts by offence, penal orders not final, the place floor, | |
| # carried programme caveats, both-footing cards | |
| ("canlex/screening.py", "_negated_at", "a negation right before a phrase ('not adjudicated guilty')"), | |
| ("canlex/screening.py", "_adjudication_after", | |
| "which later words are an adjudication of guilt after a programme revocation (never negated; a " | |
| "finding of guilt only after the programme itself was revoked, struck or terminated)"), | |
| ("canlex/screening.py", "_later_judgment", | |
| "a later conviction the record reports after another disposition is read (never another charge)"), | |
| ("canlex/screening.py", "_later_outcome", | |
| "whether the words after a trial set or a new trial report an outcome"), | |
| ("canlex/screening.py", "_split_counts", | |
| "the split-counts question: count words, a plea to a count, an unreported count, outcomes naming " | |
| "different offences"), | |
| ("canlex/screening.py", "_penal_order_open", | |
| "a penal order the record does not show final (an objection, a setting-aside, an acquittal)"), | |
| ("canlex/server.py", "_with_program_caveats", | |
| "the routed entry carries the policy caveats a programme names (CPL 160.50: the acquittal readings)"), | |
| ("canlex/server.py", "ROW_PROGRAM_QUESTION", "a programme's deciding question on the ROW NOT APPLIED line"), | |
| ("canlex/server.py", "PLACE_NOT_NAMED_WHERE", "the places a gate lists, said with the place flag"), | |
| ("canlex/server.py", "CARD_BOTH_ACT_NOT_SETTLED_ACTION", | |
| "the card action on both footings after an acquittal caveat: the conditional conviction report"), | |
| ("canlex/server.py", "CARD_BOTH_ACT_NOT_SETTLED_WHY", "the card result on both footings with the caveat"), | |
| ("canlex/server.py", "CARD_BOTH_QUESTION", "the card's fallback deciding question"), | |
| ("canlex/server.py", "CARD_ROUTED_ACT_NOT_SETTLED_ACTION", | |
| "the card action for a routed record carrying the acquittal readings (was it an acquittal?)"), | |
| ("canlex/server.py", "CARD_ROUTED_ACT_NOT_SETTLED_WHY", "the card result for that routed record"), | |
| ("canlex/server.py", "CARD_HISTORY_COUNT_ONE_READING", | |
| "the history card: the count reads an acquitted entry as a committed act on one reading only"), | |
| # the review of batch 1, round 2 (fixer, 2026-09-16): refusals bound to their | |
| # object, a later conviction on another matter or a question, trial-set and | |
| # new-trial outcomes, transfers that took effect, judgments that are not guilt, | |
| # dismissals of what is not a charge, penal orders shown final, relief ordering, | |
| # place-gated names, the CPL state inference, question cards | |
| ("canlex/screening.py", "_REFUSAL_BREAK", "where the refused-relief pass breaks a record (brackets, a slash)"), | |
| ("canlex/screening.py", "_refused_spans", | |
| "a refusal cuts only the relief, programme or offer it binds to (never a test, a charge or advice)"), | |
| ("canlex/screening.py", "_adjudication_ok", | |
| "a later judgment that is not this programme's: another person or matter, costs, a named offence"), | |
| ("canlex/screening.py", "_PRIOR_LABEL", "a 'PRIOR:' label: the judgment after it is earlier in time"), | |
| ("canlex/screening.py", "_deferral_count_split", "a deferral on one count and an adjudication on another"), | |
| ("canlex/screening.py", "deferral_count_split", "the same, on the record's words, for the server"), | |
| ("canlex/screening.py", "_adult_court", | |
| "a transfer to adult court that took effect, or not; the case returned to juvenile court"), | |
| ("canlex/screening.py", "_dismissal_after", | |
| "a dismissal after conviction words: another named charge (split counts) or the question"), | |
| ("canlex/screening.py", "_penal_order_state", | |
| "a penal order shown final, open, or objected to with a stated outcome (acquittal, conviction)"), | |
| ("canlex/screening.py", "_new_trial_skip", | |
| "a new-trial phrase that orders no new trial: negated, refused, another person's, undone"), | |
| ("canlex/screening.py", "_BARE_GUILTY", "a bare GUILTY segment read as an adjudication after a revocation"), | |
| ("canlex/server.py", "_FOREIGN_WORD_ACRONYMS", "acronym names never matched for a non-US record ('ALS')"), | |
| ("canlex/server.py", "_RELIEF_ENTRIES", "the relief entries, by id, for ranking on any dataset"), | |
| ("canlex/server.py", "_is_relief_entry", "which entries rank as relief"), | |
| ("canlex/server.py", "_acquittal_first", "an acquittal ranks ahead of a dismissal the words also reach"), | |
| ("canlex/server.py", "_GATED_OBJECT", "the object nouns a place-gated verdict name may not follow"), | |
| ("canlex/server.py", "_gated_object_before", | |
| "a place-gated name that describes an object ('ALLEGATION NOT PROVEN') is not a verdict"), | |
| ("canlex/server.py", "_SPLIT_DEFERRAL_ENTRIES", | |
| "the deferral entries the split-counts question answers for when a deferred count is split"), | |
| ("canlex/server.py", "_CPL_CITE", "a New York CPL cite in the record's words"), | |
| ("canlex/server.py", "STATE_INFERRED_CPL", "the note that the state was inferred from a CPL cite"), | |
| ("canlex/server.py", "CARD_QUESTION_RESULT", "the card result on both footings with a wording question"), | |
| ("canlex/server.py", "CARD_QUESTION_ACTION", | |
| "the card action on both footings with a wording question: each branch's report conditionally"), | |
| ("canlex/server.py", "CARD_QUESTION_ACT_CAVEAT", "the act side's policy caveat in that action"), | |
| ("canlex/server.py", "CARD_QUESTION_ACT_OPEN", "the act side NOT SETTLED after an acquittal in that action"), | |
| ("canlex/server.py", "CARD_QUESTION_NO_ACT", "the act side with no act-branch ground in that action"), | |
| ("canlex/server.py", "CARD_HISTORY_QUESTION", "the history card's clause for entries a wording question leaves open"), | |
| ("canlex/server.py", "CARD_HISTORY_QUESTION_ACTION", "the history card action when only such entries engage"), | |
| ("canlex/server.py", "CARD_HISTORY_QUESTION_CLAUSE", "one such entry's conditional clause"), | |
| ("canlex/server.py", "REVERSAL_QUESTION", | |
| "a reversal on appeal whose words state no outcome: acquittal, dismissal or new trial?"), | |
| ("canlex/server.py", "_REVERSAL_OUTCOME_WORDS", "the words that state a reversal's outcome"), | |
| ("canlex/server.py", "_step1_question", "the deciding step-1 question the cards name"), | |
| ("canlex/server.py", "_question_act_text", "the non-conviction side of a conditional card action"), | |
| # the review of batch 1, round 3 (fixer, 2026-09-16): relief after a dismissal, the | |
| # verb kept for an adult transfer, procedural words no disposal, no-charge names | |
| # beside a conviction, offers not completed, count-scoped new trials and trial | |
| # settings, supervision violations only, labelled splits, findings on violations and | |
| # enhancements, deferred sentences across field breaks, penal orders not shown final, | |
| # places noted, routed and unknown card wording, held moves | |
| ("canlex/screening.py", "_weak_back", | |
| "a bare 'INDICTED' or 'LATER CHARGED' brings the matter back only with no other offence named"), | |
| ("canlex/screening.py", "_MAJOR_BREAK", "where an outcome-and-offence segment ends (';', ',', '|')"), | |
| ("canlex/screening.py", "_offence_label", | |
| "a segment that is only an offence label joined to a dismissal (split counts)"), | |
| ("canlex/screening.py", "_cut_finding_labels", | |
| "a not-guilty finding on a violation, enhancement or specification is not the charge's verdict"), | |
| ("canlex/screening.py", "_other_case_conviction", | |
| "a conviction on another charge or case given as a dismissal's reason is not this charge's"), | |
| ("canlex/server.py", "_NO_CHARGE_NAMES", "the no-charge names that yield to a conviction elsewhere"), | |
| ("canlex/server.py", "_NO_CHARGE_OBJECT", "the objects that put a no-charge phrase on another matter"), | |
| ("canlex/server.py", "_NO_CHARGE_FILE_OBJECT", "a class of charge declined ('DECLINED TO FILE FELONY')"), | |
| ("canlex/server.py", "_NO_CHARGE_OBJECT_PROCEDURAL", | |
| "a no-charge phrase's procedural object ('REQUIRED BY PROBATION') is never a charge's outcome"), | |
| ("canlex/server.py", "_no_charge_yields", | |
| "a no-charge name never answers a record with conviction words in another segment"), | |
| ("canlex/server.py", "_SEGMENT_BOUND_NAMES", "the deferred-sentence names read only as adjacent words"), | |
| ("canlex/server.py", "_segment_bound_ok", "a deferred sentence never read across a field break"), | |
| ("canlex/server.py", "_GATED_OBJECT_ADMITTED", | |
| "the object nouns a gated verdict name may not follow for a record from the gated place"), | |
| ("canlex/server.py", "_name_pos", "where a matched name stands in the record's words (relief ordering)"), | |
| ("canlex/server.py", "_deferred_sentence_first", | |
| "a named deferred sentence with a state row ranks ahead of a deferred adjudication without one"), | |
| ("canlex/server.py", "_gated_readings_non_conviction", | |
| "a place-gated match whose every reading is a non-conviction keeps its verdict (place noted)"), | |
| ("canlex/server.py", "_MEXICAN_STATES", "a Mexican state as the state field makes the record Mexican"), | |
| ("canlex/server.py", "COUNTRY_INFERRED_MEXICO", "the note that the country was inferred as Mexico"), | |
| ("canlex/server.py", "STEP1_UNKNOWN_QUESTION", "the card says step 1 matched no curated entry"), | |
| ("canlex/server.py", "ACT_NOT_SETTLED_DRAFT_ROUTED", | |
| "the memo's act-branch line for a routed programme: if the termination was an acquittal"), | |
| ("canlex/server.py", "CARD_HISTORY_COUNT_ONE_READING_ROUTED", | |
| "the history card count clause for a routed programme: if it was an acquittal"), | |
| ("canlex/server.py", "CARD_HISTORY_ACT_OPEN_ROUTED", | |
| "the history card clause for a routed programme: if it was an acquittal"), | |
| ("canlex/server.py", "_held_moved", "a name moved to a held entry: the composed release says so"), | |
| # the review of batch 1, round 4 (fixer, 2026-09-18): acquittals beside sealings and | |
| # vacaturs, offers not completed, proceedings reinstated, plea-downs, prior convictions | |
| # noted, sentencing continuances, warrants on violations, joined relief and dismissal, | |
| # appeals allowed, refused set-aside motions, negated conviction words, stays of | |
| # execution, count-scoped retrials, the RP-04 held guard, the Canadian NCR verdict | |
| ("canlex/screening.py", "_PROGRAMME_WORDS", | |
| "the programme words the revocation rules and the judgment-upon-revocation cue bind to"), | |
| ("canlex/screening.py", "_NEGATED_CONVICTION_WORD", | |
| "the negated conviction words the curated entries never read ('NOT CONVICTED', 'NO CONVICTION')"), | |
| ("canlex/screening.py", "_cut_violation_warrant", | |
| "a warrant on a supervision violation after conviction words enforces the sentence: no pending charge"), | |
| ("canlex/screening.py", "_cut_other_dismissals", | |
| "a dismissal labelled costs, a warrant or a bond, or of another case, beside conviction words"), | |
| ("canlex/screening.py", "_relief_dismissal_joined", | |
| "a sealing or expungement joined to the dismissal that came first, or 'no conviction': no question"), | |
| ("canlex/screening.py", "relief_dismissal_joined", "the same, on the record's words, for the server"), | |
| ("canlex/server.py", "_place_key", "the place key a record's state or country is matched to a gate with"), | |
| ("canlex/server.py", "_place_spellings", | |
| "the place keys one place field yields: split on commas, slashes and brackets, 'the' and 'S.' read"), | |
| ("canlex/server.py", "_ACQUITTAL_AHEAD_OF", | |
| "the entries an acquittal ranks ahead of when the record carries no conviction words"), | |
| ("canlex/server.py", "_ACQUITTAL_WORDS", "the acquittal words the relief ordering reads on any dataset"), | |
| ("canlex/server.py", "STEP1_FACT_SPECIFIC_QUESTION", | |
| "the card's fallback question for a curated FACT-SPECIFIC entry that states none"), | |
| ("canlex/server.py", "ALLEGATION_HELD", "the memo's draft line when held content is reached: nothing drafted"), | |
| ("canlex/server.py", "CARD_HELD_ACTION", "the card action when held content is reached: no report drafted"), | |
| ("canlex/server.py", "CARD_HISTORY_HELD", "the history card's clause for entries that reach held content"), | |
| ("canlex/server.py", "CANADA_PREROGATIVE_QUESTION", | |
| "the Canadian card's question when a prerogative pardon is named (LEGAL-6, 2026-09-22)"), | |
| ("canlex/server.py", "CANADA_UNSETTLED_QUESTION", "the Canadian card's question when the words may not be a conviction"), | |
| ("canlex/server.py", "CANADA_CARD_UNSETTLED_ACTION", | |
| "the Canadian card's action when the words may not be a conviction: each branch conditionally"), | |
| ("canlex/rehab.py", "_CANADA_NCR", "a Canadian NCR verdict in the record's words"), | |
| ("canlex/rehab.py", "NCR_TEXT", "the Canadian NCR verdict is no conviction (Criminal Code s. 672.35)"), | |
| ("canlex/rehab.py", "_CANADA_NEW_TRIAL", "a Canadian new trial ordered: the charge is pending again"), | |
| # the review of batch 1, round 5 (fixer, 2026-09-18): the second verification's blockers and | |
| # majors -- bail releases, negated conviction words, stets reopened, adult transfers in | |
| # another case, diversions not completed, sentencing continuances, remands, set-asides on | |
| # appeal or for legal error, count splits, revocations followed by a term, summonses | |
| # reissued, granted motions to adjudicate, prosecution appeals, penal-order finality, | |
| # relief pending, prior matters, the composed release's held mechanisms | |
| ("canlex/screening.py", "_DISPOSITION_ABBREVIATIONS", | |
| "the record abbreviations expanded before the cues read the words ('CNV', 'NG', 'ACQ', 'JOA', 'DISP BY PLEA')"), | |
| ("canlex/screening.py", "_MILITARY_CUE", | |
| "a military record cue: specifications are counts and a not-guilty specification finding is the verdict"), | |
| ("canlex/screening.py", "_TERM_ONLY", "a bare term segment skipped between a programme and its revocation"), | |
| ("canlex/screening.py", "_REFUSAL_OBJECT_KEPT", | |
| "what a refused motion to set aside a dismissal, an acquittal or relief keeps: that outcome's word"), | |
| ("canlex/screening.py", "set_aside_appellate", | |
| "a set-aside in one segment with an appellate word is never the rehabilitative set-aside entry's"), | |
| ("canlex/screening.py", "_cut_prior_segments", | |
| "a segment reporting an earlier matter ('PRIOR: CONVICTED 2010') is not this record's"), | |
| # the code audit of 2026-09-21 (tools-infra-02/03): every function FastMCP publishes -- | |
| # its docstring IS the tool's description the client model reads, and predeploy now | |
| # fingerprints that docstring and the decorator's keywords -- and the officer-facing | |
| # notes the retrieval and lookup tools print | |
| ("canlex/server.py", "canlex_search_legislation", | |
| "the search tool's published description and its result notes"), | |
| ("canlex/server.py", "canlex_get_section", "the section lookup tool's published description"), | |
| ("canlex/server.py", "canlex_us_equivalency", | |
| "the equivalency tool's published description and its memo"), | |
| ("canlex/server.py", "canlex_rehabilitation", | |
| "the rehabilitation tool's published description and its memo"), | |
| ("canlex/server.py", "canlex_whats_new", "the what's-new tool's published description"), | |
| ("canlex/server.py", "canlex_citing", "the citing tool's published description"), | |
| ("canlex/server.py", "canlex_toc", "the table-of-contents tool's published description"), | |
| ("canlex/server.py", "canlex_case", | |
| "the citator tool's published description (which courts a neutral citation resolves for)"), | |
| ("canlex/server.py", "_res_grounding", "the grounding resource"), | |
| ("canlex/server.py", "_res_corpus", "the corpus inventory resource"), | |
| ("canlex/server.py", "_res_conviction_framework", "the conviction methodology resource"), | |
| ("canlex/server.py", "_res_equivalency_framework", "the equivalency methodology resource"), | |
| ("canlex/server.py", "_res_rehabilitation_methodology", | |
| "the rehabilitation methodology resource"), | |
| ("canlex/rehab.py", "methodology_text", "the rehabilitation methodology resource body"), | |
| ("canlex/server.py", "WEAK_MATCH_NOTE", "the RETRIEVAL CAUTION printed over a weak match"), | |
| ("canlex/server.py", "_guidance_age_note", "the warning printed over guidance older than " | |
| "_GUIDANCE_AGE_YEARS"), | |
| ("canlex/server.py", "_guidance_label", | |
| "the provenance label under guidance: publisher, legal force, status"), | |
| ("canlex/server.py", "_is_jurisprudential_guide", | |
| "which IRB decisions are labelled Chairperson's jurisprudential guides"), | |
| ("canlex/server.py", "_TRAN_DECIDED", "the date Tran was decided, for the pre-Tran note"), | |
| ("canlex/screening.py", "_set_aside_legal_error", | |
| "a set-aside for a stated legal-error ground reads as a vacated conviction (the reversal entry)"), | |
| ("canlex/screening.py", "_cut_pending_other", | |
| "another matter's charge pending, or a bare 'case pending', after conviction words is cut"), | |
| # ---- audit follow-up 2026-09-21, group B (reviewed) ---- | |
| ("canlex/server.py", "GROUNDING_BRIEF", | |
| "the brief answering instructions canlex_get_section(grounding='brief') prints"), | |
| ("canlex/server.py", "_res_corpus_view", | |
| "the canlex://corpus/{view} resource: the corpus inventory, compact or one doc_type"), | |
| # ---- end group B (reviewed) ---- | |
| # ---- verification round G1 (2026-09-22): the quantity reader is an ALLOWLIST ---- | |
| ("canlex/screening.py", "_DOT_GROUPED", | |
| "a dot followed by three digits reads two ways and names no amount (Q9)"), | |
| ("canlex/screening.py", "QUANTITY_NEUTRAL_WORDS", | |
| "the only words besides the pairing's own that may stand beside a settling amount"), | |
| ("canlex/screening.py", "_REST_PUNCT", "the only characters that may stand outside the amount"), | |
| ("canlex/screening.py", "_UNIT_TOKENS", "unit words: a term naming one lends no words"), | |
| ("canlex/screening.py", "_plain_chars", "no digit or symbol outside the one amount"), | |
| ("canlex/screening.py", "quantity_terms", "the pairing words the allowlist is derived from"), | |
| ("canlex/screening.py", "_term_pieces", "content words and in-order runs of the terms"), | |
| ("canlex/screening.py", "offence_words_only", | |
| "the allowlist grammar: content words, neutral words, function words only inside a run"), | |
| ("canlex/screening.py", "_cut_off", "a record cut off after the amount does not settle"), | |
| ("canlex/screening.py", "_liability_cue", | |
| "the one inchoate or party cue read (inchoate(); set aside beside an amount)"), | |
| ("canlex/screening.py", "_offence_tokens", | |
| "the liability cue and the military jurisdiction set aside before the allowlist"), | |
| ("canlex/screening.py", "settled_quantity", | |
| "the only amount that settles a quantity limb (Q1-3, Q7, Q8, Q11)"), | |
| ("canlex/screening.py", "SCHEDULE_VII_FORMS", | |
| "cannabis forms former CDSA Schedule VII sets no amount for (Q5)"), | |
| ("canlex/screening.py", "SCHEDULE_VII_FORM_NOTE", "the Schedule VII wording quoted for them (Q5)"), | |
| ("canlex/screening.py", "SCHEDULE_VII_WORDS", | |
| "the Schedule VII substance words that may stand beside a settling amount"), | |
| ("canlex/screening.py", "schedule_vii_forms", "which Schedule VII forms the record names (Q5)"), | |
| ("canlex/screening.py", "QUANTITY_HELD_NOTE", "why a split part's amount is not settled (Q4)"), | |
| ("canlex/screening.py", "_QUANTITY_HELD", "a split part's amount is held open (Q4)"), | |
| ("canlex/screening.py", "quantity_held", "a split part's amount is held open (Q4)"), | |
| ("canlex/screening.py", "quantity_is_held", "a split part's amount is held open (Q4)"), | |
| ("canlex/screening.py", "plain_offence", | |
| "a part of a split string that is an offence of its own and nothing else (Q4)"), | |
| ("canlex/screening.py", "SPLIT_AMOUNT_CAUTION", | |
| "the refusal's caution not to enter a qualified amount alone (Q4)"), | |
| ("canlex/screening.py", "split_amount_caution", "when the refusal adds that caution (Q4)"), | |
| ("canlex/screening.py", "QUANTITY_EXACT_INSTRUCTION", | |
| "write the EXACT amount; a bound or an estimate cannot be written as one (Q10/Q13)"), | |
| ("canlex/screening.py", "_form_note", "the Schedule VII note for the forms named"), | |
| ("canlex/screening.py", "_no_exact_amount", "why no amount settles the quantity"), | |
| ("canlex/screening.py", "quantity_open_why", "the memo's reason the quantity is open"), | |
| ("canlex/screening.py", "quantity_question", "the 'quantity' need's question"), | |
| ("canlex/screening.py", "POSSESSION_LIMIT_PAIRINGS", | |
| "which pairing's 'no equivalent' rests on the possession limits (Q6)"), | |
| ("canlex/screening.py", "SCHEDULE_VIII_KG", | |
| "former CDSA Schedule VIII: cannabis resin 1 g, cannabis (marihuana) 30 g (Q6)"), | |
| ("canlex/screening.py", "_RESIN_WORDS", "the words read as cannabis resin (Q6)"), | |
| ("canlex/screening.py", "POSSESSION_LIMIT_QUESTION", | |
| "former CDSA s. 4(4)/(5) and Cannabis Act s. 8(1)(a)/(b), 8(2)(a) wording (Q6)"), | |
| ("canlex/screening.py", "possession_limit_open", | |
| "when possession words do not show the limits: DEPENDS, not a settled NO (Q6)"), | |
| ("canlex/server.py", "_possession_limit_needs", "the possession-limit question as a need (Q6)"), | |
| # ---- verification round H1 (2026-09-22): the holes in the quantity allowlist ---- | |
| ("canlex/screening.py", "_SUBSTANCE_WORDS", | |
| "the words that name only the substance or its form: no offence of their own (GQ-1/GQ-3)"), | |
| ("canlex/screening.py", "_FOLD_KEEP", "the characters the folder keeps (GQ-4)"), | |
| ("canlex/screening.py", "fold_erases_word", | |
| "a word the reader cannot read opens the quantity, never vanishes (GQ-4)"), | |
| ("canlex/screening.py", "quantity_limb_terms", | |
| "the allowlist is the QUANTITY limbs' own words; a production word opens it (GQ-2)"), | |
| ("canlex/screening.py", "_CLAUSE_BOUNDARY", | |
| "a newline, a full stop or a colon ends an offence clause (GQ-3)"), | |
| ("canlex/screening.py", "_term_heads", "a term's head word; two of one head are two counts (GQ-3)"), | |
| ("canlex/screening.py", "_substance_groups", | |
| "a second substance group has no amount of its own (GQ-3)"), | |
| ("canlex/screening.py", "one_offence_clause", | |
| "the amount must sit in ONE offence clause to settle a limb (GQ-3)"), | |
| ("canlex/screening.py", "_QUANTITY_WORDS", | |
| "the nouns a fact about the drug's amount is written with (GQ-5)"), | |
| ("canlex/screening.py", "quantity_context_open", | |
| "an amount in the facts or the disposition that the offence text does not state (GQ-5)"), | |
| ("canlex/screening.py", "QUANTITY_CONTEXT_NOTE", | |
| "why the facts or the disposition leave the quantity open (GQ-5)"), | |
| ("canlex/server.py", "_quantity_context", | |
| "which of the entry's words are read for another amount (GQ-5)"), | |
| ("canlex/server.py", "CARD_POSSESSION_LIMIT_BRANCH", | |
| "how a possession-limit entry is named on the record card (GQ-6)"), | |
| ("canlex/server.py", "CARD_POSSESSION_LIMIT_NOTE", | |
| "the possession-limit question printed on the card (GQ-6)"), | |
| ("canlex/server.py", "_possession_limit_notes", | |
| "when the card prints the possession-limit question (GQ-6)"), | |
| # ---- verification round J2 (2026-09-22): Q12, REL-15, REL-16 ---- | |
| ("canlex/screening.py", "_Q_ISO_DATE", "an ISO date beside the amount is no amount (Q12)"), | |
| ("canlex/screening.py", "_Q_SLASH_DATE", "a slash date beside the amount is no amount (Q12)"), | |
| ("canlex/screening.py", "_Q_DATE_LABEL", | |
| "the words a record labels a date with, removed with it (Q12)"), | |
| ("canlex/screening.py", "_Q_DATE", "the dates the allowlist removes before reading (Q12)"), | |
| ("canlex/screening.py", "_Q_DOCKET", "a docket, case or cause number is no amount (Q12)"), | |
| ("canlex/screening.py", "_Q_COUNT_ID", | |
| "WHICH count this entry is, removed; 'N counts' is NOT, it says the offence " | |
| "happened more than once (Q12)"), | |
| ("canlex/screening.py", "_Q_SUBSECTION", "a statute subsection, never a word in brackets (Q12)"), | |
| ("canlex/screening.py", "_Q_SECTION", "a statute section number (Q12)"), | |
| ("canlex/screening.py", "_Q_TITLE", "a statute title number before the designator (Q12)"), | |
| ("canlex/screening.py", "_Q_BARE_CITATION", | |
| "a citation written with no designator: a dotted section with subsections (Q12)"), | |
| ("canlex/screening.py", "_MIXED_HYPHEN", | |
| "'1-1/2' read as the mixed number '1 1/2', the largest reading (Q12)"), | |
| ("canlex/screening.py", "_Q_CODE_DESIGNATORS", | |
| "the US statute-code designators a citation may be written with: an explicit " | |
| "allowlist, so an offence name or another legal system's code is no citation (K2)"), | |
| ("canlex/screening.py", "_citation_designators", | |
| "which statute designators are read as a citation: the alias table's own, " | |
| "restricted to the _Q_CODE_DESIGNATORS allowlist (Q12, K2)"), | |
| ("canlex/screening.py", "_citation_spans", "where the citations sit in the record (Q12)"), | |
| ("canlex/screening.py", "quantity_strip", | |
| "the record-keeping tokens removed before the quantity allowlist reads the words (Q12)"), | |
| ("canlex/rehab.py", "_RS_FR_GRANT", | |
| "the French grant words the Criminal Records Act uses ('accordee', 'ordonnee') (REL-16)"), | |
| ("canlex/rehab.py", "_RS_FR_NAME", | |
| "the Act's French names: 'suspension du casier' and the ACCENTED " | |
| "'rehabilitation' -- the unaccented spelling is an ordinary English word and " | |
| "names the relief only before a French grant word (REL-16, K2)"), | |
| ("canlex/rehab.py", "_CANADA_RS_NAME_READ", | |
| "which relief each French name is: the record suspension, or the pre-2012 pardon (REL-16)"), | |
| ("canlex/rehab.py", "rs_name_read", | |
| "a French naming clause reads as its English twin, post-2012 pardon reading included (REL-16)"), | |
| ("canlex/rehab.py", "_CANADA_RS_PREROGATIVE_CLAUSE", | |
| "a clause that is nothing but a prerogative pardon (REL-15)"), | |
| ("canlex/rehab.py", "prerogative_clause", | |
| "such a clause never takes a standing record suspension away: IRPA s. 36(3)(b) turns " | |
| "on the record suspension (REL-15)"), | |
| ) | |
| # ---- plumbing --------------------------------------------------------------- | |
| # Every canlex definition a registered name REACHES (tools/predeploy.py | |
| # CodeTree) that is not itself registered: search, indexing, loading, parsing, | |
| # formatting and data-structure helpers with no legal wording or routing of | |
| # their own. The review gate fingerprints each registered name together with | |
| # these, so a change to one still holds its registered callers; the list | |
| # exists so that a NEW helper a registered name starts to rely on must be | |
| # classified -- registered above if it carries legal wording or routing, | |
| # listed here if not (tests/test_reviewed_code.py fails until it is). | |
| PLUMBING = ( | |
| # canlex/citator.py and the lookup / formatting helpers the published tools | |
| # reach (the code audit of 2026-09-21: every mcp.tool/prompt/resource | |
| # function is registered, so what they reach is classified here) | |
| ("canlex/citator.py", "API"), ("canlex/citator.py", "Citator"), | |
| ("canlex/citator.py", "KEY_FILE"), ("canlex/citator.py", "_CACHE_FILE"), | |
| ("canlex/citator.py", "_CANLII_SEG"), ("canlex/citator.py", "_CASE_URL"), | |
| ("canlex/citator.py", "_DBMAP_FILE"), ("canlex/citator.py", "_DB_URL"), | |
| ("canlex/citator.py", "_MAX_LIST"), ("canlex/citator.py", "_NEUTRAL"), | |
| ("canlex/citator.py", "_PLACEHOLDER"), ("canlex/citator.py", "_PROVINCE_SEG"), | |
| ("canlex/citator.py", "_THROTTLE"), ("canlex/citator.py", "_load_json"), | |
| ("canlex/citator.py", "api_key"), ("canlex/citator.py", "canlii_url_from_citation"), | |
| ("canlex/server.py", "DocType"), ("canlex/server.py", "HEDGE_THRESHOLD"), | |
| ("canlex/server.py", "_ARABIC"), ("canlex/server.py", "_CITATOR"), | |
| ("canlex/server.py", "_GUIDANCE_AGE_YEARS"), ("canlex/server.py", "_PART_NOTE"), | |
| ("canlex/server.py", "_ROMAN"), ("canlex/server.py", "_SCHEDULE_FORM"), | |
| ("canlex/server.py", "_SECTION_PREFIX"), ("canlex/server.py", "_YEAR"), | |
| ("canlex/server.py", "_assemble"), ("canlex/server.py", "_citator"), | |
| ("canlex/server.py", "_clean_citation"), ("canlex/server.py", "_format_case"), | |
| ("canlex/server.py", "_format_section"), ("canlex/server.py", "_log_query"), | |
| ("canlex/server.py", "_normalize_section"), ("canlex/server.py", "_not_found"), | |
| ("canlex/server.py", "_schedule_label"), ("canlex/server.py", "_stated"), | |
| # canlex/authorities.py -- loading the registry and the corpus, cite | |
| # folding, sentence splitting (the wording and choices are REVIEWED above) | |
| ("canlex/authorities.py", "FILE"), ("canlex/authorities.py", "PATH"), | |
| ("canlex/authorities.py", "_load"), ("canlex/authorities.py", "load"), | |
| ("canlex/authorities.py", "lookup"), ("canlex/authorities.py", "_fold"), | |
| ("canlex/authorities.py", "_norm"), ("canlex/authorities.py", "_QUOTES"), | |
| ("canlex/authorities.py", "resolve"), ("canlex/authorities.py", "chunk"), | |
| ("canlex/authorities.py", "_corpus"), ("canlex/authorities.py", "_corpus_file"), | |
| ("canlex/authorities.py", "_wanted_ids"), ("canlex/authorities.py", "_file_for"), | |
| ("canlex/authorities.py", "decision_present"), ("canlex/authorities.py", "_decision_keys"), | |
| ("canlex/authorities.py", "_KEYS_SEEN"), ("canlex/authorities.py", "_sentence"), | |
| ("canlex/authorities.py", "_boundaries"), ("canlex/authorities.py", "_ABBREV"), | |
| ("canlex/authorities.py", "_BOUNDARY"), ("canlex/authorities.py", "_act_sections"), | |
| ("canlex/server.py", "_index_chunks"), ("canlex/screening.py", "_code_prefix"), | |
| # canlex/commentary.py | |
| ("canlex/commentary.py", "GUIDANCE_HEADING"), ("canlex/commentary.py", "_FLAG"), | |
| ("canlex/commentary.py", "_SENTENCE"), ("canlex/commentary.py", "_VERIFY"), | |
| ("canlex/commentary.py", "_row_lines"), ("canlex/commentary.py", "_split_verify"), | |
| ("canlex/commentary.py", "_vlabel"), ("canlex/commentary.py", "_sources"), | |
| # canlex/config.py | |
| ("canlex/config.py", "DATA_DIR"), ("canlex/config.py", "PROCESSED_DIR"), | |
| ("canlex/config.py", "ROOT"), | |
| # canlex/embed.py | |
| ("canlex/embed.py", "EMB_REPO"), ("canlex/embed.py", "Embedder"), | |
| ("canlex/embed.py", "_MAX_TOKENS"), ("canlex/embed.py", "_PASSAGE_PREFIX"), | |
| ("canlex/embed.py", "_POOLING"), ("canlex/embed.py", "_QUERY_PREFIX"), | |
| # canlex/index.py | |
| ("canlex/index.py", "ACT_HINT"), ("canlex/index.py", "APPENDIX_CAP"), | |
| ("canlex/index.py", "B"), ("canlex/index.py", "BACKMATTER_PENALTY"), | |
| ("canlex/index.py", "CANDIDATES"), ("canlex/index.py", "COURT_HINT"), | |
| ("canlex/index.py", "INAPPLICABLE_PENALTY"), ("canlex/index.py", "K1"), | |
| ("canlex/index.py", "LegislationIndex"), ("canlex/index.py", "MEMO_PENALTY"), | |
| ("canlex/index.py", "MN_CAP"), ("canlex/index.py", "MN_WEIGHT"), | |
| ("canlex/index.py", "NIF_PENALTY"), ("canlex/index.py", "POOL_CAP"), | |
| ("canlex/index.py", "PRIMARY_DOC_TYPES"), ("canlex/index.py", "RECALL_CAP"), | |
| ("canlex/index.py", "REG_PENALTY"), ("canlex/index.py", "REPEALED_PENALTY"), | |
| ("canlex/index.py", "RERANK_POOL"), ("canlex/index.py", "RRF_K"), | |
| ("canlex/index.py", "SOURCE_CAP"), ("canlex/index.py", "W_SEM"), | |
| ("canlex/index.py", "_APPENDIX_HEAD"), ("canlex/index.py", "_APPENDIX_REF"), | |
| ("canlex/index.py", "_COURT_HINTS"), ("canlex/index.py", "_DECISION_WORDS"), | |
| ("canlex/index.py", "_EMPLOYMENT_WORDS"), ("canlex/index.py", "_FLAT_MEMO_CODES"), | |
| ("canlex/index.py", "_FR_HINT"), ("canlex/index.py", "_FR_WORDS"), | |
| ("canlex/index.py", "_FR_ACCENT_COMPANIONS"), | |
| ("canlex/index.py", "_INAPPLICABLE"), ("canlex/index.py", "_MARKER"), | |
| ("canlex/index.py", "_MEMO_CITE"), ("canlex/index.py", "_PIECE_ID"), | |
| ("canlex/index.py", "_PROMOTION_GATES"), ("canlex/index.py", "_SECTION_REF"), | |
| ("canlex/index.py", "_SECTION_NUM"), ("canlex/index.py", "_SECTION_NUMS"), | |
| ("canlex/index.py", "_STEMMER"), ("canlex/index.py", "_STEM_CACHE"), | |
| ("canlex/index.py", "_STEM_NORMALIZE"), ("canlex/index.py", "_TOKEN"), | |
| ("canlex/index.py", "_XREF"), ("canlex/index.py", "_applicability"), | |
| ("canlex/index.py", "_fold_accents"), ("canlex/index.py", "_part_is"), | |
| ("canlex/index.py", "_piece_no"), ("canlex/index.py", "_provision_units"), | |
| ("canlex/index.py", "_section_refs"), ("canlex/index.py", "_stem"), | |
| ("canlex/index.py", "court_hints"), ("canlex/index.py", "employment_query"), | |
| ("canlex/index.py", "promotion_allowed"), ("canlex/index.py", "query_lang"), | |
| ("canlex/index.py", "tokenize"), ("canlex/index.py", "topical_title"), | |
| # canlex/index.py -- step A12: guidance sub-tier knobs and flags (like | |
| # MEMO_PENALTY above), the criminality-route mechanics (its two content | |
| # constants are REVIEWED), and the read-next key resolution (the legal | |
| # content -- WHICH guidance an entry names -- lives in the review-gated | |
| # curated JSON, not here) | |
| ("canlex/index.py", "APPLICANT_PENALTY"), ("canlex/index.py", "ATIP_PENALTY"), | |
| ("canlex/index.py", "ATIP_STATUS"), ("canlex/index.py", "COMMENTARY_PENALTY"), | |
| ("canlex/index.py", "CRIMINALITY_ROUTE"), ("canlex/index.py", "READ_NEXT_CAP"), | |
| ("canlex/index.py", "SEE_ALSO_DRAFT"), ("canlex/index.py", "STATE_ONE_SOURCE"), | |
| ("canlex/index.py", "_APPLICANT_CODES"), ("canlex/index.py", "_CRIM_MARKERS"), | |
| ("canlex/index.py", "_S36_3_WORDS"), ("canlex/index.py", "_S36_CUES"), | |
| ("canlex/index.py", "_norm_text"), ("canlex/index.py", "_read_json"), | |
| ("canlex/index.py", "_see_also_match"), ("canlex/index.py", "_see_also_spec"), | |
| ("canlex/index.py", "criminality_allowlist"), ("canlex/index.py", "criminality_query"), | |
| ("canlex/index.py", "curated_see_also"), ("canlex/index.py", "draft_see_also"), | |
| # canlex/rehab.py | |
| ("canlex/rehab.py", "BASES"), ("canlex/rehab.py", "CANADA_MODES"), | |
| ("canlex/rehab.py", "COUNTS"), ("canlex/rehab.py", "STATUSES"), | |
| ("canlex/rehab.py", "_LIMB_NUMS"), ("canlex/rehab.py", "_MAX_WORLDS"), | |
| ("canlex/rehab.py", "_X"), ("canlex/rehab.py", "_as_date"), ("canlex/rehab.py", "_dedupe"), | |
| ("canlex/rehab.py", "_limb_chunk"), ("canlex/rehab.py", "_months"), | |
| ("canlex/rehab.py", "_need"), ("canlex/rehab.py", "_para_label"), | |
| ("canlex/rehab.py", "_public"), ("canlex/rehab.py", "_today_code"), | |
| ("canlex/rehab.py", "_s17_public"), | |
| # canlex/rerank.py | |
| ("canlex/rerank.py", "MAX_TOKENS"), ("canlex/rerank.py", "RERANK_ONNX"), | |
| ("canlex/rerank.py", "RERANK_REPO"), ("canlex/rerank.py", "Reranker"), | |
| ("canlex/rerank.py", "_MAX_DOC_CHARS"), ("canlex/rerank.py", "_MAX_QUERY_TOKENS"), | |
| ("canlex/rerank.py", "make_ort_session"), | |
| # canlex/screening.py | |
| ("canlex/screening.py", "Expansion"), ("canlex/screening.py", "STOP"), | |
| ("canlex/screening.py", "TOKEN_CAP"), ("canlex/screening.py", "_ALIAS_TABLE"), | |
| ("canlex/screening.py", "_CANNABIS_CONCENTRATE"), | |
| ("canlex/screening.py", "_CANNABIS_SLANG"), ("canlex/screening.py", "_DATE"), | |
| ("canlex/screening.py", "_DOTTED"), | |
| ("canlex/screening.py", "_PARA_CONTEXT"), | |
| ("canlex/screening.py", "_QUANTITY"), ("canlex/screening.py", "_SPLIT_CAP"), | |
| ("canlex/screening.py", "_UCMJ_ARTICLE"), ("canlex/screening.py", "_alias_table"), | |
| ("canlex/screening.py", "_element_items"), ("canlex/screening.py", "_expand_abbreviations"), | |
| ("canlex/screening.py", "_expand_phrases"), ("canlex/screening.py", "_fold"), | |
| ("canlex/screening.py", "_phrases_in"), ("canlex/screening.py", "_plain"), | |
| ("canlex/screening.py", "_terms"), ("canlex/screening.py", "_years_text"), | |
| ("canlex/screening.py", "alias_pattern"), ("canlex/screening.py", "all_aliases"), | |
| ("canlex/screening.py", "analyse"), ("canlex/screening.py", "branch_text"), | |
| ("canlex/screening.py", "content_tokens"), ("canlex/screening.py", "date_warnings"), | |
| ("canlex/screening.py", "disposition_match_text"), ("canlex/screening.py", "expand"), | |
| ("canlex/screening.py", "expand_disposition"), | |
| ("canlex/screening.py", "has_conviction_words"), | |
| ("canlex/screening.py", "has_military_cue"), ("canlex/screening.py", "is_single_term"), | |
| ("canlex/screening.py", "limb_entries"), ("canlex/screening.py", "limb_entry"), | |
| ("canlex/screening.py", "limb_label"), ("canlex/screening.py", "load_aliases"), | |
| ("canlex/screening.py", "offence_flags"), ("canlex/screening.py", "parse_date"), | |
| # the code audit of 2026-09-21: the exact-search bound of occurrence_range, the | |
| # year bounds parse_date accepts | |
| ("canlex/screening.py", "_OCCURRENCE_EXACT_MAX"), | |
| ("canlex/screening.py", "DATE_YEAR_MIN"), ("canlex/screening.py", "DATE_YEAR_MAX"), | |
| ("canlex/screening.py", "result_line"), ("canlex/screening.py", "suggest_by_meaning"), | |
| ("canlex/screening.py", "US_STATES"), ("canlex/screening.py", "_READING_KEYS"), | |
| ("canlex/screening.py", "_READ_FIELDS"), ("canlex/screening.py", "_RECORD"), | |
| ("canlex/screening.py", "_analyse"), ("canlex/screening.py", "_covers"), | |
| ("canlex/screening.py", "_iso_day"), ("canlex/screening.py", "_period"), | |
| ("canlex/screening.py", "_raw_aliases"), ("canlex/screening.py", "_state_name"), | |
| ("canlex/screening.py", "alias_entries"), ("canlex/screening.py", "aliases_read"), | |
| ("canlex/screening.py", "record_context"), | |
| # the record-order pass's compiled patterns, memo, folding and segment | |
| # spans (disposition roadmap T1.6; the rules are REVIEWED above) | |
| ("canlex/screening.py", "_CUE"), ("canlex/screening.py", "_RECORD_ORDER_CACHE"), | |
| ("canlex/screening.py", "_accent_fold"), ("canlex/screening.py", "_segments"), | |
| ("canlex/server.py", "_row_tier_label"), | |
| ("canlex/screening.py", "disposition_flags"), | |
| # row selection and the headline's helpers: list coercion, a state's rows, | |
| # phrase lookup and its cache, a row's label, sentence splitting, General | |
| # notes once (disposition roadmap T1.11, T6.1; the rules are REVIEWED above) | |
| ("canlex/server.py", "_as_list"), ("canlex/server.py", "_state_rows"), | |
| ("canlex/server.py", "_phrase_in"), ("canlex/server.py", "_ROW_WORDS_CACHE"), | |
| ("canlex/server.py", "_row_label"), ("canlex/server.py", "_DECIDING_SPLIT"), | |
| ("canlex/server.py", "_general_notes"), | |
| # the review of batch 1 (fixer, 2026-09-16): the compiled bare-'guilty' pattern; | |
| # the matcher's result list carrying the places a phrase-only gate lists | |
| ("canlex/server.py", "_Matches"), | |
| # the review of batch 1, round 2: a segment lookup, a same-length blank, a matched | |
| # name's segment index | |
| ("canlex/screening.py", "_seg_of"), ("canlex/screening.py", "_blank"), | |
| ("canlex/server.py", "_name_segment"), | |
| # canlex/server.py | |
| ("canlex/server.py", "_AUTO"), ("canlex/server.py", "_CANADA_COUNTRY"), | |
| ("canlex/server.py", "_INDEX"), ("canlex/server.py", "_OPEN"), | |
| ("canlex/server.py", "_PROVINCES"), ("canlex/server.py", "_READONLY"), | |
| ("canlex/server.py", "_STATE_NAMES"), ("canlex/server.py", "_TIE_BLANK"), | |
| ("canlex/server.py", "_US_COUNTRY"), ("canlex/server.py", "_US_OTHER"), | |
| ("canlex/server.py", "_US_TERRITORIES"), ("canlex/server.py", "_as_bool"), | |
| ("canlex/server.py", "_assumed_block"), ("canlex/server.py", "_branch_set"), | |
| ("canlex/server.py", "_corpus_has_decision"), ("canlex/server.py", "_disp_fold"), | |
| ("canlex/server.py", "_record_places"), | |
| ("canlex/server.py", "_disp_key"), ("canlex/server.py", "_disp_tokens"), | |
| ("canlex/server.py", "_entry_names"), ("canlex/server.py", "_equal_second"), | |
| ("canlex/server.py", "_fee_amount"), ("canlex/server.py", "_index"), | |
| ("canlex/server.py", "_load_dispositions"), ("canlex/server.py", "_load_equivalency"), | |
| # the code audit of 2026-09-21: the guarded, mtime-cached curated loader; the | |
| # closest-legislation hint the search tool's act-filter miss shares with _not_found | |
| ("canlex/server.py", "_CURATED_CACHE"), ("canlex/server.py", "_curated_json"), | |
| ("canlex/server.py", "_closest_acts"), ("canlex/server.py", "_md_cell"), | |
| ("canlex/server.py", "_fold_ws"), | |
| ("canlex/server.py", "_load_transborder"), ("canlex/server.py", "_max_shown"), | |
| ("canlex/server.py", "_option_label"), ("canlex/server.py", "_section_text"), | |
| ("canlex/server.py", "_state_row"), ("canlex/server.py", "_us_state_value"), | |
| ("canlex/server.py", "_years"), ("canlex/server.py", "mcp"), | |
| # the spellings of a state or province a record's state field carries -- | |
| # dotted abbreviations, D.C. spellings, 'X, USA' wrappers -- and a flag's | |
| # memo-or-card text pick (disposition roadmap T1.4, T1.6; the | |
| # normalisation _jurisdiction applies is REVIEWED above) | |
| ("canlex/server.py", "_STATE_ABBREVIATIONS"), ("canlex/server.py", "_DC_SPELLINGS"), | |
| ("canlex/server.py", "_PROVINCE_ABBREVIATIONS"), ("canlex/server.py", "_US_WRAPPER"), | |
| ("canlex/server.py", "_place_code"), ("canlex/server.py", "_us_state_code"), | |
| # H2 (2026-09-22, G2-REL-G): the other shapes a record writes Canada in ('CAN', 'CA', | |
| # 'Ontario, Canada', 'Canada (Ontario)') -- the routing _jurisdiction applies with them | |
| # is REVIEWED above | |
| ("canlex/server.py", "_CANADA_WRAPPER"), ("canlex/server.py", "_CANADA_WITH_PROVINCE"), | |
| ("canlex/server.py", "_canada_place"), | |
| ("canlex/server.py", "_province_code"), ("canlex/server.py", "_state_display"), | |
| ("canlex/server.py", "_flag_lines"), | |
| # canlex/synonyms.py | |
| ("canlex/synonyms.py", "_COMPILED"), ("canlex/synonyms.py", "_SYNONYMS"), | |
| ("canlex/synonyms.py", "expand_query"), | |
| # canlex/airports.py -- an aerodrome's IATA code and names reach its CASR 2012 | |
| # schedule row (2026-10-15); like the synonyms, recall only, no legal wording | |
| ("canlex/airports.py", "AERODROMES"), ("canlex/airports.py", "Aerodrome"), | |
| ("canlex/airports.py", "_BY_IATA"), ("canlex/airports.py", "_CONTEXT"), | |
| ("canlex/airports.py", "_ENTRIES"), ("canlex/airports.py", "_INTERNATIONAL"), | |
| ("canlex/airports.py", "_WINDOW"), ("canlex/airports.py", "_WORD_CODES"), | |
| ("canlex/airports.py", "_fold"), ("canlex/airports.py", "_in_context"), | |
| ("canlex/airports.py", "_phrase"), ("canlex/airports.py", "airport_terms"), | |
| # canlex/transborder.py | |
| ("canlex/transborder.py", "TABLE_FILE"), ("canlex/transborder.py", "_SEC"), | |
| ("canlex/transborder.py", "_norm"), ("canlex/transborder.py", "_table_rows"), | |
| ("canlex/transborder.py", "_yn"), ("canlex/transborder.py", "section_label"), | |
| # canlex/readnext.py -- resolving keys, loading the corpus (A13) | |
| ("canlex/readnext.py", "items"), ("canlex/readnext.py", "_file_for_act"), | |
| ("canlex/readnext.py", "_file_chunks"), ("canlex/readnext.py", "_INDEX_MAP"), | |
| ("canlex/readnext.py", "_pool"), ("canlex/readnext.py", "resolve"), | |
| ("canlex/readnext.py", "is_atip"), ("canlex/readnext.py", "is_guidance"), | |
| ("canlex/readnext.py", "chunk_ids"), | |
| # canlex/server.py -- the methodology lookup and the held manifest loader (A13) | |
| ("canlex/server.py", "_framework"), ("canlex/server.py", "_held_manifest"), | |
| ("canlex/server.py", "HELD_MANIFEST_FILE"), ("canlex/server.py", "_HELD_CACHE"), | |
| ("canlex/server.py", "_held_id"), ("canlex/server.py", "_alias_keys_read"), | |
| ("canlex/server.py", "_ALIAS_KEYS_READ"), | |
| # canlex/server.py -- the step memo and the decisive-facts data shapes (A14) | |
| ("canlex/server.py", "_STEP_MEMO"), ("canlex/server.py", "_step_memo"), | |
| ("canlex/server.py", "_memo_run"), ("canlex/server.py", "_memo_value"), | |
| ("canlex/server.py", "_signature_dict"), ("canlex/server.py", "_ISO"), | |
| ("canlex/server.py", "_history_sig_dict"), ("canlex/server.py", "_parsed_with"), | |
| # canlex/screening.py -- sentence tokens and units (A14) | |
| ("canlex/screening.py", "_SENT_SPLIT"), ("canlex/screening.py", "_SENT_UNITS"), | |
| ("canlex/screening.py", "_SENT_DURATION"), | |
| # canlex/narrative.py -- number words, the curated list, citation and chunk | |
| # lookups, the frames' source chunks (A15; the wording is REVIEWED above) | |
| ("canlex/narrative.py", "_EN_NUM"), ("canlex/narrative.py", "_FR_NUM"), | |
| ("canlex/narrative.py", "provisions"), ("canlex/narrative.py", "_cite"), | |
| ("canlex/narrative.py", "_chunk"), ("canlex/narrative.py", "FRAME_SOURCE"), | |
| # canlex/commentary.py and canlex/_common.py -- the corpus writer's paths, | |
| # names and shrink guard, reached by commentary.build (wave-4 verifier) | |
| ("canlex/_common.py", "CORPUS_SHRINK_GUARD"), ("canlex/_common.py", "safe_to_write"), | |
| ("canlex/_common.py", "stored_chunks"), ("canlex/_common.py", "write_corpus"), | |
| ("canlex/commentary.py", "ACT_CODE"), ("canlex/commentary.py", "ACT_NAME"), | |
| ("canlex/commentary.py", "ACT_SHORT"), ("canlex/commentary.py", "CURATED"), | |
| ("canlex/commentary.py", "EQUIV"), ("canlex/commentary.py", "OUT"), | |
| # canlex/server.py -- the 'none' test for relief words (wave-4 fixer) | |
| ("canlex/server.py", "_no_relief"), | |
| # canlex/calllog.py and canlex/loganalyze.py -- the MCP call log and its | |
| # report (2026-09-16). No registered name reaches them (the log wraps the | |
| # tool manager at startup; no tool body calls it); listed so every | |
| # definition in them is classified. They carry no legal wording or | |
| # routing: queueing, JSON records, sinks, the Hub upload, counting. | |
| # NOTICE and announce (fixer, 2026-09-16) state that calls are logged, in | |
| # the MCP instructions and at GET /, only while logging is on; the notice | |
| # is a plain statement that gives no advice about which arguments to send. | |
| ("canlex/calllog.py", "NOTICE"), ("canlex/calllog.py", "WARN_EVERY"), | |
| ("canlex/calllog.py", "announce"), | |
| ("canlex/calllog.py", "CallLog"), ("canlex/calllog.py", "DEFAULT_EVERY_MIN"), | |
| ("canlex/calllog.py", "DatasetSink"), ("canlex/calllog.py", "LOG_FILE"), | |
| ("canlex/calllog.py", "LocalSink"), ("canlex/calllog.py", "MAX_ITEMS"), | |
| ("canlex/calllog.py", "MAX_STRING"), ("canlex/calllog.py", "ARGS_BUDGET"), | |
| ("canlex/calllog.py", "NEEDS_CAP"), | |
| ("canlex/calllog.py", "NEED_CHARS"), ("canlex/calllog.py", "PATH_IN_REPO"), | |
| ("canlex/calllog.py", "PENDING_CAP"), ("canlex/calllog.py", "QUEUE_SIZE"), | |
| ("canlex/calllog.py", "RESULT_KEYS"), ("canlex/calllog.py", "RESULT_MARK"), | |
| ("canlex/calllog.py", "RETRY_DELAYS"), ("canlex/calllog.py", "SEARCH_KEYS"), | |
| ("canlex/calllog.py", "_STOP"), ("canlex/calllog.py", "_clean"), | |
| ("canlex/calllog.py", "_cut"), ("canlex/calllog.py", "_describe"), | |
| ("canlex/calllog.py", "_error_name"), ("canlex/calllog.py", "_every"), | |
| ("canlex/calllog.py", "_extra"), ("canlex/calllog.py", "_iso"), | |
| ("canlex/calllog.py", "_need"), ("canlex/calllog.py", "_output_text"), | |
| ("canlex/calllog.py", "_result_fields"), ("canlex/calllog.py", "_result_line"), | |
| ("canlex/calllog.py", "_status"), ("canlex/calllog.py", "_warn"), | |
| ("canlex/calllog.py", "allow_dataset_requests"), ("canlex/calllog.py", "build_record"), | |
| ("canlex/calllog.py", "configure"), ("canlex/calllog.py", "install"), | |
| ("canlex/calllog.py", "note"), ("canlex/calllog.py", "recording"), | |
| ("canlex/calllog.py", "wrap"), | |
| ("canlex/loganalyze.py", "HELD_BRANCH"), ("canlex/loganalyze.py", "NOT_SETTLED_STATUS"), | |
| ("canlex/loganalyze.py", "NOT_SETTLED_STATUSES"), ("canlex/loganalyze.py", "OFFENCE_KEYS"), | |
| ("canlex/loganalyze.py", "OPEN_BRANCHES"), ("canlex/loganalyze.py", "SEARCH_TOOL"), | |
| ("canlex/loganalyze.py", "held_table"), | |
| ("canlex/loganalyze.py", "TOP"), ("canlex/loganalyze.py", "_WEAK"), | |
| ("canlex/loganalyze.py", "_day"), ("canlex/loganalyze.py", "_load"), | |
| ("canlex/loganalyze.py", "_stamp"), ("canlex/loganalyze.py", "_summary"), | |
| ("canlex/loganalyze.py", "_text"), ("canlex/loganalyze.py", "download_dataset"), | |
| ("canlex/loganalyze.py", "load_calls"), ("canlex/loganalyze.py", "log_files"), | |
| ("canlex/loganalyze.py", "main"), ("canlex/loganalyze.py", "normalize"), | |
| ("canlex/loganalyze.py", "not_settled"), ("canlex/loganalyze.py", "offences"), | |
| ("canlex/loganalyze.py", "report"), ("canlex/loganalyze.py", "since"), | |
| ("canlex/loganalyze.py", "user_env_token"), ("canlex/loganalyze.py", "window_patterns"), | |
| # ---- audit follow-up 2026-09-21, group A (retrieval performance) ---- | |
| # canlex/bm25.py: the BM25 postings as arrays and their data/cache/ cache | |
| # (Optimization 5/6/8); canlex/index.py: the text BM25 indexes, the | |
| # corrector's words and the cache key's code half; canlex/rerank.py: the | |
| # local-cache-first model files (Optimization 3) and the arena-shrinking | |
| # RunOptions (Optimization 2). Search plumbing: no legal wording. | |
| ("canlex/bm25.py", "Bm25Data"), ("canlex/bm25.py", "CACHE_DIR"), | |
| ("canlex/bm25.py", "CACHE_VERSION"), ("canlex/bm25.py", "Postings"), | |
| ("canlex/bm25.py", "_CACHE_PREFIX"), ("canlex/bm25.py", "_csr"), | |
| ("canlex/bm25.py", "_joined"), ("canlex/bm25.py", "_source"), | |
| ("canlex/bm25.py", "_split"), ("canlex/bm25.py", "build"), | |
| ("canlex/bm25.py", "cache_key"), ("canlex/bm25.py", "cache_path"), | |
| ("canlex/bm25.py", "code_fingerprint"), ("canlex/bm25.py", "file_stamps"), | |
| ("canlex/bm25.py", "first_seen"), ("canlex/bm25.py", "load"), | |
| ("canlex/bm25.py", "save"), | |
| ("canlex/index.py", "_CORRECTOR_WORD"), ("canlex/index.py", "_bm25_blob"), | |
| ("canlex/index.py", "_bm25_code_key"), ("canlex/index.py", "_corrector_words"), | |
| ("canlex/bm25.py", "_SCOPES"), | |
| # item 5 (the retrieval residue): a French Act's short title for the | |
| # section pin, the French corrector vocabulary (accents kept) | |
| ("canlex/index.py", "_FR_TITLE_NOTE"), ("canlex/index.py", "_fold_title"), | |
| ("canlex/index.py", "_french_short_title"), | |
| ("canlex/index.py", "_CORRECTOR_FR_WORD"), ("canlex/index.py", "_corrector_fr_words"), | |
| # item 8 (eval-gated, adopted): the criminality route guard's idf floor | |
| ("canlex/index.py", "_ROUTE_IDF_FLOOR"), ("canlex/index.py", "HIGHLIGHT_DEPTH"), | |
| ("canlex/rerank.py", "_ARENA_SHRINK"), ("canlex/rerank.py", "hub_file"), | |
| ("canlex/rerank.py", "make_run_options"), | |
| # ---- end of group A ---- | |
| # ---- audit follow-up 2026-09-21, group B (plumbing) ---- | |
| ("canlex/screening.py", "_ALIAS_LOCK"), | |
| ("canlex/screening.py", "_term_reading"), | |
| ("canlex/server.py", "_SECTION_TEXT_CACHE"), | |
| ("canlex/server.py", "_frozen"), | |
| ("canlex/server.py", "_record_assessment"), | |
| ("canlex/calllog.py", "ERROR_KEYS"), | |
| ("canlex/calllog.py", "_guard"), | |
| ("canlex/server.py", "TOC_FULL_LISTING"), | |
| ("canlex/server.py", "_TOC_NUMBER"), | |
| ("canlex/server.py", "_TOC_LABEL"), | |
| ("canlex/server.py", "_TOC_QUERY"), | |
| ("canlex/server.py", "_toc_matches"), | |
| ("canlex/server.py", "_toc_division_ranges"), | |
| ("canlex/server.py", "_toc_part"), | |
| ("canlex/server.py", "_corpus_text"), | |
| ("canlex/server.py", "_CORPUS_FOOTER"), | |
| ("canlex/server.py", "_embedding_currency_lines"), | |
| # ---- end group B (plumbing) ---- | |
| # ---- verification fixes 2026-09-22, group F2 (retrieval plumbing) ---- | |
| # the section pin's article forms: a treaty's article is no section | |
| # (A-PIN-ARTICLE); the BM25 cache's orphan sweep and array checks | |
| # (A-CACHE-TMP, SEC-3) | |
| ("canlex/index.py", "_TREATY"), ("canlex/index.py", "_TREATY_AFTER"), | |
| ("canlex/index.py", "_FR_ARTICLE_TAIL"), ("canlex/index.py", "_DOTLESS_ART"), | |
| ("canlex/index.py", "_article_cites_section"), | |
| ("canlex/bm25.py", "_TMP_STALE_SECONDS"), ("canlex/bm25.py", "_drop_stale_tmp"), | |
| ("canlex/bm25.py", "_consistent"), | |
| # ---- end group F2 ---- | |
| # ---- verification fixes 2026-09-22, F3 (plumbing) ---- | |
| # B-CACHE-1: the alias-table generation that keys the expansion cache | |
| ("canlex/screening.py", "_ALIAS_GENERATION"), | |
| # ---- end F3 (plumbing) ---- | |
| # ---- verification fixes 2026-09-22, G2 (plumbing) ---- | |
| # how the later Canadian entries are listed in the relief notes ('entries #2, #3') | |
| ("canlex/server.py", "_later_entries_text"), | |
| # ---- end G2 (plumbing) ---- | |
| ) | |