French family benefits (CNAF corpus)

io.arxo由 arxo.io 發布官方發布者v0.1.1更新於 Oct 24, 2026

French family-benefit models (CNAF corpus) as executable rules with sources; independent demo

發布方自己的服務:UN Charter 1945

已驗證Streamable HTTP可網頁執行知識與記憶資料與分析

概覽

AI 產生的概覽

一個 MCP 伺服器,把法國家庭補助法呈現為可執行、可追溯至法條的模型,讓助理檢索規則、提問並追溯答案。

可以做什麼
檢索與瀏覽形式化法律:語意搜尋、套件目錄、規則定義以及附日期錨點的法條摘錄。向模型提問並取得答案與未成立原因報告,再展開證明鏈並複核其雜湊。以必要條件預篩外部資料列,並對模型本身執行確定性的 LawQL 查詢。執行已記錄的案例套件,檢視已儲存的評估、切片與立場。準備、發布並撤銷凍結的答案文件,檢視生產者能力與發布護照。
適用情境
適合了解法國住房、家庭、身心障礙與最低收入補助如何被建模為規則,將某個金額追溯至具體法條,或比較同一文本的兩種解讀。也適合教學、展示與可重現性檢查,而非真實個案辦理。
執行需求
可作為遠端端點使用,也可透過 npx 在本機執行(Node.js 套件需 Node.js 20+)。未宣告驗證、環境變數或請求標頭。發布答案會產生保留 24 小時的非公開文件。
安裝前請注意
README 說明此模型是獨立的教學與展示建置,不主張法律正確性或完整性,不是 CNAF 官方實作,也不構成法律意見。發布會產生附撤銷密鑰的文件,僅憑公開識別碼無法控制。部分原始檔案不隨套件散布,擷取的文本另有使用條款。請勿提交個人紀錄。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 French family benefits (CNAF corpus),將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.arxo%2Fcnaf/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "french-family-benefits-cnaf-corpus": {
      "type": "http",
      "url": "https://mcp.arxo.io/mcp/cnaf"
    }
  }
}

README

[French Benefits on Arxo — executable rules, traceable sources.]

arxo-cnaf

[Smithery]

Explore French benefit rules as executable models, and trace their answers back to published legal sources.

Explore the demo · Run an example · Read the book

First of all, a demonstration. This repository shows what modelling legislation with Arxo can do: French family-benefit law written as executable canons, with the source of every answer. It is an independent model built from published French law for teaching and demonstration. It does not claim legal accuracy or completeness, it is not an implementation by or for the Cnaf or any French authority, and its answers are not legal advice. For a real file, rely on the official texts and the competent bodies.

Choose your starting point

I want to…Start here
Explore saved cases and their sources in a browserFrench Benefits Lab — no installation
Use a model from JavaScript or TypeScriptNode.js package
Run a local MCP with npx, connect a client or deploy independentlyCNAF MCP — stdio, connection and pinned image
Run a scenario on my machineQuick start
Find the model for a benefitBrowse the models
Reproduce a chapter of the bookBook examples
Rebuild a package or check the registryReproducibility guide

[French Benefits Lab overview: saved family-allowance cases for March and April 2026, with links to their evidence.]

French Benefits Lab, captured on 12 October 2026. Open the demo and choose “Explore a saved family case” to inspect its inputs, answer and French sources. The lab presents its own recorded evidence release; its coverage and version are separate from this repository's export.

What it answers

QuestionExplore a concrete example
How does a selected reading change the amount?One APL case, two readings
Why is an answer withheld?The same APL case without a selected reading
Where do an amount and its parameters come from?Follow an instruction to a saved calculation
What changes between two legal dates?Compare saved dates in the lab
Which facts, duties and stages does a case involve?Browse the book's fictional case files

The browser examples belong to the lab's recorded release. The local APL example below belongs to this repository's pinned model.

Use from Node.js

Node.js 20+. The pinned models are available as @arxo/canon-fr-benefits. Load one world and ask it through the common @arxo/law API:

