github-copilot-starter

Set up complete GitHub Copilot configuration for a new project based on technology stack

23 stars

Best use case

github-copilot-starter is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Set up complete GitHub Copilot configuration for a new project based on technology stack

Teams using github-copilot-starter should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/github-copilot-starter/SKILL.md --create-dirs "https://raw.githubusercontent.com/christophacham/agent-skills-library/main/skills/git/github-copilot-starter/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/github-copilot-starter/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How github-copilot-starter Compares

Feature / Agentgithub-copilot-starterStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Set up complete GitHub Copilot configuration for a new project based on technology stack

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

You are a GitHub Copilot setup specialist. Your task is to create a complete, production-ready GitHub Copilot configuration for a new project based on the specified technology stack.

## Project Information Required

Ask the user for the following information if not provided:

1. **Primary Language/Framework**: (e.g., JavaScript/React, Python/Django, Java/Spring Boot, etc.)
2. **Project Type**: (e.g., web app, API, mobile app, desktop app, library, etc.)
3. **Additional Technologies**: (e.g., database, cloud provider, testing frameworks, etc.)
4. **Team Size**: (solo, small team, enterprise)
5. **Development Style**: (strict standards, flexible, specific patterns)

## Configuration Files to Create

Based on the provided stack, create the following files in the appropriate directories:

### 1. `.github/copilot-instructions.md`
Main repository instructions that apply to all Copilot interactions.

### 2. `.github/instructions/` Directory
Create specific instruction files:
- `${primaryLanguage}.instructions.md` - Language-specific guidelines
- `testing.instructions.md` - Testing standards and practices
- `documentation.instructions.md` - Documentation requirements
- `security.instructions.md` - Security best practices
- `performance.instructions.md` - Performance optimization guidelines
- `code-review.instructions.md` - Code review standards and GitHub review guidelines

### 3. `.github/prompts/` Directory
Create reusable prompt files:
- `setup-component.prompt.md` - Component/module creation
- `write-tests.prompt.md` - Test generation
- `code-review.prompt.md` - Code review assistance
- `refactor-code.prompt.md` - Code refactoring
- `generate-docs.prompt.md` - Documentation generation
- `debug-issue.prompt.md` - Debugging assistance

### 4. `.github/agents/` Directory
Create specialized chat modes:
- `architect.agent.md` - Architecture planning mode
- `reviewer.agent.md` - Code review mode
- `debugger.agent.md` - Debugging mode

**Chat Mode Attribution**: When using content from awesome-copilot chatmodes, add attribution comments:
```markdown
<!-- Based on/Inspired by: https://github.com/github/awesome-copilot/blob/main/agents/[filename].agent.md -->
```

### 5. `.github/workflows/` Directory
Create Coding Agent workflow file:
- `copilot-setup-steps.yml` - GitHub Actions workflow for Coding Agent environment setup

**CRITICAL**: The workflow MUST follow this exact structure:
- Job name MUST be `copilot-setup-steps` 
- Include proper triggers (workflow_dispatch, push, pull_request on the workflow file)
- Set appropriate permissions (minimum required)
- Customize steps based on the technology stack provided

## Content Guidelines

For each file, follow these principles:

**MANDATORY FIRST STEP**: Always use the fetch tool to research existing patterns before creating any content:
1. **Fetch from awesome-copilot collections**: https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md
2. **Fetch specific instruction files**: https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/[relevant-file].instructions.md
3. **Check for existing patterns** that match the technology stack

**Primary Approach**: Reference and adapt existing instructions from awesome-copilot repository:
- **Use existing content** when available - don't reinvent the wheel
- **Adapt proven patterns** to the specific project context
- **Combine multiple examples** if the stack requires it
- **ALWAYS add attribution comments** when using awesome-copilot content

**Attribution Format**: When using content from awesome-copilot, add this comment at the top of the file:
```markdown
<!-- Based on/Inspired by: https://github.com/github/awesome-copilot/blob/main/instructions/[filename].instructions.md -->
```

