You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit fa4b81d
Browse filesBrowse the repository at this point in the historyBrowse files
* feat(commands): deprecate the core taskstoissues command
The bundled `github` extension has shipped `speckit.github.taskstoissues`
since 1.0.13, and the documented one-release transition window has
elapsed. Mark the core `/speckit.taskstoissues` command deprecated: the
template now prefixes its description with "Deprecated:" and adds a
Deprecation Notice, placed before User Input and Pre-Execution Checks,
that tells the agent to display a concise migration warning first and
then continue the existing workflow unchanged. The warning points to
`specify extension add github` and the replacement command using the
portable command-reference tokens so each integration renders its own
invocation syntax. The command does not install or enable the extension,
stop, or run the replacement automatically.
Prefix the `SKILL_DESCRIPTIONS` fallback for taskstoissues with
"Deprecated:" so skills-mode descriptions match the template. Update the
installation, SDD reference, extensions, integrations, and github
extension README documentation to describe the current migration stage:
the core command warns on invocation, remains available during migration,
and will be removed in a future minor release.
Add tests covering the notice text, its ordering, continuation, frontmatter
metadata, and rendered warnings for dot- and hyphen-style integrations,
and adapt the core/extension parity test to allow only the intentional
deprecation differences. The new tests fail on main and pass with this
change.
Closes#4422
Assisted-by: Codex CLI (model: GPT-6.1 Sol, autonomous)
Assisted-by: Claude Code (model: Claude Fable 5.1, autonomous)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* docs(commands): tighten the taskstoissues deprecation wording and tests
Follow-up to the core `/speckit.taskstoissues` deprecation, addressing
three review nits:
- docs/installation.md described the move to the bundled `github`
extension as still in progress ("moving to"); every other document
treats it as completed. Say the core command is replaced by the
extension's `/speckit.github.taskstoissues`.
- The Deprecation Notice told the agent to warn "before doing anything
else, including considering user input", which sat awkwardly next to
the shared User Input section's own MUST. State the ordering directly:
display the warning first, before the User Input and Pre-Execution
Checks sections. The warning text and the warn-and-continue contract
are unchanged.
- The rendered-warning test asserted that `integration.setup()` had not
installed the extension, which that code path can never do. Replace
the vacuous assertion with checks that the rendered notice still
carries the continuation contract after placeholder substitution, and
update the notice phrase the text-contract test looks for.
Assisted-by: Codex CLI (model: GPT-6.1 Sol, autonomous)
Assisted-by: Claude Code (model: Claude Fable 5.1, autonomous)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
* fix: bump github extension to 1.0.2 for update delivery
Keep the bundled catalog and manifest aligned so installed extensions receive the changes and the version guard passes.
Assisted-by: Codex (model: GPT-6.1 Sol, autonomous)
* docs: clarify taskstoissues invocation and author migration
List agent-specific command prefixes and explain migration of preset overrides, command references, dependency declarations, and unchanged hook keys.
Assisted-by: Codex (model: GPT-6.1 Sol, autonomous)
* docs: explain refreshing installed core commands during migration
Assisted-by: Codex (model: GPT-6.1 Sol, autonomous)
---------
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
@@ -158,13 +158,24 @@ It first prints a severity-graded findings summary, then resolves to one of two
158
158
-**Converged** — no gaps found. `tasks.md` is left byte-for-byte unchanged and you'll see a clean result like `✅ Converged — the implementation satisfies the spec, plan, and tasks.` You're done; proceed to review or open a PR.
159
159
-**Tasks appended** — gaps found. Converge appends them as new tasks under a Convergence section in `tasks.md` and tells you how many. Run `/speckit.implement` again to complete them, then `/speckit.converge` once more. Each pass finds fewer items; repeat until it reports converged.
Optionally converts an existing `tasks.md` into actionable GitHub issues. Run it
164
-
after generating tasks when you want to track execution in GitHub:
163
+
The core command is deprecated and will be removed in a future minor release.
164
+
It warns when invoked, then continues its existing workflow without installing
165
+
or enabling the extension automatically.
166
+
167
+
The recommended extension command optionally converts an existing `tasks.md`
168
+
into actionable GitHub issues. Install the extension from your project root:
169
+
170
+
```bash
171
+
specify extension add github
172
+
```
173
+
174
+
Then invoke it in your agent after generating tasks when you want to track
175
+
execution in GitHub:
165
176
166
177
```text
167
-
/speckit.taskstoissues
178
+
/speckit.github.taskstoissues
168
179
```
169
180
170
181
This command requires a GitHub `origin` remote and access to the GitHub MCP tools
@@ -173,4 +184,4 @@ identified by that remote and checks existing task IDs to avoid duplicates.
173
184
It is not required to implement tasks or converge on a feature.
174
185
175
186
> [!NOTE]
176
-
> GitHub issue tracking is moving out of core into the bundled, opt-in [`github` extension](https://github.com/github/spec-kit/blob/main/extensions/github/README.md). `/speckit.taskstoissues`still works and is unchanged. Install its namespaced replacement with `specify extension add github`; the `generic` integration registers it under its configured command directory in commands or skills mode. See the [installation and migration notes](https://github.com/github/spec-kit/blob/main/extensions/github/README.md#installation).
187
+
> GitHub issue tracking uses the bundled, opt-in [`github` extension](https://github.com/github/spec-kit/blob/main/extensions/github/README.md). Its recommended command is `/speckit.github.taskstoissues`(slash-hyphen integrations: `/speckit-github-taskstoissues`; Codex, ZCode, and Command Code skills: `$speckit-github-taskstoissues`; Kimi: `/skill:speckit-github-taskstoissues`); the deprecated core `/speckit.taskstoissues` remains available during migration. The `generic` integration registers the extension under its configured command directory in commands or skills mode. See the [installation and migration notes](https://github.com/github/spec-kit/blob/main/extensions/github/README.md#installation) for all integration-specific invocation syntaxes.
Installs an extension from the catalog, a URL, or a local directory. Extension commands are registered with the active AI coding agent integration. For `generic`, invocations use the configured `--commands-dir`: flat command files by default, or `speckit-<name>/SKILL.md` with `--skills`. The core `speckit.taskstoissues` command remains available alongside the GitHub extension's namespaced replacement during migration.
33
+
Installs an extension from the catalog, a URL, or a local directory. Extension commands are registered with the active AI coding agent integration. For `generic`, invocations use the configured `--commands-dir`: flat command files by default, or `speckit-<name>/SKILL.md` with `--skills`. The deprecated core `speckit.taskstoissues` command remains available during migration and will be removed in a future minor release. It warns on invocation and continues its existing workflow without installing or enabling the extension automatically. For GitHub issue tracking, run `specify extension add github` and use the recommended `/speckit.github.taskstoissues` command (slash-hyphen integrations: `/speckit-github-taskstoissues`; Codex, ZCode, and Command Code skills: `$speckit-github-taskstoissues`; Kimi: `/skill:speckit-github-taskstoissues`).
34
34
35
35
If a generic integration refresh cannot produce every extension invocation (for example, because a command or skill is user-modified or its source is missing), it warns and restores that extension's prior registered artifacts. Other extensions can still refresh.
|`speckit.github.taskstoissues`|Convert tasks from `tasks.md` into dependency-ordered GitHub issues. |
41
+
|`speckit.github.taskstoissues`|Recommended: convert tasks from `tasks.md` into dependency-ordered GitHub issues. |
41
42
42
-
> NOTE: The command ID above is canonical. Invoke it using the syntax for your integration: `/speckit.github.taskstoissues` for dot-command integrations; `/speckit-github-taskstoissues` for hyphen/skills integrations (including Forge and Cline); `$speckit-github-taskstoissues` for Codex, ZCode, or Command Code in skills mode; or `/skill:speckit-github-taskstoissues` for Kimi.
43
+
> NOTE: The command ID above is canonical. Invoke it using the syntax for your integration: `/speckit.github.taskstoissues` for dot-command integrations; `/speckit-github-taskstoissues` for slash-hyphen integrations (including Forge and Cline); `$speckit-github-taskstoissues` for Codex, ZCode, or Command Code in skills mode; or `/skill:speckit-github-taskstoissues` for Kimi.
43
44
44
45
### What the command does
45
46
@@ -81,9 +82,21 @@ Prerequisite errors name the Spec Kit command without assuming an integration's
81
82
82
83
Spec Kit is moving GitHub issue tracking out of core in three stages:
83
84
84
-
1.**Now** — this extension is available, and the core `/speckit.taskstoissues` command remains available and unchanged. Nothing breaks if you do nothing.
85
-
2.**Next** — the core command is deprecated once the replacement has been available for a release.
86
-
3.**Later** — the core command is removed in a minor release.
85
+
1.**Initial stage (completed)** — this extension shipped with the core `/speckit.taskstoissues` command still available.
86
+
2.**Next (current stage)** — the replacement has been available for at least one release, so the core command is now deprecated. It displays a migration warning and continues its existing workflow. It does not install or enable the extension automatically or run the replacement command.
87
+
3.**Later** — the core command will be removed in a future minor release.
88
+
89
+
For existing projects, upgrading the CLI alone does not refresh the generated
90
+
core command files. After upgrading the CLI, run this from the project root:
91
+
92
+
```bash
93
+
specify integration upgrade <key>
94
+
```
95
+
96
+
Replace `<key>` with the installed integration key, or omit it to upgrade the
97
+
default integration. This refreshes the core command with the deprecation
98
+
warning. If locally modified files block the upgrade, inspect those changes
99
+
before deciding whether to overwrite them. See [Upgrade an Integration](../../docs/reference/integrations.md#upgrade-an-integration).
87
100
88
101
To migrate, install the extension and use the namespaced command instead:
89
102
@@ -93,10 +106,42 @@ specify extension add github
93
106
94
107
The `generic` integration supports this migration in both commands and skills
95
108
layouts under its configured `--commands-dir`. The core command remains
96
-
available until a separate deprecation and removal decision.
109
+
available during this deprecation period until the removal stage.
Behavior is unchanged: the same feature resolution, the same `plan.md` and `tasks.md` prerequisites, the same remote validation, the same deduplication across open and closed issues, the same issue titles, and the same hook contract. This extension does **not** register `speckit.taskstoissues` as an alias, so the two commands coexist without shadowing each other while the core command still exists.
115
+
Apart from the core command's deprecation warning, conversion behavior is unchanged: the same feature resolution, the same `plan.md` and `tasks.md` prerequisites, the same remote validation, the same deduplication across open and closed issues, the same issue titles, and the same hook contract. This extension does **not** register `speckit.taskstoissues` as an alias, so the two commands coexist without shadowing each other while the core command still exists.
116
+
117
+
### Presets and dependent extensions
118
+
119
+
Before the core command is removed, audit references to `speckit.taskstoissues`
120
+
in presets, extension prompts, workflow steps, handoffs, and project automation.
121
+
For GitHub issue conversion, use the canonical `speckit.github.taskstoissues`
122
+
command ID and render it with the agent-specific syntax under [Commands](#commands).
123
+
Replace `__SPECKIT_COMMAND_TASKSTOISSUES__` cross-command references with
124
+
`__SPECKIT_COMMAND_GITHUB_TASKSTOISSUES__` where template rendering is supported.
125
+
Document `specify extension add github` as a setup prerequisite; the deprecation
126
+
warning does not install this dependency.
127
+
128
+
If an extension proposal or external dependency declaration uses
129
+
`requires.commands: [speckit.taskstoissues]`, update its target to
130
+
`speckit.github.taskstoissues`. `requires.commands` is not an enforced dependency
131
+
field in the current extension manifest API, so do not rely on that declaration
132
+
to install or check the GitHub extension. Follow the supported requirements in
133
+
the [extension API reference](../EXTENSION-API-REFERENCE.md#extension-manifest).
134
+
135
+
Preset command overrides are separate from command references: an override of
136
+
`speckit.taskstoissues` does not automatically customize the namespaced GitHub
137
+
command. Review and port any needed customization, then verify the installed
138
+
command in a sample project before retiring the old override. A preset that
139
+
uses another issue tracker should retain its own provider-specific workflow
140
+
rather than redirecting it to the GitHub command. Existing overrides may also
141
+
hide the core deprecation warning, so communicate the migration to their users.
142
+
143
+
Keep the `before_taskstoissues` and `after_taskstoissues` hook keys unchanged;
144
+
both commands consume them. Only update a hook's command reference if it invokes
145
+
the deprecated command. Do not invoke both core and replacement commands for
146
+
the same conversion, since that also runs their hooks twice. Publish and test
147
+
updated preset/extension versions before the later core-removal release.
Copy file name to clipboardExpand all lines: templates/commands/taskstoissues.md
+9-1Lines changed: 9 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,20 @@
1
1
---
2
-
description: Convert existing tasks into actionable, dependency-ordered GitHub issues for the feature based on available design artifacts.
2
+
description: "Deprecated: Convert existing tasks into actionable, dependency-ordered GitHub issues for the feature based on available design artifacts."
You **MUST display the following concise warning first**, as the first step of this command and before the User Input and Pre-Execution Checks sections below:
13
+
14
+
> ⚠️ `__SPECKIT_COMMAND_TASKSTOISSUES__` is deprecated and will be removed in a future minor release. Use the bundled `github` extension instead: run `specify extension add github`, then invoke `__SPECKIT_COMMAND_GITHUB_TASKSTOISSUES__`.
15
+
16
+
Continue with the existing workflow unchanged. Do not install or enable the extension automatically, do not stop, and do not run the replacement command.
0 commit comments