docs← Back to article

Markdown for LLMs

LDC-W1301 — A public declaration without labels or anchors

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

Download this articlePlain text ↗
# LDC-W1301 — A public declaration without labels or anchors

## What it means

A public normative declaration speaks for the package to the outside
world, so it should carry its provenance: a human label and an anchor to
the source it formalizes. A public declaration with neither is not
wrong — the package still checks — but the debt is recorded: which
declarations arrived without their papers, to be labeled later.

Adding the label and the source anchor clears the warning. Private
declarations never owe either.

## Example

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

relation known() kind institutional;
pub rule Bare strict { then known(); }
```

## Fix

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

entity Applicant;
```

## Engine message

The engine reports this in its own wording:

```text
example.law:6:1: warning LDC-W1301: public normative declaration `Bare` lacks §218 labels and §33 @source anchors; 0.2 warns and records the debt in label-ratchet but does not reject the file
```

## Related

- [Sources](/constructs/sources/) — how declarations anchor to pinned text.