Add pipeline workflow to community catalog#3338
Conversation
Chains the Spec Kit phases into one guided, single-invocation pipeline with a deterministic phase resolver and one interactive clarify gate.
|
Thanks for this — the analyze/fix retry loop and the single-clarify-gate UX are genuinely nice, and the code is clean and well-tested. Before going further, I'd like to steer this toward our workflows system, because that's precisely the mechanism Spec Kit ships for chaining
Concretely, here's your pipeline expressed as a single # workflow.yml
schema_version: "1.0"
workflow:
id: "pipeline"
name: "Guided SDD Pipeline"
version: "1.0.0"
author: "domattioli"
description: >
Chains specify → clarify → plan → tasks → analyze → implement into one
guided run with a single clarify gate and an analyze/fix loop.
requires:
speckit_version: ">=0.8.5"
integrations:
any: ["claude", "copilot", "gemini", "opencode"]
inputs:
spec:
type: string
required: true
prompt: "Describe what you want to build"
integration:
type: string
default: "auto"
with_constitution: # replaces --add constitution
type: boolean
default: false
with_checklist: # replaces --add checklist
type: boolean
default: false
skip_clarify: # replaces --skip clarify
type: boolean
default: false
max_fix_cycles:
type: number
default: 3
steps:
- id: constitution
type: if
condition: "{{ inputs.with_constitution }}"
then:
- id: constitution-run
command: speckit.constitution
integration: "{{ inputs.integration }}"
input: { args: "{{ inputs.spec }}" }
- id: specify
command: speckit.specify
integration: "{{ inputs.integration }}"
input: { args: "{{ inputs.spec }}" }
- id: clarify
type: if
condition: "{{ inputs.skip_clarify == false }}"
then:
- id: clarify-run
command: speckit.clarify
integration: "{{ inputs.integration }}"
input: { args: "{{ inputs.spec }}" }
- id: clarify-gate
type: gate
message: "Review clarifications before planning."
options: [approve, reject]
on_reject: abort
- id: plan
command: speckit.plan
integration: "{{ inputs.integration }}"
input: { args: "{{ inputs.spec }}" }
- id: checklist
type: if
condition: "{{ inputs.with_checklist }}"
then:
- id: checklist-run
command: speckit.checklist
integration: "{{ inputs.integration }}"
input: { args: "{{ inputs.spec }}" }
- id: tasks
command: speckit.tasks
integration: "{{ inputs.integration }}"
input: { args: "{{ inputs.spec }}" }
- id: analyze-first
command: speckit.analyze
integration: "{{ inputs.integration }}"
continue_on_error: true
input: { args: "{{ inputs.spec }}" }
- id: fix-loop
type: while
condition: "{{ steps.analyze-first.output.exit_code != 0 }}"
max_iterations: 3 # see note below on templating this
steps:
- id: apply-fixes
command: speckit.implement
integration: "{{ inputs.integration }}"
input: { args: "Resolve the analyze findings for {{ inputs.spec }}" }
- id: analyze-again
command: speckit.analyze
integration: "{{ inputs.integration }}"
continue_on_error: true
input: { args: "{{ inputs.spec }}" }
- id: implement
command: speckit.implement
integration: "{{ inputs.integration }}"
input: { args: "{{ inputs.spec }}" }Two things to verify if you go this route:
If you'd like to publish this, the path is the community workflow catalog — see |
|
Thanks for the feedback, mnriem. We've implemented the workflow approach you suggested instead of the extension. Summary of changesCreated
Advantages
ValidationWe validated the One fix along the way: Example invocation: specify workflow run workflows/pipeline/workflow.yml --input 'spec=add user authentication with JWT tokens'This runs the full pipeline and pauses at the clarify gate for approval before continuing to plan/tasks/analyze/implement. |
|
You are aware we have a |
Drop the extensions/pipeline Python resolver, command wrappers, and test suite in favor of a single workflows/pipeline/workflow.yml, per review feedback that the workflows engine already owns phase orchestration, ordering, validation, and resume. Rework the loop around the new speckit.converge command: analyze runs as a single pre-implement consistency pass (its findings are artifact-level, not code-level), and a bounded post-implement convergence loop (implement -> converge, up to 3 cycles) closes any code/spec gaps. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
You're right:
Also removed the old |
There was a problem hiding this comment.
Pull request overview
This PR introduces a new “pipeline” workflow under workflows/ that aims to run the full Spec-Driven Development command sequence (with optional phases) as a single guided workflow, and adds accompanying documentation/changelog for publishing and use.
Changes:
- Added a new
pipelineworkflow YAML that chains Spec Kit phases and attempts a post-implement convergence loop. - Added workflow documentation (
README.md) and a workflow-local changelog (CHANGELOG.md).
Show a summary per file
| File | Description |
|---|---|
| workflows/pipeline/workflow.yml | Defines the new pipeline workflow steps, inputs, requirements, and convergence loop logic. |
| workflows/pipeline/README.md | Documents workflow purpose, inputs, and usage examples. |
| workflows/pipeline/CHANGELOG.md | Tracks workflow version history and initial feature set. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 3/3 changed files
- Comments generated: 9
- Review effort level: Low
|
Similarly to our extension and presets we can host this in our community catalog. Please create it in your own GitHub repository so we can do so. See https://github.com/github/spec-kit/blob/main/workflows/PUBLISHING.md |
|
Done — the workflow now lives in its own repository:
This PR is reworked to only add the |
|
Please address Copilot feedback |
Point the community catalog entry at the corrected v1.1.0 release of domattioli/spec-kit-workflow-pipeline and raise the advertised minimum to >=0.11.2 (the release that introduced speckit.converge). Addresses Copilot review feedback on the catalog metadata. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Convergence loop was dead code: the while condition keyed on converge-first exit_code (always 0 on a normal run), so the loop body never executed. Replaced with an unconditional bounded do-while (3 cycles of converge -> implement). Verified: loop now runs 3 cycles. - Raise requires.speckit_version to >=0.11.2 (the release that introduced speckit.converge); >=0.8.5 advertised an unrunnable range. - README: pass inputs via --input key=value (matches specify workflow run), fix SDD expansion to Spec-Driven Development, bump pinned URL. - CHANGELOG: add 1.1.0 entry, drop trailing-whitespace hard breaks. Addresses Copilot review feedback on github/spec-kit#3338. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Addressed the Copilot feedback. The three active comments are all on the catalog entry, and each traced back to the external workflow, so I published a corrected release (v1.1.0) and repointed the catalog at it. Convergence loop never ran. The Minimum version. Raised README usage. All examples now pass inputs via Catalog entry now points at |
There was a problem hiding this comment.
Review details
Comments suppressed due to low confidence (1)
workflows/catalog.community.json:24
- This entry now describes the v1.1.0 release published on 2026-07-22, so its
updated_atshould reflect that release/catalog update rather than 2026-07-21. The repository's catalog-update convention updates entry timestamps when versioned metadata changes (for example,.github/workflows/add-community-extension.md:191and.github/workflows/add-community-preset.md:243).
"updated_at": "2026-07-21T00:00:00Z"
- Files reviewed: 1/1 changed files
- Comments generated: 1
- Review effort level: Medium
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Review details
Comments suppressed due to low confidence (1)
workflows/catalog.community.json:24
- The entry now points to v1.1.0, which was published on 2026-07-22, but its
updated_atstill reports the previous day and disagrees with the catalog-level update date. Update this timestamp so consumers receive accurate catalog metadata for the release change.
"updated_at": "2026-07-21T00:00:00Z"
- Files reviewed: 1/1 changed files
- Comments generated: 0 new
- Review effort level: Medium
|
Thank you! |
What
Registers the Guided SDD Pipeline workflow in
workflows/catalog.community.json.The workflow itself is now hosted externally, per maintainer guidance (comment):
What the workflow does
Chains specify → clarify (single interactive gate) → plan → tasks → analyze → implement → converge into one guided run. Optional constitution and checklist phases. Post-implement convergence loop replaces the earlier analyze/implement fix-loop, per review discussion.
Changes in this PR
workflows/pipeline/files (moved to the external repo above)pipelineentry toworkflows/catalog.community.jsonTesting
workflow.ymlvalidates viaspecify workflow info