Conversation
8 tasks
Add --skills integration option to CopilotIntegration that scaffolds commands as speckit-<name>/SKILL.md under .github/skills/ instead of the default .agent.md + .prompt.md layout. - Add options() with --skills flag (default=False) - Branch setup() between default and skills modes - Add post_process_skill_content() for Copilot-specific mode: field - Adjust build_command_invocation() for skills mode (/speckit-<stem>) - Update dispatch_command() with skills mode detection - Parse --integration-options during init command - Add 22 new skills-mode tests - All 15 existing default-mode tests continue to pass Agent-Logs-Url: https://github.com/github/spec-kit/sessions/a4903fab-64ff-46c3-8eb8-a47f495a70c0 Co-authored-by: mnriem <15701806+mnriem@users.noreply.github.com>
Agent-Logs-Url: https://github.com/github/spec-kit/sessions/a4903fab-64ff-46c3-8eb8-a47f495a70c0 Co-authored-by: mnriem <15701806+mnriem@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add --skills flag for skills-based scaffolding in Copilot integration
feat(copilot): support Apr 22, 2026
--integration-options="--skills" for skills-based scaffolding
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a Copilot integration “skills mode” (--integration-options="--skills") that scaffolds speckit-<name>/SKILL.md under .github/skills/ (instead of .agent.md + .prompt.md + VS Code settings merge), along with CLI plumbing and tests.
Changes:
- Introduces
--skillsintegration option for Copilot and branchessetup()into default vs skills scaffolding. - Extends
initto parse and forward--integration-optionsinto integrationparsed_options, and persistsai_skillswhen an integration is operating in skills mode. - Adds a new test suite covering Copilot skills-mode scaffolding, post-processing, install/uninstall, and CLI integration.
Show a summary per file
| File | Description |
|---|---|
| tests/integrations/test_integration_copilot.py | Adds comprehensive tests for Copilot --skills mode behavior and CLI wiring. |
| src/specify_cli/integrations/copilot/init.py | Implements Copilot skills-mode scaffolding via a delegate SkillsIntegration helper and adds SKILL.md post-processing + dispatch changes. |
| src/specify_cli/init.py | Ensures init parses --integration-options and persists ai_skills for integrations operating in skills mode. |
| AGENTS.md | Documents Copilot’s new skills mode and how to enable it. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 4/4 changed files
- Comments generated: 4
- Reset _skills_mode at start of setup() to prevent singleton state leak - Tighten skills auto-detection to require speckit-*/SKILL.md (not any non-empty .github/skills/ directory) - Add copilot_skill_mode to init next-steps so skills mode renders /speckit-plan instead of /speckit.plan - Fix docstring quoting to match actual unquoted output - Add 4 tests covering singleton reset, auto-detection false positive, speckit layout detection, and next-steps skill syntax - Fix skipped test_invalid_metadata_error_returns_unknown by simulating InvalidMetadataError on Python versions that lack it
Contributor
There was a problem hiding this comment.
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 5/5 changed files
- Comments generated: 2
build_command_invocation() reads self._skills_mode which stays False when skills mode is only auto-detected from the project layout. Inline the /speckit-<stem> prompt construction so dispatch_command() sends the correct prompt regardless of how skills mode was detected. Also strengthen test_dispatch_detects_speckit_skills_layout to assert the -p prompt contains /speckit-plan and the user args.
Contributor
There was a problem hiding this comment.
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 5/5 changed files
- Comments generated: 1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a
--skillsflag to the Copilot integration enablingspeckit-<name>/SKILL.mdscaffolding under.github/skills/as an alternative to the default.agent.md+.prompt.md+ settings merge layout. The two modes are mutually exclusive.Implementation
_CopilotSkillsHelper(SkillsIntegration)with.github/skills/config is used as a delegate —CopilotIntegrationstays onIntegrationBasesetup()branches into_setup_default()and_setup_skills()based onparsed_options["skills"]post_process_skill_content()injectsmode: speckit.<stem>into SKILL.md frontmatter (Copilot-specific field, analogous to Claude'suser-invocable/disable-model-invocation)build_command_invocation()returns/speckit-<stem>in skills mode, bare args in default modedispatch_command()detects skills mode from_skills_modeflag or.github/skills/presence on diskCLI plumbing
initnow parses--integration-optionsvia_parse_integration_options()and merges intointegration_parsed_options(previously onlyintegration_install/integration_switchdid this)ai_skillsininit-options.jsonis set when_skills_modeis active, so downstream tools (presets, extensions) emit SKILL.md overrides correctlyTests
22 new tests in
TestCopilotSkillsModecovering: directory structure, no.prompt.md/.vscode/settings.jsonin skills mode, frontmatter structure withmode:field,post_process_skill_content()idempotency, manifest tracking, install/uninstall roundtrip,build_command_invocation()in both modes, full CLI integration, and complete file inventory. All 15 existing default-mode tests unchanged.