mirror of
https://github.com/github/spec-kit.git
synced 2026-03-18 19:33:09 +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:
15
presets/self-test/commands/speckit.specify.md
Normal file
15
presets/self-test/commands/speckit.specify.md
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
description: "Self-test override of the specify command"
|
||||
---
|
||||
|
||||
<!-- preset:self-test -->
|
||||
|
||||
You are following the self-test preset's version of the specify command.
|
||||
|
||||
When creating a specification, follow this process:
|
||||
|
||||
1. Read the user's requirements from $ARGUMENTS
|
||||
2. Create a specification document using the spec-template
|
||||
3. Include all standard sections plus the self-test marker
|
||||
|
||||
> This command is provided by the self-test preset.
|
||||
61
presets/self-test/preset.yml
Normal file
61
presets/self-test/preset.yml
Normal file
@@ -0,0 +1,61 @@
|
||||
schema_version: "1.0"
|
||||
|
||||
preset:
|
||||
id: "self-test"
|
||||
name: "Self-Test Preset"
|
||||
version: "1.0.0"
|
||||
description: "A preset that overrides all core templates for testing purposes"
|
||||
author: "github"
|
||||
repository: "https://github.com/github/spec-kit"
|
||||
license: "MIT"
|
||||
|
||||
requires:
|
||||
speckit_version: ">=0.1.0"
|
||||
|
||||
provides:
|
||||
templates:
|
||||
- type: "template"
|
||||
name: "spec-template"
|
||||
file: "templates/spec-template.md"
|
||||
description: "Self-test spec template"
|
||||
replaces: "spec-template"
|
||||
|
||||
- type: "template"
|
||||
name: "plan-template"
|
||||
file: "templates/plan-template.md"
|
||||
description: "Self-test plan template"
|
||||
replaces: "plan-template"
|
||||
|
||||
- type: "template"
|
||||
name: "tasks-template"
|
||||
file: "templates/tasks-template.md"
|
||||
description: "Self-test tasks template"
|
||||
replaces: "tasks-template"
|
||||
|
||||
- type: "template"
|
||||
name: "checklist-template"
|
||||
file: "templates/checklist-template.md"
|
||||
description: "Self-test checklist template"
|
||||
replaces: "checklist-template"
|
||||
|
||||
- type: "template"
|
||||
name: "constitution-template"
|
||||
file: "templates/constitution-template.md"
|
||||
description: "Self-test constitution template"
|
||||
replaces: "constitution-template"
|
||||
|
||||
- type: "template"
|
||||
name: "agent-file-template"
|
||||
file: "templates/agent-file-template.md"
|
||||
description: "Self-test agent file template"
|
||||
replaces: "agent-file-template"
|
||||
|
||||
- type: "command"
|
||||
name: "speckit.specify"
|
||||
file: "commands/speckit.specify.md"
|
||||
description: "Self-test override of the specify command"
|
||||
replaces: "speckit.specify"
|
||||
|
||||
tags:
|
||||
- "testing"
|
||||
- "self-test"
|
||||
9
presets/self-test/templates/agent-file-template.md
Normal file
9
presets/self-test/templates/agent-file-template.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Agent File (Self-Test Preset)
|
||||
|
||||
<!-- preset:self-test -->
|
||||
|
||||
> This template is provided by the self-test preset.
|
||||
|
||||
## Agent Instructions
|
||||
|
||||
Follow these guidelines when working on this project.
|
||||
15
presets/self-test/templates/checklist-template.md
Normal file
15
presets/self-test/templates/checklist-template.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Checklist (Self-Test Preset)
|
||||
|
||||
<!-- preset:self-test -->
|
||||
|
||||
> This template is provided by the self-test preset.
|
||||
|
||||
## Pre-Implementation
|
||||
|
||||
- [ ] Spec reviewed
|
||||
- [ ] Plan approved
|
||||
|
||||
## Post-Implementation
|
||||
|
||||
- [ ] Tests passing
|
||||
- [ ] Documentation updated
|
||||
15
presets/self-test/templates/constitution-template.md
Normal file
15
presets/self-test/templates/constitution-template.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# Constitution (Self-Test Preset)
|
||||
|
||||
<!-- preset:self-test -->
|
||||
|
||||
> This template is provided by the self-test preset.
|
||||
|
||||
## Principles
|
||||
|
||||
1. Principle 1
|
||||
2. Principle 2
|
||||
|
||||
## Guidelines
|
||||
|
||||
- Guideline 1
|
||||
- Guideline 2
|
||||
22
presets/self-test/templates/plan-template.md
Normal file
22
presets/self-test/templates/plan-template.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# Implementation Plan (Self-Test Preset)
|
||||
|
||||
<!-- preset:self-test -->
|
||||
|
||||
> This template is provided by the self-test preset.
|
||||
|
||||
## Approach
|
||||
|
||||
Describe the implementation approach.
|
||||
|
||||
## Steps
|
||||
|
||||
1. Step 1
|
||||
2. Step 2
|
||||
|
||||
## Dependencies
|
||||
|
||||
- Dependency 1
|
||||
|
||||
## Risks
|
||||
|
||||
- Risk 1
|
||||
23
presets/self-test/templates/spec-template.md
Normal file
23
presets/self-test/templates/spec-template.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Feature Specification (Self-Test Preset)
|
||||
|
||||
<!-- preset:self-test -->
|
||||
|
||||
> This template is provided by the self-test preset.
|
||||
|
||||
## Overview
|
||||
|
||||
Brief description of the feature.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Requirement 1
|
||||
- Requirement 2
|
||||
|
||||
## Design
|
||||
|
||||
Describe the design approach.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] Criterion 1
|
||||
- [ ] Criterion 2
|
||||
17
presets/self-test/templates/tasks-template.md
Normal file
17
presets/self-test/templates/tasks-template.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Tasks (Self-Test Preset)
|
||||
|
||||
<!-- preset:self-test -->
|
||||
|
||||
> This template is provided by the self-test preset.
|
||||
|
||||
## Task List
|
||||
|
||||
- [ ] Task 1
|
||||
- [ ] Task 2
|
||||
|
||||
## Estimation
|
||||
|
||||
| Task | Estimate |
|
||||
|------|----------|
|
||||
| Task 1 | TBD |
|
||||
| Task 2 | TBD |
|
||||
Reference in New Issue
Block a user