feat(copilot): default integration to skills - #3976
Merged
Merged
Conversation
Make Copilot skills the default while retaining the commands layout behind --integration-options="--commands". Preserve historical project layouts and validate conflicting mode flags before switch teardown. Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 930d846b-8921-44ef-9f45-3e77c036b6b5
Contributor
There was a problem hiding this comment.
Pull request overview
Makes Copilot’s skills layout the default while retaining explicit commands mode and preserving existing layouts.
Changes:
- Adds default skills and
--commandsmode selection. - Preserves historical layouts and validates conflicting flags.
- Updates tests and integration documentation.
Show a summary per file
| File | Description |
|---|---|
src/specify_cli/integrations/copilot/__init__.py |
Implements Copilot layout selection. |
src/specify_cli/integrations/_migrate_commands.py |
Validates switch options earlier. |
src/specify_cli/integrations/base.py |
Updates base documentation. |
src/specify_cli/integration_runtime.py |
Documents the new separator default. |
tests/integrations/test_integration_copilot.py |
Tests both Copilot layouts. |
tests/integrations/test_integration_subcommand.py |
Tests switching and upgrades. |
tests/integrations/test_integration_state.py |
Tests persisted separator state. |
tests/integrations/test_cli.py |
Updates CLI expectations. |
tests/test_extension_skills.py |
Updates rescaffolding scenarios. |
docs/reference/integrations.md |
Documents Copilot options. |
AGENTS.md |
Updates contributor guidance. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 11/11 changed files
- Comments generated: 2
- Review effort level: Balanced
Keep target integration options isolated from fallback state, prefer the Copilot manifest when resolving layouts, and update dispatch coverage for the skills-first default. Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 930d846b-8921-44ef-9f45-3e77c036b6b5
Collaborator
Author
|
Addressed both review findings in |
kanfil
added a commit
to tikalk/agentic-sdlc-spec-kit
that referenced
this pull request
Aug 5, 2026
Upstream merge (ab468c4..03d71b3): Copilot skills-default flip (github#3976), events context injection for opencode + JSON-envelope hooks (github#3934, by fork maintainer upstream), non-UTF-8/hardening fixes (github#3955/github#3957/github#3960/github#3962/ github#3963/github#3980), community catalog additions (github#3981/github#3982/github#3983), docs (github#3985/ github#3987). 5 conflicts resolved: AGENTS.md (optional-overrides section + PR-prioritization), copilot/__init__.py (re-applied fork customizations + prefix-aware is_skills_mode), test_cli.py/test_integration_copilot.py/test_integration_ subcommand.py (adapted to fork naming for skills-default). Fork fix: build_command_invocation() bare-name canonicalization before alias resolution. Ruff clean (ruff@0.15.0). 1375+ tests pass. Assisted-by: opencode (model: glm-5.2, supervised)
kanfil
added a commit
to tikalk/agentic-sdlc-spec-kit
that referenced
this pull request
Aug 5, 2026
…tion Two CI failures from github#3976 copilot skills-default flip: 1. build_command_invocation: only canonicalize truly bare names (no dot). "git.commit" is a dotted alias-form name, not bare — prepending speckit. made it speckit.git.commit which resolves differently in clean envs (CI checkout has no .specify/ → no alias → /speckit-git-commit instead of /git-commit). Test documents the contract: "git.commit is not in the alias map as a key, so it's always unchanged". 2. test_upgrade_preserves_historical_copilot_commands_without_options: fork's _register_model_invocation_skills (since 0.12.8+adlc6) generates .github/skills/quick-* during init for commands-mode agents (agentic-quick is preinstalled with model-invocation:true commands). These skills exist before the upgrade runs — not an upgrade bug. Assert the migration signal (no command-derived speckit-plan/spec-plan skill dir) instead of skills-dir absence. Assisted-by: opencode (model: glm-5.2, supervised)
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.
Description
Make Copilot use the skills layout by default while keeping the commands layout supported through
--integration-options="--commands".This also preserves historical command-layout projects during use and upgrade, keeps
--skillsas an explicit migration override, rejects conflicting mode flags before switch teardown, and updates the integration documentation.Testing
uv run specify --help951 passedacross integration, lifecycle, extension, preset, and setup-task coverage)AI Disclosure
Implemented and reviewed on behalf of @mnriem by GitHub Copilot (model: GPT-5.6 Sol). Copilot generated the code, tests, and documentation changes autonomously; @mnriem directed the behavior and naming decisions.