sh
npm install @arxo/[email protected] @arxo/[email protected]
js
import { open } from '@arxo/law';import { loadModel } from '@arxo/canon-fr-benefits/apl';import { household, caseInput } from '@arxo/canon-fr-benefits/examples/apl';
const model = await loadModel();const apl = await open(model.spec, {  offline: true,  local: { packages: { [model.spec]: model.package } },});const answer = await apl.collect('aide_formule', [household, '?amount'], caseInput);console.log(answer.evaluationStatus); // COMPUTEDconsole.log(answer.value[0].value);   // '20.17' (EUR, formula amount)console.log(apl.unfold('aide_formule', { depth: 2 }).text);

The input is the technical APL case below, with PpPlancherFinal selected. The answer includes the engine's canonical document, proof and hashes. This is a formula amount, not a final payable benefit. The package contains all 21 models; loading a subpath parses only the selected world.

Package API, model exports, TypeScript and verification limits. For maintainers: how to ship a canon with several models. Source models are pinned to the original public export; npm delivery checks are separate from full corpus acceptance, which remains not checked.

Quick start

You need Git, Node.js 20+ and npm. This example uses the released law 0.2.2 command-line tool, which executes the models. The package already includes its pinned dependency; no Python, source restoration or registry installation is needed for this scenario.

sh
npm install -g @arxo/[email protected]law --version
git clone https://github.com/arxohq/arxo-cnaf.gitcd arxo-cnaf/packages/fr.apl
law test . --file tests/finish-lecture-pp.lawtest --json

This runs seven scenarios about the personal contribution in housing aid (article D. 823-17). Success means the command exits with code 0 and the JSON report records no failed scenarios. These are checks against the model's declared expectations, not certification of legal accuracy. The successful report includes these fields:

json
{"ok": true, "passed": 7, "failed": 0, "notRun": 0, "total": 7}

What to explore next: compare the readings, then open the scenario file.

Need help getting started? See Troubleshooting.

Example: one case, two readings

The model records two readings of the personal contribution in article D. 823-17. The choice enters at SensMinimumPp, an interpretation group that requires exactly one of PpPlancherFinal or PpLitteral.

The scenario fixes a single person with no dependants, zone II in metropolitan France, legal date 15 June 2024, supplied resources of €4,000 and zero rent. It also supplies ordinary housing, sole tenancy, zero solidarity rent reduction and no AAH/AEEH beneficiary. Zero rent deliberately isolates the reading difference; this is a technical probe, not a realistic aid claim.

The pinned parameters used in this probe are P0 = €37.91, Tp = 0.0283, R0 = €5,186, L = €0 and C = €58.08.

Selected readingPersonal contribution PpFormula amount Af
PpPlancherFinal — keep a final floor at P0€37.91€20.17
PpLitteral — apply the formula without that final floor€4.3462€53.7338
No reading selectedINTERPRETATION_REQUIREDINTERPRETATION_REQUIRED

Both readings feed the same participation_personnelle relation. The same AideFormule rule then uses Af = L + C − Pp. These are exact formula amounts in the probe; neither is presented as the final payable benefit. The model leaves the choice explicit rather than selecting a reading for you.

The rules behind the amount

This is the native unfold response for aide_formule, rendered as a tree from the published [email protected] world. Each rule exposes its premises, strength and source anchors. The two contribution producers are both visible: ParticipationPersonnelle and ParticipationPersonnelleLitterale.

[Native unfold tree for aide_formule: AideFormule depends on forfait_charges, loyer_eligible and participation_personnelle; their producer rules and source anchors are expanded to depth 2.]

No case, legal date or reading is selected. This shows the model's available rules, not which rules applied to a particular answer. The depth-limit markers come from the engine. Repeated article locators are grouped visually; the JSON retains every dated source anchor.

Full native JSON · Native text and labels · Reproduce these trees

Follow the map in the actual model:

StepInspect
Source references and captured publications01-sources.law — CCH_D823_17, CCH_D823_16 and their dated versions
Selection and literal branch24-lecture-pp.law — SensMinimumPp, ParticipationPersonnelleLitterale
Final-floor branch and downstream formula02-calcul-locatif.law — ParticipationPersonnelle, AideFormule
Both readings and the missing-selection checkfinish-lecture-pp.lawtest — the seven scenarios run in the Quick start

Rules and exceptions

