45 lines
1.7 KiB
Markdown
45 lines
1.7 KiB
Markdown
# Channel-Gated Skills
|
|
|
|
Skills in this directory are bundled only for specific release channels.
|
|
During the build, `script/copy_conditional_skills` copies skills from the
|
|
gate directory that matches the current channel into the app bundle alongside
|
|
the always-bundled skills in `resources/bundled/skills/`.
|
|
|
|
## Directory structure
|
|
|
|
Each subdirectory is a **gate label**. Place skill directories inside the
|
|
gate that corresponds to the **earliest** channel where the skill should ship:
|
|
|
|
```
|
|
channel-gated-skills/
|
|
├── dogfood/ ← dogfood-only skills
|
|
│ └── my-skill/
|
|
└── preview/ ← preview and later
|
|
└── another-skill/
|
|
```
|
|
|
|
> **Stable-ready skills** do not belong here. Place them in the always-bundled
|
|
> `resources/skills/` directory instead. The build script will error if a
|
|
> `stable/` directory exists under `channel-gated-skills/`.
|
|
|
|
## Progressive gating
|
|
|
|
Gating is **progressive**: earlier gates include all skills from later gates.
|
|
|
|
| Channel | Gate | Includes skills from |
|
|
|-----------|-----------|-------------------------------|
|
|
| `local` | `dogfood` | `dogfood/` + `preview/` |
|
|
| `dev` | `dogfood` | `dogfood/` + `preview/` |
|
|
| `preview` | `preview` | `preview/` |
|
|
| `stable` | — | *(none — use resources/skills/)* |
|
|
|
|
A skill placed in `preview/` is bundled on **all** non-stable builds
|
|
(dogfood, preview). A skill placed in `dogfood/` is bundled on dogfood
|
|
builds only.
|
|
|
|
## Adding a new gated skill
|
|
|
|
1. Create a directory under the appropriate gate (e.g. `dogfood/my-skill/`).
|
|
2. Add a `SKILL.md` with the standard skill frontmatter and instructions.
|
|
3. Place any supporting scripts or files alongside it.
|