docs← Back to article

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.

Download this articlePlain text ↗
# 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.