Make Changes
remix-run/remix
Create or update Remix repo change files under packages//.changes.
Implementation details for EF Core model building. An agent skill from dotnet/efcore.
$ npx skills add dotnet/efcore --skill model-building -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dotnet/efcore model-building --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/dotnet/efcore.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/model-building .claude/skills/model-building && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "model-building" agent skill from https://github.com/dotnet/efcore/tree/main/.agents/skills/model-building into .claude/skills/model-building/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "model-building", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/dotnet/efcore/tree/main/.agents/skills/model-buildingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add dotnet/efcore --skill model-building -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dotnet/efcore model-building --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/efcore.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/model-building .agents/skills/model-building && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "model-building" agent skill from https://github.com/dotnet/efcore/tree/main/.agents/skills/model-building into .agents/skills/model-building/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "model-building", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dotnet/efcore --skill model-building -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dotnet/efcore model-building --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/efcore.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/model-building .cursor/skills/model-building && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "model-building" agent skill from https://github.com/dotnet/efcore/tree/main/.agents/skills/model-building into .cursor/skills/model-building/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "model-building", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/dotnet/efcore.git --path .agents/skills/model-building--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add dotnet/efcore --skill model-building -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dotnet/efcore model-building --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/efcore.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/model-building .gemini/skills/model-building && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "model-building" agent skill from https://github.com/dotnet/efcore/tree/main/.agents/skills/model-building into .gemini/skills/model-building/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "model-building", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install dotnet/efcore model-buildingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add dotnet/efcore --skill model-building -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/dotnet/efcore.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/model-building .github/skills/model-building && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "model-building" agent skill from https://github.com/dotnet/efcore/tree/main/.agents/skills/model-building into .github/skills/model-building/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "model-building", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add dotnet/efcore --skill model-building -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dotnet/efcore model-building --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/efcore.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/model-building .opencode/skills/model-building && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "model-building" agent skill from https://github.com/dotnet/efcore/tree/main/.agents/skills/model-building into .opencode/skills/model-building/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "model-building", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
model-buildingImplementation details for EF Core model building. An agent skill from dotnet/efcore.
Model Building is an agent skill from dotnet/efcore, published by the product's own GitHub organization. Implementation details for EF Core model building. Use when changing ConventionSet, ModelBuilder, IConvention implementations, ModelRuntimeInitializer, RuntimeModel, or related classes.
Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: EF Core is a modern object-database mapper for .NET. It supports LINQ queries, change tracking, updates, and schema migrations. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d2f4410. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Model Building loads about 1.4k tokens when it runs. Until then it costs about 50 tokens; SKILL.md has 499 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from dotnet/efcore at commit d2f4410, republished under its MIT licence (© dotnet). 499 words, ~1,428 tokens.
.claude/skills/model-building/SKILL.md (or your agent's skills folder).Covers model construction (conventions, fluent API, metadata hierarchy) and model initialization (runtime annotation propagation, compiled model filtering).
ConventionSet (src/EFCore/Metadata/Conventions/ConventionSet.cs) holds List<I*Convention> for every metadata event. Key conventions in src/EFCore/Metadata/Conventions/:
DbSetFindingConvention — discovers entities from DbSet<T>PropertyDiscoveryConvention — discovers properties from CLR typesKeyDiscoveryConvention — finds PKs (Id, TypeId)RelationshipDiscoveryConvention — infers FKs from navigationsRuntimeModelConvention — creates optimized RuntimeModel from mutable modelOverride ConfigureConventions(ModelConfigurationBuilder) to add/remove conventions.
IReadOnly* → IMutable* → IConvention* → IRuntime*
Applies to: Model, EntityType, Property, Key, ForeignKey, Navigation, Index, etc. Builders follow: *Builder → IConvention*Builder.
ModelBuilder during OnModelCreating, made read-only by FinalizeModel()Model that also contains design-time-only annotations used in migrationsRuntimeModelConvention.ProcessModelFinalized(), does not contain design-time-only annotationsModelRuntimeInitializer.Initialize() (called by DbContextServices.CreateModel()):
Initialize(model, designTime, validationLogger)
├─ FinalizeModel() if mutable
├─ Set ModelDependencies, InitializeModel
└─ RuntimeModelConvention creates RuntimeModel, copies/filters annotationsWhen processing properties in conventions or validation, remember that complex types can contain their own declared properties. Use GetFlattenedProperties() to iterate all properties (including on nested non-collection complex types) or manually recurse through GetDeclaredComplexProperties() → complexProperty.ComplexType.
CoreAnnotationNames and its AllNamesRuntimeModelConvention.ProcessModelAnnotations if it's a design-time-only annotation (only used in migration operations)CSharpRuntimeAnnotationCodeGenerator.Generate if it can be computed lazily at runtime (e.g. based on other annotations)RelationalAnnotationProvider if used in up-migrations or the relational model and IMigrationsAnnotationProvider if used in down-migrationsRelationalModel (src/EFCore.Relational/Metadata/Internal/RelationalModel.cs) is a database-centric view of the EF model, mapping entity types to physical database objects: Tables, Views, Functions, Queries, and DefaultTables. DefaultTables are pseudo-table objects only used for FromSql queries.
Created lazily by RelationalModelRuntimeInitializer, accessed via model.GetRelationalModel(). Used by migrations (MigrationsModelDiffer), update and query pipelines.
RelationalAnnotationProvider populates annotations on relational model elements. Provider subclasses (e.g., SqlServerAnnotationProvider) add provider-specific annotations. IMigrationsAnnotationProvider controls annotations used in down-migration operations.
ModelValidator (src/EFCore/Infrastructure/ModelValidator.cs) and RelationalModelValidator (src/EFCore.Relational/Infrastructure/RelationalModelValidator.cs) run after model finalization, during ModelRuntimeInitializer.Initialize() between the pre- and post-validation InitializeModel calls.
Model-building changes can trigger spurious migrations for users who upgrade. Two causes:
MigrationsModelDiffer sees a diff. Fix: ensure absence of the annotation in an old snapshot is treated as the old default.Inspect CSharpSnapshotGenerator (what gets written) and MigrationsModelDiffer (how absence is handled). Add a snapshot round-trip test in test/EFCore.Design.Tests/Migrations/ModelSnapshotSqlServerTest.cs.
| Area | Location |
|---|---|
| Convention unit tests | test/EFCore.Tests/Metadata/Conventions/ |
| Metadata unit tests | test/EFCore.Tests/Metadata/Internal/ |
| Model builder API tests | test/EFCore.Specification.Tests/ModelBuilding/ModelBuilderTest*.cs |
| Relationship discovery tests | test/EFCore.Specification.Tests/ModelBuilding101*.cs |
| Model validation tests | test/EFCore.Tests/Infrastructure/ModelValidatorTest*.cs |
| Compiled model tests | test/EFCore.Specification.Tests/Scaffolding/CompiledModelTestBase.cs |
InvalidOperationException during finalizationEF_TEST_REWRITE_BASELINES=1ToString() on metadata objects shows concise contents without throwing exceptions© dotnet, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/model-building of dotnet/efcore.
Open the folder on GitHubat commit d2f4410
Model Building next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Model Building this skilldotnet/efcore | 15k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Make Changesremix-run/remix | 33k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Orch Change Featureaffaan-m/ECC | 275k | 1 repos | ~420 | Automated safety check: Pass | MIT | |
| Change Managementsickn33/agentic-awesome-skills | 47k | 2 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Implement Changepnpm/pnpm | 37k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Testing Changespnpm/pnpm | 37k | — | ~1.1k | Automated safety check: Pass | MIT |
remix-run/remix
Create or update Remix repo change files under packages//.changes.
affaan-m/ECC
Orchestrate altering an existing, working feature to new desired behavior — update its tests to the new spec, change the implementation to match, review, and gated commit.
sickn33/agentic-awesome-skills
Implement change management processes. An agent skill from sickn33/agentic-awesome-skills.
pnpm/pnpm
Implement a pnpm feature, bug fix, or refactor by checking existing capabilities, prioritizing code reuse and deduplication, assessing architecture impact, and validating the final change.
pnpm/pnpm
Run the tests that cover a change in the pnpm repository, in the Rust workspace (pnpm/, pnpr/) or the TypeScript CLI (pnpm11/), and recognize the cases where a scoped run passes without testing…
alirezarezvani/claude-skills
Framework for rolling out organizational changes without chaos.
dotnet/efcore
Create and evaluate new Agent Skills for GitHub Copilot. An agent skill from dotnet/efcore.
dotnet/efcore
Create custom GitHub Copilot agents. An agent skill from dotnet/efcore.
dotnet/efcore
Create GitHub Actions workflows for CI, automation, or PR management.
dotnet/efcore
Create and evaluate VS Code file-based instructions (.instructions.md files).
dotnet/efcore
Run ApiChief in the EF Core repo to emit baselines, summaries, deltas, review files, or breaking-change checks.
dotnet/efcore
Create EF Core PRs targeting servicing release branches (release/).
Implementation details for EF Core model building. An agent skill from dotnet/efcore. Model Building is an agent skill from dotnet/efcore, published by the product's own GitHub organization. Implementation details for EF Core model building.
Model Building fits situations like: changing ConventionSet; IConvention implementations; modelRuntimeInitializer; related classes.
Run `npx skills add dotnet/efcore --skill model-building -a claude-code`. Or copy the skill folder (.agents/skills/model-building in dotnet/efcore) into .claude/skills/model-building in your project. Claude Code loads it when a task matches its description.
Run `npx skills add dotnet/efcore --skill model-building -a codex`. Or copy the skill folder (.agents/skills/model-building in dotnet/efcore) into .agents/skills/model-building in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dotnet/efcore --skill model-building -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/model-building, .gemini/skills/model-building, .github/skills/model-building and .opencode/skills/model-building in your project.
SKILL.md names no scripts, command-line tools or credentials: Model Building is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Model Building is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Model Building: Make Changes (remix-run/remix, 33k stars), Orch Change Feature (affaan-m/ECC, 275k stars), Change Management (sickn33/agentic-awesome-skills, 47k stars) and Implement Change (pnpm/pnpm, 37k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
dotnet (a GitHub organization, an official publisher) maintains it in dotnet/efcore, which has 14,800 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 8, 2026.
Source: dotnet/efcore on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.