docs← Back to article

Markdown for LLMs

LDC-E5206 — Hash claim without local bytes

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

Download this articlePlain text ↗
# LDC-E5206 — Hash claim without local bytes

## What it means

A publication that declares a `content_hash` but no `local_path` claims
pinned bytes nobody can re-read: there is nothing local to hash and
compare, so the document checks stay silent. That may be a deliberate
stand-off reference, which is why the compiler only warns. To silence the
warning, either ship the bytes with a local path or drop the hash claim the
package cannot back.

## Example

```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";

source S { kind law; }
edition E of S { language ru-KZ; officiality official; materialization_status PINNED_UNOFFICIAL_COPY; }
publication P of E {
  media_type "text/plain";
  uri "urn:x";
  content_hash "sha256:ab";
}
```

## Fix

```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";

source S { kind law; }
edition E of S { language ru-KZ; officiality official; materialization_status PINNED_UNOFFICIAL_COPY; }
```

## Engine message

The engine reports this in its own wording:

```text
example.law:7:13: warning LDC-E5206: publication "P": `content_hash` is declared but no `local_path` — bytes do not resolve locally, and both §194 checks (fragment text inclusion and document hash) do not run (§27.3, errata E-0024)
```

## Related

- [Sources](/constructs/sources/) — how publications pin their bytes.