mirror of
https://github.com/github/spec-kit.git
synced 2026-03-19 11:53:08 +00:00
feat(presets): pluggable preset system with template/command overrides, catalog, and resolver
- 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
This commit is contained in:
46
presets/scaffold/README.md
Normal file
46
presets/scaffold/README.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user