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
[Bug]: Init seems to be creating config in its own sub-directory #4355
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
Run specify init azure-platform-bicep-avm --integration copilot
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:
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)
Activity
github-actions commentedon Aug 31, 2026
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 copiloton 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 copilotcreates files underspeckit-<name>/SKILL.mdsubdirectories 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
specify init azure-platform-bicep-avm --integration copilot.github/skills/speckit-<name>/SKILL.mdSuspected Code Paths
src/specify_cli/integrations/copilot/__init__.py— The_CopilotSkillsHelperclass (line ~94–114) setsregistrar_config["extension"] = "/SKILL.md", which is the convention for skills-mode scaffolding: each command becomes aspeckit-<name>/SKILL.mdsubdirectory under.github/skills/.speckit-<name>/SKILL.mddirectories 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 aSKILL.mdfile. 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.mdfiles (the alternative commands layout), they can opt into it with:This installs
.agent.mdcommands under.github/agents/alongside companion.prompt.mdfiles in.github/prompts/, without subdirectories.Documentation improvement (optional, low priority): The
specify inithelp text or README could be clearer that the Copilot skills layout uses per-skill subdirectories by design, and mention the--commandsalternative for users who want flat files.Files likely to change (if adding docs clarification only):
README.mdor relevant docs page explaining the two Copilot layoutsTests to add or update: None required.
Risks & Considerations
Open Questions
1.0.1or another version. This doesn't affect the assessment.]Posted on behalf of
@mnriemby GitHub Copilot (model: claude-sonnet-4.6, autonomous)