# LDC-E5103 — A source anchor with no package address ## What it means A bare name in a source anchor is read as an address inside the package: a fragment, an edition, a publication, or a source. When the name matches none of these, the anchor stays opaque and the trace carries no address for it. The compiler warns and keeps the package green. Point the anchor at something declared, qualify it toward a foreign package, or write the external identifier as a quoted string. ## Example ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; source S1 { kind statute; } edition E1 of S1 { language en; officiality official; } fragment F1 in E1 { text en official "Duty applies."; } entity A; relation p(a: A) kind institutional; relation q(a: A) kind institutional; @source(Ghost) { rule r1 strict { for a: A; when p(a); then q(a); } } ``` ## Fix ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; source S1 { kind statute; } edition E1 of S1 { language en; officiality official; } fragment F1 in E1 { text en official "Duty applies."; } entity A; relation p(a: A) kind institutional; relation q(a: A) kind institutional; @source(F1) { rule r1 strict { for a: A; when p(a); then q(a); } } ``` ## Engine message The engine reports this in its own wording: ```text example.law:11:1: warning LDC-E5103: @source(Ghost): "Ghost" is not declared in the package as fragment/edition/publication/source — a bare name stays in `anchors` instead of a StableId, and the trace carries no §33 address (§202). A reference to a foreign package is written `пакет::Фрагмент`, an opaque external-registry identifier — as a quoted string ``` ## Related - [Sources](/constructs/sources/) — how works, editions, and fragments are declared.