mirror of
https://github.com/github/spec-kit.git
synced 2026-03-17 02:43:08 +00:00
refactor: remove OpenAPI/GraphQL bias from templates (#1652)
* chore: bump version to v0.0.5 [skip ci] * refactor: update documentation for interface contracts and integration patterns * Update pyproject.toml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update templates/commands/tasks.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update templates/commands/tasks.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -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