Markdown for LLMs
LPK-E0303 — registry of unsupported layout or without index
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# LPK-E0303 — registry of unsupported layout or without index
## What it means
A registry is a directory with a fixed layout: an identity file naming the format version, descriptors under one path shape, packages under another, and a version index per package. When the format version is unknown or a layout path differs from the fixed shape, the tool cannot read the registry safely, so it refuses before trusting anything. Nothing is created or changed by the refusal.
A registry in the current format — with the version index named explicitly — is what the tool expects; older layouts name the exact version instead of listing.
## Example
```pkgtest
{"files": {"law.toml": "[package]\nname = \"demo.mini\"\nversion = \"0.1.0\"\nlanguage = \"0.2\"\nnamespace = \"urn:law:demo:mini\"\n", "registry.json": "{\"registryId\":\"local\",\"specVersion\":\"9.9\",\"layout\":{}}"}, "cmd": ["add", "foo", "--from", "local", "--registry", "local=.", "--project", "."], "expect": "LPK-E0303"}
```
## Fix
```pkgtest
{"files": {}, "cmd": ["init", ".", "--name", "demo.diag"]}
```
## Engine message
The tool reports this in its own wording:
```text
law: REFUSAL LPK-E0303: registry local: unsupported specVersion Some("9.9") (0.1 and 0.2 supported)
```
## Related
- [Package, context, snapshots](/recipes/n-package/) — what a project directory holds.