speckit-extension

$npx mdskill add github/spec-kit-copilot/speckit-extension

Manage spec-kit extensions with the **Specify CLI** `specify extension` command group. Extensions add reusable commands/hooks to a spec-kit project.

SKILL.md

.github/skills/speckit-extensionView on GitHub ↗
---
name: speckit-extension
description: 'Manage Spec Kit extensions via `specify extension`. USE FOR: listing installed extensions as text or JSON, installing/removing/updating extensions, searching the extension catalog, showing extension info, enabling/disabling extensions, setting resolution priority, or managing extension catalogs. DO NOT USE FOR: artifact composition stacks (use speckit-artifact), presets (use speckit-preset), bundles (use speckit-bundle), or workflows (use speckit-workflow).'
argument-hint: '<list|add|remove|search|info|update|enable|disable|set-priority|catalog> [extension]'
---

# Spec Kit — extensions

Manage spec-kit extensions with the **Specify CLI** `specify extension` command
group. Extensions add reusable commands/hooks to a spec-kit project.

> **Prerequisite:** needs the `specify` CLI. If `specify --version` fails, install it
> with the **speckit-cli-setup** skill first.

## When to use

- Find, install, update, or remove a spec-kit extension.
- Temporarily enable/disable an extension or adjust its resolution priority.
- Add or manage extension catalog sources.

## How to invoke

```bash
# Discover
specify extension list
specify extension list --json                 # machine-readable installed inventory (CLI >= 1.0.7)
specify extension search <query>
specify extension info <name>

# Install
specify extension add <name>
specify extension add <name> --force            # overwrite if already installed
specify extension add <path> --dev              # install from a local directory
specify extension add <name> --from <url>       # install from a custom URL
specify extension add <name> --priority <n>     # lower number = higher precedence

# Lifecycle
specify extension update [<name>]               # update one or all extensions
specify extension enable <name>
specify extension disable <name>
specify extension set-priority <name> <n>
specify extension remove <name>

# Catalogs (sources extensions are resolved from)
specify extension catalog list
specify extension catalog add <https-url> --name <name> [--install-allowed] [--priority <n>] [--description <text>]
specify extension catalog remove <name>
```

> Extension catalog URLs must use **HTTPS**. New catalogs are **not** install-allowed
> by default — pass `--install-allowed` to permit installing extensions from them.

## Notes

- Resolution priority: **lower number = higher precedence** (default `10`).
- `specify extension list --json` requires Specify CLI **>= 1.0.7** and returns
  installed extensions only, even when combined with `--available` or `--all`.
  Each item includes `id`, `name`, `description`, `version`, nullable `author`,
  `priority`, `enabled`, normalized `source`, and `provides` counts for commands,
  templates, scripts, and hooks.
- Prefer `specify extension search` first so you install the correct extension ID.
- `--dev` is for local development of an extension; point it at the extension's
  source directory.
- When the project was initialized in **skills mode** (see the speckit-init skill),
  an installed extension's commands land as `.github/skills/speckit-<cmd>/SKILL.md`.
  To make Copilot pick up the new skills **in the current session**, run
  **`/skills reload`** (no restart needed). They are also loaded automatically on the
  next session start.

More from github/spec-kit-copilot

SkillDescription
speckit-artifactInspect the effective Spec Kit artifact inventory and composition stacks via `specify artifact`. USE FOR: listing commands/templates/scripts/hooks, explaining which preset or extension layer supplies an artifact, inspecting resolution precedence and hidden layers, checking hook registration, or resolving a stack lookupId to its validated contribution. DO NOT USE FOR: installing or changing presets/extensions (use speckit-preset or speckit-extension), resolving only a preset-managed filename (use speckit-preset), or running an artifact.
speckit-bundleDiscover, install, and author Spec Kit bundles via `specify bundle`. USE FOR: searching/showing/listing bundles, installing/updating/removing a bundle (a curated set of extensions/presets/integrations/workflows), validating a bundle manifest, building a distributable bundle artifact, initializing a project and installing a bundle, managing bundle catalog sources. DO NOT USE FOR: individual extensions/presets/integrations/workflows (use their respective skills).
speckit-checkCheck the local environment for Spec Kit by running `specify check` (and `specify version`). USE FOR: verifying required tools are installed, diagnosing a broken spec-kit setup, reporting CLI version/feature capabilities. DO NOT USE FOR: installing or upgrading the CLI itself (use the speckit-self skill).
speckit-cli-setupDetect and install the Spec Kit `specify` CLI that every other speckit skill depends on. USE FOR: checking whether `specify` is installed/on PATH, installing it when missing, fixing "command not found: specify", confirming the CLI is new enough (>= 0.11). DO NOT USE FOR: upgrading an already-installed CLI to a newer release (use speckit-self) or verifying project tools (use speckit-check).
speckit-initScaffold a Spec Kit (spec-driven development) project for GitHub Copilot by running `specify init --integration copilot --integration-options="--skills"`. USE FOR: starting a new spec-kit project, bootstrapping spec-driven development in an existing repo, installing spec-kit templates/scripts/commands for Copilot. DO NOT USE FOR: managing extensions/presets/bundles of an already-initialized project (use the speckit-extension / speckit-preset / speckit-bundle skills instead).
speckit-presetManage Spec Kit presets via `specify preset`. USE FOR: listing installed presets as text or JSON, installing/removing presets, searching the preset catalog, showing preset info, resolving which template a preset name maps to, enabling/disabling presets, setting resolution priority, or managing preset catalogs. DO NOT USE FOR: full artifact composition stacks (use speckit-artifact), extensions (use speckit-extension), bundles (use speckit-bundle), or workflows (use speckit-workflow).
speckit-selfCheck for and apply Spec Kit CLI updates via `specify self`. USE FOR: checking whether a newer specify-cli release is available, previewing an upgrade with --dry-run, upgrading the CLI in place (optionally to a pinned tag). DO NOT USE FOR: checking project tools/integrations (use speckit-check) or managing extensions/presets/integrations/workflows.
speckit-workflowManage and run Spec Kit automation workflows via `specify workflow`. USE FOR: running a workflow by ID or local YAML, resuming a paused/failed run, checking run status, listing/installing/removing workflows, searching the workflow catalog, showing a workflow step graph. DO NOT USE FOR: extensions (use speckit-extension), presets (use speckit-preset), or bundles (use speckit-bundle).
speckit-workflow-stepManage Spec Kit workflow step types via `specify workflow step`. USE FOR: listing built-in and custom workflow step types, installing/removing a custom step type from a catalog, searching/showing step-type info, managing step-type catalog sources. DO NOT USE FOR: running or installing whole workflows (use speckit-workflow), or bundles (use speckit-bundle).