adding scaffolding skill and test#329
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new dotnet-data skill (scaffold-generate-aspnet) plus an evaluation suite and fixtures to validate scaffolding best practices for ASP.NET Core + EF Core (notably migrations and FK-dependent CRUD).
Changes:
- Introduces
scaffold-generate-aspnetskill guidance for generating Razor Pages, Blazor components, and Minimal API CRUD (with OpenAPI metadata and migrations guidance). - Adds
tests/dotnet-data/scaffold-generate-aspnet/eval.yamlscenarios to validate migrations, dependent-entity scaffolding,.httpgeneration, and OpenAPI metadata. - Adds three fixture starter projects (Razor Pages, Minimal API, Blazor) used by the eval scenarios.
Reviewed changes
Copilot reviewed 51 out of 53 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| plugins/dotnet-data/skills/scaffold-generate-aspnet/SKILL.md | New skill instructions for ASP.NET scaffolding + EF migrations + OpenAPI metadata + .http guidance |
| tests/dotnet-data/scaffold-generate-aspnet/eval.yaml | Adds evaluation scenarios/assertions/rubrics for Razor Pages, Minimal API, and Blazor scaffolding |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/MyApp.csproj | Razor Pages fixture project definition |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Program.cs | Razor Pages fixture startup pipeline |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/appsettings.json | Razor Pages fixture configuration |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/appsettings.Development.json | Razor Pages dev configuration |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Properties/launchSettings.json | Razor Pages fixture launch profiles |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Models/Product.cs | Fixture entity with required FK to Category |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Models/Category.cs | Fixture parent entity for FK scenario |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Pages/_ViewStart.cshtml | Razor Pages fixture view setup |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Pages/_ViewImports.cshtml | Razor Pages fixture imports/namespace |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Pages/Index.cshtml | Razor Pages fixture home page |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Pages/Index.cshtml.cs | Razor Pages fixture page model |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Pages/Privacy.cshtml | Razor Pages fixture privacy page |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Pages/Privacy.cshtml.cs | Razor Pages fixture privacy model |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Pages/Error.cshtml | Razor Pages fixture error page |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Pages/Error.cshtml.cs | Razor Pages fixture error model |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Pages/Shared/_Layout.cshtml | Razor Pages fixture layout |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Pages/Shared/_Layout.cshtml.css | Razor Pages fixture layout CSS isolation |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/Pages/Shared/_ValidationScriptsPartial.cshtml | Razor Pages fixture validation scripts partial |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/wwwroot/css/site.css | Razor Pages fixture global CSS |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/wwwroot/js/site.js | Razor Pages fixture JS placeholder |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/razor-pages-crud/wwwroot/favicon.ico | Razor Pages fixture favicon |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/minimal-api/TodoApi.csproj | Minimal API fixture project definition (includes OpenAPI package) |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/minimal-api/Program.cs | Minimal API fixture startup and sample endpoint |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/minimal-api/Models/TodoItem.cs | Minimal API fixture model to scaffold endpoints for |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/minimal-api/appsettings.json | Minimal API fixture configuration |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/minimal-api/appsettings.Development.json | Minimal API dev configuration |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/minimal-api/Properties/launchSettings.json | Minimal API fixture launch profiles |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/BlazorApp.csproj | Blazor fixture project definition |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Program.cs | Blazor fixture startup pipeline |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Models/Employee.cs | Blazor fixture entity with required FK to Department |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Models/Department.cs | Blazor fixture parent entity for FK scenario |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/appsettings.json | Blazor fixture configuration |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/appsettings.Development.json | Blazor dev configuration |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Properties/launchSettings.json | Blazor fixture launch profiles |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/_Imports.razor | Blazor fixture component imports |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/Routes.razor | Blazor fixture routing component |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/App.razor | Blazor fixture app host component |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/Layout/MainLayout.razor | Blazor fixture layout component |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/Layout/MainLayout.razor.css | Blazor fixture layout CSS isolation |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/Layout/NavMenu.razor | Blazor fixture nav menu |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/Layout/NavMenu.razor.css | Blazor fixture nav menu CSS isolation |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/Layout/ReconnectModal.razor | Blazor fixture reconnect UI |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/Layout/ReconnectModal.razor.css | Blazor fixture reconnect CSS isolation |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/Layout/ReconnectModal.razor.js | Blazor fixture reconnect JS |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/Pages/Home.razor | Blazor fixture home page |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/Pages/Counter.razor | Blazor fixture counter page |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/Pages/Weather.razor | Blazor fixture weather page |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/Pages/Error.razor | Blazor fixture error page |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/Components/Pages/NotFound.razor | Blazor fixture not-found page |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/wwwroot/app.css | Blazor fixture app CSS |
| tests/dotnet-data/scaffold-generate-aspnet/fixtures/blazor-crud/wwwroot/favicon.png | Blazor fixture favicon |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
…d/Components/Routes.razor Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 51 out of 53 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
…d/Components/Layout/ReconnectModal.razor.css Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 51 out of 53 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
…d/Components/Layout/ReconnectModal.razor.css Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 51 out of 53 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
…d/Components/Layout/ReconnectModal.razor.css Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 51 out of 53 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
|
I noticed that there is a lot of validation on fixture files, is that by design? These files are just for testing. It makes it harder to get a PR into a good state. |
…i/Program.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 51 out of 53 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
| @@ -0,0 +1,155 @@ | |||
| .components-reconnect-first-attempt-visible, | |||
There was a problem hiding this comment.
where did you pull these .razor, .css files from?
There was a problem hiding this comment.
the sample projects were generated by copilot.
|
/evaluate |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 52 out of 54 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Skill Validation Results
Model: claude-opus-4.6 | Judge: claude-opus-4.6 |
…/skills into sayedha/scaffold02
…d/Components/Pages/Error.razor Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…d/Components/Pages/Error.razor Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 52 out of 54 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 52 out of 54 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 52 out of 54 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
/evaluate |
This should be picked up when a prompt requests to generate content for ASP.NET Core that uses a database. This skill will ensure that best practices are followed when using ASP.NET Core + EF. For example without this skill it's common for copilot to initialize the database in Program.cs instead of using migrations.
This replaces the old PR #133
Skill validator results