Files
Dan Moseley 042a9d2b2c Reorganize plugins into domain-specific groupings (#274)
* Reorganize plugins per agreed structure (#271)

Split the dotnet plugin into domain-specific plugins per discussion
in #271:

- dotnet: narrowed to common everyday C#/.NET coding tasks
- dotnet-diag: perf investigations, debugging, incident analysis
- dotnet-data: data access and Entity Framework
- dotnet-aspnet, dotnet-wpf, dotnet-winforms, dotnet-maui: scaffolded
  empty to convey intent for future framework-specific skills

Moved skills, tests, and CODEOWNERS entries accordingly.
No file content was changed; all skill/test moves are pure renames.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Improve dotnet-diag and dotnet-winforms descriptions

- dotnet-diag: add '.NET' qualifier to clarify scope
- dotnet-winforms: use official 'Windows Forms (WinForms)' name

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add .NET qualifier to dotnet-data description

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove empty plugins; list them in CONTRIBUTING.md as future options

Remove the four empty placeholder plugins (dotnet-aspnet, dotnet-wpf,
dotnet-winforms, dotnet-maui) that had only plugin.json and no skills.

Add a 'Plugin organization' section to CONTRIBUTING.md that describes the
domain-specific plugin groupings introduced in this PR and lists the four
removed plugin names as reserved candidates for future contributions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Create dotnet-upgrade plugin with migration/upgrade skills

Move migrate-nullable-references, thread-abort-migration, and
dotnet-aot-compat from dotnet to the new dotnet-upgrade plugin.

Update CODEOWNERS paths (same owners), CONTRIBUTING.md plugin table,
and fix the thread-abort-migration SKILL.md link in CONTRIBUTING.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-06 21:01:52 -08:00

28 lines
1.9 KiB
YAML

scenarios:
- name: "Investigate runtime upgrade performance impact"
prompt: >
Your team is upgrading the codebase from .NET 9 to .NET 10. You have been
asked to benchmark AverageWordLength, WordLengthHistogram, and UniqueWordCount
to check how the upgrade will impact their performance. The source code is in
the TextAnalyzer subdirectory (TextAnalyzer.cs and TextAnalyzer.csproj). We don't
need anything too comprehensive, don't spend more than 10 minutes on this.
Don't worry about cleaning up any files or projects you create along the way.
Note: this machine may be under load from other processes.
If the .NET 9 runtime is missing, install it using the official dotnet-install
script from https://dot.net/v1/dotnet-install.sh (or dotnet-install.ps1 on Windows).
setup:
copy_test_files: true
assertions:
- type: "file_contains"
path: "**/*.csproj"
value: "BenchmarkDotNet"
- type: "file_exists"
path: "**/*-report*.md"
rubric:
- "The benchmarks follow best practices: methods return their results to prevent dead code elimination, input data is stored in fields/properties rather than const or literal values, and initialization/data setup is in a setup method not inside the benchmark methods"
- "The agent let NuGet resolve the BenchmarkDotNet version rather than writing one from memory"
- "The benchmarks were actually run and completed, producing results that compare .NET 9 vs .NET 10"
- "The agent correctly identified that AverageWordLength and WordLengthHistogram got significantly faster on .NET 10 (expected ~2-3x faster), while UniqueWordCount showed no meaningful change"
- "The agent completed the task efficiently within the time constraints rather than spending excessive time on unnecessary iterations or troubleshooting"
timeout: 600