Skip to content

[Feature]: Register extension commands and skills for the generic integration #4777

Description

@mnriem

Problem Statement

The generic integration scaffolds core commands in both command and skills layouts, including speckit.taskstoissues. Its existing extension-registration path, however, does not generate either kind of invocation artifact when an extension is installed. Installing the bundled github extension from #4488 copies its sources but does not make speckit.github.taskstoissues invokable in a generic project.

This gap predates #4488. It becomes a migration blocker if the release that includes #4488 also announces deprecation of the core command: generic users would be directed away from a working command without having an invokable replacement.

Proposed Solution

Support extension command registration for projects using the generic integration, respecting the project's configured command directory and commands-versus-skills layout. Apply the existing extension ownership and removal behavior to generated artifacts; do not change how core templates are scaffolded.

Do not announce the core speckit.taskstoissues command as deprecated until generic users can install and invoke its namespaced replacement.

Alternatives Considered

  • Leave generic users on the core command indefinitely: Avoids immediate disruption but prevents completing the migration away from core.
  • Announce deprecation with a generic exception: Gives users conflicting migration guidance and no complete replacement path.
  • Make a GitHub-extension-specific workaround: Fixes one command while leaving the shared extension-registration gap in place.

Component

Agent integrations (command files, workflows)

AI Agent (if applicable)

All agents

Use Cases

  1. A generic project using --commands-dir can install an extension and receive its command in that directory.
  2. A generic project using --skills can install the same extension and receive an invokable skill.
  3. Either project can remove the extension without losing its scaffolded core commands or unrelated user files.

Acceptance Criteria

  • In a freshly initialized generic commands project, installing an extension registers its declared commands in the configured command directory; removing it removes only extension-owned artifacts.
  • In a freshly initialized generic skills project, installation and removal provide the equivalent skill lifecycle.
  • Generated artifacts resolve extension-local scripts and other rendered command content correctly.
  • Core commands, including speckit.taskstoissues, remain available and unchanged during this migration stage.
  • Registration failures are reported rather than allowing installation to appear successful with no invokable command or skill.
  • Positive and negative tests cover both layouts, custom paths, coexistence with core artifacts, and preservation of unrelated or user-modified files.
  • Documentation explains generic extension registration and its migration implications.

Additional Context

Related: #4421 and #4488 (bundled GitHub extension), #4422 (core-command deprecation), and #4423 (core-command removal).

Release dependency: This issue blocks announcing speckit.taskstoissues as deprecated. If that announcement must accompany merging #4488, it also blocks that merge; otherwise #4488 can ship as an additive extension while the core command remains supported.

AI Disclosure

GitHub Copilot (GPT-6 Sol, interactive; reasoning effort not specified) drafted this issue from a review of #4488 and the existing generic integration. No independent human line-by-line verification is claimed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

triage-nice-to-haveVerdict: evidence-backed fix or greenlit feature — land after review

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions