workflow.yml 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. schema_version: "1.0"
  2. workflow:
  3. id: "speckit"
  4. name: "Full SDD Cycle"
  5. version: "1.0.0"
  6. author: "GitHub"
  7. description: "Runs specify → plan → tasks → implement with review gates"
  8. requires:
  9. # 0.8.5 is the first release with engine-side resolution of the
  10. # ``integration: "auto"`` default. Older versions would treat "auto"
  11. # as a literal integration key and fail at dispatch.
  12. speckit_version: ">=0.8.5"
  13. integrations:
  14. # The four commands below (specify, plan, tasks, implement) are core
  15. # spec-kit commands provided by every integration. The list here is an
  16. # advisory, non-exhaustive compatibility hint following the documented
  17. # ``any: [...]`` schema -- it is NOT a closed set. The workflow runs
  18. # against any integration the project was initialized with, including
  19. # ones not listed below, as long as that integration provides the four
  20. # core commands referenced in ``steps``.
  21. any:
  22. - "claude"
  23. - "copilot"
  24. - "gemini"
  25. - "opencode"
  26. inputs:
  27. spec:
  28. type: string
  29. required: true
  30. prompt: "Describe what you want to build"
  31. integration:
  32. type: string
  33. default: "auto"
  34. prompt: "Integration to use (e.g. claude, copilot, gemini; 'auto' uses the project's initialized integration)"
  35. scope:
  36. type: string
  37. default: "full"
  38. enum: ["full", "backend-only", "frontend-only"]
  39. steps:
  40. - id: specify
  41. command: speckit.specify
  42. integration: "{{ inputs.integration }}"
  43. input:
  44. args: "{{ inputs.spec }}"
  45. - id: review-spec
  46. type: gate
  47. message: "Review the generated spec before planning."
  48. options: [approve, reject]
  49. on_reject: abort
  50. - id: plan
  51. command: speckit.plan
  52. integration: "{{ inputs.integration }}"
  53. input:
  54. args: "{{ inputs.spec }}"
  55. - id: review-plan
  56. type: gate
  57. message: "Review the plan before generating tasks."
  58. options: [approve, reject]
  59. on_reject: abort
  60. - id: tasks
  61. command: speckit.tasks
  62. integration: "{{ inputs.integration }}"
  63. input:
  64. args: "{{ inputs.spec }}"
  65. - id: implement
  66. command: speckit.implement
  67. integration: "{{ inputs.integration }}"
  68. input:
  69. args: "{{ inputs.spec }}"