docs← Back to article

Markdown for LLMs

LPK-E0602 — directory neither empty nor a registry

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

Download this articlePlain text ↗
# LPK-E0602 — directory neither empty nor a registry

## What it means

Publishing writes into a registry directory: either a fresh empty directory, which becomes a new registry, or an existing registry with its identity file. A directory that is neither — files but no identity — might be anything, so the tool refuses to mix release bytes into it. Nothing is created or changed by the refusal.

Pointing the command at an empty directory or at the real registry is the whole fix.

## Example

```pkgtest
{
  "files": {
    "release.json": "{\n  \"contentHash\": \"sha256:3740fe61c6f25b5f6af629b26503581aaa3f3cf8193f0b78e441870a7117a6b7\",\n  \"dependencies\": [],\n  \"features\": [\n    \"core-executable\"\n  ],\n  \"files\": {\n    \"law.lock\": \"sha256:0db199d3d67d690bf2bba188dbe6019d881d4c36789c2bc46fbe073e5c7ce57b\",\n    \"package.lawir.json\": \"sha256:3740fe61c6f25b5f6af629b26503581aaa3f3cf8193f0b78e441870a7117a6b7\",\n    \"world.lawir.json\": \"sha256:3740fe61c6f25b5f6af629b26503581aaa3f3cf8193f0b78e441870a7117a6b7\"\n  },\n  \"format\": \"law.package-release/0.1\",\n  \"languageSemantics\": \"law.core/0.2\",\n  \"name\": \"test.leaf\",\n  \"namespace\": \"urn:test:leaf\",\n  \"resources\": [],\n  \"version\": \"0.1.0\",\n  \"worldHash\": \"sha256:3740fe61c6f25b5f6af629b26503581aaa3f3cf8193f0b78e441870a7117a6b7\"\n}\n",
    "package.lawir.json": "{\"artifactHash\":\"sha256:64d1106d9a44c810e579943d22bb5da16aa578f2a955ec644b94a996fab0c2c1\",\"features\":[\"core-executable\"],\"imports\":[],\"metadata\":{},\"nodes\":[{\"cases\":[{\"constructor\":\"urn:test:leaf#T/A\",\"name\":\"A\"},{\"constructor\":\"urn:test:leaf#T/B\",\"name\":\"B\"}],\"contentHash\":\"sha256:cb5cecab39c451f14399e8d03b197faefd8f3b6f4f1b32774ab4f1e21a361609\",\"id\":\"urn:test:leaf#T\",\"kind\":\"type_decl\",\"name\":\"T\",\"package\":\"urn:test:leaf\",\"typeKind\":\"variant\",\"variants\":[\"A\",\"B\"],\"visibility\":\"public\"}],\"package\":{\"name\":\"test.leaf\",\"namespace\":\"urn:test:leaf\",\"semanticHash\":\"sha256:0000000000000000000000000000000000000000000000000000000000000000\",\"version\":\"0.1.0\"},\"schemaVersion\":\"law.core.ir/0.2\",\"semanticHash\":\"sha256:7d7f700e37171852f0ae48d8a5e94661234fda1e5d55fecde1995cb78fadd557\",\"semanticVersion\":\"0.2.4\",\"strata\":[],\"theoryHash\":\"sha256:7d7f700e37171852f0ae48d8a5e94661234fda1e5d55fecde1995cb78fadd557\"}",
    "world.lawir.json": "{\"artifactHash\":\"sha256:64d1106d9a44c810e579943d22bb5da16aa578f2a955ec644b94a996fab0c2c1\",\"features\":[\"core-executable\"],\"imports\":[],\"metadata\":{},\"nodes\":[{\"cases\":[{\"constructor\":\"urn:test:leaf#T/A\",\"name\":\"A\"},{\"constructor\":\"urn:test:leaf#T/B\",\"name\":\"B\"}],\"contentHash\":\"sha256:cb5cecab39c451f14399e8d03b197faefd8f3b6f4f1b32774ab4f1e21a361609\",\"id\":\"urn:test:leaf#T\",\"kind\":\"type_decl\",\"name\":\"T\",\"package\":\"urn:test:leaf\",\"typeKind\":\"variant\",\"variants\":[\"A\",\"B\"],\"visibility\":\"public\"}],\"package\":{\"name\":\"test.leaf\",\"namespace\":\"urn:test:leaf\",\"semanticHash\":\"sha256:0000000000000000000000000000000000000000000000000000000000000000\",\"version\":\"0.1.0\"},\"schemaVersion\":\"law.core.ir/0.2\",\"semanticHash\":\"sha256:7d7f700e37171852f0ae48d8a5e94661234fda1e5d55fecde1995cb78fadd557\",\"semanticVersion\":\"0.2.4\",\"strata\":[],\"theoryHash\":\"sha256:7d7f700e37171852f0ae48d8a5e94661234fda1e5d55fecde1995cb78fadd557\"}",
    "law.lock": "{\n  \"dependencyEdges\": [],\n  \"languageSemantics\": \"law.core/0.2.0\",\n  \"lockVersion\": \"0.1\",\n  \"packages\": [],\n  \"resolutionHash\": \"sha256:d8610173a525522dbdc6f43581ef0c5e2ac3abe0219d4a07aff1e7eb1389a416\",\n  \"root\": {\n    \"contentHash\": \"sha256:7a6b6d14e4ea06f1fa41dc44932a590151dd9ec39573614babbd3c41bc81f8e9\",\n    \"name\": \"test.leaf\",\n    \"namespace\": \"urn:test:leaf\",\n    \"version\": \"0.1.0\"\n  }\n}\n"
  },
  "cmd": [
    "publish",
    ".",
    "--registry",
    "local=."
  ],
  "expect": "LPK-E0602"
}
```

## Fix

```pkgtest
{"files": {}, "cmd": ["init", ".", "--name", "demo.diag"]}
```

## Engine message

The tool reports this in its own wording:

```text
law: REFUSAL LPK-E0602: .: directory neither empty nor a registry (no registry.json)
```

## Related

- [Package, context, snapshots](/recipes/n-package/) — what a project directory holds.