mirror of
https://github.com/github/spec-kit.git
synced 2026-03-23 22:03:08 +00:00
Compare commits
2 Commits
v0.1.4
...
aeed11f735
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aeed11f735 | ||
|
|
12405c01e1 |
13
extensions/README.md
Normal file
13
extensions/README.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Spec Kit Community Extensions
|
||||||
|
|
||||||
|
Community-contributed extensions for [Spec Kit](https://github.com/github/spec-kit).
|
||||||
|
|
||||||
|
## Available Extensions
|
||||||
|
|
||||||
|
| Extension | Purpose | URL |
|
||||||
|
|-----------|---------|-----|
|
||||||
|
| V-Model Extension Pack | Enforces V-Model paired generation of development specs and test specs with full traceability | [spec-kit-v-model](https://github.com/leocamello/spec-kit-v-model) |
|
||||||
|
|
||||||
|
## Adding Your Extension
|
||||||
|
|
||||||
|
See the [Extension Publishing Guide](EXTENSION-PUBLISHING-GUIDE.md) for instructions on how to submit your extension to the community catalog.
|
||||||
33
extensions/catalog.community.json
Normal file
33
extensions/catalog.community.json
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"schema_version": "1.0",
|
||||||
|
"updated_at": "2026-02-20T00:00:00Z",
|
||||||
|
"catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json",
|
||||||
|
"extensions": {
|
||||||
|
"v-model": {
|
||||||
|
"name": "V-Model Extension Pack",
|
||||||
|
"id": "v-model",
|
||||||
|
"description": "Enforces V-Model paired generation of development specs and test specs with full traceability.",
|
||||||
|
"author": "leocamello",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"download_url": "https://github.com/leocamello/spec-kit-v-model/archive/refs/tags/v0.1.0.zip",
|
||||||
|
"repository": "https://github.com/leocamello/spec-kit-v-model",
|
||||||
|
"homepage": "https://github.com/leocamello/spec-kit-v-model",
|
||||||
|
"documentation": "https://github.com/leocamello/spec-kit-v-model/blob/main/README.md",
|
||||||
|
"changelog": "https://github.com/leocamello/spec-kit-v-model/blob/main/CHANGELOG.md",
|
||||||
|
"license": "MIT",
|
||||||
|
"requires": {
|
||||||
|
"speckit_version": ">=0.1.0"
|
||||||
|
},
|
||||||
|
"provides": {
|
||||||
|
"commands": 3,
|
||||||
|
"hooks": 1
|
||||||
|
},
|
||||||
|
"tags": ["v-model", "traceability", "testing", "compliance", "safety-critical"],
|
||||||
|
"verified": false,
|
||||||
|
"downloads": 0,
|
||||||
|
"stars": 0,
|
||||||
|
"created_at": "2026-02-20T00:00:00Z",
|
||||||
|
"updated_at": "2026-02-20T00:00:00Z"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
{
|
|
||||||
"schema_version": "1.0",
|
|
||||||
"updated_at": "2026-02-03T00:00:00Z",
|
|
||||||
"catalog_url": "https://your-org.example.com/speckit/catalog.json",
|
|
||||||
"extensions": {
|
|
||||||
"jira": {
|
|
||||||
"name": "Jira Integration",
|
|
||||||
"id": "jira",
|
|
||||||
"description": "Create Jira Epics, Stories, and Issues from spec-kit artifacts",
|
|
||||||
"author": "Your Organization",
|
|
||||||
"version": "2.1.0",
|
|
||||||
"download_url": "https://github.com/your-org/spec-kit-jira/archive/refs/tags/v2.1.0.zip",
|
|
||||||
"repository": "https://github.com/your-org/spec-kit-jira",
|
|
||||||
"homepage": "https://github.com/your-org/spec-kit-jira",
|
|
||||||
"documentation": "https://github.com/your-org/spec-kit-jira/blob/main/README.md",
|
|
||||||
"changelog": "https://github.com/your-org/spec-kit-jira/blob/main/CHANGELOG.md",
|
|
||||||
"license": "MIT",
|
|
||||||
"requires": {
|
|
||||||
"speckit_version": ">=0.1.0",
|
|
||||||
"tools": [
|
|
||||||
{
|
|
||||||
"name": "atlassian",
|
|
||||||
"version": ">=1.0.0",
|
|
||||||
"required": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"provides": {
|
|
||||||
"commands": 3,
|
|
||||||
"hooks": 1
|
|
||||||
},
|
|
||||||
"tags": ["jira", "atlassian", "issue-tracking"],
|
|
||||||
"verified": true,
|
|
||||||
"downloads": 0,
|
|
||||||
"stars": 0,
|
|
||||||
"created_at": "2026-01-28T00:00:00Z",
|
|
||||||
"updated_at": "2026-02-03T00:00:00Z"
|
|
||||||
},
|
|
||||||
"linear": {
|
|
||||||
"name": "Linear Integration",
|
|
||||||
"id": "linear",
|
|
||||||
"description": "Sync specs and tasks with Linear issues",
|
|
||||||
"author": "Your Organization",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"download_url": "https://github.com/your-org/spec-kit-linear/archive/refs/tags/v1.0.0.zip",
|
|
||||||
"repository": "https://github.com/your-org/spec-kit-linear",
|
|
||||||
"license": "MIT",
|
|
||||||
"requires": {
|
|
||||||
"speckit_version": ">=0.1.0"
|
|
||||||
},
|
|
||||||
"provides": {
|
|
||||||
"commands": 2
|
|
||||||
},
|
|
||||||
"tags": ["linear", "issue-tracking"],
|
|
||||||
"verified": false,
|
|
||||||
"created_at": "2026-01-30T00:00:00Z",
|
|
||||||
"updated_at": "2026-01-30T00:00:00Z"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -75,10 +75,11 @@ You **MUST** consider the user input before proceeding (if not empty).
|
|||||||
- Validation rules from requirements
|
- Validation rules from requirements
|
||||||
- State transitions if applicable
|
- State transitions if applicable
|
||||||
|
|
||||||
2. **Generate API contracts** from functional requirements:
|
2. **Define interface contracts** (if project has external interfaces) → `/contracts/`:
|
||||||
- For each user action → endpoint
|
- Identify what interfaces the project exposes to users or other systems
|
||||||
- Use standard REST/GraphQL patterns
|
- Document the contract format appropriate for the project type
|
||||||
- Output OpenAPI/GraphQL schema to `/contracts/`
|
- Examples: public APIs for libraries, command schemas for CLI tools, endpoints for web services, grammars for parsers, UI contracts for applications
|
||||||
|
- Skip if project is purely internal (build scripts, one-off tools, etc.)
|
||||||
|
|
||||||
3. **Agent context update**:
|
3. **Agent context update**:
|
||||||
- Run `{AGENT_SCRIPT}`
|
- Run `{AGENT_SCRIPT}`
|
||||||
|
|||||||
@@ -235,7 +235,7 @@ When creating this spec from a user prompt:
|
|||||||
- Performance targets: Standard web/mobile app expectations unless specified
|
- Performance targets: Standard web/mobile app expectations unless specified
|
||||||
- Error handling: User-friendly messages with appropriate fallbacks
|
- Error handling: User-friendly messages with appropriate fallbacks
|
||||||
- Authentication method: Standard session-based or OAuth2 for web apps
|
- Authentication method: Standard session-based or OAuth2 for web apps
|
||||||
- Integration patterns: RESTful APIs unless specified otherwise
|
- Integration patterns: Use project-appropriate patterns (REST/GraphQL for web services, function calls for libraries, CLI args for tools, etc.)
|
||||||
|
|
||||||
### Success Criteria Guidelines
|
### Success Criteria Guidelines
|
||||||
|
|
||||||
|
|||||||
@@ -28,14 +28,14 @@ You **MUST** consider the user input before proceeding (if not empty).
|
|||||||
|
|
||||||
2. **Load design documents**: Read from FEATURE_DIR:
|
2. **Load design documents**: Read from FEATURE_DIR:
|
||||||
- **Required**: plan.md (tech stack, libraries, structure), spec.md (user stories with priorities)
|
- **Required**: plan.md (tech stack, libraries, structure), spec.md (user stories with priorities)
|
||||||
- **Optional**: data-model.md (entities), contracts/ (API endpoints), research.md (decisions), quickstart.md (test scenarios)
|
- **Optional**: data-model.md (entities), contracts/ (interface contracts), research.md (decisions), quickstart.md (test scenarios)
|
||||||
- Note: Not all projects have all documents. Generate tasks based on what's available.
|
- Note: Not all projects have all documents. Generate tasks based on what's available.
|
||||||
|
|
||||||
3. **Execute task generation workflow**:
|
3. **Execute task generation workflow**:
|
||||||
- Load plan.md and extract tech stack, libraries, project structure
|
- Load plan.md and extract tech stack, libraries, project structure
|
||||||
- Load spec.md and extract user stories with their priorities (P1, P2, P3, etc.)
|
- Load spec.md and extract user stories with their priorities (P1, P2, P3, etc.)
|
||||||
- If data-model.md exists: Extract entities and map to user stories
|
- If data-model.md exists: Extract entities and map to user stories
|
||||||
- If contracts/ exists: Map endpoints to user stories
|
- If contracts/ exists: Map interface contracts to user stories
|
||||||
- If research.md exists: Extract decisions for setup tasks
|
- If research.md exists: Extract decisions for setup tasks
|
||||||
- Generate tasks organized by user story (see Task Generation Rules below)
|
- Generate tasks organized by user story (see Task Generation Rules below)
|
||||||
- Generate dependency graph showing user story completion order
|
- Generate dependency graph showing user story completion order
|
||||||
@@ -112,13 +112,13 @@ Every task MUST strictly follow this format:
|
|||||||
- Map all related components to their story:
|
- Map all related components to their story:
|
||||||
- Models needed for that story
|
- Models needed for that story
|
||||||
- Services needed for that story
|
- Services needed for that story
|
||||||
- Endpoints/UI needed for that story
|
- Interfaces/UI needed for that story
|
||||||
- If tests requested: Tests specific to that story
|
- If tests requested: Tests specific to that story
|
||||||
- Mark story dependencies (most stories should be independent)
|
- Mark story dependencies (most stories should be independent)
|
||||||
|
|
||||||
2. **From Contracts**:
|
2. **From Contracts**:
|
||||||
- Map each contract/endpoint → to the user story it serves
|
- Map each interface contract → to the user story it serves
|
||||||
- If tests requested: Each contract → contract test task [P] before implementation in that story's phase
|
- If tests requested: Each interface contract → contract test task [P] before implementation in that story's phase
|
||||||
|
|
||||||
3. **From Data Model**:
|
3. **From Data Model**:
|
||||||
- Map each entity to the user story(ies) that need it
|
- Map each entity to the user story(ies) that need it
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
**Storage**: [if applicable, e.g., PostgreSQL, CoreData, files or N/A]
|
**Storage**: [if applicable, e.g., PostgreSQL, CoreData, files or N/A]
|
||||||
**Testing**: [e.g., pytest, XCTest, cargo test or NEEDS CLARIFICATION]
|
**Testing**: [e.g., pytest, XCTest, cargo test or NEEDS CLARIFICATION]
|
||||||
**Target Platform**: [e.g., Linux server, iOS 15+, WASM or NEEDS CLARIFICATION]
|
**Target Platform**: [e.g., Linux server, iOS 15+, WASM or NEEDS CLARIFICATION]
|
||||||
**Project Type**: [single/web/mobile - determines source structure]
|
**Project Type**: [e.g., library/cli/web-service/mobile-app/compiler/desktop-app or NEEDS CLARIFICATION]
|
||||||
**Performance Goals**: [domain-specific, e.g., 1000 req/s, 10k lines/sec, 60 fps or NEEDS CLARIFICATION]
|
**Performance Goals**: [domain-specific, e.g., 1000 req/s, 10k lines/sec, 60 fps or NEEDS CLARIFICATION]
|
||||||
**Constraints**: [domain-specific, e.g., <200ms p95, <100MB memory, offline-capable or NEEDS CLARIFICATION]
|
**Constraints**: [domain-specific, e.g., <200ms p95, <100MB memory, offline-capable or NEEDS CLARIFICATION]
|
||||||
**Scale/Scope**: [domain-specific, e.g., 10k users, 1M LOC, 50 screens or NEEDS CLARIFICATION]
|
**Scale/Scope**: [domain-specific, e.g., 10k users, 1M LOC, 50 screens or NEEDS CLARIFICATION]
|
||||||
|
|||||||
Reference in New Issue
Block a user