# 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.