docs← Back to article

Markdown for LLMs

LPK-E0804 — fact cannot be safely printed into .lawcase

The source Markdown for this article. Copy it into your assistant or download it as a text file.

Download this articlePlain text ↗
# LPK-E0804 — fact cannot be safely printed into .lawcase

## What it means

Adding a document pins a typed piece of evidence into the case: the document kind names a package and an entity declared by it. The tool checks the kind against the installed packages before touching anything; when the named package is not installed, there is no declaration to check the document against, so the command refuses. Nothing is created or changed by the refusal.

Installing the package that declares the entity — or naming an entity from a package that is already installed — is the whole fix.

## Example

```pkgtest
{"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", "law.lock": "{\"packages\":[],\"resources\":[]}", "note.txt": "hello doc\n"}, "cmd": ["case", "document", "add", "note.txt", "--as", "note1", "--type", "ghost.pkg::Thing", "--observed", "2026-01-01T00:00:00Z", "--recorded", "2026-01-02T00:00:00Z", "--project", "."], "expect": "LPK-E0804"}
```

## Fix

```pkgtest
{"files": {}, "cmd": ["init", ".", "--name", "demo.diag"]}
```

## Engine message

The tool reports this in its own wording:

```text
law: REFUSAL LPK-E0804: --type ghost.pkg::Thing: package not installed (§168.4)
  → present typed terms and reachable evidence; check §168.4
```

## Related

- [Package, context, snapshots](/recipes/n-package/) — what a project directory holds.