Books / Law as Code in Practice: French Family Benefits / Chapter 16
Part V · Chapter 16
An Assistant That Answers With Proof

Contents of Law as Code in Practice: French Family Benefits
By the end you can distinguish an assistant’s source discovery from a computed answer and its grounds.
Lawyer: inspect the rule and its premises.
Analyst: check supplied facts before repeating an amount.
Developer: preserve requests, replies and proof in a compatible integration.
The family’s question
“Can an assistant tell us the amount and show its grounds?” Predict whether finding the relevant article is enough. The recorded client asks about fictional Martin: two dependent children, €30,000 resources, April 2026 inputs, no age supplements or forfait. This is not the Garniers’ file.
The legal fragment
The search finds the pinned L. 521-1 CSS wording applied in April 2026:
Les allocations familiales sont dues à partir du deuxième enfant à charge.
English gloss: allowances are due from the second dependent child. The amount also needs parameters, resource conditions and case facts. Preuve → proof → the saved proof graph; MCP is the protocol used by this compatible integration.
The recorded sequence
| Step | What the client obtains |
|---|---|
law_search |
Candidate source text |
law_rules |
Rules producing af_montant_du and required premises |
law_ask |
Computed collection with one amount, €153.01, and its proof |
Recorded on 9 October 2026 through local MCP recording server 0.1.0. The server version describes this recording, not the CLI. The assistant scene preserves the full requests and replies. Albert, the French administration’s AI assistant, was not involved. This demonstrates a compatible client integration, not a claim about every assistant.
The final amount is supported by the same actual rule used in the preceding chapter:
rule MontantDu(p: fr.pf.core::Personne, m: Money, c: Money, f: Money) strict {
effective [@2015-07-01, infinity);
when montant_mensuel_af(p, m) and complement_degressif(p, c)
and forfait_total_menage(p, f);
then af_montant_du(p, round(m + c + f, 2, "HALF_UP"));
}
Labels and source anchors are left out. The recorded €153.01 is gross monthly family allowance, before CRDS. The request uses a legal date of 15 April 2026, supplies BMAF of €478.16 and selects the named reading fr.pf.af::ArrondiLignesDss. The assistant must inspect these settings and the household facts before presenting the amount. A search excerpt cannot establish those premises.
Change one thing
If resources are missing, obtain clarification before presenting an established amount. Chapter 2 separates a truth question from the why_not question that identifies a missing premise. If the issue is an authority’s judgment, use the request-and-decision path of Chapter 9. Neither gap is resolved by a fluent explanation.
These two branches describe the integration method. The recorded Martin dialogue establishes the stated amount with its supplied facts; it does not execute those additional branches.
What this gives the fund
A caseworker can inspect the exact question and the engine’s reply before adopting an assistant’s explanation. The saved proof offers a check on the answer’s grounds and an identified point for asking for data or human determination. Publication or communication to a recipient is a further action.
Where Catala and L4 stand on this
Catala keeps executable law and tests together (Catala book, ch. 3.3). L4 also supports MCP integration. Arxo’s compatible integration adds a saved proof graph to the computed answer. Catala 1.3.0’s book does not describe a built-in MCP protocol interface; an application can provide one. For the fund, the useful artefact here is the preserved question, answer and grounds, rather than the assistant’s wording alone.
Exercise
- Which step establishes the amount?
- What should the assistant do with a missing resource premise?
- Was this an Albert integration test?