schema_version: "1.0" workflow: id: "speckit" name: "Full SDD Cycle" version: "1.0.0" author: "GitHub" description: "Runs specify → plan → tasks → implement with review gates" requires: # 0.8.5 is the first release with engine-side resolution of the # ``integration: "auto"`` default. Older versions would treat "auto" # as a literal integration key and fail at dispatch. speckit_version: ">=0.8.5" integrations: # The four commands below (specify, plan, tasks, implement) are core # spec-kit commands provided by every integration. The list here is an # advisory, non-exhaustive compatibility hint following the documented # ``any: [...]`` schema -- it is NOT a closed set. The workflow runs # against any integration the project was initialized with, including # ones not listed below, as long as that integration provides the four # core commands referenced in ``steps``. any: - "claude" - "copilot" - "gemini" - "opencode" inputs: spec: type: string required: true prompt: "Describe what you want to build" integration: type: string default: "auto" prompt: "Integration to use (e.g. claude, copilot, gemini; 'auto' uses the project's initialized integration)" scope: type: string default: "full" enum: ["full", "backend-only", "frontend-only"] steps: - id: specify command: speckit.specify integration: "{{ inputs.integration }}" input: args: "{{ inputs.spec }}" - id: review-spec type: gate message: "Review the generated spec before planning." options: [approve, reject] on_reject: abort - id: plan command: speckit.plan integration: "{{ inputs.integration }}" input: args: "{{ inputs.spec }}" - id: review-plan type: gate message: "Review the plan before generating tasks." options: [approve, reject] on_reject: abort - id: tasks command: speckit.tasks integration: "{{ inputs.integration }}" input: args: "{{ inputs.spec }}" - id: implement command: speckit.implement integration: "{{ inputs.integration }}" input: args: "{{ inputs.spec }}"