Thank you for your interest in contributing to this GitHub Copilot customization blueprint! This document provides guidelines and instructions for contributing.
- Code of Conduct
- How Can I Contribute?
- Development Setup
- Contribution Guidelines
- Style Guidelines
- Testing Your Changes
- Submitting Changes
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
Before creating bug reports, please check existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples (screenshots, code snippets, etc.)
- Describe the behavior you observed and what you expected
- Include your environment details:
- VS Code version
- GitHub Copilot extension version
- Operating system
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:
- Use a clear and descriptive title
- Provide a detailed description of the suggested enhancement
- Explain why this enhancement would be useful
- Include examples of how the feature would be used
You can contribute:
- New Agent Skills - Domain-specific capabilities in
.github/skills/ - Prompt Templates - Reusable prompts in
.github/prompts/ - Custom Agents - Specialized agent profiles in
.github/agents/ - Instructions Files - Scoped instructions for specific contexts
- Fork and clone the repository
git clone https://github.com/YOUR-USERNAME/github-copilot-agent.git
cd github-copilot-agent- Open in VS Code
code .-
Ensure you have the required extensions:
- GitHub Copilot
- GitHub Copilot Chat
-
Set up git hooks (enforces Conventional Commits locally):
./scripts/setup-hooks.shWhen creating a new skill in .github/skills/<name>/SKILL.md:
- Follow the existing
SKILL.mdstructure - Include clear
name,description, andusagesections - Provide concrete examples
- Document any dependencies or prerequisites
- Test thoroughly with the Copilot Customization Builder agent
When creating prompt files in .github/prompts/:
- Use descriptive filenames:
<action>-<target>.prompt.md - Include YAML frontmatter with:
name: Display name (e.g., "Create New Skill")description: Clear purpose statementinput: Required user inputs with descriptive prompts
- Write clear, actionable instructions
- Test with various input scenarios
When creating agents in .github/agents/:
- Define a clear, focused purpose
- Specify minimal necessary tools (security principle)
- Include comprehensive instructions
- Document limitations and use cases
- Test agent behavior thoroughly
When creating instruction files:
- Use descriptive filenames
- Include proper YAML frontmatter with
applyToglob patterns - Keep instructions concise and actionable
- Test with relevant file types
- Use ATX-style headings (
#not underlines) - Use fenced code blocks with language identifiers
- Keep lines under 120 characters when possible
- Use relative links for internal documentation
---
name: Display Name
description: Clear, concise description
applyTo: '**/*.{js,ts}' # For instructions files
input:
- slug: 'Enter a kebab-case identifier'
---.github/
├── agents/ # Custom agent profiles
│ └── *.agent.md
├── prompts/ # Prompt templates
│ └── *.prompt.md
└── skills/ # Agent Skills
└── <name>/
├── SKILL.md # Required
└── examples/ # Optional
-
Local Testing
- Open the repository in VS Code
- Test with the Copilot Chat interface
- Verify agent/prompt/skill behavior
- Check for errors or unexpected behavior
-
Cross-platform Testing
- Test on Windows, macOS, and Linux if possible
- Verify path handling works correctly
-
Documentation Testing
- Ensure all links work
- Verify code examples are correct
- Check formatting renders properly
- Create a feature branch
git checkout -b feature/your-feature-name-
Make your changes
- Follow the style guidelines
- Test thoroughly
- Update documentation as needed
-
Commit your changes
git add .
git commit -m "feat: add new skill for X"Important: This repository enforces Conventional Commits. A local git hook and CI check will reject non-conforming commit messages.
Use conventional commit messages:
feat:- New features (triggers minor version bump)fix:- Bug fixes (triggers patch version bump)feat!:orBREAKING CHANGE:- Breaking changes (triggers major version bump)docs:- Documentation changesstyle:- Formatting, no code changerefactor:- Code restructuringperf:- Performance improvementstest:- Test additions/changesbuild:- Build system changesci:- CI configuration changeschore:- Maintenance tasksrevert:- Reverting a previous commit
Optional scope in parentheses: feat(agents): add new debugging agent
- Push to your fork
git push origin feature/your-feature-name- Open a Pull Request
- Use a clear, descriptive title
- Reference any related issues
- Describe what changed and why
- Include testing steps
- Maintainers will review your PR
- Address any feedback or requested changes
- Once approved, your PR will be merged
- Your contribution will be included in the next release
If you have questions not covered here:
- Check existing Issues
- Open a Discussion
- Reach out to maintainers
Thank you for contributing! 🎉