Skip to content

Bug: preset skill overrides not written when skills_source is marketplace and ai_skills is false #2906

Description

@echarrod

Summary

When a spec-kit project uses "skills_source": "marketplace" in .specify/integration.json AND has "ai_skills": false in .specify/init-options.json, installing a preset that provides type: "command" entries (e.g. specify preset add jira) does not write the corresponding .claude/skills/<skill-name>/SKILL.md override file. The preset appears installed (registry updated, files in .specify/presets/) but the local skill override that should shadow the marketplace plugin skill is silently skipped.

Root cause

Two places in src/specify_cli/presets.py:

  1. _get_skills_dir() has an early-return guard: if not ai_skills_enabled and agent != "kimi": return None — this causes the method to return None for marketplace projects, so _register_skills() is never reached.

  2. _register_skills() computes create_missing_skills = ai_skills_enabled and agent_config.get("extension") != "/SKILL.md" — when ai_skills: false this is always False, so no skill directory is created even when the preset command override would require one.

Expected behaviour

Running specify preset add <preset> in a skills_source: marketplace project should write .claude/skills/<skill-name>/SKILL.md for each command the preset overrides, so that the local skill shadows the marketplace plugin skill.

Steps to reproduce

  1. Initialise a project with specify init --here --integration claude --ai claude (sets ai_skills: false by default with marketplace source)
  2. Install a preset: specify preset add jira --from https://github.com/luno/spec-kit-preset-jira/archive/refs/heads/main.zip
  3. Observe: .specify/presets/jira/ exists and registry shows registered_skills: ["speckit-taskstoissues"], but .claude/skills/speckit-taskstoissues/SKILL.md is never created

Fix

A fix is already in PR #2905. Reference: #2905

No activity

Activity on this issue will appear here.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions