Problem Statement
/speckit.taskstoissues creates GitHub issues from tasks.md, but GitHub issue tracking is provider-specific project-management functionality rather than part of the core Spec-Driven Development lifecycle.
Before the core command can be deprecated or removed, users need a fully functional extension-based replacement with an explicit installation and migration path.
Proposed Solution
Add a bundled, opt-in github-issues extension that provides the existing tasks-to-issues behavior under a namespaced command:
specify extension add github-issues
/speckit.github-issues.taskstoissues
Proposed manifest shape:
schema_version: "1.0"
extension:
id: github-issues
name: "GitHub Issues"
version: "1.0.0"
description: "Create GitHub issues from Spec Kit task lists"
provides:
commands:
- name: speckit.github-issues.taskstoissues
file: commands/speckit.github-issues.taskstoissues.md
description: "Convert tasks from tasks.md into dependency-ordered GitHub issues"
The extension command should preserve the current behavior:
- Resolve the active feature and load
tasks.md.
- Confirm that the repository remote points to GitHub.
- Detect existing issues by task ID across open and closed issues.
- Create only missing issues in the repository identified by the remote.
- Preserve the
before_taskstoissues and after_taskstoissues hook contract.
- Work across all supported integrations, including skills-based layouts.
The existing core /speckit.taskstoissues command must remain unchanged in this stage. The extension must not claim that legacy alias while the core command still exists.
Alternatives Considered
- Deprecate the core command first: Rejected because users would receive a warning without having a working replacement.
- Move the command immediately: Rejected because it would combine replacement, deprecation, and removal into one migration step.
- Use a generic
issues extension: A provider-specific extension makes GitHub tooling requirements explicit and leaves room for Jira, Linear, and other providers.
Component
Specify CLI (initialization, commands)
AI Agent (if applicable)
All agents
Use Cases
- Users can opt into GitHub issue creation without adding provider-specific behavior to the core SDD workflow.
- Extensions such as milestone grouping can declare a dependency on the namespaced GitHub Issues command.
- Alternative issue-tracker extensions can coexist without replacing a core GitHub-specific command.
Acceptance Criteria
Additional Context
This is stage 1 of a three-stage migration:
- Add the extension while retaining the core command.
- Deprecate the core command after the replacement is available.
- Remove the command from core in a later minor release.
Related discussion: #4370, especially #4370 (comment).
The Jira preset/extension direction in #2223 should also be considered when documenting provider-specific issue-tracker integrations.
Problem Statement
/speckit.taskstoissuescreates GitHub issues fromtasks.md, but GitHub issue tracking is provider-specific project-management functionality rather than part of the core Spec-Driven Development lifecycle.Before the core command can be deprecated or removed, users need a fully functional extension-based replacement with an explicit installation and migration path.
Proposed Solution
Add a bundled, opt-in
github-issuesextension that provides the existing tasks-to-issues behavior under a namespaced command:Proposed manifest shape:
The extension command should preserve the current behavior:
tasks.md.before_taskstoissuesandafter_taskstoissueshook contract.The existing core
/speckit.taskstoissuescommand must remain unchanged in this stage. The extension must not claim that legacy alias while the core command still exists.Alternatives Considered
issuesextension: A provider-specific extension makes GitHub tooling requirements explicit and leaves room for Jira, Linear, and other providers.Component
Specify CLI (initialization, commands)
AI Agent (if applicable)
All agents
Use Cases
Acceptance Criteria
github-issuesextension can be installed withspecify extension add github-issues.speckit.github-issues.taskstoissuesfor every supported integration.before_taskstoissuesandafter_taskstoissueshooks execute as before.speckit.taskstoissuescommand remains available and unchanged.Additional Context
This is stage 1 of a three-stage migration:
Related discussion: #4370, especially #4370 (comment).
The Jira preset/extension direction in #2223 should also be considered when documenting provider-specific issue-tracker integrations.