docs← Back to article

Markdown for LLMs

LDC-E5205 — Pinned edition needs a fragment hash

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

Download this articlePlain text ↗
# LDC-E5205 — Pinned edition needs a fragment hash

## What it means

An edition whose declared status says its bytes are pinned promises that
every fragment text can be re-verified against a digest. The promise is
kept fragment by fragment: each fragment carrying official text must carry
its own `content_hash`. When a fragment has text but no hash, the edition
claim is backed by nothing at that spot, and the compiler reports the
fragment. Editions without a pinned status carry no such duty.

## 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; }
fragment F in E { kind article; locator "article/1";
  text ru-KZ official """Статья 1. Взнос."""; }
```

## 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; }
fragment F in E { kind article; locator "article/1";
  text ru-KZ official """Статья 1. Взнос."""; }
```

## Engine message

The engine reports this in its own wording:

```text
example.law:7:10: error LDC-E5205: fragment "F": edition "E" declares pinned bytes (§27.2), so the fragment official text must carry `content_hash` — §194 formalization source text hash missing
```

## Related

- [Sources](/constructs/sources/) — how fragments pin their official text.