The same view for droit_ouvert shows a defeasible opening rule alongside its exception rules (defeater). Expanding surface_insuffisante exposes its own producers and an exception to that condition. fact, derived, judgment and test are distinct kinds of premise in the native response.

[Native unfold tree for droit_ouvert: DroitOuvert and its exception rules, including ownership, held shares, student exclusion, room occupancy and surface conditions, with source anchors and depth-limit markers.]

This is a map of declared rule structure across the published world, not an eligibility finding for a person. No case, date or reading is selected.

Full native JSON · Native text and labels · Declared exception scenarios

How to read a model

Published text → executable rules → dated case facts → answer and evidence.

A canon is a package containing a legal model, its source references and checks. A scenario supplies facts, dates and any selected interpretation, then states the expected answer. A pinned source is a captured publication identified by its provenance and a content hash, so the model's input can be checked later.

The rules are data in .law files, executed by law. This repository carries no separate implementation of the benefit formulas in application code. Models have individual scope and date boundaries; read a package's source and scenarios before applying its answers to a different case.

At a glance

This snapshotRecorded value and evidence
SubjectFrench benefit models, including housing, family, disability, care and income support; each package has its own scope
Canon export12 October 2026 · public source revision f2efcc6
Source packages and scenarios21 packages · 1,985 declared scenarios · packages.json
Model semanticslaw.core/0.2.11 · fr.apl/law.lock
CLI for the Quick startReleased law 0.2.2; expected report: 7 passed, 0 failed
Registry publications22 packages including the dependency closure · reproducibility guide

Browse the models

The names below identify the subject of each model, not a claim of complete coverage of that benefit. The version and scenario inventory records the exported package versions and dependency counts.

Housing

SubjectModel
Housing aid (APL / AL)fr.apl
Housing-aid payment stagefr.apl.versement
Income used for housing aidfr.tax.income_for_apl

Family and children

SubjectModel
Family allowances (AF)fr.pf.af
Early-childhood benefits (PAJE)fr.pf.paje
Childcare supplement (CMG)fr.pf.cmg
Family supplement (CF)fr.pf.cf
School-start allowance (ARS)fr.pf.ars
Family support allowance (ASF)fr.pf.asf

Disability and care

SubjectModel
Adult disability allowance (AAH)fr.css.aah
Disabled-child education allowance (AEEH)fr.pf.aeeh
Parental presence allowance (AJPP)fr.pf.ajpp
Caregiver allowance (AJPA)fr.css.ajpa

Income support

SubjectModel
Active solidarity income (RSA)fr.casf.rsa
Activity bonusfr.css.prime_activite
Resources for minimum-income benefitsfr.minima.ressources

Shared rules and parameters

SubjectModel
Family-benefit foundationsfr.pf.core
Benefit payments and debt recoveryfr.prestations.versement
Revaluationfr.css.revalorisation
Social-security ceiling (PASS)fr.css.pass
Minimum wage (SMIC)fr.travail.smic

Formalization depth

Depth is recorded per model, against source revision f2efcc6. The unit is an article in a pinned publication edition: the same article can occur in several editions. Identical document bytes are counted once per package. Imports are excluded.

Executable / measured counts units with at least one deriving node. The other levels are I — executable only under an explicit interpretation; A — anchored without a deriving rule; S — source fragment only; N — no model node. An executable unit can still be only partly expressed. These counts describe the pinned excerpts, not the percentage of a benefit or of French law that is completely formalized.

ModelExecutable / measuredOther I / A / S / NRules / normsScenarios
fr.apl1,352 / 1,654 †0 / 166 / 136 / 0480 / 70406
fr.apl.versementnot measured—9 / 011
fr.casf.rsa422 / 5491 / 0 / 126 / 0155 / 34133
fr.css.aah168 / 196 †0 / 0 / 28 / 064 / 470
fr.css.ajpa38 / 600 / 0 / 22 / 018 / 544
fr.css.passnot measured—13 / 026
fr.css.prime_activite693 / 813 †0 / 0 / 120 / 0344 / 17201
fr.css.revalorisationnot measured—3 / 012
fr.minima.ressources105 / 1400 / 0 / 35 / 0102 / 031
fr.pf.aeeh79 / 1100 / 1 / 30 / 0100 / 1950
fr.pf.af103 / 103 †0 / 0 / 0 / 084 / 373
fr.pf.ajpp286 / 3880 / 6 / 96 / 082 / 1091
fr.pf.ars143 / 1800 / 1 / 36 / 016 / 226
fr.pf.asf163 / 1910 / 0 / 28 / 023 / 336
fr.pf.cf103 / 107 †0 / 0 / 4 / 047 / 696
fr.pf.cmg37 / 44 †0 / 0 / 7 / 0180 / 745
fr.pf.core998 / 1,3710 / 0 / 373 / 0251 / 36326
fr.pf.paje29 / 380 / 0 / 9 / 060 / 487
fr.prestations.versementnot measured—183 / 23138
fr.tax.income_for_apl1 / 10 / 0 / 0 / 04 / 03
fr.travail.smic26 / 420 / 0 / 16 / 053 / 080

† Partial measurement: some own publications or declared documents are outside the measured units; the report identifies them. Not measured means no declared source-document division was available for this method, not that the model has no executable rules. Rules / norms count own rule nodes and norm templates separately. Scenarios are the recorded export inventory; they were not rerun for this documentation update.

Method, boundaries and reproduction · Per-unit evidence

Find your way around the repository

PathWhat it contains
packages/Model sources, captured texts, scenarios and pinned dependencies, one directory per canon
registry/Installable publications and their dependency closure — 22 packages, including dependencies; not a duplicate of the source tree
tools/Scripts to obtain the pinned build tools and restore withheld sources
packages.jsonExported package versions, hashes, dependency lists and recorded scenario outcomes
toolchain.lock.jsonExact build-tool release and its SHA-256
WITHHELD.jsonAddresses and hashes of source files that are not redistributed

The packages contain the public consumer kit; authoring reports and maintenance scripts are excluded. See public package contents for the preservation rules and the read-only guard.

For a case package that consumes these canons, follow Install the book examples. For compilation, scenario checks, replay and release rebuilds, follow Rebuild a source package.

Release and verification

Published with Law as Code in Practice: French Family Benefits (Law as Code by Country · Volume 1), available at Arxo Books.

The canons were exported on 12 October 2026 from Arxo commit 7206473829, with 1,985 scenarios passing on law 0.2.1 (law.core/0.2.11). The book's reproduction kit was checked with released law 0.2.2. These are recorded execution results for this export.

The packages workflow compiles each package, runs its scenarios on both evaluators, replays saved evaluations and rebuilds from the release using pinned law-package-tools 0.3.0. The registry workflow checks schemas, addresses and hashes. See the reproducibility guide for requirements and commands.

Found an error?

You do not need to know the rule language to report a problem. Open an issue with:

  1. Where: the package, article or scenario, and the legal date.
  2. What happened: fictional or anonymized input facts, the selected reading, your law --version, and the returned answer or test report.
  3. What you expected: the relevant published source, its date/version, and the reasoning that leads to a different result.

Use fictional or anonymized examples; omit personal records and identifiers. If you mean the browser lab, include its page link and recorded release. A difference between readings may need an explicit alternative rather than a change to a shared rule. A confirmed defect should be accompanied by a scenario that reproduces it.

Cite this snapshot

Arxo (2026). French benefit rules on Arxo: executable, source-linked models. Canon export of 12 October 2026, public source revision f2efcc6788465484f145146a3ed5f76b13d41703.

