# workspaces-authoring asset set

An AI-asset **source** (publisher `skaile-ai`) for people who *author* assets for
[`@skaile/workspaces`](../packages/workspaces). It is itself a working example of
the conventions it documents: a root `skaile.yaml` publication manifest plus
skills laid out for the resolver.

## Assets

| Kind | Name | Purpose |
|---|---|---|
| skill | [`authoring-skaile-assets`](skills/authoring-skaile-assets/SKILL.md) | Author/restructure an asset repo: the 11 kinds, file layout, frontmatter, `requires` vs `dependencies`, local testing. |
| skill | [`authoring-skaile-manifests`](skills/authoring-skaile-manifests/SKILL.md) | Write/fix/generate a `skaile.yaml`; the **canonical dependency standard**, version waterfall, conflict resolution, v3 lock file. |
| skill | [`skaile-author-asset`](skills/skaile-author-asset/SKILL.md) | Build a skill in a local library and publish it: the source/library/store model, domain structure, and the `.skaile-source.yaml` manifest + publish flow. |
| skill | [`skaile-manage-workspace`](skills/skaile-manage-workspace/SKILL.md) | Manage a workspace from the CLI: init/install, add/remove/list/search assets, sources, libraries, the manage TUI, patches, sessions. |
| skill | [`manifest-compliance`](skills/manifest-compliance/SKILL.md) | Detect + fix non-canonical asset names/refs (the `parseAssetRef` hard error) across a repo via `skaile validate`. |
| bundle | `workspaces-authoring` | Installs the authoring skills together. |

The dependency standard is detailed in
[`skills/authoring-skaile-manifests/references/dependency-standard.md`](skills/authoring-skaile-manifests/references/dependency-standard.md).

## Use as a source

```bash
skaile init                       # in a consumer project
skaile source add <this-repo-url>
skaile source sync
skaile add bundle:@skaile-ai/workspaces-authoring
```

## Maintaining this set

`skaile.yaml` carries a **non-empty `assets:` list, so it is exhaustive** — when
you add a skill/reference/bundle here, add a matching `assets:` entry (and keep
each content `name:` equal to its `assets[].name`). Otherwise the new asset is
browsable in `skaile manage` but fails `skaile add` with `Asset not found`.
