Bug Description
The bundled speckit workflow declares a required-choice scope input with full, backend-only, and frontend-only values, but no workflow step references {{ inputs.scope }}. All four command steps receive only {{ inputs.spec }}, so every scope choice has identical behavior.
This is present on current main at commit 31e6b84f701b108a848847a8bc9ea86a1e2890b7 in workflows/speckit/workflow.yml.
Steps to Reproduce
-
Initialize a project with Spec Kit 1.0.3.dev0 so the bundled workflow is installed.
-
Inspect .specify/workflows/speckit/workflow.yml.
-
Observe the declared input:
scope:
type: string
default: "full"
enum: ["full", "backend-only", "frontend-only"]
-
Search its consumers:
rg -n 'inputs\.scope|inputs\.spec' .specify/workflows/speckit/workflow.yml
-
Optionally run the same specification with each accepted value:
specify workflow run speckit -i spec="Add an example feature" -i scope=full
specify workflow run speckit -i spec="Add an example feature" -i scope=backend-only
specify workflow run speckit -i spec="Add an example feature" -i scope=frontend-only
Expected Behavior
Each exposed input affects workflow execution. Either:
- the selected scope is propagated using a documented command/workflow contract so the three choices behave differently; or
- the unsupported selector is removed from the bundled workflow.
Actual Behavior
scope appears only in its declaration. The specify, plan, tasks, and implement steps all receive the same argument:
input:
args: "{{ inputs.spec }}"
Users are therefore prompted to choose among three values that do not affect the run.
Specify CLI Version
1.0.3.dev0
AI Agent
Codex CLI
Operating System
Linux 7.2.0 x86_64
Python Version
Python 3.14.5 (Specify CLI runtime)
Error Logs
$ rg -n 'inputs\.scope|inputs\.spec' .specify/workflows/speckit/workflow.yml
48: args: "{{ inputs.spec }}"
60: args: "{{ inputs.spec }}"
72: args: "{{ inputs.spec }}"
78: args: "{{ inputs.spec }}"
There is no inputs.scope consumer.
Additional Context
The issue was found while reviewing generated Spec Kit tooling in mforce/cluckwork#635. The local correction removes the unsupported selector in commit c70a5ad1 rather than inventing downstream argument semantics.
I searched open and closed issues and PRs using scope, backend-only, frontend-only, bundled workflow, and unused-input terms. Issue #2142 is the closed workflow-engine proposal and includes intended conditional scope routing as an example; it does not report that the shipped bundled workflow leaves the selector unused.
Bug Description
The bundled
speckitworkflow declares a required-choicescopeinput withfull,backend-only, andfrontend-onlyvalues, but no workflow step references{{ inputs.scope }}. All four command steps receive only{{ inputs.spec }}, so every scope choice has identical behavior.This is present on current
mainat commit31e6b84f701b108a848847a8bc9ea86a1e2890b7inworkflows/speckit/workflow.yml.Steps to Reproduce
Initialize a project with Spec Kit
1.0.3.dev0so the bundled workflow is installed.Inspect
.specify/workflows/speckit/workflow.yml.Observe the declared input:
Search its consumers:
rg -n 'inputs\.scope|inputs\.spec' .specify/workflows/speckit/workflow.ymlOptionally run the same specification with each accepted value:
Expected Behavior
Each exposed input affects workflow execution. Either:
Actual Behavior
scopeappears only in its declaration. Thespecify,plan,tasks, andimplementsteps all receive the same argument:Users are therefore prompted to choose among three values that do not affect the run.
Specify CLI Version
1.0.3.dev0AI Agent
Codex CLI
Operating System
Linux 7.2.0 x86_64
Python Version
Python 3.14.5 (Specify CLI runtime)
Error Logs
There is no
inputs.scopeconsumer.Additional Context
The issue was found while reviewing generated Spec Kit tooling in mforce/cluckwork#635. The local correction removes the unsupported selector in commit c70a5ad1 rather than inventing downstream argument semantics.
I searched open and closed issues and PRs using
scope,backend-only,frontend-only, bundled workflow, and unused-input terms. Issue #2142 is the closed workflow-engine proposal and includes intended conditional scope routing as an example; it does not report that the shipped bundled workflow leaves the selector unused.