LPK-E0801 — fact already proposed
For LLMs5 sections
What it means
Section titled “What it means”Proposing records a fact for the case exactly once: each proposal gets an identifier, and proposing the same fact again returns the existing identifier instead of duplicating the record. The refusal is the lookup succeeding — it names the proposal that already carries the fact. Nothing is created or changed by the refusal.
Using the named proposal identifier downstream, or replacing the fact explicitly when it changed, is the whole fix.
Example
Section titled “Example”{ "files": { "law.toml": "[package]\nname = \"demo.case\"\nversion = \"0.1.0\"\nlanguage = \"0.2\"\nnamespace = \"urn:law:demo:case\"\n\n[[cases]]\nname = \"Main\"\npath = \"main.lawcase\"\n", "main.lawcase": "language \"law.core\" version \"0.2\";\npackage demo.case version \"0.1.0\";\nnamespace \"urn:law:demo:case\";\n\ncase Main {\n}\n", "facts.json": "[{\"predicate\": \"enrolled\", \"args\": [\"Ada\"]}, {\"predicate\": \"enrolled\", \"args\": [\"Ada\"]}]" }, "cmd": [ "case", "facts", "propose", "--from", "facts.json", "--by", "urn:law:registrar", "--at", "2026-01-01T00:00:00Z", "--project", "." ], "expect": "LPK-E0801"}{"files": {}, "cmd": ["init", ".", "--name", "demo.diag"]}Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.