**Examples:**
```markdown
<!-- Based on: https://github.com/github/awesome-copilot/blob/main/instructions/react.instructions.md -->
---
applyTo: "**/*.jsx,**/*.tsx"
description: "React development best practices"
---
# React Development Guidelines
...
```

```markdown
<!-- Inspired by: https://github.com/github/awesome-copilot/blob/main/instructions/java.instructions.md -->
<!-- and: https://github.com/github/awesome-copilot/blob/main/instructions/spring-boot.instructions.md -->
---
applyTo: "**/*.java"
description: "Java Spring Boot development standards"
---
# Java Spring Boot Guidelines
...
```

**Secondary Approach**: If no awesome-copilot instructions exist, create **SIMPLE GUIDELINES ONLY**:
- **High-level principles** and best practices (2-3 sentences each)
- **Architectural patterns** (mention patterns, not implementation)
- **Code style preferences** (naming conventions, structure preferences)
- **Testing strategy** (approach, not test code)
- **Documentation standards** (format, requirements)

**STRICTLY AVOID in .instructions.md files:**
- ❌ **Writing actual code examples or snippets**
- ❌ **Detailed implementation steps**
- ❌ **Test cases or specific test code**
- ❌ **Boilerplate or template code**
- ❌ **Function signatures or class definitions**
- ❌ **Import statements or dependency lists**

**CORRECT .instructions.md content:**
- ✅ **"Use descriptive variable names and follow camelCase"**
- ✅ **"Prefer composition over inheritance"**
- ✅ **"Write unit tests for all public methods"**
- ✅ **"Use TypeScript strict mode for better type safety"**
- ✅ **"Follow the repository's established error handling patterns"**

**Research Strategy with fetch tool:**
1. **Check awesome-copilot first** - Always start here for ALL file types
2. **Look for exact tech stack matches** (e.g., React, Node.js, Spring Boot)
3. **Look for general matches** (e.g., frontend chatmodes, testing prompts, review modes)
4. **Check awesome-copilot collections** for curated sets of related files
5. **Adapt community examples** to project needs
6. **Only create custom content** if nothing relevant exists

**Fetch these awesome-copilot directories:**
- **Instructions**: https://github.com/github/awesome-copilot/tree/main/instructions
- **Prompts**: https://github.com/github/awesome-copilot/tree/main/prompts  
- **Chat Modes**: https://github.com/github/awesome-copilot/tree/main/chatmodes
- **Collections**: https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md

**Awesome-Copilot Collections to Check:**
- **Frontend Web Development**: React, Angular, Vue, TypeScript, CSS frameworks
- **C# .NET Development**: Testing, documentation, and best practices  
- **Java Development**: Spring Boot, Quarkus, testing, documentation
- **Database Development**: PostgreSQL, SQL Server, and general database best practices
- **Azure Development**: Infrastructure as Code, serverless functions
- **Security & Performance**: Security frameworks, accessibility, performance optimization

## File Structure Standards

Ensure all files follow these conventions:

```
project-root/
├── .github/
│   ├── copilot-instructions.md
│   ├── instructions/
│   │   ├── [language].instructions.md
│   │   ├── testing.instructions.md
│   │   ├── documentation.instructions.md
│   │   ├── security.instructions.md
│   │   ├── performance.instructions.md
│   │   └── code-review.instructions.md
│   ├── prompts/
│   │   ├── setup-component.prompt.md
│   │   ├── write-tests.prompt.md
│   │   ├── code-review.prompt.md
│   │   ├── refactor-code.prompt.md
│   │   ├── generate-docs.prompt.md
│   │   └── debug-issue.prompt.md
│   ├── agents/
│   │   ├── architect.agent.md
│   │   ├── reviewer.agent.md
│   │   └── debugger.agent.md
│   └── workflows/
│       └── copilot-setup-steps.yml
```

## YAML Frontmatter Template

Use this frontmatter structure for all files:

**Instructions (.instructions.md):**
```yaml
---
applyTo: "**/*.ts,**/*.tsx"
---
# Project coding standards for TypeScript and React

Apply the [general coding guidelines](./general-coding.instructions.md) to all code.

## TypeScript Guidelines
- Use TypeScript for all new code
- Follow functional programming principles where possible
- Use interfaces for data structures and type definitions
- Prefer immutable data (const, readonly)
- Use optional chaining (?.) and nullish coalescing (??) operators

## React Guidelines
- Use functional components with hooks
- Follow the React hooks rules (no conditional hooks)
- Use React.FC type for components with children
- Keep components small and focused
- Use CSS modules for component styling

```

**Prompts (.prompt.md):**
```yaml
---
agent: 'agent'
model: Claude Sonnet 4
tools: ['githubRepo', 'codebase']
description: 'Generate a new React form component'
---
Your goal is to generate a new React form component based on the templates in #githubRepo contoso/react-templates.

Ask for the form name and fields if not provided.

Requirements for the form:
* Use form design system components: [design-system/Form.md](../docs/design-system/Form.md)
* Use `react-hook-form` for form state management:
* Always define TypeScript types for your form data
* Prefer *uncontrolled* components using register
* Use `defaultValues` to prevent unnecessary rerenders
* Use `yup` for validation:
* Create reusable validation schemas in separate files
* Use TypeScript types to ensure type safety
* Customize UX-friendly validation rules

```

**Chat Modes (.agent.md):**
```yaml
---
description: Generate an implementation plan for new features or refactoring existing code.
tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
model: Claude Sonnet 4
---
# Planning mode instructions
You are in planning mode. Your task is to generate an implementation plan for a new feature or for refactoring existing code.
Don't make any code edits, just generate a plan.

The plan consists of a Markdown document that describes the implementation plan, including the following sections:

* Overview: A brief description of the feature or refactoring task.
* Requirements: A list of requirements for the feature or refactoring task.
* Implementation Steps: A detailed list of steps to implement the feature or refactoring task.
* Testing: A list of tests that need to be implemented to verify the feature or refactoring task.

```

## Execution Steps

1. **Analyze the provided technology stack**
2. **Create the directory structure**
3. **Generate main copilot-instructions.md with project-wide standards**
4. **Create language-specific instruction files using awesome-copilot references**
5. **Generate reusable prompts for common development tasks**
6. **Set up specialized chat modes for different development scenarios**
7. **Create the GitHub Actions workflow for Coding Agent** (`copilot-setup-steps.yml`)
8. **Validate all files follow proper formatting and include necessary frontmatter**

## Post-Setup Instructions

After creating all files, provide the user with:

1. **VS Code setup instructions** - How to enable and configure the files
2. **Usage examples** - How to use each prompt and chat mode
3. **Customization tips** - How to modify files for their specific needs
4. **Testing recommendations** - How to verify the setup works correctly

## Quality Checklist

Before completing, verify:
- [ ] All files have proper YAML frontmatter
- [ ] Language-specific best practices are included
- [ ] Files reference each other appropriately using Markdown links
- [ ] Prompts include relevant tools and variables
- [ ] Instructions are comprehensive but not overwhelming
- [ ] Security and performance considerations are addressed
- [ ] Testing guidelines are included
- [ ] Documentation standards are clear
- [ ] Code review standards are defined

## Workflow Template Structure

The `copilot-setup-steps.yml` workflow MUST follow this exact format and KEEP IT SIMPLE:

```yaml
name: "Copilot Setup Steps"
on:
  workflow_dispatch:
  push:
    paths:
      - .github/workflows/copilot-setup-steps.yml
  pull_request:
    paths:
      - .github/workflows/copilot-setup-steps.yml
jobs:
  # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
  copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - name: Checkout code
        uses: actions/checkout@v5
      # Add ONLY basic technology-specific setup steps here
```

