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.
|
/evaluate |
Skill Validation Results
[1]
Model: claude-opus-4.6 | Judge: claude-opus-4.6 🔍 Full Results - additional metrics and failure investigation steps ▶ Sessions Visualisation -- interactive replay of all evaluation sessions |
|
Re-tagging @dotnet/aspnet, @danroth27 and @lewing to help review. This PR also has some integration tests which we'd likely want to take separately. |
webreidi
left a comment
There was a problem hiding this comment.
I think the name isn't quite detailed enough. I've given a suggestion, but it will require changing folder names to do.
- Created Home, NotFound, and Weather pages with basic layout and functionality. - Implemented routing in the Router component. - Added models for Department and Employee with data annotations for validation. - Set up Program.cs for Blazor server-side rendering and configured HTTP request pipeline. - Included launch settings and appsettings for development environment. - Established CSS styles for the application and added favicon. - Created minimal API with TodoItem model and basic weather forecast endpoint. - Developed Razor Pages CRUD structure with models for Category and Product. - Implemented error handling and privacy policy pages in Razor Pages.
|
/evaluate |
|
❌ Evaluation failed. View workflow run |
|
/evaluate |
|
❌ Evaluation failed. View workflow run |
…ng configurations
|
/evaluate |
📊 Skill Evaluation Results1 skill(s) evaluated — 0 improved, 1 no credible improvement. A skill passes only on a credible improvement over baseline (mean preference > 0 with its 95% CI above 0).
🔍 Full Results - additional metrics and failure investigation steps
▶ Sessions Visualisation -- interactive replay of all evaluation sessions |
…uding models, DbContexts, and configuration files
|
/evaluate |
|
❌ Evaluation failed. View workflow run |
|
/evaluate |
📊 Skill Evaluation Results1 skill(s) evaluated — 1 improved, 0 no credible improvement. A skill passes only on a credible improvement over baseline (mean preference > 0 with its 95% CI above 0).
🔍 Full Results - additional metrics and failure investigation steps ▶ Sessions Visualisation -- interactive replay of all evaluation sessions |
|
@AbhitejJohn @SamMonoRT this is ready for review |
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