Skip to content

xebia/VW-Workshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

VW Workshop

This repository contains a collection of GitHub Copilot customization files — agents, skills, prompts, and workspace instructions — designed to enhance AI-assisted development for Java and .NET projects.

Repository Structure

.github/
├── copilot-instructions.md   # Workspace-level Copilot instructions
├── agents/                   # Custom agent mode definitions
│   ├── codereview.agent.md
│   ├── CSharpExpert.agent.md
│   ├── JavaExpert.agent.md
│   ├── documentation_generator.md
│   ├── feature_implementer.md
│   └── unit_test_generator.md
├── prompts/                  # Reusable prompt files
│   ├── changelog.prompt.md
│   └── create-readme.prompt.md
└── skills/                   # Skill files loaded on demand
    ├── csharp-async/
    ├── dotnet-best-practices/
    ├── dotnet-timezone/
    ├── java-async/
    ├── java-best-practices/
    ├── java-timezone/
    └── prompt-master/

Copilot Instructions

File: .github/copilot-instructions.md

Copilot instructions are automatically loaded by GitHub Copilot for every conversation in the workspace. They define the project's technology stack, constraints, and coding conventions so Copilot stays aligned with the project without requiring repeated context.

What it configures

The current instructions target a Java 21 Vaadin Web App called PersonalFinanceApp:

  • Stack: Java 21, Spring Boot 3, Spring Data JPA (Hibernate), SQLite
  • Package conventions: model, data, service
  • Testing: JUnit 5
  • Money: BigDecimal
  • Async: CompletableFuture / Spring @Async
  • Constraints: no auth, no charts, no CQRS, no Clean Architecture layers

How to use

Place a copilot-instructions.md file inside .github/ at the root of your repository. VS Code with the GitHub Copilot extension will automatically pick it up. No additional configuration is required.

Tip

Keep instructions concise and project-specific. Avoid duplicating general best practices that are better covered by skills.


Agents

Directory: .github/agents/

Agent files (.agent.md) define custom Copilot agent modes — specialized personas with tailored instructions, tool permissions, and model choices. Each agent is available in VS Code's Copilot Chat via the agent picker.

Available Agents

Agent File Model Purpose
Code Review Agent codereview.agent.md GPT-5.3-Codex Reviews code for quality, bugs, security, and conventions
C# Expert CSharpExpert.agent.md (default) Full-stack .NET/C# development with SOLID, async, and testing
Java Expert JavaExpert.agent.md (default) Full-stack Java development with modern Java features and Spring Boot
Documentation Generator documentation_generator.md GPT-5 mini Generates clear, structured documentation for code features
Feature Implementer feature_implementer.md Claude Sonnet 4.5 Orchestrates full feature implementation: plan → code → tests → docs
Unit Test Generator unit_test_generator.md GPT-5 mini Creates comprehensive unit tests with edge case coverage

How to use

  1. Open Copilot Chat in VS Code.
  2. Click the agent picker (the @ icon or the model/agent selector in the chat input).
  3. Select the desired agent from the list.
  4. Start chatting — the agent's instructions and tool permissions are applied automatically.

The Feature Implementer agent is particularly powerful: it invokes the Unit Test Generator and Documentation Generator as subagents automatically after implementing a feature.

Note

Agent files must be placed in .github/agents/ and use the .agent.md extension to be recognized by VS Code Copilot.


Skills

Directory: .github/skills/

Skills are instruction files that are loaded on demand by an agent when a relevant task is detected. Unlike copilot-instructions.md (always active), skills are only injected into context when needed, keeping token usage efficient.

Available Skills

Skill Directory When it activates
csharp-async skills/csharp-async/ C# async/await patterns, Task, ValueTask, ConfigureAwait
dotnet-best-practices skills/dotnet-best-practices/ .NET code quality reviews, XML docs, DI, resource management
dotnet-timezone skills/dotnet-timezone/ TimeZoneInfo, DateTimeOffset, NodaTime, DST, Windows/IANA IDs
java-async skills/java-async/ CompletableFuture, Spring @Async, virtual threads (Java 21)
java-best-practices skills/java-best-practices/ Spring Boot conventions, JPA, constructor injection, records
java-timezone skills/java-timezone/ ZoneId, ZonedDateTime, IANA IDs, DST, Spring/Hibernate persistence
prompt-master skills/prompt-master/ Writing and optimizing prompts for AI tools

How to use

Each skill is a SKILL.md file inside its own subdirectory. To make a skill available to Copilot agents, reference it in the agent's system prompt or the workspace copilot-instructions.md using the skill's path:

<!-- Inside an agent .md file or copilot-instructions.md -->
Read and apply the skill at `.github/skills/java-async/SKILL.md` when the user asks about async Java code.

Skills can also be invoked explicitly in chat:

Apply the java-best-practices skill to the selected code.

Tip

Each SKILL.md starts with YAML frontmatter (name, description) that helps agents discover and load the right skill automatically.


Prompts

Directory: .github/prompts/

Prompt files (.prompt.md) are reusable, standalone prompts that can be invoked directly from Copilot Chat. They are useful for repeatable tasks like generating changelogs or README files.

Available Prompts

changelog.prompt.md

Updates the project's changelog based on the git commit history.

  • Model: Claude Sonnet 4.6
  • Use when: You want to generate or update CHANGELOG.md after merging features or fixes.

How to invoke:

/changelog

Or open the command palette and select Copilot: Run Prompt, then choose changelog.


create-readme.prompt.md

Generates a comprehensive, well-structured README.md for the project.

  • Mode: Agent (explores the full workspace)
  • Use when: Starting a new project or refreshing outdated documentation.

How to invoke:

/create-readme

The prompt instructs Copilot to review the entire workspace, take inspiration from real-world open-source README examples, and produce a concise, GFM-formatted README without over-using emojis.

Note

Prompt files must be placed in .github/prompts/ and use the .prompt.md extension to be available in the VS Code Copilot prompt picker.


How Everything Works Together

┌─────────────────────────────────────────────────┐
│            copilot-instructions.md              │
│   (always active — project context & rules)     │
└────────────────────┬────────────────────────────┘
                     │
        ┌────────────┴────────────┐
        │                         │
   ┌────▼─────┐             ┌─────▼──────┐
   │  Agents  │             │   Prompts  │
   │ (modes)  │             │ (tasks)    │
   └────┬─────┘             └────────────┘
        │
   ┌────▼─────┐
   │  Skills  │
   │(on demand│
   │ context) │
   └──────────┘
  1. copilot-instructions.md sets the baseline for every Copilot interaction in the workspace.
  2. Agents provide specialized personas for focused tasks (code review, feature implementation, etc.).
  3. Skills inject domain-specific knowledge (async patterns, timezone handling, best practices) when needed.
  4. Prompts automate repeatable multi-step workflows (changelog, README generation).

Adding Your Own Customizations

New agent

Create .github/agents/my-agent.agent.md with YAML frontmatter:

---
name: My Agent
description: What this agent does
tools: ['read', 'edit', 'search']
model: Claude Sonnet 4.6 (copilot)
---

Your agent instructions here.

New skill

Create .github/skills/my-skill/SKILL.md:

---
name: my-skill
description: When to apply this skill
---

Your skill content here.

New prompt

Create .github/prompts/my-task.prompt.md:

---
description: What this prompt does
---

Your prompt instructions here.

About

Summary of copilot files for the workshop by VW

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors