Repository navigation
[Bug]: extension update renders the github extension's Claude skill differently from extension add, and its README links a missing file #5105
Description
Bug Description
After specify extension update github (1.0.2 to 1.0.3), the github extension's Claude skill and registry entry differ from what specify extension add github produced: the skill lost its hook-name rule and front matter, and registered_skills is empty. The 1.0.3 README also links a file that is not installed.
Steps to Reproduce
- In a project with the
claudeintegration (--script ps), runspecify extension add github. The recorded source is"local", version 1.0.2. - Run
specify extension update githuband confirm the prompt. The recorded source becomes{"kind":"catalog","catalog":"default"}, version 1.0.3. - Compare
.claude/skills/speckit-github-taskstoissues/SKILL.md, thegithubentry in.specify/extensions/.registry, and.specify/extensions/github/README.mdbefore and after (we diffed the committed files withgit diff --ignore-cr-at-eol).
Expected Behavior
extension update produces the same skill content, front matter and registry entry as extension add of the same version, and the README's links resolve in an installed project (or point to the documentation site).
Actual Behavior
-
The skill lost the hook-name rule, in both places it appeared:
-- When constructing command invocations from hook command names, replace dots (`.`) with hyphens (`-`). For example, `speckit.git.commit` → `/speckit-git-commit`.With the Claude integration, skills are named with hyphens, so a hook named
speckit.git.commitwould now be invoked by a name that does not exist. -
The front matter changed:
- source: extension:github -user-invocable: true -disable-model-invocation: false + source: github:commands/speckit.github.taskstoissues.md
The
# Github Taskstoissues Skillheading was dropped too. Skills installed by the core integration keepuser-invocableanddisable-model-invocation. -
registered_skillsis empty. In.specify/extensions/.registry,githubrecordsregistered_commands.claude: ["speckit.github.taskstoissues"]butregistered_skills: [], although the skill folder exists. Extensions installed withextension addrecord their skill names there. -
Dead README links.
.specify/extensions/github/README.mdlinks../../docs/integrations/cli.md#integration-specific-options(line 29) and../../docs/integrations/cli.md#upgrade-an-integration(line 99). From.specify/extensions/github/these resolve to.specify/docs/integrations/cli.md, which is not installed.
We do not know whether the front-matter change in point 2 is an intended format change; points 1, 3 and 4 look unintended.
Specify CLI Version
1.2.3
AI Agent
Claude Code
Operating System
Windows 11 Pro
Python Version
3.14.7 (the uv tool environment specify-cli runs in)
Error Logs
None; the commands succeed.
Additional Context
Seen in seven repositories updated the same way on 2026-10-23, all with the same result. The project uses the github extension as the replacement for the deprecated core taskstoissues command.
AI Disclosure
Drafted by Claude Code (model Claude Opus 5.5), human-supervised: the agent found the differences while reviewing the update in our repositories, gathered the diffs and wrote this report; a maintainer of those repositories reviewed it and asked for it to be filed.
Activity