French family benefits (CNAF corpus) について
French family benefits (CNAF corpus)は、フランスの給付制度を実行可能なモデルで表現するデモ用コーパスです。法律ルールのモデル化と公開資料への追跡を試せますが、対象範囲と正確性には限界があり、公式実装や法律助言ではありません。
主な機能
- 01フランスの給付制度の実行可能モデル
- 02回答と法的資料の対応付け
- 03複数分野の給付モデル
- 04事実と法的日付を含むシナリオ
- 05JavaScript・TypeScriptパッケージ
活用シーン
- 01解釈によるAPL計算の違いを調べる
- 02モデルの回答を法的資料までたどる
- 03宣言済みシナリオをローカルで実行する
- 04給付ルールと例外を確認する
MCP 対応
プロジェクトの説明には、stdio接続のローカルCNAF MCPの選択肢があります。提供されるツールについては、提示された情報に記載がありません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.arxo.io/mcp/cnafclaude mcp add --transport http io-arxo-cnaf https://mcp.arxo.io/mcp/cnaf{"mcpServers":{"io-arxo-cnaf":{"type":"http","url":"https://mcp.arxo.io/mcp/cnaf"}}}Cursor で開く{"servers":{"io-arxo-cnaf":{"type":"http","url":"https://mcp.arxo.io/mcp/cnaf"}}}VS Code で開く{"mcpServers":{"io-arxo-cnaf":{"type":"http","url":"https://mcp.arxo.io/mcp/cnaf"}}}{"mcpServers":{"io-arxo-cnaf":{"serverUrl":"https://mcp.arxo.io/mcp/cnaf"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
16| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| kinds | array | いいえ | 候補の種類を絞り込む |
| limit | integer | いいえ | 候補数(8、最大 25 件) |
| query | string | はい | 自分の言葉で書いた質問または概念 |
| package | string | いいえ | この法令内のみを検索 |
詳細
arxo-cnaf
フランスの給付ルールを実行可能なモデルとして調べ、回答の根拠となる公開された法的出典をたどることができます。
まずはデモをご覧ください。 このリポジトリでは、Arxo で法律をモデル化すると何ができるかを紹介しています。 フランスの家族給付法を実行可能なカノンとして記述し、すべての回答の出典を示します。これは、教育およびデモンストレーションを目的として、公開されたフランスの法律をもとに独立して構築したモデルです。法的な正確性や網羅性を主張するものではなく、Cnaf またはいかなるフランスの当局による、またはそのための実装でもありません。また、その回答は法的助言ではありません。実際の案件については、公式の法令と管轄機関にご確認ください。
スタート地点を選ぶ
| やりたいこと | こちらから |
|---|---|
| 保存された事例とその出典をブラウザーで確認する | French Benefits Lab — インストール不要 |
| JavaScript または TypeScript からモデルを使う | Node.js パッケージ |
| npx でローカル MCP を実行し、クライアントを接続するか、個別にデプロイする | CNAF MCP — stdio、接続、固定イメージ |
| 自分のマシンでシナリオを実行する | クイックスタート |
| 給付のモデルを探す | モデルを閲覧する |
| 書籍の章を再現する | 書籍の例 |
| パッケージを再構築するか、レジストリを確認する | 再現性ガイド |
2026 年 10 月 12 日に撮影した French Benefits Lab。デモを開き、「保存された家族の事例を調べる」を選ぶと、入力、回答、フランスの出典を確認できます。 このラボでは、独自に記録した根拠資料のリリースを提示しています。対象範囲とバージョンは、このリポジトリのエクスポートとは別のものです。
回答できる質問
| 質問 | 具体例を見る |
|---|---|
| 選択した解釈によって金額はどう変わりますか? | 1 つの APL 事例、2 つの解釈 |
| 回答が保留されるのはなぜですか? | 解釈を選択していない同じ APL 事例 |
| 金額とそのパラメーターの出典はどこですか? | 指示から保存済みの計算をたどる |
| 2 つの法的基準日の間で何が変わりますか? | ラボで保存済みの日付を比較する |
| 事例にはどのような事実、義務、段階が関係しますか? | 書籍に登場する架空の事例ファイルを閲覧する |
ブラウザーの例は、ラボに記録されたリリースに属します。以下のローカル APL の例は、このリポジトリの固定モデルに属します。
Node.js から使用する
Node.js 20+ が必要です。固定されたモデルは
@arxo/canon-fr-benefits として利用できます。
ワールドを 1 つ読み込み、共通の @arxo/law API を通じて問い合わせます。
npm install @arxo/[email protected] @arxo/[email protected]
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); // COMPUTED
console.log(answer.value[0].value); // '20.17' (EUR, formula amount)
console.log(apl.unfold('aide_formule', { depth: 2 }).text);
入力は、PpPlancherFinal を選択した以下の技術的な APL ケースです。
回答には、エンジンの標準文書、証明、ハッシュが含まれます。
これは計算式による金額であり、最終的な給付額ではありません。パッケージには
21 個すべてのモデルが含まれています。サブパスを読み込むと、選択したワールドのみが解析されます。
パッケージ API、モデルのエクスポート、TypeScript、検証の制限。 メンテナー向け:複数のモデルを含むカノンの公開方法。 ソースモデルは、元の公開エクスポートに固定されています。npm での配布チェックは コーパス全体の受け入れ判定とは別であり、後者は未チェックのままです。
クイックスタート
Git、Node.js 20+、npm が必要です。この例では、モデルを実行するリリース済みの
law 0.2.2 コマンドラインツールを使用します。パッケージには固定された依存関係が
すでに含まれているため、このシナリオでは Python、ソースの復元、レジストリからのインストールは不要です。
npm install -g @arxo/[email protected]
law --version
git clone https://github.com/arxohq/arxo-cnaf.git
cd arxo-cnaf/packages/fr.apl
law test . --file tests/finish-lecture-pp.lawtest --json
これは、住宅扶助における個人負担額(D. 823-17 条)に関する 7 つのシナリオを実行します。
コマンドが終了コード 0 で終了し、JSON レポートに失敗したシナリオが記録されていなければ成功です。
これらはモデルが宣言した期待値に対するチェックであり、法的な正確性を証明するものではありません。
成功したレポートには、次のフィールドが含まれます。
{"ok": true, "passed": 7, "failed": 0, "notRun": 0, "total": 7}
次に確認する内容: 2 つの解釈を比較する、続いて シナリオファイルを開きます。
開始方法でお困りですか?トラブルシューティングをご覧ください。
例:1 つのケース、2 つの解釈
このモデルでは、D. 823-17 条における個人負担額について、2 つの解釈を記録しています。
選択は SensMinimumPp で行います。この解釈グループでは、PpPlancherFinal または
PpLitteral のいずれかを必ず 1 つ選択する必要があります。
シナリオでは、扶養家族のいない単身者、 フランス本土のゾーン II、法的基準日 2024 年 6 月 15 日、申告リソース €4,000、 家賃 ゼロという条件を設定しています。 また、通常の住宅、単独賃借、連帯家賃減額ゼロ、AAH/AEEH 受給者ではないことも設定しています。 家賃をゼロにすることで解釈の違いを意図的に切り分けています。これは技術的な検証であり、 現実的な給付申請を表すものではありません。
この検証で使用する固定パラメーターは、P0 = €37.91、Tp = 0.0283、
R0 = €5,186、L = €0、C = €58.08 です。
| 選択した解釈 | 個人負担額 Pp | 計算式による金額 Af |
|---|---|---|
PpPlancherFinal — 最終下限を P0 に維持 | €37.91 | €20.17 |
PpLitteral — 最終下限を適用せずに計算式を適用 | €4.3462 | €53.7338 |
| 解釈を選択していない | INTERPRETATION_REQUIRED | INTERPRETATION_REQUIRED |
どちらの解釈も、同じ participation_personnelle 関係に反映されます。同じ
AideFormule ルールが Af = L + C − Pp を使用します。これらは検証における正確な計算式の金額であり、
いずれも最終的な給付額として示されているわけではありません。
このモデルは選択を明示したままにし、どちらの解釈を採用するかを代わりに決めることはありません。
金額の背後にあるルール
これは、公開済みの [email protected] ワールドからツリーとしてレンダリングした、aide_formule に対するネイティブの unfold 応答です。各ルールでは、前提、強さ、ソースアンカーを確認できます。2 つの拠出額の生成ルールも、ParticipationPersonnelle と ParticipationPersonnelleLitterale の両方が表示されています。
ケース、法的な日付、解釈は選択されていません。これはモデルで利用可能なルールを示すものであり、特定の回答にどのルールが適用されたかを示すものではありません。深さ制限のマーカーはエンジンによるものです。同じ記事の参照箇所は見た目上まとめられていますが、JSON には日付付きのソースアンカーがすべて保持されています。
ネイティブ JSON 全文 · ネイティブテキストとラベル · これらのツリーを再現する
実際のモデルで、このマップをたどってください。
| ステップ | 確認する内容 |
|---|---|
| ソース参照と取得済みの公開資料 | 01-sources.law — CCH_D823_17、CCH_D823_16 と、それらの日付付きバージョン |
| 選択とリテラル分岐 | 24-lecture-pp.law — SensMinimumPp、ParticipationPersonnelleLitterale |
| 最低額分岐と下流の計算式 | 02-calcul-locatif.law — ParticipationPersonnelle、AideFormule |
| 両方の解釈と選択漏れの確認 | finish-lecture-pp.lawtest — クイックスタートで実行する 7 つのシナリオ |
ルールと例外
droit_ouvert に対する同じ表示では、反証可能な適用ルールと、その例外ルール(defeater)を確認できます。surface_insuffisante を展開すると、独自の生成ルールと、その条件に対する例外が表示されます。ネイティブ応答では、fact、derived、judgment、test はそれぞれ異なる種類の前提です。
これは公開済みワールド全体で宣言されたルール構造のマップであり、個人の受給資格を判定するものではありません。ケース、日付、解釈は選択されていません。
ネイティブ JSON 全文 · ネイティブテキストとラベル · 宣言済みの例外シナリオ
モデルの読み方
公開済みテキスト → 実行可能なルール → 日付付きケースファクト → 回答と根拠。
カノンとは、法的モデル、ソース参照、チェックを含むパッケージです。シナリオでは、ファクト、日付、選択された解釈(ある場合)を指定し、期待される回答を示します。ピン留めされたソースとは、出所情報とコンテンツハッシュによって特定される取得済みの公開資料です。これにより、後からモデルの入力を検証できます。
ルールは .law ファイル内のデータであり、law によって実行されます。このリポジトリには、給付の計算式をアプリケーションコードで別途実装したものは含まれていません。モデルごとに適用範囲と日付の境界が異なります。別のケースに回答を適用する前に、パッケージのソースとシナリオを確認してください。
概要
| このスナップショット | 記録された値と根拠 |
|---|---|
| 対象 | 住宅、家族、障害、介護、所得支援を含むフランスの給付モデル。各パッケージの対象範囲はそれぞれ異なります |
| Canon のエクスポート | 2026年10月12日 · 公開ソースリビジョン f2efcc6 |
| ソースパッケージとシナリオ | 21パッケージ · 宣言済みシナリオ1,985件 · packages.json |
| モデルのセマンティクス | law.core/0.2.11 · fr.apl/law.lock |
| クイックスタート用 CLI | リリース済みの law 0.2.2。期待されるレポート:成功7件、失敗0件 |
| レジストリの公開パッケージ | 依存関係一式を含む22パッケージ · 再現性ガイド |
モデルを参照する
以下の名称は各モデルの対象を示すものであり、その給付を網羅していることを意味するものではありません。バージョンとシナリオの一覧には、エクスポートされたパッケージのバージョンと依存関係の数が記載されています。
住宅
| 対象 | モデル |
|---|---|
| 住宅手当(APL / AL) | fr.apl |
| 住宅手当の支給段階 | fr.apl.versement |
| 住宅手当に用いる所得 | fr.tax.income_for_apl |
家族と子ども
| 対象 | モデル |
|---|---|
| 家族手当(AF) | fr.pf.af |
| 乳幼児向け給付(PAJE) | fr.pf.paje |
| 保育補助(CMG) | fr.pf.cmg |
| 家族手当加算(CF) | fr.pf.cf |
| 新学期手当(ARS) | fr.pf.ars |
| 家族支援手当(ASF) | fr.pf.asf |
障害と介護
| 対象 | モデル |
|---|---|
| 成人障害手当(AAH) | fr.css.aah |
| 障害児教育手当(AEEH) | fr.pf.aeeh |
| 親付き添い手当(AJPP) | fr.pf.ajpp |
| 介護者手当(AJPA) | fr.css.ajpa |
所得支援
| 対象 | モデル |
|---|---|
| 積極的連帯所得(RSA) | fr.casf.rsa |
| 就業ボーナス | fr.css.prime_activite |
| 最低所得給付の算定に用いる資源 | fr.minima.ressources |
共通ルールとパラメーター
| 対象 | モデル |
|---|---|
| 家族給付の基礎 | fr.pf.core |
| 給付の支給と債権回収 | fr.prestations.versement |
| 再評価 | fr.css.revalorisation |
| 社会保障上限額(PASS) | fr.css.pass |
| 最低賃金(SMIC) | fr.travail.smic |
形式化の深度
深度は、ソースリビジョン
f2efcc6を基準に、モデルごとに記録されています。
単位は固定された出版版に収録された記事です。同じ記事が複数の版に収録される場合があります。同一のドキュメントバイト列は、パッケージごとに1回だけカウントされます。インポートは除外されます。
実行可能/測定済みは、少なくとも1つの導出ノードを持つ単位の数です。 その他のレベルは、I — 明示的な解釈のもとでのみ実行可能、A — 導出ルールなしで根拠付け、S — ソース断片のみ、N — モデルノードなし、です。実行可能な単位でも、部分的にしか表現されていない場合があります。 これらの件数は固定された抜粋について示したものであり、給付またはフランス法のうち完全に形式化された割合を示すものではありません。
| モデル | 実行可能/測定済み | その他 I / A / S / N | ルール/規範 | シナリオ |
|---|---|---|---|---|
fr.apl | 1,352 / 1,654 † | 0 / 166 / 136 / 0 | 480 / 70 | 406 |
fr.apl.versement | 未測定 | — | 9 / 0 | 11 |
fr.casf.rsa | 422 / 549 | 1 / 0 / 126 / 0 | 155 / 34 | 133 |
fr.css.aah | 168 / 196 † | 0 / 0 / 28 / 0 | 64 / 4 | 70 |
fr.css.ajpa | 38 / 60 | 0 / 0 / 22 / 0 | 18 / 5 | 44 |
fr.css.pass | 未測定 | — | 13 / 0 | 26 |
fr.css.prime_activite | 693 / 813 † | 0 / 0 / 120 / 0 | 344 / 17 | 201 |
fr.css.revalorisation | 未測定 | — | 3 / 0 | 12 |
fr.minima.ressources | 105 / 140 | 0 / 0 / 35 / 0 | 102 / 0 | 31 |
fr.pf.aeeh | 79 / 110 | 0 / 1 / 30 / 0 | 100 / 19 | 50 |
fr.pf.af | 103 / 103 † | 0 / 0 / 0 / 0 | 84 / 3 | 73 |
fr.pf.ajpp | 286 / 388 | 0 / 6 / 96 / 0 | 82 / 10 | 91 |
fr.pf.ars | 143 / 180 | 0 / 1 / 36 / 0 | 16 / 2 | 26 |
fr.pf.asf | 163 / 191 | 0 / 0 / 28 / 0 | 23 / 3 | 36 |
fr.pf.cf | 103 / 107 † | 0 / 0 / 4 / 0 | 47 / 6 | 96 |
fr.pf.cmg | 37 / 44 † | 0 / 0 / 7 / 0 | 180 / 7 | 45 |
fr.pf.core | 998 / 1,371 | 0 / 0 / 373 / 0 | 251 / 36 | 326 |
fr.pf.paje | 29 / 38 | 0 / 0 / 9 / 0 | 60 / 4 | 87 |
fr.prestations.versement | 未測定 | — | 183 / 23 | 138 |
fr.tax.income_for_apl | 1 / 1 | 0 / 0 / 0 / 0 | 4 / 0 | 3 |
fr.travail.smic | 26 / 42 | 0 / 0 / 16 / 0 | 53 / 0 | 80 |
† **部分測定:**一部の独自出版物または宣言済みドキュメントは測定単位に含まれておらず、レポートに記載されています。未測定は、この方法で宣言されたソースドキュメントの区分が利用できなかったことを意味し、モデルに実行可能なルールがないことを意味するものではありません。ルール/規範は、独自のルールノードと規範テンプレートを別々にカウントしています。シナリオは記録されたエクスポートの一覧であり、このドキュメント更新では再実行されていません。
リポジトリ内を確認する
| パス | 内容 |
|---|---|
packages/ | モデルのソース、取得したテキスト、シナリオ、固定された依存関係。法令体系ごとに1つのディレクトリがあります |
registry/ | インストール可能な公開物とその依存関係一式。依存関係を含む22パッケージで、ソースツリーの複製ではありません |
tools/ | 固定されたビルドツールの取得と、非公開ソースの復元に使用するスクリプト |
packages.json | エクスポートしたパッケージのバージョン、ハッシュ、依存関係の一覧、記録されたシナリオの結果 |
toolchain.lock.json | ビルドツールの正確なリリースとその SHA-256 |
WITHHELD.json | 再配布されないソースファイルのアドレスとハッシュ |
パッケージには、一般公開の利用者向けキットが含まれています。作成レポートと保守スクリプトは除外されています。保存ルールと読み取り専用ガードについては、公開パッケージの内容を参照してください。
これらの法令体系を利用するケースパッケージについては、書籍のサンプルをインストールするを参照してください。コンパイル、シナリオのチェック、再実行、リリースの再ビルドについては、ソースパッケージを再ビルドするを参照してください。
リリースと検証
Law as Code in Practice: French Family Benefits (Law as Code by Country · Volume 1)とともに公開されています。書籍はArxo Booksで入手できます。
法令体系は、2026年10月12日に Arxo のコミット
7206473829からエクスポートされました。law 0.2.1
(law.core/0.2.11)で1,985件のシナリオが合格しました。書籍の再現キットは、リリース済みの
law 0.2.2で検証されています。これらは、このエクスポートに対して記録された実行結果です。
パッケージのワークフローでは、各パッケージをコンパイルし、両方の評価器でシナリオを実行し、保存済みの評価を再実行して、固定された
law-package-tools 0.3.0を使ってリリースから再ビルドします。
レジストリのワークフローでは、スキーマ、アドレス、ハッシュをチェックします。要件とコマンドについては、再現性ガイドを参照してください。
エラーを見つけましたか?
問題を報告するために、ルール言語を知っている必要はありません。 イシューを作成し、次の情報を含めてください。
- 場所: パッケージ、条項またはシナリオ、および法的な日付。
- 発生したこと: 架空または匿名化した入力事実、選択した解釈、使用した
law --version、返された回答またはテストレポート。 - 期待したこと: 該当する公開済みの資料、その日付/バージョン、および異なる結果に至る根拠。
架空または匿名化した例を使用し、個人の記録や識別情報は含めないでください。ブラウザーラボについての場合は、そのページへのリンクと記録されたリリースを記載してください。解釈の違いには、共通ルールを変更するのではなく、明示的な代替案が必要な場合があります。欠陥が確認された場合は、それを再現するシナリオを添えてください。
このスナップショットを引用する
Arxo(2026)。French benefit rules on Arxo: executable, source-linked models.
2026年10月12日の法令体系エクスポート、公開ソースのリビジョン
f2efcc6788465484f145146a3ed5f76b13d41703。
@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}
}
特定の結果を引用する場合は、パッケージのバージョン、シナリオまたはケース、法的な日付、選択した解釈も明記し、実行の証跡とハッシュを保管してください。上記のソースリビジョンはエクスポートされた法令体系を固定するものであり、ラボは別個のリリースです。
権利と連絡先
コードとモデル:Apache-2.0。取得した出版社のテキストには、それぞれの複製条件が適用されます。条件はNOTICEにパッケージごとに記載されています。コードのライセンスは、それらのテキストには適用されません。一部のソースファイルは再配布が制限されています。
メンテナー:Rifat Dzhumagulov · [email protected]。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。

