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 882e42e
Browse filesBrowse the repository at this point in the historyBrowse files
Headless approval flags, model forwarding, and structured-output support are
487
487
also adapter-specific, not universal guarantees.
488
488
489
-
## GitHub Issue Creation
490
-
491
-
The deprecated `speckit.taskstoissues` command still runs with a warning but
492
-
will be removed in a future minor release. Install the opt-in GitHub extension
493
-
with `specify extension add github` and use `speckit.github.taskstoissues`
494
-
instead. See the [extension's migration guide](https://github.com/github/spec-kit/blob/main/extensions/github/README.md#migrating-from-the-core-taskstoissues-command)
495
-
for invocation syntax and migration details; the core command does not install
496
-
the extension automatically.
497
-
498
489
## FAQ
499
490
500
491
### Can I install multiple integrations in the same project?
@@ -157,31 +156,3 @@ It first prints a severity-graded findings summary, then resolves to one of two
157
156
158
157
-**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
158
-**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.
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:
176
-
177
-
```text
178
-
/speckit.github.taskstoissues
179
-
```
180
-
181
-
This command requires a GitHub `origin` remote and access to the GitHub MCP tools
182
-
for listing and creating issues. It creates issues only in the repository
183
-
identified by that remote and checks existing task IDs to avoid duplicates.
184
-
It is not required to implement tasks or converge on a feature.
185
-
186
-
> [!NOTE]
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 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`).
40
+
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`.
41
41
42
42
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.
Once installed they live under `.specify/extensions/github/scripts/`. The script is a trimmed twin of core's `check-prerequisites`: it resolves the project root and active feature directory, requires `plan.md` and `tasks.md`, and reports the design docs alongside them. It matches the invocation the core command makes (`--require-tasks --include-tasks`), so `spec.md` stays optional. By default, a `SPECIFY_FEATURE_DIRECTORY` override is persisted to `.specify/feature.json` so a later run without the variable resolves to the same feature. When `SPECIFY_FEATURE_NO_PERSIST=1` or `true`, the override still selects the feature for this run, but the script does not create or modify `feature.json`.
75
+
Once installed they live under `.specify/extensions/github/scripts/`. The script is a trimmed twin of core's `check-prerequisites`: it resolves the project root and active feature directory, requires `plan.md` and `tasks.md`, and reports the design docs alongside them. `spec.md` stays optional. By default, a `SPECIFY_FEATURE_DIRECTORY` override is persisted to `.specify/feature.json` so a later run without the variable resolves to the same feature. When `SPECIFY_FEATURE_NO_PERSIST=1` or `true`, the override still selects the feature for this run, but the script does not create or modify `feature.json`.
78
76
79
77
Prerequisite errors name the Spec Kit command without assuming an integration's invocation syntax. Use the syntax described under [Commands](#commands) for your integration.
80
78
81
79
## Migrating from the core `taskstoissues` command
82
80
83
-
Spec Kit is moving GitHub issue tracking out of core in three stages:
84
-
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.
81
+
**Breaking change:** the core command has been removed. Integration upgrades
82
+
delete old manifest-tracked `taskstoissues` command and skill files, rather than
83
+
replacing them with an updated prompt. Back up customized legacy and extension
84
+
command or skill files outside the generated directories **before** upgrading;
85
+
forcing the upgrade with `--force` also authorizes deletion of customized legacy
86
+
files. Reapply customizations only after the migration steps below, because the
87
+
upgrade can overwrite generated extension files. Installing this extension does
88
+
not restore the old invocation or provide a compatibility alias.
88
89
89
90
For existing projects, upgrading the CLI alone does not refresh the generated
90
91
core command files. After upgrading the CLI, run this from the project root:
91
92
92
93
```bash
93
-
specify integration upgrade <key>
94
+
specify integration upgrade <integration>
94
95
```
95
96
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/integrations/cli.md#upgrade-an-integration).
97
+
Replace `<integration>` with the installed integration key, or omit it to upgrade
98
+
the default integration. Repeat for each installed integration. If locally
99
+
modified files block the upgrade, back them up before deciding whether to
100
+
delete the legacy files with `--force`. See
101
+
[Upgrade an Integration](https://github.github.io/spec-kit/integrations/cli.html#upgrade-an-integration).
100
102
101
-
To migrate, install the extension and use the namespaced command instead:
103
+
Then install the extension, **skipping this step if `github` is already
104
+
installed**, and use the namespaced command instead:
102
105
103
106
```bash
104
107
specify extension add github
105
108
```
106
109
110
+
If `github` is already installed but disabled, run `specify extension enable github`
111
+
followed by `specify integration use <integration>` to register its commands,
112
+
even when that integration is already the default.
113
+
114
+
An already-installed, enabled extension is re-registered when upgrading the
115
+
default integration only. Before using the replacement in a non-default
116
+
integration, run `specify integration use <integration>` to select it and register
117
+
the extension there. After upgrading, installing if needed, and selecting the
118
+
integration, reapply customizations from your separate backup to the namespaced
119
+
extension command.
120
+
107
121
The `generic` integration supports this migration in both commands and skills
108
-
layouts under its configured `--commands-dir`. The core command remains
109
-
available during this deprecation period until the removal stage.
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. The extension command and deprecated core command coexist without shadowing each other while the core command still exists.
128
+
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.
116
129
117
130
### Presets and dependent extensions
118
131
119
-
Before the core command is removed, audit references to `speckit.taskstoissues`
120
-
in presets, extension prompts, workflow steps, handoffs, and project automation.
132
+
Audit references to `speckit.taskstoissues`
133
+
in presets, extension prompts, workflow steps, handoffs, hook `command` bindings,
134
+
and project automation.
121
135
For GitHub issue conversion, use the canonical `speckit.github.taskstoissues`
122
136
command ID and render it with the agent-specific syntax under [Commands](#commands).
123
137
Replace `__SPECKIT_COMMAND_TASKSTOISSUES__` cross-command references with
124
138
`__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.
139
+
Document `specify extension add github` as a setup prerequisite.
140
+
141
+
Keep the `before_taskstoissues` and `after_taskstoissues` event keys unchanged;
142
+
the extension still consumes them. Update a hook's `command` binding only if it
143
+
invokes the removed `speckit.taskstoissues` command, not merely because the hook
144
+
uses one of those event keys.
127
145
128
146
If an extension proposal or external dependency declaration uses
129
147
`requires.commands: [speckit.taskstoissues]`, update its target to
@@ -137,11 +155,4 @@ Preset command overrides are separate from command references: an override of
137
155
command. Review and port any needed customization, then verify the installed
138
156
command in a sample project before retiring the old override. A preset that
139
157
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.
0 commit comments