77 lines
2.1 KiB
YAML
77 lines
2.1 KiB
YAML
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 }}"
|