Skip to content

[Bug]: Init seems to be creating config in its own sub-directory #4355

Open

Description

@philguth

Bug Description

Actually I'm not sure I should call this a bug, but it seems like this config info should not be in its own sub-directory?

If that's the expected behavior, I'm good with that.

First time logging a bug, so not sure what I'm doing :-)

Steps to Reproduce

specify init azure-platform-bicep-avm --integration copilot

Expected Behavior

I'm expecting the config to be at the same level as the code.

Actual Behavior

The config was created in a sub-directory

Specify CLI Version

1.01

AI Agent

GitHub Copilot

Operating System

Windows 11 and

Python Version

Python 3.14.4

Error Logs

Additional Context

No response

Activity

  1. github-actions commented on Aug 31, 2026

    @github-actions
    Contributor

    Bug assessment — copilot-skills-subdirectory: Invalid · severity low


    Bug Assessment: Init Creates Config in Subdirectory (Copilot Skills)

    Report (summarized)

    Reporter (@philguth) ran specify init azure-platform-bicep-avm --integration copilot on Windows 11 with Python 3.14.4 and Specify CLI 1.01. They observed that the config was created inside a subdirectory rather than at the same level as the code. No error logs were provided; the reporter acknowledged this may be expected behavior.

    Symptom

    Running specify init <project> --integration copilot creates files under speckit-<name>/SKILL.md subdirectories inside .github/skills/, rather than placing flat files at the top of the folder. The reporter expected config at the same directory level as the code.

    Reproduction

    1. Run specify init azure-platform-bicep-avm --integration copilot
    2. Inspect the output directory — files are created at .github/skills/speckit-<name>/SKILL.md

    Suspected Code Paths

    • src/specify_cli/integrations/copilot/__init__.py — The _CopilotSkillsHelper class (line ~94–114) sets registrar_config["extension"] = "/SKILL.md", which is the convention for skills-mode scaffolding: each command becomes a speckit-<name>/SKILL.md subdirectory under .github/skills/.
    • The module docstring (lines 1–16) explicitly documents this layout: "Skills are the default and use speckit-<name>/SKILL.md directories under .github/skills/".

    Root Cause Hypothesis

    There is no defect. The Copilot integration is intentionally designed to scaffold each Spec Kit command as its own named subdirectory (speckit-<name>/) containing a SKILL.md file. This is the GitHub Copilot skills layout requirement — Copilot's skill discovery relies on a directory-per-skill structure. The behavior is working as designed. Confidence: high.

    Proposed Remediation

    No code change needed. This is expected behavior per the GitHub Copilot skills format.

    If the reporter prefers flat .agent.md files (the alternative commands layout), they can opt into it with:

    specify init <project> --integration copilot --integration-options="--commands"
    

    This installs .agent.md commands under .github/agents/ alongside companion .prompt.md files in .github/prompts/, without subdirectories.

    Documentation improvement (optional, low priority): The specify init help text or README could be clearer that the Copilot skills layout uses per-skill subdirectories by design, and mention the --commands alternative for users who want flat files.

    Files likely to change (if adding docs clarification only):

    • README.md or relevant docs page explaining the two Copilot layouts

    Tests to add or update: None required.

    Risks & Considerations

    • No code risk — no change proposed.
    • Closing as invalid with a brief explanation in comments will help future users with the same question.

    Open Questions

    • [NEEDS CLARIFICATION: The reporter mentioned version "1.01" — it's unclear if this is a typo for 1.0.1 or another version. This doesn't affect the assessment.]

    Posted on behalf of @mnriem by GitHub Copilot (model: claude-sonnet-4.6, autonomous)

    Generated by 🐛 Assess Bug from Labeled Issue for issue #4355 · 110.9 AIC · ⌖ 10.9 AIC · ⊞ 34.1K · ◷

  2. added
    triage-out-of-scopeVerdict: won't land in core — invalid, duplicate, off-mission, or redirected to an extension
    on Oct 15, 2026
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

    bug-assessinvalidThis doesn't seem righttriage-out-of-scopeVerdict: won't land in core — invalid, duplicate, off-mission, or redirected to an extension

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions