> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jaasskills.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Package layout

> The canonical on-disk shape of a skill

```text theme={null}
skill.id/
  manifest.yaml         # required — id, version, owner have no sensible default
  schema.json            # optional — empty default: open/untyped I/O contract
  permissions.yaml        # optional — empty default: no permissions requested
  dependencies.yaml       # optional — empty default: no dependencies
  prompt.md | executor.py | executor.js | module.wasm   # entrypoint
  README.md
  changelog.md
  tests/
  examples/
```

Only `manifest.yaml` must actually exist on disk at publish time. `schema.json`, `permissions.yaml`, and `dependencies.yaml` each have an unambiguous empty default and are filled in automatically when absent — a minimal skill isn't forced to carry placeholder files just to say "none of this applies."

The entrypoint file the manifest names is packaged alongside the four documents whenever it exists, but its format is never validated as structured data — that's entirely runtime-family-dependent. `README.md`, `changelog.md`, `tests/`, and `examples/` are part of the canonical layout but are not currently packaged.
