mirror of
https://github.com/github/spec-kit.git
synced 2026-03-17 19:03:08 +00:00
- Rename 'template packs' to 'presets' to avoid naming collision with core templates - PresetManifest, PresetRegistry, PresetManager, PresetCatalog, PresetResolver in presets.py - Extract CommandRegistrar to agents.py as shared infrastructure - CLI: specify preset list/add/remove/search/resolve/info - CLI: specify preset catalog list/add/remove - --preset option on specify init - Priority-based preset stacking (--priority, lower = higher precedence) - Command overrides registered into all detected agent directories (17+ agents) - Extension command safety: skip registration if target extension not installed - Multi-catalog support: env var, project config, user config, built-in defaults - resolve_template() / Resolve-Template in bash/PowerShell scripts - Self-test preset: overrides all 6 core templates + 1 command - Scaffold with 4 examples: core/extension template and command overrides - Preset catalog (catalog.json, catalog.community.json) - Documentation: README.md, ARCHITECTURE.md, PUBLISHING.md - 110 preset tests, 253 total tests passing
47 lines
1.7 KiB
Markdown
47 lines
1.7 KiB
Markdown
# My Preset
|
|
|
|
A custom preset for Spec Kit. Copy this directory and customize it to create your own.
|
|
|
|
## Templates Included
|
|
|
|
| Template | Type | Description |
|
|
|----------|------|-------------|
|
|
| `spec-template` | template | Custom feature specification template (overrides core and extensions) |
|
|
| `myext-template` | template | Override of the myext extension's report template |
|
|
| `speckit.specify` | command | Custom specification command (overrides core) |
|
|
| `speckit.myext.myextcmd` | command | Override of the myext extension's myextcmd command |
|
|
|
|
## Development
|
|
|
|
1. Copy this directory: `cp -r presets/scaffold my-preset`
|
|
2. Edit `preset.yml` — set your preset's ID, name, description, and templates
|
|
3. Add or modify templates in `templates/`
|
|
4. Test locally: `specify preset add --dev ./my-preset`
|
|
5. Verify resolution: `specify preset resolve spec-template`
|
|
6. Remove when done testing: `specify preset remove my-preset`
|
|
|
|
## Manifest Reference (`preset.yml`)
|
|
|
|
Required fields:
|
|
- `schema_version` — always `"1.0"`
|
|
- `preset.id` — lowercase alphanumeric with hyphens
|
|
- `preset.name` — human-readable name
|
|
- `preset.version` — semantic version (e.g. `1.0.0`)
|
|
- `preset.description` — brief description
|
|
- `requires.speckit_version` — version constraint (e.g. `>=0.1.0`)
|
|
- `provides.templates` — list of templates with `type`, `name`, and `file`
|
|
|
|
## Template Types
|
|
|
|
- **template** — Document scaffolds (spec-template.md, plan-template.md, tasks-template.md, etc.)
|
|
- **command** — AI agent workflow prompts (e.g. speckit.specify, speckit.plan)
|
|
- **script** — Custom scripts (reserved for future use)
|
|
|
|
## Publishing
|
|
|
|
See the [Preset Publishing Guide](../PUBLISHING.md) for details on submitting to the catalog.
|
|
|
|
## License
|
|
|
|
MIT
|