Skip to content

Commit b4aa5c5

Browse files
authored
Update skills (#38126)
1 parent 0a06b01 commit b4aa5c5

13 files changed

Lines changed: 39 additions & 220 deletions

File tree

.agents/skills/analyzers/SKILL.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.agents/skills/bulk-operations/SKILL.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.agents/skills/cosmos-provider/SKILL.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,6 @@ user-invocable: false
88

99
Non-relational provider with its own parallel query pipeline. Uses JSON for document materialization.
1010

11-
## When to Use
12-
13-
- Working on Cosmos SQL generation
14-
- Working on document storage, partition key configuration, or `CosmosClientWrapper`
15-
1611
## Key Differences from Relational
1712

1813
- No migrations — use `EnsureCreated()`

.agents/skills/dbcontext-and-services/SKILL.md

Lines changed: 0 additions & 20 deletions
This file was deleted.

.agents/skills/make-custom-agent/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ Supported frontmatter fields:
7575
| `target` | No | Target environment: `vscode` or `github-copilot` (defaults to both) |
7676
| `tools` | No | List of allowed tools/tool sets |
7777
| `model` | No | LLM name or prioritized array of models |
78-
| `user-invokable` | No | Show in agents dropdown (default: true) |
78+
| `user-invocable` | No | Show in agents dropdown (default: true) |
7979
| `disable-model-invocation` | No | Prevent subagent invocation (default: false) |
8080
| `mcp-servers` | No | MCP server configs for GitHub Copilot target |
8181
| `metadata` | No | Key-value mapping for additional arbitrary metadata. |

.agents/skills/make-skill/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ After investigating, verify:
3131
- [ ] Can identify common pitfalls or misconceptions about the topic
3232
- [ ] Can outline a step-by-step skill workflow with clear validation steps
3333
- [ ] Have search queries for deeper topics
34-
- [ ] Can determine if the skill should be user-invokable or background knowledge only
34+
- [ ] Can determine if the skill should be user-invocable or background knowledge only
3535

3636
If there are any ambiguities, gaps in understanding, or multiple valid approaches, ask the user for clarification before proceeding to skill creation.
3737
Also, evaluate whether the task might be better handled by a custom agent, agentic workflow, an existing skill or multiple narrower skills, and discuss this with the user if relevant.

.agents/skills/migrations/SKILL.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ user-invocable: false
1212

1313
**Apply migration**: `Migrator.MigrateAsync()` → reads `__EFMigrationsHistory` → per pending: `MigrationsSqlGenerator.Generate(operations)``MigrationCommandExecutor` executes
1414

15+
## Model Snapshot
16+
17+
- Model snapshots use `typeof(Dictionary<string, object>)` (property bag format), not the actual CLR type. When examining the `ClrType` in a snapshot, don't assume it matches the real entity type.
18+
- `SnapshotModelProcessor.Process()` is used at design-time to fixup older model snapshots for backward compatibility.
19+
1520
## Testing
1621

1722
Migration operation tests: `test/EFCore.Relational.Tests/Migrations/`. Functional tests: `test/EFCore.{Provider}.FunctionalTests/Migrations/`. Model differ tests: `test/EFCore.Relational.Tests/Migrations/Internal/MigrationsModelDifferTest*.cs`.

.agents/skills/query-pipeline/SKILL.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
11
---
22
name: query-pipeline
3-
description: 'Implementation details for EF Core LINQ query translation and SQL generation. Use when changing expression visitors, SqlExpressions, QuerySqlGenerator, ShaperProcessingExpressionVisitor, or related classes.'
3+
description: 'Implementation details for EF Core LINQ query translation, SQL generation, and bulk operations (ExecuteUpdate/ExecuteDelete). Use when changing expression visitors, SqlExpressions, QuerySqlGenerator, ShaperProcessingExpressionVisitor, UpdateExpression, DeleteExpression, or related classes.'
44
user-invocable: false
55
---
66

77
# Query Pipeline
88

9-
Translates LINQ expressions into database queries and materializes results.
10-
119
## Stages
1210

13-
1. **Preprocessing**`QueryTranslationPreprocessor`: `NavigationExpandingExpressionVisitor` (Include, navigations, auto-includes), `QueryOptimizingExpressionVisitor`
14-
2. **Translation**`QueryableMethodTranslatingExpressionVisitor`: LINQ methods → `ShapedQueryExpression` (= `QueryExpression` + `ShaperExpression`). Relational: `RelationalSqlTranslatingExpressionVisitor`, `SelectExpression`
15-
3. **Postprocessing**`QueryTranslationPostprocessor`: `SqlNullabilityProcessor`, `SqlTreePruner`, `SqlAliasManager`, `RelationalParameterBasedSqlProcessor`, `SelectExpressionProjectionApplyingExpressionVisitor`, `SqlExpressionSimplifyingExpressionVisitor`, `RelationalValueConverterCompensatingExpressionVisitor`
16-
4. **Compilation**`ShapedQueryCompilingExpressionVisitor` → executable delegate. Relational: `ShaperProcessingExpressionVisitor` builds shaper and materialization code
17-
5. **SQL Generation**`QuerySqlGenerator`
11+
1. **Preprocessing**
12+
2. **Translation**
13+
3. **Postprocessing**
14+
4. **Compilation**
15+
5. **SQL Generation**
1816

1917
## Validation
2018

.agents/skills/servicing-pr/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: 'Create EF Core PRs targeting servicing release branches (release/*
55

66
# Servicing PRs
77

8-
PRs targeting `release/*` branches require a specific description format and should include a quirk (AppContext switch) when applicable.
8+
PRs targeting `release/*` branches require a specific description format and should include a quirk (AppContext switch) when applicable. When updating progress on a servicing PR, ensure that the description still follows the template.
99

1010
## Backport Target Branch
1111

.agents/skills/testing/SKILL.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ user-invocable: false
66

77
# Testing
88

9-
EF Core test infrastructure, patterns, and workflows for unit, specification, and functional tests.
10-
119
## Test Categories
1210

1311
### Unit Tests (`test/EFCore.Tests/`, `test/EFCore.Relational.Tests/`, `test/EFCore.{Provider}.Tests/`)
@@ -67,14 +65,16 @@ Each test gets a fresh model/store. Call `InitializeAsync<TContext>(onModelCreat
6765
## Workflow: Adding New Tests
6866

6967
1. **Specification test**: Add to `EFCore.Specification.Tests` (core) or `EFCore.Relational.Specification.Tests` (relational)
70-
2. **Provider override**: Override in `EFCore.{Provider}.FunctionalTests` with `AssertSql()`
68+
2. **Provider overrides**: Override in **every** provider functional test class (`EFCore.{Provider}.FunctionalTests`) that inherits the base with provider-appropriate assertions.
7169
3. **Unit test**: Add to `EFCore.{Provider}.Tests`
7270
4. Run with `EF_TEST_REWRITE_BASELINES=1` to capture initial baselines
73-
5. When testing cross-platform code (e.g., file paths, path separators), verify the fix works on both Windows and Linux/macOS
71+
5. Run tests with project rebuilding enabled (don't use `--no-build`) to ensure code changes are picked up
72+
6. When testing cross-platform code (e.g., file paths, path separators), verify the fix works on both Windows and Linux/macOS
7473

7574
## Common Pitfalls
7675

7776
| Pitfall | Solution |
7877
|---------|----------|
79-
| SQL or Compiled model baseline mismatch | Set `EF_TEST_REWRITE_BASELINES=1` and re-run |
80-
| `Check_all_tests_overridden` fails | Override new base test in provider test class |
78+
| Baseline mismatch (SQL or compiled model) | Re-run with `EF_TEST_REWRITE_BASELINES=1` |
79+
| `Check_all_tests_overridden` fails | Override the new test in every inheriting provider class |
80+
| SQL Server feature missing at lower compat level | Gate with `[SqlServerCondition(...)]`|

0 commit comments

Comments
 (0)