bibtex
@software{arxo_french_benefits_2026,  author = {Arxo},  title  = {French benefit rules on Arxo: executable, source-linked models},  year   = {2026},  url    = {https://github.com/arxohq/arxo-cnaf/tree/f2efcc6788465484f145146a3ed5f76b13d41703},  note   = {Canon export: 12 October 2026; semantics: law.core/0.2.11}}

For a particular result, also identify its package version, scenario or case, legal date and selected reading, and retain the execution evidence and hashes. The source revision above pins the exported canons; the lab is a separate release.

Rights and contact

Code and model: Apache-2.0. Captured publisher texts retain their own reproduction terms, listed per package in NOTICE; the code licence does not cover those texts. Some source files are withheld from redistribution.

Maintainer: Rifat Dzhumagulov · [email protected].

來源:README.md,提交 a6f0966

工具

16

law_passport

Passeport de publication

Passeport d'une publication exacte : objet, interface, frontières, contrôles et performance. La section reports conserve l'historique des mesures, y compris les échecs. Les enregistrements sont paginés par JSON Pointer ; next poursuit la réponse.

輸入參數name必填limitoffsetversion必填sectionscontentHash必填

law_answer_capabilities

Capacités Lens

Une matrice lisible par machine des producteurs Lens réellement installés, des contrôles replay/projection, des profils, des limites et des tests de contrat qui les confirment. declared_only désigne un schéma sans témoin exécutable.

無需輸入參數。

law_capture_answer

Capturer un résultat pour une Lens

Exécuter un producteur enregistré et obtenir producerControl/0.2 pour une préparation ultérieure vérifiable d'une Lens. Le producteur n'est choisi que dans le registre livré.

輸入參數request必填producer必填

law_prepare_answer

Préparer une rédaction publique

À la demande explicite de l'utilisateur, répéter entre 1 et 12 appels law_ask ou law_process_run antérieurs, comparer strictement leurs replayControl, et préparer un document figé non public pour 24 heures. Le client ne fournit jamais la réponse machine : le serveur ne l'obtient qu'en exécutant à nouveau. Un écart dans une entrée, dans le droit, dans une ressource, dans le code du serveur, dans la bibliothèque du moteur ou dans le résultat rejette le document entier.

輸入參數languagequestion必填assistantcalculationsproducerRunsdocumentVersion

law_publish_answer

Publier une rédaction

Publier un document préparé. La répétition avec le même preparationId renvoie de façon idempotente la même URL et le même secret de révocation distinct.

輸入參數preparationId必填

law_revoke_answer

Révoquer une rédaction

Révoquer un document publié au moyen de son secret distinct. L'identifiant public à lui seul ne donne aucun contrôle ; la révocation ferme la page HTML, l'API et le téléchargement.

輸入參數publicId必填revokeSecret必填

law_packages

Catalogue du droit

Le catalogue du droit formalisé : actes, prédicats avec signatures, frontières de couverture. C'est d'ici que viennent les NOMS des prédicats — ils ne doivent jamais être inventés. Mais ne commencez PAS par le catalogue pour trouver le bon acte : l'aperçu est vaste, et le titre d'un acte coïncide rarement avec les mots d'une question (« Newton's laws of motion » ne contient pas le mot « physics »). Une question dans vos propres mots va d'abord à law_search, qui renvoie des adresses ; le catalogue sert à la signature exacte de ce que vous avez trouvé. Sans arguments — l'aperçu : une ligne par acte (clé, titre, ordre juridique, compteurs de règles, faits, signatures, normes, constantes) ; un acte entier — package="kz-gpk" ; une recherche sur les signatures, étiquettes et constantes de tous les actes — query="substring". Les trois modes sont PAGINÉS : limit et offset, le reste nommé dans le texte (`showing a–b of N; k more`) et dans structuredContent (total, truncated, next — un appel de continuation tout prêt). L'unité d'une page est nommée par pageUnit : l'aperçu et query paginent les ACTES (20 et 20 par défaut), package=… pagine les SIGNATURES d'un acte (20 par défaut, 300 au plus) — les grands codes en portent des milliers. package=… avec catalog=… pagine une liste séparée de l'acte : "questions" — le CATALOGUE DES QUESTIONS : quelles demandes sont prévues (une question en mots, une forme, un prédicat ou des normes) et à quoi l'acte NE répond PAS, avec le type de motif ; une fiche est un modèle de demande, non une réponse, et tous les actes n'en ont pas ; "norms" — les NORMES de l'acte, "constants" — les CONSTANTES (noms des déclarations). "task-guides" — les PARCOURS DE TÂCHE : l'ordre d'application d'un canon à un document — quoi recueillir, quelles cartes interroger et comment lire les réponses ; un parcours ne répond à rien. catalog="task-guides" est admis aussi sans package — tous les parcours du profil ; guide=… — le détail d'un parcours ; le parcours lui-mêm

輸入參數guidelimitqueryoffsetcatalogpackage

law_ask

Interroger le droit

Poser une question au droit formalisé. Quand la réponse est « non établi », elle porte whyNot — le rapport why_not du moteur : les règles candidates et l'état de chaque conjonct (satisfait / non satisfait / indéterminé) ; les faits manquants y sont visibles et n'ont pas à être inventés. AVANT LE PREMIER appel, obtenez les noms de prédicats par law_search (une question dans vos propres mots → adresses) ou law_packages (les signatures d'un acte connu) — un nom inventé sera rejeté. Si l'outil a renvoyé une erreur ou « non établi », C'EST LA RÉPONSE : transmettez-la à l'utilisateur et ne la substituez pas par des connaissances générales sur le droit d'un autre pays. Mais « je n'ai trouvé aucun acte convenable » N'EST PAS une réponse tant que law_search n'a pas été interrogé : le silence du catalogue est une propriété de la recherche par titre, non une conclusion sur le corpus. kind='truth' — si un fait est établi ; kind='collect' — énumérer les enregistrements ; kind='deadline' — calculer un délai sur le calendrier officiel ; kind='positions' — quelles OBLIGATIONS sont nées des faits et quels sont leurs statuts ; kind='why_not' — le rapport why_not sur le même but, quel que soit le statut de la réponse. La réponse porte les règles appliquées, les avertissements et la provenance avec empreintes ; truth/collect portent aussi un bloc signature pour la présentation. Le serveur n'invente pas : là où une norme n'est pas formalisée, la réponse est « non établi » ou une erreur.

輸入參數argscalcdayskindunitafterfactsproofcutoffcontextfocusedpackage另有 10 個

law_screen

Présélection de population

Construire une condition nécessaire — un surensemble — pour la présélection de lignes d'une source externe. Ce n'est PAS une réponse juridique et PAS du SQL : le résultat est un arbre typé et un manifeste des extensions jusqu'à TRUE. Chaque ligne qui passe doit ensuite être calculée en entier par le moteur, avec un graphe de preuve, sur le même instantané des données. Le binding est passé comme objet épinglable ; sourceSchemaContentHash est l'empreinte réelle du schéma source et est comparée bruyamment avec l'épingle. Les faits d'affaire qui portent une provenance (origin, document, citation, extractor) sont fournis à law_ask, pas ici. Le nombre confidence est lu par l'EvidencePolicy du paquet, pas par cet outil et pas par le moteur.

輸入參數goal必填binding必填package必填legalTimesourceSchemaContentHash必填

law_rules

Règles d'inférence

Les règles du droit formalisé mises en mots : comment exactement un prédicat est dérivé (prémisses, articles sources). Appelez ceci AVANT de fournir des faits à law_ask — les règles disent quels faits sont nécessaires au lieu de les laisser à inventer. Pour les grands actes, package=… renvoie une table des matières ; le texte complet vient de predicate=…. La liste par paquet est paginée : limit (20 par défaut, 500 au plus) et offset ; le reste est nommé dans le texte (`showing a–b of N; k more`) et dans structuredContent (total, truncated, next — un appel de continuation tout prêt).

輸入參數langlimitoffsetpackagecontractpredicateinputLimitinputOffset

law_explain

Déplier la preuve

Déplier la preuve d'une réponse law_ask en une chaîne « règle ← prémisses → conclusion ». L'entrée compacte : question (les arguments law_ask d'origine, truth/collect), resultHash et codeHash issus de la provenance de la réponse. Le serveur répète le calcul et compare les empreintes ; si quelque chose a changé, il refuse explicitement. Autrement, passer l'évaluation de law_ask(proof=true). answerResource=fullAnswer.uri explique un instantané compact stocké sans recalcul et sans que le client charge des pages ; par défaut seulement la chaîne proofRef. nodeId sélectionne un nœud et toutes ses prémisses (jusqu'à 24 Ko, sinon un refus explicite). proofHash se rapporte au graphe entier ; scope marque la partie sélectionnée.

輸入參數nodeIdcodeHashquestionevaluationresultHashanswerResource

law_inspect

Inspecteur d'évaluation

Inspecteur d'évaluation sur un document d'évaluation ENREGISTRÉ : summary — la fiche d'origine, la vérification de resultHash et de l'instantané, les listes de résultats, de positions et d'issues ; slice — la clôture des nœuds de preuve pour une question, une règle, une position ou un nœud avec leurs adresses, les deux côtés de BOTH, les défaites, les valeurs, les noms résolus d'après l'instantané ; diff — ce qui a changé entre deux documents aux niveaux du contexte, du résultat et de la justification ; locate — la déclaration par StableId. Rien n'est évalué ni recalculé : la source est evaluation de law_ask(proof=true) ou un answerResource. Une donnée absente est un état de limite (limits), jamais une négation.

輸入參數pageindexbundleselectagainstcontextsourcessnapshotoperation必填evaluationanswerResource

law_case_ask

Paquet-affaire : interroger

L'opération ask : exécuter une affaire enregistrée d'un paquet-affaire sur ses dépendances épinglées et renvoyer la réponse : par défaut une projection du document d'évaluation sans graphe de preuve, avec responseMode full ou proof: true le document canonique avec une preuve et un manifeste. La question est du JSON selon query.schema.json (query), une chaîne evaluate (evaluate + queryId), un queryId enregistré sans query, ou card + args. Un refus de préparation est une erreur avec un code LDC-*, jamais une réponse vide.

輸入參數argscardcaseproofquerypackage必填queryIdevaluateresponseMode

law_sources

Texte officiel

Sources : par défaut de courts extraits (view=summary), 5 textes par page, avec l'adresse du texte complet dans fragments[].full. package ou fragment est requis (un StableId issu de law_search/law_rules). view=full renvoie des parties exactes du texte : textRange fixe une plage de caractères Unicode, fragments[].next est la continuation avec un contentHash. L'empreinte se rapporte à la source ENTIÈRE, non à l'extrait ni à la partie. textOffset/textLimit exigent fragment ; une continuation exige contentHash. Les listes sont paginées avec offset/limit ; le budget de réponse peut réduire une page.

輸入參數viewlimitoffsetstatuspackagefragmentlanguagetextLimittextOffsetcontentHash

law_query

Requête LawQL

Une requête LawQL déterministe sur le CLIR d'une formalisation : une question sur le modèle de l'acte lui-même, pas sur une affaire. Relations (14) : anchors, edges, fields, imports, interpretations, labels, links, literals, nodes, norms, positions, rules, variables, windows. Listes des champs : `law query --schema`. Fonctions (9) : anchor/1, labels/1..2, short/1, contains/2, overlaps/2, starts_with/2, ends_with/2, position/2, derivation/2. exists/not exists sur une variable liée ; égalité et appartenance seulement, sans arithmétique ni comparaisons d'ordre. Périmètre : corpus par package.name (par exemple kz.corpus.labour_code, pas un nom de fichier) ou un glob ; sans corpus, toute la tranche du profil ; un périmètre hors profil est vide (CORPUS_EMPTY). Exemples : `from r in rules where r.head_predicate == "urn:…#eligible" select r.id as producer, r.strength as strength, anchor(r.id) as anchors` — qui produit ; `from l in literals where l.predicate == "urn:…#eligible" select l.node as reader, l.context as context` — qui lit ; `query eligible over "pkg" { for x: Person; where applicant(x); select eligible(x); }` — inférence par le noyau. C'est une orchestration au-dessus du CLIR et du noyau ; aucune sémantique juridique nouvelle n'est implémentée ici. Au lieu du texte, une question du catalogue avec arguments : anchors-of, imports-of, links-of, producers, readers, type-step (composition : `law query --list`) (les paramètres predicate/node/type sont des URN, pkg un package.name ou un glob). La réponse structurelle est une queryPage : resultHash du queryResult complet, snapshot (hachage de la liste des paquets du périmètre), rowCount, rows selon rowLimit (20, au plus 5000) et rowOffset, next avec le snapshot pour continuer ; full: true renvoie le queryResult complet quand le périmètre est un seul paquet. Chaque ligne porte sa provenance (nœuds CLIR) ; une réponse vide porte l'entonnoir explain (emptyAt nomme la clause) ; les erreurs portent des codes LDC-Qxxxx avec de

輸入參數casefulllimitquerycorpusenginequestionrowLimitsnapshotargumentsrowOffset

版本歷史

2
  1. v0.1.1最新Oct 15, 2026
  2. v0.1.0Oct 14, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Arxo 整合