Skip to content

feat: migrate skills from .squad/skills/ to .copilot/skills/ (#330, #354)#430

Merged
bradygaster merged 1 commit intodevfrom
squad/330-354-skills-unification
Mar 20, 2026
Merged

feat: migrate skills from .squad/skills/ to .copilot/skills/ (#330, #354)#430
bradygaster merged 1 commit intodevfrom
squad/330-354-skills-unification

Conversation

@bradygaster
Copy link
Copy Markdown
Owner

Skills Unification — .squad/skills/ → .copilot/skills/

Closes #330 — Coordinator detects and enforces all three tooling layers
Closes #354 — Migrate Squad Skills from .squad/skills/ to .copilot/skills/

What changed

Skills now live in .copilot/skills/\ — Copilot's native skill discovery path — instead of .squad/skills/.

SDK/CLI code:

  • \LocalSkillSource\ checks .copilot/skills\ first, falls back to .squad/skills\ (backward compat)
  • \squad init\ creates .copilot/skills/\ instead of .squad/skills/\
  • \squad_skill\ tool writes to .copilot/skills/, reads from both locations
  • New 0.9.0 migration auto-moves existing skills on upgrade
  • Export/import handles both locations

Governance:

  • All 11 .squad/skills/\ references in \squad.agent.md\ → .copilot/skills/\
  • Template files updated (mcp-config.md, plugin-marketplace.md, skill templates)

This repo:

  • 18 skills physically moved from .squad/skills/\ → .copilot/skills/\
  • Template skill cross-references updated

MCP validation: Confirmed spawned agents inherit MCP tools from coordinator session ✅

Upgrade experience

On next \squad upgrade, the 0.9.0 migration:

  1. Detects .squad/skills/\ exists
  2. Creates .copilot/skills/\ if needed
  3. Copies all skills (preserves old location for one version)
  4. Reports: \📦 Migrated N skills from .squad/skills/ → .copilot/skills/\

Test results

  • 4323 tests passing, 0 failures
  • Build clean (0 errors)
  • Updated test assertions for new skill locations

tamirdresher pushed a commit to tamirdresher/squad that referenced this pull request Mar 16, 2026
…l paths (bradygaster#440)

* chore(squad): quality review findings — 7 issues filed

Quality audit complete: 5 agents assessed CLI across testing, coverage, stability, accessibility, UX.
Results: 4 P0 blockers (bradygaster#365bradygaster#368), 3 P1 items (bradygaster#369bradygaster#371).
Blocking: Waingro dead sessions, ErrorBoundary, dropped input; Marquez help text consistency.

Changes:
- Logged session summary to .squad/log/2026-02-24T0205-quality-review-complete.md
- Updated .squad/identity/now.md with quality review findings and new issue numbers

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(squad): merge decision — Marquez UX audit findings

Quality assessment merged from inbox (Grade B): 11 improvements (3 P0, 4 P1, 4 P2). help text, stub commands, vocabulary, separators, roster.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix bradygaster#418: Add progress indicator for long operations

Show 'Still working... (Xm Ys elapsed)' after 30 seconds, updating
every 30 seconds during sendAndWait timeout. Prevents users from
thinking the system has hung during long agent operations.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix bradygaster#428/bradygaster#401: Add pending input queue for disabled→enabled transition

The ref-based buffer from bradygaster#381 handles keystrokes during disabled state, but
fast typing during the disabled→enabled transition could race with React's
useEffect. Added pendingInputRef queue to catch characters that arrive before
the effect drains bufferRef.

Edge cases fixed:
- Paste events (rapid character arrival)
- Fast typing during transition window
- Race between useInput and useEffect restoration

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix bradygaster#430: Document and enhance coordinator streaming diagnostics

Verified that coordinator message_delta event wiring is correct:
- Both dispatchToCoordinator and dispatchToAgent use identical streaming patterns
- message_delta listener registered BEFORE awaitStreamedResponse call
- CopilotSessionAdapter maps 'message_delta' -> 'assistant.message_delta' correctly
- Coordinator session created with streaming: true config

Enhanced diagnostics:
- Added session creation logging (sessionId, capabilities)
- Added listener registration/removal logging
- Added fallback path logging to track when sendAndWait content is used
- Documented streaming architecture in function comments

All 41 streaming tests pass. No functional changes, only diagnostic improvements.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update Kovash history: input buffering fix bradygaster#428/bradygaster#401

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tamirdresher pushed a commit to tamirdresher/squad that referenced this pull request Mar 16, 2026
* chore(squad): quality review findings — 7 issues filed

Quality audit complete: 5 agents assessed CLI across testing, coverage, stability, accessibility, UX.
Results: 4 P0 blockers (bradygaster#365bradygaster#368), 3 P1 items (bradygaster#369bradygaster#371).
Blocking: Waingro dead sessions, ErrorBoundary, dropped input; Marquez help text consistency.

Changes:
- Logged session summary to .squad/log/2026-02-24T0205-quality-review-complete.md
- Updated .squad/identity/now.md with quality review findings and new issue numbers

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(squad): merge decision — Marquez UX audit findings

Quality assessment merged from inbox (Grade B): 11 improvements (3 P0, 4 P1, 4 P2). help text, stub commands, vocabulary, separators, roster.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update Kovash history: Issue bradygaster#430 investigation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@sturlath
Copy link
Copy Markdown
Contributor

@bradygaster you say .copilot/skills but what about the .github/skills one? That is the one my github.com agents use at least... 🤷‍♂️

)

Skills are now created in and read from .copilot/skills/ instead of
.squad/skills/. This unifies Squad's skill system with Copilot's native
skill discovery path.

Changes:
- LocalSkillSource checks .copilot/skills first, falls back to .squad/skills
- GitHubSkillSource default pathPrefix updated to .copilot/skills
- squad init creates .copilot/skills/ (not .squad/skills/)
- squad_skill tool writes to .copilot/skills/, reads from both
- New 0.9.0 migration auto-moves .squad/skills/ -> .copilot/skills/
- All 11 squad.agent.md refs updated (both template copies + this repo)
- Template files updated: mcp-config.md, plugin-marketplace.md, skill.md
- Template skills updated: reskill, squad-conventions, distributed-mesh
- Export/import updated for new location with backward compat
- 18 skills physically moved from .squad/skills/ to .copilot/skills/
- All tests updated and passing (4323 pass, 0 fail)

Closes #330
Closes #354

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bradygaster bradygaster force-pushed the squad/330-354-skills-unification branch from c67a4d6 to e3bbb52 Compare March 20, 2026 08:25
@bradygaster bradygaster merged commit 9081840 into dev Mar 20, 2026
2 checks passed
@bradygaster
Copy link
Copy Markdown
Owner Author

@sturlath sorry i missed your comment here. pretty sure everyone's unifying around .copilot/skills - any reason why you'd need them in .github/skills?

@sturlath
Copy link
Copy Markdown
Contributor

sturlath commented Mar 26, 2026

@bradygaster np I seem to have missed that announcement 😅

When I search the docs I find https://docs.github.com/?search-overlay-open=true&search-overlay-ask-ai=true&search-overlay-input=Skills

Create & add a skill (steps)

Create a skills directory:
Project skills: .github/skills/ or .claude/skills/
Personal skills: ~/.copilot/skills/ or ~/.claude/skills/

I only have one set of skills and they are placed in github/skills 🤔

Can you explain the difference and what I should be using?

I btw starter using skills almost the same day they came out and lot did change then and probably has now again/also.

tamirdresher pushed a commit to tamirdresher/squad that referenced this pull request Apr 7, 2026
The skills unification in bradygaster#430 migrated skills from .squad/skills/
to .copilot/skills/. This updates the APM skill command to:

- Check .copilot/skills/ first, fall back to .squad/skills/ (backward compat)
- Use resolveSkillsDir() helper matching LocalSkillSource pattern
- Update all user-facing messages and apm.yml template paths
- Fix installSkillsFromSquadDir candidate order

Addresses review feedback from @Meir017.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tamirdresher pushed a commit to tamirdresher/squad that referenced this pull request Apr 8, 2026
The skills unification in bradygaster#430 migrated skills from .squad/skills/
to .copilot/skills/. This updates the APM skill command to:

- Check .copilot/skills/ first, fall back to .squad/skills/ (backward compat)
- Use resolveSkillsDir() helper matching LocalSkillSource pattern
- Update all user-facing messages and apm.yml template paths
- Fix installSkillsFromSquadDir candidate order

Addresses review feedback from @Meir017.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tamirdresher added a commit that referenced this pull request Apr 8, 2026
…#876)

* Add enforcement wiring step to hiring process + workflow wiring guide (#592)

Fixes #591

- Added step 7 (Wire enforcement) to Adding Team Members in squad.agent.md
- Added workflow-wiring-guide.md with configuration surface area, wiring instructions, common mistakes, and verification checklist
- Added appendix walkthroughs for code reviewer (gate pattern) and documenter (follow-up trigger pattern)

Co-authored-by: Jonathan Ben Ami <jbenami@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(agents): add Challenger / Devil's Advocate agent template + fact-checking skill (#603)

* feat(skills): add fact-checking skill\n\nAdds challenger/fact-checking review pattern.\nVerified against 200+ issues in production squads.\nCloses #598

* feat(agents): add challenger agent charter template\n\nGeneric Devil's Advocate / Challenger template.\nProvides auto-spawn integration pattern for coordinators.\nCloses #598

* feat: add APM integration for skill publishing and installation

Closes #824

## Changes

### New command: squad skill
- squad skill publish [<name>] — exports skill(s) to APM format, generating/updating apm.yml
- squad skill install <source> — installs a skill from APM registry
  - Supports owner/repo, owner/repo/skill-name, and direct URLs
  - Uses GitHub CLI to fetch from repos that have apm.yml or .squad/skills/
  - Writes .apm-source.json metadata to track skill origin
- squad skill list — lists installed skills with source provenance

### Updated: squad init
- Now generates �pm.yml at project root alongside .squad/
- Follows skipExisting semantics (safe to re-run)
- apm.yml includes skills, instructions, and prompts sections

### Updated: squad help
- Added skill command to help text with usage examples

## APM format
apm.yml is the Agent Package Manager manifest — package.json for AI agent context.
See: https://github.com/microsoft/apm

The manifest declares skills, instructions, and prompts in a portable format
that �pm install can deploy to .github/, .claude/, .cursor/ etc.

* chore: add changeset for APM integration

* docs: update CHANGELOG.md with APM integration entry

* fix(skill): use .copilot/skills/ as primary path per #430

The skills unification in #430 migrated skills from .squad/skills/
to .copilot/skills/. This updates the APM skill command to:

- Check .copilot/skills/ first, fall back to .squad/skills/ (backward compat)
- Use resolveSkillsDir() helper matching LocalSkillSource pattern
- Update all user-facing messages and apm.yml template paths
- Fix installSkillsFromSquadDir candidate order

Addresses review feedback from @Meir017.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: align CHANGELOG.md with dev branch

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add missing fs import in init.ts

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: joniba <joniba@users.noreply.github.com>
Co-authored-by: Jonathan Ben Ami <jbenami@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <Copilot@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
karlis-balcers pushed a commit to karlis-balcers/squad that referenced this pull request Apr 13, 2026
The skills unification in bradygaster#430 migrated skills from .squad/skills/
to .copilot/skills/. This updates the APM skill command to:

- Check .copilot/skills/ first, fall back to .squad/skills/ (backward compat)
- Use resolveSkillsDir() helper matching LocalSkillSource pattern
- Update all user-facing messages and apm.yml template paths
- Fix installSkillsFromSquadDir candidate order

Addresses review feedback from @Meir017.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tamirdresher added a commit that referenced this pull request Apr 21, 2026
…#876)

* Add enforcement wiring step to hiring process + workflow wiring guide (#592)

Fixes #591

- Added step 7 (Wire enforcement) to Adding Team Members in squad.agent.md
- Added workflow-wiring-guide.md with configuration surface area, wiring instructions, common mistakes, and verification checklist
- Added appendix walkthroughs for code reviewer (gate pattern) and documenter (follow-up trigger pattern)

Co-authored-by: Jonathan Ben Ami <jbenami@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(agents): add Challenger / Devil's Advocate agent template + fact-checking skill (#603)

* feat(skills): add fact-checking skill\n\nAdds challenger/fact-checking review pattern.\nVerified against 200+ issues in production squads.\nCloses #598

* feat(agents): add challenger agent charter template\n\nGeneric Devil's Advocate / Challenger template.\nProvides auto-spawn integration pattern for coordinators.\nCloses #598

* feat: add APM integration for skill publishing and installation

Closes #824

## Changes

### New command: squad skill
- squad skill publish [<name>] — exports skill(s) to APM format, generating/updating apm.yml
- squad skill install <source> — installs a skill from APM registry
  - Supports owner/repo, owner/repo/skill-name, and direct URLs
  - Uses GitHub CLI to fetch from repos that have apm.yml or .squad/skills/
  - Writes .apm-source.json metadata to track skill origin
- squad skill list — lists installed skills with source provenance

### Updated: squad init
- Now generates �pm.yml at project root alongside .squad/
- Follows skipExisting semantics (safe to re-run)
- apm.yml includes skills, instructions, and prompts sections

### Updated: squad help
- Added skill command to help text with usage examples

## APM format
apm.yml is the Agent Package Manager manifest — package.json for AI agent context.
See: https://github.com/microsoft/apm

The manifest declares skills, instructions, and prompts in a portable format
that �pm install can deploy to .github/, .claude/, .cursor/ etc.

* chore: add changeset for APM integration

* docs: update CHANGELOG.md with APM integration entry

* fix(skill): use .copilot/skills/ as primary path per #430

The skills unification in #430 migrated skills from .squad/skills/
to .copilot/skills/. This updates the APM skill command to:

- Check .copilot/skills/ first, fall back to .squad/skills/ (backward compat)
- Use resolveSkillsDir() helper matching LocalSkillSource pattern
- Update all user-facing messages and apm.yml template paths
- Fix installSkillsFromSquadDir candidate order

Addresses review feedback from @Meir017.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: align CHANGELOG.md with dev branch

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add missing fs import in init.ts

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: joniba <joniba@users.noreply.github.com>
Co-authored-by: Jonathan Ben Ami <jbenami@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <Copilot@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants