Conversation
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Critical and moderate workflow correctness and safety issues remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
This PR migrates snippet workflows into reusable skills, adds Linux installation-guide automation, and updates Copilot AI-usage guidance.
Changes:
- Adds snippet extraction, migration, and folder-creation skills.
- Adds installation-guide update automation and removes superseded prompts.
- Clarifies AI-usage metadata rules.
File summaries
| File | Summary and final findings |
|---|---|
.github/skills/push-code-snippets/SKILL.md |
Adds inline extraction workflow. Critical (3 votes): references nonexistent generate-snippet-structure. Moderate (1 vote): does not preserve the analyzed target framework. Moderate (1 vote): lacks article-only and article-local scope guardrails. |
.github/skills/migrate-code-snippets/SKILL.md |
Adds legacy migration workflow. Moderate (1 vote): generated projects may be retargeted from .NET Framework. |
.github/skills/install-guide-updates/SKILL.md |
Adds Linux installation metadata workflow. Moderate (1 vote): omits the .NET 8 authoritative package source. Moderate (1 vote): uses .NET 9 metadata instead of the .NET 8 package file. |
.github/skills/create-snippet-folders/SKILL.md |
Adds shared folder creation. Critical (1 vote): unvalidated subject segments can escape the snippets directory. |
.github/prompts/Snippets.Push.prompt.md |
Superseded by the extraction skill. |
.github/prompts/Snippets.Migrate.prompt.md |
Superseded by the migration skill. |
.github/copilot-instructions.md |
Updates AI-usage guidance. Nit (3 votes): narrow “reviews and edits” to review-only passes that do not modify article content. |
Review details
Suppressed comments (5)
.github/skills/install-guide-updates/SKILL.md:69
- The .NET 8 package file exists at
release-notes/8.0/os-packages.jsonin the pinnedv8.0.30tag. Using .NET 9 data plus a hand-added zlib can therefore produce an inaccurate .NET 8 dependency list; use the .NET 8 package metadata directly and validate it like the other releases.
2. For .NET 8, start with the closest matching .NET 9 dependency entry (use .NET 9 URL and tag) because no .NET 8 `os-packages.json` file exists:
- Add the distribution's zlib package. zlib is required for .NET 8, but not for .NET 9 or .NET 10.
- Preserve existing .NET 8 package-name differences when they are necessary for the applicable distribution version.
- Preserve other existing .NET 8 dependencies unless the release metadata or the article's supported package set shows that they are no longer required.
.github/skills/install-guide-updates/SKILL.md:27
- The .NET 8 row omits a native-dependency source even though
release-notes/8.0/os-packages.jsonexists at the pinned tag. This contradicts the authoritative-source table and causes the workflow to fall back to the wrong release's metadata; add the .NET 8 package file and URL here.
| .NET 8 | `v8.0.30` | `release-notes/8.0/supported-os.json` | Use the .NET 9 package data as described in step 4 |
.github/skills/migrate-code-snippets/SKILL.md:58
- Because
dotnet new consoledefaults to a modern .NET target, this instruction can silently retarget a migrated .NET Framework example even though line 21 requires preserving the original target. The repository has migrated-style projects that explicitly targetnet48(for example,docs/standard/base-types/snippets/composite-formatting/framework/csharp/Formatting.csproj:5). Require the generated project to use the source target, or stop if the template cannot support it, before copying the code.
Use `dotnet new console` unless the snippet requires another project type, such as Windows Forms. Specify a meaningful project name with `-n`, such as `ClipboardExample` or `EventsOverview`.
.github/skills/push-code-snippets/SKILL.md:48
- The new-project path defaults to
dotnet new consolebut never applies the target framework identified during analysis. For a .NET Framework article this produces a modern .NET project, so the extracted sample is built against the wrong API surface. Carry the selected target into the generated project, or stop if the template cannot support it, instead of relying on the SDK default.
Otherwise, use project-based applications. Reuse an existing project only when its language, platform, project type, and dependencies are compatible with the new code. For each new project, change to its intended snippet directory and use the `dotnet` CLI to create it. Never create project files manually, and don't specify an output folder with `-o`. Specify a meaningful project name with `-n` when practical. Use `dotnet new console` unless the snippet requires another project type, such as `dotnet new winforms`.
.github/skills/push-code-snippets/SKILL.md:13
- The input section no longer carries over the old prompt's scope guardrail that only the supplied article may be edited and that snippets must not be shared across articles. Without that restriction, an invocation can broaden the migration to other articles or reuse another article's snippet files. State explicitly that this workflow edits only the supplied article and creates article-local copies unless the user authorizes a wider change.
This skill requires one Markdown article file as input. Treat the supplied file as the target article. If the user doesn't provide a file, ask for one before you begin the extraction.
- Files reviewed: 9/9 changed files
- Comments generated: 3
- Review effort level: Lite
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
| - Platform omitted, subject `AsyncProgram`, language `csharp`: `./snippets/create-app/AsyncProgram/csharp/` | ||
| - Platform omitted, subject omitted, language omitted: `./snippets/create-app/` | ||
|
|
||
| The skill treats all supplied segments as opaque path decisions except for validating the allowed platform and language values. No newline at end of file |
|
|
||
| Choose every required platform, subject, and language path segment. For a language-guide article, omit the language segment. For XAML-only snippets, request only the `csharp` language segment. | ||
|
|
||
| Load and follow the `generate-snippet-structure` skill with the target article and the complete list of chosen segments. Use the returned directories for the extracted files. |
| | ai-generated | When Copilot generates an article with or without a template -or- when Copilot writes all of the content of an article | | ||
|
|
||
| - When using an IDE with a human guiding AI: | ||
| Don't apply or change the `ai-usage` value when doing reviews and edits |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updated the copilot-instructions to clarify when to apply ai-usage, well more like when not to apply it. I'm trying to get it to avoid adding it when it's simply reviewing and suggesting changes. Creating content should still apply it. This is more in line with our automated editing tools we've stopped using in favor of AI's capabilities.
Move the snippet prompts to skills.
Added a new skill to help with automating information related to the installation guide.