Skip to content

Comments

Add skills#37768

Open
AndriySvyryd wants to merge 11 commits intomainfrom
Skillz
Open

Add skills#37768
AndriySvyryd wants to merge 11 commits intomainfrom
Skillz

Conversation

@AndriySvyryd
Copy link
Member

Added comprehensive Agent Skills for key EF Core subsystems, introducing detailed SKILL.md files for each. These files provide structured knowledge for agents, outlining when and how to work in each area, key files, workflows, testing, and validation steps. This improves onboarding, maintenance, and the ability to automate or assist with EF Core development tasks.

  • Skill Authoring Guidance

    • .agents/skills/make-skill/: Provides a step-by-step guide for creating new Agent Skills, including a template to follow.
  • Servicing PR Skill

    • .agents/skills/servicing-pr/: Provides a step-by-step guide for creating or porting a servicing PR, including the PR description template and quirk mode.
  • EF Core areas Skills

    • These currently just provide structure. The expectation is that they will be pragmatically filled by agents as they work on complex tasks in each area.
    • Removed redundant information from copilot-instructions.md that is now provided by the specialized lazy-loaded skills.

@AndriySvyryd AndriySvyryd requested a review from a team as a code owner February 22, 2026 03:24
Copilot AI review requested due to automatic review settings February 22, 2026 03:24
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a comprehensive Agent Skills system for EF Core, providing structured domain-specific knowledge for GitHub Copilot agents. The skills are organized as lazy-loaded, focused documentation files that help agents understand when and how to work in specific EF Core subsystems. This improves agent effectiveness by providing relevant context only when needed, rather than loading all information upfront.

Changes:

  • Removed detailed EF Core architecture overview from copilot-instructions.md and replaced with concise summary and reference to skill files
  • Added 15 new skill files covering key EF Core areas (update pipeline, query pipeline, model building, migrations, testing, tooling, providers, etc.)
  • Added meta-skills for creating new skills (make-skill) and handling servicing PRs (servicing-pr)
  • Removed redundant testing guidance from copilot-instructions.md (now in testing skill)

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
.github/copilot-instructions.md Removed detailed EF Core architecture overview, added Agent Skills section with reference to skill files, condensed EF Core overview to 2-3 sentences
.agents/skills/update-pipeline/SKILL.md Documents SaveChanges pipeline, command batching, SQL generation flow
.agents/skills/tooling/SKILL.md Documents dotnet-ef CLI, PMC commands, and MSBuild tasks integration
.agents/skills/testing/SKILL.md Documents test infrastructure, fixtures, SQL baselines, and test class hierarchy
.agents/skills/sqlite-adonet/SKILL.md Documents Microsoft.Data.Sqlite ADO.NET provider specifics
.agents/skills/servicing-pr/SKILL.md Provides PR description template and quirk mode guidance for servicing PRs
.agents/skills/scaffolding/SKILL.md Documents reverse engineering pipeline and code generation
.agents/skills/query-pipeline/SKILL.md Documents LINQ translation, SQL generation, and materialization stages
.agents/skills/model-building/SKILL.md Documents conventions, metadata hierarchy, and model lifecycle
.agents/skills/migrations/SKILL.md Documents migration scaffolding and SQL generation pipeline
.agents/skills/make-skill/SKILL.md Meta-skill providing step-by-step guide for creating new Agent Skills
.agents/skills/dbcontext-and-services/SKILL.md Documents DI container, service registration, and DbContext pooling
.agents/skills/cosmos-provider/SKILL.md Documents Cosmos DB provider architecture and key differences
.agents/skills/change-tracking/SKILL.md Documents StateManager, snapshots, and property accessors
.agents/skills/bulk-operations/SKILL.md Documents ExecuteUpdate/ExecuteDelete translation and limitations
.agents/skills/analyzers/SKILL.md Documents Roslyn analyzers and diagnostic rules

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings February 22, 2026 03:32
AndriySvyryd and others added 5 commits February 21, 2026 19:33
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 16 out of 16 changed files in this pull request and generated 5 comments.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings February 22, 2026 08:44
AndriySvyryd and others added 2 commits February 22, 2026 00:45
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 16 out of 16 changed files in this pull request and generated 2 comments.

Copy link
Member

@roji roji left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First, I think a lot of the files here make more sense as file-based instructions than as skills. With skills, the LLM needs to make a decision that it needs the skill, based on the name and description; but if we want to have some instructions which always apply when working on analyzers, we can just have an instruction file that deterministically always gets loaded into the context when working in that directory. I understand the idea is for the LLM to propose changes to these (rather than only manually manage them), but I think that should work just as well with file-based instructions.

Otherwise, most of the content I'm currently seeing below doesn't correspond to how I understand instructions or skills - I'm not sure how most of it helps the agent to concretely do better work. Everything added to an instruction or skill eats up valuable context tokens - even if it's conditionally loaded only when working on a specific area. So we need to carefully curate what we put in these, and make sure additions are credibly helpful or address specific problems which we're observing AI make repeatedly.

I definitely think adding area-specific instructions (and also skills, if needed) is a great idea, and I also love the idea of having the agent autonomously propose changes to it (rather than manage it 100% manually). But we should very carefully curate what we put in these files - and a lot of the content I'm seeing below seems odd/not useful... Maybe let's discuss concretely 1:1.

@AndriySvyryd
Copy link
Member Author

AndriySvyryd commented Feb 22, 2026

First, I think a lot of the files here make more sense as file-based instructions than as skills. With skills, the LLM needs to make a decision that it needs the skill, based on the name and description; but if we want to have some instructions which always apply when working on analyzers, we can just have an instruction file that deterministically always gets loaded into the context when working in that directory. I understand the idea is for the LLM to propose changes to these (rather than only manually manage them), but I think that should work just as well with file-based instructions.

While instructions could work well for some of these, like analyzers and SQLite, other areas aren't as clearly defined, like DbContext services, Bulk CUD or change tracking. And I think that having a mix of skills and instructions would make it harder for the agents to determine where they need to contribute back their findings.

Otherwise, most of the content I'm currently seeing below doesn't correspond to how I understand instructions or skills - I'm not sure how most of it helps the agent to concretely do better work. Everything added to an instruction or skill eats up valuable context tokens - even if it's conditionally loaded only when working on a specific area. So we need to carefully curate what we put in these, and make sure additions are credibly helpful or address specific problems which we're observing AI make repeatedly.
I definitely think adding area-specific instructions (and also skills, if needed) is a great idea, and I also love the idea of having the agent autonomously propose changes to it (rather than manage it 100% manually). But we should very carefully curate what we put in these files - and a lot of the content I'm seeing below seems odd/not useful... Maybe let's discuss concretely 1:1.

Agree, currently it's mostly placeholder content. Though the point of this isn't to just provide instructions that an agent couldn't figure out by itself but also serve as a time-saving reference for things that would take it a significant amount time to understand just by reading the code. Also note that the more investigation an agent performs the more it uses up the context tokens.

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.

2 participants