Skip to content
docs
Arxo ↗

Inventory the act

For LLMs11 sections

Inventory turns pinned text into a dispositioned map before any rule is written. Each article is read, split into content units, and given an explicit fate: formalize now, exclude with a reason, or leave unprocessed. Pinning guarantees the text; inventory guarantees that nothing in it is silently skipped or silently reinterpreted.

  • The pinned edition and its local bytes from the previous stage.
  • The source card with the scope boundary from acquisition.
  • The source inventory template, which carries the fate map.
  • Walk the act article by article, in the order of the pinned bytes.
  • Split each article into content units: definitions, conditions, exceptions, tables, formulas, and cross-references to other articles or acts.
  • Give every unit a fate: formalize in this package version, exclude with a written reason, or mark unprocessed when its disposition is genuinely not yet decided.
  • Cross off each locator as it is dispositioned, so the map visibly covers the whole act.
  • Flag tables, formulas, and boundary readings that need a written decision before rules may cite them.
  • The fate of every content unit, with reasons for every exclusion.
  • Which flagged items need a decision record before rule drafting. In the running example these are the tariff table shape (EAI-D1), the inclusive lower bound of the payout condition (EAI-D2), and the penalty rounding policy (EAI-D3). Records start from the decision record template; two filled examples are the EAI tariff decision and the EAI threshold decision.

The artifact is a per-unit fate map that includes the excluded and the unprocessed units alongside the included ones, so a reader can tell deliberate scope from oversight. Start from the source inventory template; the filled EAI inventory shows the v1 map at article granularity, the v2 inventory revises article 19 at branch granularity, and the v3 inventory extends the same treatment to articles 16 and 17 after finding EAI-R3.

The local copy of the example act holds articles numbered one through twenty-eight. The v1 map includes four articles, each mapped to the rules it yields — and article 19 carries the flaw this handbook is built around: one row, one fate, one rule, while the article holds two adjacent branches.

ArticleContent unitsFate
Eightduty condition: an employer with employees must conclude the insurance contractformalize: the employer duty rule
Ninepenalty formula: unpaid amount times one and a half percent per day of delayformalize: the penalty rule
Seventeentwenty-two-class tariff table plus premium formulaformalize: twenty-two strict tariff rules plus the premium rules — v1 row; the minimum floor hides inside it, as the employer branch hid in the article-19 row
Nineteenpayout condition with inclusive bounds from thirty to one hundred percent lossformalize: the payout rule — v1 row; the employer branch hides inside it

The steepest tariff row belongs to class twenty-two at rate 0.0296. On an insured sum of one million, the base premium is twenty-nine thousand six hundred; a two-day delay on one hundred thousand unpaid yields a penalty of three thousand. A thirty percent loss qualifies for payout while twenty-nine percent does not. The remaining twenty-four articles are excluded by the scope recorded on the scope card, and the unprocessed bucket of the map lists whatever is seen but not yet dispositioned; both are visible in the filled EAI inventory.

The v2 map re-inventories article 19 unit by unit, which is what exposes finding EAI-R1 as a row that should have existed:

LocatorContent unitFate
19.1, line 364insurer payout branch, loss thirty through one hundredformalize: PayoutForThirtyToHundred, decision EAI-D2, two boundary pairs
19.1, line 363employer reimbursement branch, loss five through twenty-nineformalize: LowLossEmployerReimburses, finding EAI-R1 closed, two probes
19.1, line 362harm measured per the Civil Codeexclude: referenced act outside the slice
19.1–19.6, restcaps, annuity mechanics, death benefit, expenses, burial, recovery, transfer, preventionexclude, each unit named with its basis

One article, mixed status: two units formalized, the rest excluded by name, none unprocessed. The full chain for the R1 branch reads: source line 363 → inventory unit (employer branch) → no decision record (direct transcription, not a close call) → rule LowLossEmployerReimburses → probes EAI-R1-LOW-LOSS-TWENTY / FOUR. A whole-article row could never carry that chain — which is exactly why the branch went missing.

The v3 map repeats the lesson for articles 16 and 17, this time caught by finding EAI-R3: the base multiplies the insured sum rather than payroll, the minimum floor gets its own rule, and the S ≥ F constraint is recorded as an assumed input rather than silently dropped:

LocatorContent unitFate
16.1, line 212insured sum set by the contract, not below payrollassume: case input, S ≥ F unchecked
17.1, line 222premium from tariff times the insured sumformalize: PremiumBaseFromInsuredSum, PremiumBaseStands, decision EAI-D4
17.2-1, line 273below-floor base rises to the minimum wageformalize: PremiumMinimumFloor, three probes
17-1, lines 284–355correction coefficient, no-claim discountexclude: no case category asks

The classic failure is inventorying from memory or from a recollection of the act instead of the pinned bytes, which quietly substitutes a remembered reading for the text. Its twin is dropping dull articles silently instead of marking them excluded. A subtler one is starting to interpret during inventory: choosing between readings belongs in decision records, not in the fate map.

The stage is done when each of the following holds:

  • Every content unit of the local copy has exactly one fate, and the counts reconcile at unit granularity: included plus excluded plus unprocessed covers the act with nothing left over. An article-level count that reconciles while a branch hides inside one row fails this check — the v1 map is the worked counterexample.
  • Every included unit traces forward to rules or to a decision record that unblocks them, and every branch of a covered article owns its row, its rule, and its probes.
  • The package checks pass for the inventoried slice. Observed on the accepted candidate with the pinned tool (law 0.1.0, semantics law.core/0.2, published build), R1 excerpt:
Output
ok [kz.corpus.employee_accident_insurance#authored] tests/r1.lawtest / EAI-R1-LOW-LOSS-TWENTY-EMPLOYER-REIMBURSES
ok [kz.corpus.employee_accident_insurance#authored] tests/r1.lawtest / EAI-R1-LOW-LOSS-FOUR-SILENT
total: 37 checked, 37 passed, 0 failed, 0 not run; code 0

Inventory disposes; it does not interpret. Boundary readings and table shapes decided later must cite back to inventory rows, and findings raised at review go on the review record template rather than into the fate map; the filled EAI review record opens finding EAI-R1, the candidate review record closes it with the v2 row as evidence, and the R3 review record closes finding EAI-R3 with the v3 rows as evidence.

Continue with Vocabulary first, which turns the included inventory rows into named relations before any rule cites them.

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.