docs← Back to article

Markdown for LLMs

LDC-E8201 — Verbalization gap in the template pack

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

Download this articlePlain text ↗
# LDC-E8201 — Verbalization gap in the template pack

## What it means

A review document renders every approved block through a template pack,
and the pack must have a phrase for everything the block contains. When
the pack has no wording for a construct, the renderer leaves an explicit
gap marker in the text instead of guessing. A block that carries such a
marker cannot be approved above draft: signing it would sign a text with
its meaning hidden.

Complete the pack so the construct renders, or keep the approval at draft
until the wording exists. Draft approvals accept gaps; anything above
draft does not.

## Example

```run
{"argv": ["approve", "$ROOT/ir.json", "urn:demo:diagnostics#Duty", "--reviewer", "urn:person:reviewer", "--at", "2026-01-02T03:04:05Z", "--pack", "$ROOT/pack.json", "--status", "approved"], "files": {"ir.json": "{\"nodes\": [{\"id\": \"urn:demo:diagnostics#Duty\", \"kind\": \"rule\", \"package\": \"urn:demo:diagnostics\"}], \"package\": {\"name\": \"demo.diagnostics\", \"namespace\": \"urn:demo:diagnostics\", \"version\": \"0.1.0\"}, \"semanticHash\": \"sha256:0000000000000000000000000000000000000000000000000000000000000000\"}", "pack.json": "{\"coveredNodeKinds\": [], \"disclaimer\": \"probe\", \"formatVersion\": \"law.verb/0.1\", \"language\": \"en\", \"name\": \"probe.pack\", \"phrases\": {\"doc.disclaimer_title\": \"Disclaimer\", \"doc.node_id\": \"Identifier {id}\", \"doc.pack_line\": \"Pack {pack} {version} {language} {semantic_hash}\", \"doc.title\": \"Package {package} {version}\", \"gap\": \"[unverbalized: {what}]\"}, \"version\": \"0.1.0\"}"}, "expect": "LDC-E8201"}
```

## Fix

```run
{"argv": ["approve", "$ROOT/ir.json", "urn:demo:diagnostics#Duty", "--reviewer", "urn:person:reviewer", "--at", "2026-01-02T03:04:05Z", "--pack", "$ROOT/pack.json", "--status", "draft"], "files": {"ir.json": "{\"nodes\": [{\"id\": \"urn:demo:diagnostics#Duty\", \"kind\": \"rule\", \"package\": \"urn:demo:diagnostics\"}], \"package\": {\"name\": \"demo.diagnostics\", \"namespace\": \"urn:demo:diagnostics\", \"version\": \"0.1.0\"}, \"semanticHash\": \"sha256:0000000000000000000000000000000000000000000000000000000000000000\"}", "pack.json": "{\"coveredNodeKinds\": [], \"disclaimer\": \"probe\", \"formatVersion\": \"law.verb/0.1\", \"language\": \"en\", \"name\": \"probe.pack\", \"phrases\": {\"doc.disclaimer_title\": \"Disclaimer\", \"doc.node_id\": \"Identifier {id}\", \"doc.pack_line\": \"Pack {pack} {version} {language} {semantic_hash}\", \"doc.title\": \"Package {package} {version}\", \"gap\": \"[unverbalized: {what}]\"}, \"version\": \"0.1.0\"}"}, "expect": null}
```

## Engine message

The review tooling reports this in its own wording:

```text
block 'urn:demo:diagnostics#Duty' contains 1 ⟦не вербализуется⟧ marker(s) (LDC-E8201): a status above draft is not allowed (LS §3.3)
```

## Related

- [LDC-E8202](/diagnostics/LDC-E8202/) — the neighbouring review refusal.