Skip to content

Add custom Copilot skills support for domain-specific planning#13

Merged
colindembovsky merged 8 commits intomainfrom
copilot/enhancement-support-custom-skills
Feb 20, 2026
Merged

Add custom Copilot skills support for domain-specific planning#13
colindembovsky merged 8 commits intomainfrom
copilot/enhancement-support-custom-skills

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 13, 2026

Copilot SDK v0.1.24-preview.0 added skillDirectories and disabledSkills options for custom skills. This enables users to provide domain-specific context (e.g., "web-app", "data-pipeline") that improves WBS generation accuracy.

Implementation

Skill loading: Skills are read from .github/skills/*.yaml on startup. Simple regex parsing extracts the name field; malformed files are logged and skipped.

SDK integration: Skills are passed per-session via SessionConfig, not client initialization:

const sessionConfig: SessionConfigWithSkills = {
  model: currentModel,
  streaming: true,
  skillDirectories: ['/path/to/.github/skills'],
  disabledSkills: ['skill-name']  // optional
};
session = await copilot.createSession(sessionConfig);

UI: Refine screen now has Skills view (⇥ to cycle Tree → Batches → Skills). Users toggle skills on/off with Space. Active skills are serialized with the plan.

Planner integration: During WBS generation, enabled skill names are appended to the user content sent to Copilot:

if (activeSkills?.length > 0) {
  userContent += `\n\nActive custom skills: ${enabledSkills.join(', ')}`;
}

Skills Directory

Skills are stored in .github/skills/ directory, making them part of the repository's GitHub configuration alongside workflows and other GitHub-specific files. This location:

  • Makes skills discoverable and version-controlled with the repository
  • Follows GitHub conventions for repository configuration
  • Allows skills to be shared across team members automatically

Example Skills

Two skills included as templates in .github/skills/:

  • web-app: Frontend/backend/database/deployment task patterns
  • data-pipeline: ETL extraction/transformation/loading/monitoring patterns

Each YAML defines instructions and examples that guide Copilot's task breakdown logic.

Data Model

interface SkillConfig {
  name: string;
  enabled: boolean;
}

interface Plan {
  // ... existing fields
  skills?: SkillConfig[];  // tracks which skills were active
}
Original prompt

This section details on the original issue you should resolve

<issue_title>[enhancement] Support Custom Copilot Skills for Domain-Specific Planning and Execution</issue_title>
<issue_description>## Background

The Copilot SDK v0.1.24-preview.0 release added support for custom skills across all SDK implementations:

  • skillDirectories option: Allows developers to specify directories containing custom skill definitions (PR colindembovsky/planeteer#57 merged in v0.1.24-preview.0)
  • disabledSkills option: Provides control over which built-in or custom skills are active
  • Skill E2E tests: New test coverage ensures skills work reliably (PR colindembovsky/planeteer#69 by Steve Sanderson)

Release notes: v0.1.24-preview.0

Proposal

Extend Planeteer to support custom Copilot skills, enabling users to define domain-specific planning and execution behaviors. For example:

  • A "web-app" skill that knows to break down web projects into frontend, backend, database, and deployment tasks
  • A "data-pipeline" skill that structures ETL workflows with validation and monitoring
  • A "mobile-app" skill that generates iOS/Android-specific task breakdowns

Implementation approach:

  1. Add skillDirectories and disabledSkills options to src/services/copilot.ts when initializing SDK sessions
  2. Create a .planeteer/skills/ directory structure where users can drop skill definition files
  3. Update src/services/planner.ts to pass skill context to Copilot during clarification and breakdown phases
  4. Add a "Skills" section to the refine screen (src/screens/refine.tsx) showing which skills are active
  5. Document skill creation in README.md with example skill definitions

Benefit

  • Customization: Teams can encode their own best practices and project structures as reusable skills
  • Domain expertise: Skills provide context that improves Copilot's planning accuracy for specific types of projects
  • Efficiency: Well-crafted skills reduce the need for manual refinement in the breakdown phase
  • Ecosystem: Users can share skills with the community, building a library of domain-specific templates

Acceptance Criteria

  • src/services/copilot.ts passes skillDirectories option to SDK when creating sessions
  • .planeteer/skills/ directory is created on first run if it doesn't exist
  • Sample skill definition file included in repository (e.g., example-web-app-skill.yaml)
  • Active skills displayed in refine screen with option to toggle on/off
  • Planner prompts (src/services/planner.ts) reference skill names when generating WBS
  • Unit tests verify skill configuration is passed correctly to SDK
  • README documents skill file format and provides 2+ examples
  • Error handling for malformed skill files (graceful degradation)

AI generated by Weekly Enhancement Suggestions

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 5 commits February 13, 2026 01:10
Co-authored-by: colindembovsky <1932561+colindembovsky@users.noreply.github.com>
Co-authored-by: colindembovsky <1932561+colindembovsky@users.noreply.github.com>
Co-authored-by: colindembovsky <1932561+colindembovsky@users.noreply.github.com>
Co-authored-by: colindembovsky <1932561+colindembovsky@users.noreply.github.com>
Co-authored-by: colindembovsky <1932561+colindembovsky@users.noreply.github.com>
Copilot AI changed the title [WIP] Add support for custom Copilot skills in Planeteer Add custom Copilot skills support for domain-specific planning Feb 13, 2026
Copilot AI requested a review from colindembovsky February 13, 2026 01:21
@colindembovsky
Copy link
Copy Markdown
Owner

@copilot Update the skills location to default to ./github/skills instead of ./planeteer/skills

Co-authored-by: colindembovsky <1932561+colindembovsky@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Feb 18, 2026

@copilot Update the skills location to default to ./github/skills instead of ./planeteer/skills

Updated skills location from .planeteer/skills to .github/skills in commit f061152.

Changes:

  • SKILLS_DIR constant updated in src/services/copilot.ts
  • Example skill files moved to .github/skills/
  • All documentation references updated in README.md
  • UI message updated in refine screen

New directory structure:

.github/
└── skills/
    ├── example-data-pipeline-skill.yaml
    └── example-web-app-skill.yaml

Skills directory structure

All tests passing ✓

@colindembovsky colindembovsky marked this pull request as ready for review February 20, 2026 15:54
@colindembovsky colindembovsky merged commit c2be9d9 into main Feb 20, 2026
@colindembovsky colindembovsky deleted the copilot/enhancement-support-custom-skills branch February 20, 2026 15:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[enhancement] Support Custom Copilot Skills for Domain-Specific Planning and Execution

2 participants