LDC-E1355 — Case-package root outside its composition
For LLMs5 sections
What it means
Section titled “What it means”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.
Example
Section titled “Example”{"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"}{"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}Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.