Markdown for LLMs
LDC-E5207 — Pinning without a declared status
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# LDC-E5207 — Pinning without a declared status
## What it means
Byte pinning is a declared status, not something the compiler infers from
a stray hash. When an edition — or one of its publications — carries a
`content_hash` but the edition declares no `materialization_status`, the
package claims pinned bytes without saying what kind of pinning that is.
The compiler warns and asks for the status to be written down. Declaring
the status is the whole fix.
## 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; 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 ABSTRACT_ONLY; content_hash "sha256:ab"; }
```
## Engine message
The engine reports this in its own wording:
```text
example.law:6:9: warning LDC-E5207: edition "E": byte pinning is declared (edition or publication `content_hash`), but `materialization_status` is not declared — §27.2 requires declaring the status, not deriving it from publication presence
```
## Related
- [Sources](/constructs/sources/) — how editions declare their byte status.