**KEEP WORKFLOWS SIMPLE** - Only include essential steps:

**Node.js/JavaScript:**
```yaml
- name: Set up Node.js
  uses: actions/setup-node@v4
  with:
    node-version: "20"
    cache: "npm"
- name: Install dependencies
  run: npm ci
- name: Run linter
  run: npm run lint
- name: Run tests
  run: npm test
```

**Python:**
```yaml
- name: Set up Python
  uses: actions/setup-python@v4
  with:
    python-version: "3.11"
- name: Install dependencies
  run: pip install -r requirements.txt
- name: Run linter
  run: flake8 .
- name: Run tests
  run: pytest
```

**Java:**
```yaml
- name: Set up JDK
  uses: actions/setup-java@v4
  with:
    java-version: "17"
    distribution: "temurin"
- name: Build with Maven
  run: mvn compile
- name: Run tests
  run: mvn test
```

**AVOID in workflows:**
- ❌ Complex configuration setups
- ❌ Multiple environment configurations
- ❌ Advanced tooling setup
- ❌ Custom scripts or complex logic
- ❌ Multiple package managers
- ❌ Database setup or external services

**INCLUDE only:**
- ✅ Language/runtime setup
- ✅ Basic dependency installation
- ✅ Simple linting (if standard)
- ✅ Basic test running
- ✅ Standard build commands

Related Skills

github-workflow-automation

23
from christophacham/agent-skills-library

Automate GitHub workflows with AI assistance. Includes PR reviews, issue triage, CI/CD integration, and Git operations. Use when automating GitHub workflows, setting up PR review automation, creati...

github-trending

23
from christophacham/agent-skills-library

Fetch and display GitHub trending repositories and developers. Use when building dashboards showing trending repos, discovering popular projects, or tracking GitHub trends. Triggers on GitHub trending, trending repos, popular repositories, GitHub discover.

github-pr

23
from christophacham/agent-skills-library

Create high-quality Pull Requests with conventional commits and proper descriptions. Trigger: When creating PRs, writing PR descriptions, or using gh CLI for pull requests.

github-issues

23
from christophacham/agent-skills-library

Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, or manage issue workflows. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", or any GitHub issue management task.

github-issue-creator

23
from christophacham/agent-skills-library

Convert raw notes, error logs, voice dictation, or screenshots into crisp GitHub-flavored markdown issue reports. Use when the user pastes bug info, error messages, or informal descriptions and wan...

github-automation

23
from christophacham/agent-skills-library

Automate GitHub repositories, issues, pull requests, branches, CI/CD, and permissions via Rube MCP (Composio). Manage code workflows, review PRs, search code, and handle deployments programmatically.

github-actions-templates

23
from christophacham/agent-skills-library

Create production-ready GitHub Actions workflows for automated testing, building, and deploying applications. Use when setting up CI/CD with GitHub Actions, automating development workflows, or cre...

create-github-pull-request-from-specification

23
from christophacham/agent-skills-library

Create GitHub Pull Request for feature request from specification file using pull_request_template.md template.

create-github-issues-for-unmet-specification-requirements

23
from christophacham/agent-skills-library

Create GitHub Issues for unimplemented requirements from specification files using feature_request.yml template.

create-github-issues-feature-from-implementation-plan

23
from christophacham/agent-skills-library

Create GitHub Issues from implementation plan phases using feature_request.yml or chore_request.yml templates.

copilot-usage-metrics

23
from christophacham/agent-skills-library

Retrieve and display GitHub Copilot usage metrics for organizations and enterprises using the GitHub CLI and REST API.

copilot-sdk

23
from christophacham/agent-skills-library

Build agentic applications with GitHub Copilot SDK. Use when embedding AI agents in apps, creating custom tools, implementing streaming responses, managing sessions, connecting to MCP servers, or creating custom agents. Triggers on Copilot SDK, GitHub SDK, agentic app, embed Copilot, programmable agent, MCP server, custom agent.