- name
- skill-pilot-extension
- description
- Create, update, install, uninstall, or use Skill Pilot extensions under `extensions/`, including optional extension-specific agent guidance.
# AI Builder - Skill Pilot Extension
This skill creates or updates Skill Pilot extensions that appear in the WebUI Extensions screen.
## When to Use This Skill
- The user asks to create a new extension under `extensions/`
- The user asks to update an existing Skill Pilot extension
- The user wants to add or change `extension.json5`
- The user wants to add a `prompt`, `skill`, or `script` extension type
- The user asks to use an extension under `extensions/<name>`
- The user wants an extension installer script or packaged extension assets added or updated
- The user asks to install, update, or uninstall an existing extension
## Your Roles in This Skill
- **Project Manager**: Clarify the extension goal, choose the correct extension type, and keep the work aligned with the WebUI extension contract.
- **Backend Developer (Engineer)**: Create or update extension folders, metadata files, installer scripts, and any packaged extension assets.
- **Technical Writer**: Keep extension metadata and supporting docs concise, correct, and maintainable.
## Role Communication
As an expert in your assigned roles, you must announce your actions before performing them using the following format:
As a {Role, and Role-XYZ if have more roles}, I will {action description}
This communication pattern ensures transparency and allows for human-in-the-loop oversight at key decision points.
## Instructions
Follow these steps in order:
### Step 1: Resolve the extension target
- Determine whether the task is for a new extension or an update.
- Resolve the extension folder under `extensions/`.
- If no folder name is provided, choose a concise kebab-case name that matches the extension purpose.
### Step 2: Choose the correct extension type
- Use `prompt` when the WebUI should open a new agent session using a configured prompt.
- Use `skill` when the WebUI should open a new agent session that invokes an installed agent skill.
- Use `script` when the WebUI should run `install`, `update`, or `uninstall` through `extension.py`.
- Refer to `references/extension-contract.md` for the exact metadata contract and runtime behavior.
### Step 3: Create or update extension metadata
- Create or update `extension.json5` in the extension root.
- Always include `name`, `description`, and `type`.
- If `type` is `prompt`, include `prompt`.
- If `type` is `skill`, include `skill`.
- If `type` is `script`, include `script` only when not using the default `extension.py`.
- Include `entrypoint` when the extension has an HTML page the WebUI should serve (e.g. `index.html`).
- Include `installed` (defaults to `false`); script extensions must update this field after successful install/uninstall.
### Step 4: Add extension implementation files
- For `prompt`, keep the prompt generic because the WebUI appends the extension path separately.
- For `skill`, ensure the referenced agent skill exists and is the right category for the task.
- For `script`, add or update `extension.py` and support `install`, `update`, and `uninstall`.
- When the extension needs agent-specific operating instructions, add `extensions/<extension-name>/AGENTS.md`.
- `AGENTS.md` is optional, but create it when the extension needs custom usage rules, lookup rules, trust boundaries, or fallback guidance for future agents.
- If the script depends on a Git repository, check out the repository to `.skillpilot/temp/` and understand its structure before writing the script.
- If the checked-out structure differs materially from the user's instruction, stop and ask the user to confirm the intended behavior before creating or changing the script.
- Repositories under `https://github.com/X-School-Academy/` are trusted for this inspection step and do not require an extra trust confirmation.
- If the script needs temporary or intermediate files, write them under `.skillpilot/temp/`.
- Refer to `references/script-extension-packaging.md` for script layout and lifecycle guidance.
### Step 5: Run install, update, or uninstall when requested
When the user asks to install, update, or uninstall an existing extension:
- Locate the extension folder under `extensions/` and read its `extension.json5`.
- Before using the extension, check whether `extensions/<extension-name>/AGENTS.md` exists.
- If that `AGENTS.md` exists, read it and follow its instructions before inspecting extension code or assets.
- If that `AGENTS.md` does not exist, tell the user there is no extension-specific `AGENTS.md` and offer to inspect the extension code to determine how to use it.
- For `script` extensions, run the action via `core/bin/python {ext-path}/extension.py {action}` where `{action}` is `install`, `update`, or `uninstall`.
- For `prompt` extensions, start a new session using the configured `prompt` with the extension path appended.
- For `skill` extensions, start a new session that invokes the referenced agent skill.
- After a successful `install` or `update`, verify that `installed` is set to `true` in `extension.json5`.
- After a successful `uninstall`, verify that `installed` is set to `false` in `extension.json5`.
### Step 6: Validate and document
- Ensure the extension is discoverable by the WebUI by keeping `extension.json5` in the extension root.
- If the extension adds reusable user skills, validate them with `core/bin/skill-verify` and refresh installed skills with `core/bin/skill-install`.
- Update extension documentation when the metadata contract or install flow changes.
## Expected Output
- A ready-to-use extension folder under `extensions/`
- Valid `extension.json5` metadata
- Any required `extension.py`, packaged assets, and supporting docs
## Key Principles
- Keep the extension contract data-driven rather than hard-coded in the WebUI
- Keep prompt extension text generic and let the WebUI append the extension path
- Keep extension implementation scoped to that extension folder
- Use extension-local `AGENTS.md` files for custom agent behavior when an extension needs usage-specific instructions
- Prefer concise `SKILL.md` instructions and move detailed operational rules into reference files
Auf GitHub ansehen