Skip to content
docs
Arxo ↗

LDC-E1355 — Case-package root outside its composition

For LLMs5 sections

A case package keeps a closed composition at its root: policies, calendars, and the cases themselves. Norms, relations, and facts live in a separate pinned package that the root depends on — never beside the cases. A relation or rule declared at the root breaks the split the whole resolution machinery assumes, so the engine stops at the root before linking any world.

The repair is to move the declarations into the pinned model package and depend on it, leaving the root to cases and policies. The root asks questions; it never declares what they are about.

run
{"argv": ["ask", "$ROOT", "--query-id", "Q", "--query", "evaluate truth(sunny());"], "files": {"law.toml": "[package]\nname = \"demo.diagnostics\"\nversion = \"0.1.0\"\nlanguage = \"0.2\"\nnamespace = \"urn:law:demo:diagnostics\"\n\n[[cases]]\nname = \"Solo\"\npath = \"solo.lawcase\"\n", "package.law": "language \"law.core\" version \"0.2\";\npackage demo.diagnostics version \"0.1.0\";\nnamespace \"urn:law:demo:diagnostics\";\n\nrelation sunny() kind institutional;\n", "solo.lawcase": "language \"law.core\" version \"0.2\";\npackage demo.diagnostics version \"0.1.0\";\nnamespace \"urn:law:demo:diagnostics\";\n\nrelation sunny() kind institutional;\n\ncase Solo {\n context {\n legal_time @2026-08-26;\n }\n}\n", "law.lock": "{\n \"dependencyEdges\": [],\n \"languageSemantics\": \"law.core/0.2.0\",\n \"lockVersion\": \"0.1\",\n \"packages\": [],\n \"resolutionHash\": \"sha256:be03238a8c67b8f0879522d90b0750732ba05663f96df91cea6118d0a84076b1\",\n \"root\": {\n \"contentHash\": \"sha256:f6ee452b5a1b1ea60601c67b78a639066f8bda6b184f379b80749633c387331f\",\n \"name\": \"demo.diagnostics\",\n \"namespace\": \"urn:law:demo:diagnostics\",\n \"version\": \"0.1.0\"\n }\n}\n"}, "expect": "LDC-E1355"}
run
{"argv": ["ask", "$ROOT", "--query-id", "Q", "--query", "evaluate truth(sunny());"], "files": {"law.toml": "[package]\nname = \"demo.diagnostics\"\nversion = \"0.1.0\"\nlanguage = \"0.2\"\nnamespace = \"urn:law:demo:diagnostics\"\n\n[[cases]]\nname = \"Solo\"\npath = \"solo.lawcase\"\n", "package.law": "language \"law.core\" version \"0.2\";\npackage demo.diagnostics version \"0.1.0\";\nnamespace \"urn:law:demo:diagnostics\";\n", "solo.lawcase": "language \"law.core\" version \"0.2\";\npackage demo.diagnostics version \"0.1.0\";\nnamespace \"urn:law:demo:diagnostics\";\n\nrelation sunny() kind institutional;\n\ncase Solo {\n context {\n legal_time @2026-08-26;\n }\n}\n", "law.lock": "{\n \"dependencyEdges\": [],\n \"languageSemantics\": \"law.core/0.2.0\",\n \"lockVersion\": \"0.1\",\n \"packages\": [],\n \"resolutionHash\": \"sha256:be03238a8c67b8f0879522d90b0750732ba05663f96df91cea6118d0a84076b1\",\n \"root\": {\n \"contentHash\": \"sha256:f6ee452b5a1b1ea60601c67b78a639066f8bda6b184f379b80749633c387331f\",\n \"name\": \"demo.diagnostics\",\n \"namespace\": \"urn:law:demo:diagnostics\",\n \"version\": \"0.1.0\"\n }\n}\n"}, "expect": null}

The engine reports this in its own wording:

Output
{"error":{"code":"LDC-E1355","message":"the case-package root contains declarations outside the closed composition: symbol_decl — norms and facts live in a separate pinned package (§168.4)"}}

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

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