Skip to content

[Bug]: bundled speckit workflow exposes a scope input that has no effect #4384

Description

@mforce

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

  1. Initialize a project with Spec Kit 1.0.3.dev0 so the bundled workflow is installed.

  2. Inspect .specify/workflows/speckit/workflow.yml.

  3. Observe the declared input:

    scope:
      type: string
      default: "full"
      enum: ["full", "backend-only", "frontend-only"]
  4. Search its consumers:

    rg -n 'inputs\.scope|inputs\.spec' .specify/workflows/speckit/workflow.yml
  5. 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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions