Fix review comments on Copilot SDK permission handling PR #1103#1106
Fix review comments on Copilot SDK permission handling PR #1103#1106jamesmontemagno wants to merge 5 commits intogithub:stagedfrom
Conversation
Co-authored-by: jamesmontemagno <1676321+jamesmontemagno@users.noreply.github.com> Agent-Logs-Url: https://github.com/jamesmontemagno/awesome-copilot/sessions/adf27a88-92f8-4ca6-b3fe-1204e3bb9963
Co-authored-by: jamesmontemagno <1676321+jamesmontemagno@users.noreply.github.com> Agent-Logs-Url: https://github.com/jamesmontemagno/awesome-copilot/sessions/adf27a88-92f8-4ca6-b3fe-1204e3bb9963
…-permissions Align Copilot SDK cookbook, skill, and instructions with required permission handling
Address 5 review comments from PR github#1103: 1. Fix invalid object literal syntax (stray comma) in resumeSession example in copilot-sdk-nodejs.instructions.md 2. Replace unused PermissionHandler import with actual usage in cookbook/copilot-sdk/python/recipe/ralph_loop.py (was using inline lambda instead) 3. Replace unused approveAll import with actual usage in cookbook/copilot-sdk/nodejs/recipe/ralph-loop.ts (was using inline handler instead) 4. Add missing PermissionHandler import to 4 Python code snippets in skills/copilot-sdk/SKILL.md that reference it without importing 5. Add missing approveAll import to 3 TypeScript code snippets in skills/copilot-sdk/SKILL.md that reference it without importing
There was a problem hiding this comment.
Pull request overview
This PR standardizes Copilot SDK permission-handling examples across multiple docs/recipes and introduces a large set of new plugin agents/skills while also updating many plugin manifests.
Changes:
- Update Copilot SDK instructions/recipes (Python/Node.js/Go/C#) to consistently import and use
PermissionHandler.approve_all/approveAll. - Add multiple new plugin agents/skills/reference docs across various domains (MCP development, Azure, Java, DBAs, DevOps, etc.).
- Refactor many
plugins/**/.github/plugin/plugin.jsonmanifests to use directory paths (e.g.,./agents) and remove trailing slashes from skill paths.
Reviewed changes
Copilot reviewed 164 out of 340 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| plugins/kotlin-mcp-development/agents/kotlin-mcp-expert.md | Adds a Kotlin MCP expert agent definition/content |
| plugins/kotlin-mcp-development/.github/plugin/plugin.json | Changes manifest agent/skill paths (agents → directory) |
| plugins/java-mcp-development/.github/plugin/plugin.json | Changes manifest agent/skill paths (agents → directory) |
| plugins/java-development/skills/java-springboot/SKILL.md | Adds Spring Boot best-practices skill |
| plugins/java-development/skills/java-junit/SKILL.md | Adds JUnit best-practices skill |
| plugins/java-development/skills/java-docs/SKILL.md | Adds Javadoc best-practices skill |
| plugins/java-development/skills/create-spring-boot-java-project/SKILL.md | Adds Spring Boot project scaffolding skill/instructions |
| plugins/java-development/.github/plugin/plugin.json | Removes trailing slashes in skill paths |
| plugins/go-mcp-development/agents/go-mcp-expert.md | Adds a Go MCP expert agent definition/content |
| plugins/go-mcp-development/.github/plugin/plugin.json | Changes manifest agent/skill paths (agents → directory) |
| plugins/gem-team/agents/gem-reviewer.md | Adds a “gem” security reviewer agent |
| plugins/gem-team/agents/gem-implementer.md | Adds a “gem” implementer agent |
| plugins/gem-team/agents/gem-documentation-writer.md | Adds a “gem” documentation writer agent |
| plugins/gem-team/agents/gem-devops.md | Adds a “gem” DevOps agent |
| plugins/gem-team/agents/gem-browser-tester.md | Adds a “gem” browser tester agent |
| plugins/gem-team/.github/plugin/plugin.json | Collapses explicit agent list into a directory reference |
| plugins/frontend-web-dev/skills/playwright-generate-test/SKILL.md | Adds Playwright test generation skill |
| plugins/frontend-web-dev/skills/playwright-explore-website/SKILL.md | Adds Playwright exploration skill |
| plugins/frontend-web-dev/.github/plugin/plugin.json | Collapses explicit agent list into a directory reference; trims skill slashes |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-mcp/references/connection-references.md | Adds FlowStudio MCP reference doc (connection references) |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-mcp/references/action-types.md | Adds FlowStudio MCP action type reference |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-mcp/references/MCP-BOOTSTRAP.md | Adds FlowStudio MCP bootstrap reference |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-debug/references/debug-workflow.md | Adds FlowStudio MCP debug workflow reference |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-build/references/trigger-types.md | Adds FlowStudio MCP trigger definitions reference |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-build/references/build-patterns.md | Adds FlowStudio MCP build patterns reference |
| plugins/flowstudio-power-automate/.github/plugin/plugin.json | Removes trailing slashes in skill paths |
| plugins/edge-ai-tasks/.github/plugin/plugin.json | Collapses explicit agent list into a directory reference |
| plugins/doublecheck/skills/doublecheck/assets/verification-report-template.md | Adds verification report template asset |
| plugins/doublecheck/agents/doublecheck.md | Adds Doublecheck verification agent |
| plugins/doublecheck/.github/plugin/plugin.json | Changes manifest agent/skill paths (agents → directory) |
| plugins/devops-oncall/skills/multi-stage-dockerfile/SKILL.md | Adds multi-stage Dockerfile best-practices skill |
| plugins/devops-oncall/agents/azure-principal-architect.md | Adds Azure principal architect agent |
| plugins/devops-oncall/.github/plugin/plugin.json | Changes manifest agent/skill paths (agents → directory); trims skill slashes |
| plugins/dataverse-sdk-for-python/skills/dataverse-python-quickstart/SKILL.md | Adds Dataverse Python quickstart skill |
| plugins/dataverse-sdk-for-python/skills/dataverse-python-production-code/SKILL.md | Adds Dataverse Python production code guidance skill |
| plugins/dataverse-sdk-for-python/skills/dataverse-python-advanced-patterns/SKILL.md | Adds Dataverse Python advanced patterns skill |
| plugins/dataverse-sdk-for-python/.github/plugin/plugin.json | Removes trailing slashes in skill paths |
| plugins/database-data-management/agents/postgresql-dba.md | Adds PostgreSQL DBA agent |
| plugins/database-data-management/agents/ms-sql-dba.md | Adds MS-SQL DBA agent |
| plugins/database-data-management/.github/plugin/plugin.json | Changes manifest agent/skill paths (agents → directory); trims skill slashes |
| plugins/csharp-mcp-development/skills/csharp-mcp-server-generator/SKILL.md | Adds C# MCP server generator skill |
| plugins/csharp-mcp-development/agents/csharp-mcp-expert.md | Adds C# MCP expert agent |
| plugins/csharp-mcp-development/.github/plugin/plugin.json | Changes manifest agent/skill paths (agents → directory); trims skill slashes |
| plugins/csharp-dotnet-development/skills/dotnet-upgrade/SKILL.md | Adds .NET upgrade planning skill content |
| plugins/csharp-dotnet-development/skills/dotnet-best-practices/SKILL.md | Adds .NET best practices skill |
| plugins/csharp-dotnet-development/skills/csharp-xunit/SKILL.md | Adds xUnit best-practices skill |
| plugins/csharp-dotnet-development/skills/csharp-tunit/SKILL.md | Adds TUnit best-practices skill |
| plugins/csharp-dotnet-development/skills/csharp-nunit/SKILL.md | Adds NUnit best-practices skill |
| plugins/csharp-dotnet-development/skills/csharp-async/SKILL.md | Adds C# async best-practices skill |
| plugins/csharp-dotnet-development/skills/aspnet-minimal-api-openapi/SKILL.md | Adds ASP.NET Minimal API + OpenAPI skill |
| plugins/csharp-dotnet-development/agents/expert-dotnet-software-engineer.md | Adds expert .NET software engineer agent |
| plugins/csharp-dotnet-development/.github/plugin/plugin.json | Changes manifest agent/skill paths (agents → directory); trims skill slashes |
| plugins/copilot-sdk/.github/plugin/plugin.json | Removes trailing slash in skill path |
| plugins/context-engineering/skills/what-context-needed/SKILL.md | Adds “what context needed” skill |
| plugins/context-engineering/skills/refactor-plan/SKILL.md | Adds refactor planning skill |
| plugins/context-engineering/skills/context-map/SKILL.md | Adds context mapping skill |
| plugins/context-engineering/agents/context-architect.md | Adds context architect agent |
| plugins/context-engineering/.github/plugin/plugin.json | Changes manifest agent/skill paths (agents → directory); trims skill slashes |
| plugins/clojure-interactive-programming/skills/remember-interactive-programming/SKILL.md | Adds interactive programming reminder skill |
| plugins/clojure-interactive-programming/.github/plugin/plugin.json | Changes manifest agent/skill paths (agents → directory); trims skill slashes |
| plugins/cast-imaging/agents/cast-imaging-structural-quality-advisor.md | Adds CAST Imaging quality advisor agent |
| plugins/cast-imaging/agents/cast-imaging-software-discovery.md | Adds CAST Imaging discovery agent |
| plugins/cast-imaging/agents/cast-imaging-impact-analysis.md | Adds CAST Imaging impact analysis agent |
| plugins/cast-imaging/.github/plugin/plugin.json | Collapses explicit agent list into a directory reference |
| plugins/azure-cloud-development/skills/azure-pricing/references/SERVICE-NAMES.md | Adds Azure pricing service-name reference |
| plugins/azure-cloud-development/skills/azure-pricing/references/REGIONS.md | Adds Azure pricing region reference |
| plugins/azure-cloud-development/skills/azure-pricing/references/COST-ESTIMATOR.md | Adds cost estimator reference |
| plugins/azure-cloud-development/skills/azure-pricing/references/COPILOT-STUDIO-RATES.md | Adds Copilot Studio rates reference |
| plugins/azure-cloud-development/agents/terraform-azure-planning.md | Adds Terraform planning agent |
| plugins/azure-cloud-development/agents/terraform-azure-implement.md | Adds Terraform implementation agent |
| plugins/azure-cloud-development/agents/azure-verified-modules-terraform.md | Adds AVM Terraform agent |
| plugins/azure-cloud-development/agents/azure-verified-modules-bicep.md | Adds AVM Bicep agent |
| plugins/azure-cloud-development/agents/azure-principal-architect.md | Adds Azure principal architect agent definition/content |
| plugins/azure-cloud-development/agents/azure-logic-apps-expert.md | Adds Azure Logic Apps expert agent |
| plugins/azure-cloud-development/.github/plugin/plugin.json | Collapses explicit agent list into a directory reference; trims skill slashes |
| plugins/awesome-copilot/skills/suggest-awesome-github-copilot-instructions/SKILL.md | Adds skill for suggesting instructions from awesome-copilot repo |
| plugins/awesome-copilot/skills/suggest-awesome-github-copilot-agents/SKILL.md | Adds skill for suggesting agents from awesome-copilot repo |
| plugins/awesome-copilot/agents/meta-agentic-project-scaffold.md | Adds meta scaffold agent |
| plugins/awesome-copilot/.github/plugin/plugin.json | Changes manifest agent/skill paths (agents → directory); trims skill slashes |
| plugins/automate-this/.github/plugin/plugin.json | Removes trailing slash in skill path |
| instructions/copilot-sdk-python.instructions.md | Adds PermissionHandler import + permission handler examples throughout |
| instructions/copilot-sdk-nodejs.instructions.md | Adds approveAll import + permission handler examples throughout |
| instructions/copilot-sdk-go.instructions.md | Adds PermissionHandler.ApproveAll usage throughout |
| instructions/copilot-sdk-csharp.instructions.md | Adds PermissionHandler.ApproveAll usage throughout |
| cookbook/copilot-sdk/python/recipe/ralph_loop.py | Imports + uses PermissionHandler.approve_all |
| cookbook/copilot-sdk/python/recipe/pr_visualization.py | Imports + uses PermissionHandler.approve_all |
| cookbook/copilot-sdk/python/recipe/persisting_sessions.py | Imports + uses PermissionHandler.approve_all; updates resume example |
| cookbook/copilot-sdk/python/recipe/multiple_sessions.py | Imports + uses PermissionHandler.approve_all |
| cookbook/copilot-sdk/python/recipe/managing_local_files.py | Imports + uses PermissionHandler.approve_all |
| cookbook/copilot-sdk/python/recipe/error_handling.py | Imports + uses PermissionHandler.approve_all |
| cookbook/copilot-sdk/python/recipe/accessibility_report.py | Imports + uses PermissionHandler.approve_all |
| cookbook/copilot-sdk/python/ralph-loop.md | Documentation example imports + uses PermissionHandler.approve_all |
| cookbook/copilot-sdk/python/pr-visualization.md | Documentation example imports + uses PermissionHandler.approve_all |
| cookbook/copilot-sdk/python/persisting-sessions.md | Documentation example imports + uses PermissionHandler.approve_all |
| cookbook/copilot-sdk/python/multiple-sessions.md | Documentation example imports + uses PermissionHandler.approve_all |
| cookbook/copilot-sdk/python/managing-local-files.md | Documentation example imports + uses PermissionHandler.approve_all |
| cookbook/copilot-sdk/python/error-handling.md | Documentation example imports + uses PermissionHandler.approve_all |
| cookbook/copilot-sdk/python/accessibility-report.md | Documentation example imports + uses PermissionHandler.approve_all |
| cookbook/copilot-sdk/nodejs/recipe/ralph-loop.ts | Imports + uses approveAll |
| cookbook/copilot-sdk/nodejs/recipe/pr-visualization.ts | Imports + uses approveAll |
| cookbook/copilot-sdk/nodejs/recipe/persisting-sessions.ts | Imports + uses approveAll; updates resume example |
| cookbook/copilot-sdk/nodejs/recipe/multiple-sessions.ts | Imports + uses approveAll |
| cookbook/copilot-sdk/nodejs/recipe/managing-local-files.ts | Imports + uses approveAll |
| cookbook/copilot-sdk/nodejs/recipe/error-handling.ts | Imports + uses approveAll |
| cookbook/copilot-sdk/nodejs/recipe/accessibility-report.ts | Imports + uses approveAll |
| cookbook/copilot-sdk/nodejs/ralph-loop.md | Documentation example imports + uses approveAll |
| cookbook/copilot-sdk/nodejs/pr-visualization.md | Documentation example imports + uses approveAll |
| cookbook/copilot-sdk/nodejs/persisting-sessions.md | Documentation example imports + uses approveAll |
| cookbook/copilot-sdk/nodejs/multiple-sessions.md | Documentation example imports + uses approveAll |
| cookbook/copilot-sdk/nodejs/managing-local-files.md | Documentation example imports + uses approveAll |
| cookbook/copilot-sdk/nodejs/error-handling.md | Documentation example imports + uses approveAll |
| cookbook/copilot-sdk/nodejs/accessibility-report.md | Documentation example imports + uses approveAll |
| cookbook/copilot-sdk/go/recipe/pr-visualization.go | Adds OnPermissionRequest approve-all |
| cookbook/copilot-sdk/go/recipe/persisting-sessions.go | Adds OnPermissionRequest approve-all; updates resume example |
| cookbook/copilot-sdk/go/recipe/multiple-sessions.go | Adds OnPermissionRequest approve-all |
| cookbook/copilot-sdk/go/recipe/managing-local-files.go | Adds OnPermissionRequest approve-all |
| cookbook/copilot-sdk/go/recipe/error-handling.go | Adds OnPermissionRequest approve-all |
| cookbook/copilot-sdk/go/recipe/accessibility-report.go | Adds OnPermissionRequest approve-all |
| cookbook/copilot-sdk/go/ralph-loop.md | Documentation example adds OnPermissionRequest approve-all |
| cookbook/copilot-sdk/go/pr-visualization.md | Documentation example adds OnPermissionRequest approve-all |
| cookbook/copilot-sdk/go/persisting-sessions.md | Documentation example adds OnPermissionRequest approve-all; updates resume |
| cookbook/copilot-sdk/go/multiple-sessions.md | Documentation example adds OnPermissionRequest approve-all |
| cookbook/copilot-sdk/go/managing-local-files.md | Documentation example adds OnPermissionRequest approve-all |
| cookbook/copilot-sdk/go/error-handling.md | Documentation example adds OnPermissionRequest approve-all |
| cookbook/copilot-sdk/go/accessibility-report.md | Documentation example adds OnPermissionRequest approve-all |
| cookbook/copilot-sdk/dotnet/recipe/persisting-sessions.cs | Updates resume example to include permission handler |
| cookbook/copilot-sdk/dotnet/persisting-sessions.md | Updates resume example to include permission handler |
| "./agents/azure-verified-modules-terraform.md", | ||
| "./agents/terraform-azure-planning.md", | ||
| "./agents/terraform-azure-implement.md" | ||
| "./agents" |
There was a problem hiding this comment.
The PR title/description focus on fixing Copilot SDK permission-handling review comments, but this PR also adds many new plugins/agents/skills and refactors numerous plugin manifests. Please either (1) split the plugin additions/manifest refactors into a separate PR or (2) update the PR title/description to accurately reflect the expanded scope so reviewers can assess intent and risk appropriately.
| "agents": [ | ||
| "./agents/kotlin-mcp-expert.md" | ||
| "./agents" | ||
| ], | ||
| "skills": [ | ||
| "./skills/kotlin-mcp-server-generator/" | ||
| "./skills/kotlin-mcp-server-generator" | ||
| ] |
There was a problem hiding this comment.
The agents manifest entry changed from a specific agent file path to a directory path ("./agents"). If the plugin loader expects explicit agent file paths (as this file previously provided), agents may stop being discoverable. If directory-based discovery is supported, consider using an explicit pattern or updating the manifest format consistently (e.g., an items list with path/kind) so the contract is unambiguous.
See below for a potential fix:
"items": [
{
"path": "./agents",
"kind": "agent"
},
{
"path": "./skills/kotlin-mcp-server-generator",
"kind": "skill"
}
| --- | ||
| description: "Work with Microsoft SQL Server databases using the MS SQL extension." | ||
| name: "MS-SQL Database Administrator" | ||
| tools: ["search/codebase", "edit/editFiles", "githubRepo", "extensions", "runCommands", "database", "mssql_connect", "mssql_query", "mssql_listServers", "mssql_listDatabases", "mssql_disconnect", "mssql_visualizeSchema"] |
There was a problem hiding this comment.
search/codebase is an unusual tool identifier compared to the rest of the repo (which commonly uses codebase and search as separate tools). If this tool name isn’t registered, the agent will fail at runtime. Recommend switching to the canonical tool name(s) used elsewhere in the repository/tooling.
| tools: ["search/codebase", "edit/editFiles", "githubRepo", "extensions", "runCommands", "database", "mssql_connect", "mssql_query", "mssql_listServers", "mssql_listDatabases", "mssql_disconnect", "mssql_visualizeSchema"] | |
| tools: ["search", "codebase", "edit/editFiles", "githubRepo", "extensions", "runCommands", "database", "mssql_connect", "mssql_query", "mssql_listServers", "mssql_listDatabases", "mssql_disconnect", "mssql_visualizeSchema"] |
| - name: "Project Classification Analysis" | ||
| prompt: "Identify all projects in the solution and classify them by type (`.NET Framework`, `.NET Core`, `.NET Standard`). Analyze each `.csproj` for its current `TargetFramework` and SDK usage." | ||
|
|
||
| - name: "Dependency Compatibility Review" | ||
| prompt: "Review external and internal dependencies for framework compatibility. Determine the upgrade complexity based on dependency graph depth." | ||
|
|
||
| - name: "Legacy Package Detection" | ||
| prompt: "Identify legacy `packages.config` projects needing migration to `PackageReference` format." | ||
|
|
||
| # Upgrade Strategy & Sequencing | ||
| - name: "Project Upgrade Ordering" | ||
| prompt: "Recommend a project upgrade order from least to most dependent components. Suggest how to isolate class library upgrades before API or Azure Function migrations." | ||
|
|
||
| - name: "Incremental Strategy Planning" | ||
| prompt: "Propose an incremental upgrade strategy with rollback checkpoints. Evaluate the use of **Upgrade Assistant** or **manual upgrades** based on project structure." | ||
|
|
||
| - name: "Progress Tracking Setup" | ||
| prompt: "Generate an upgrade checklist for tracking build, test, and deployment readiness across all projects." | ||
|
|
||
| # Framework Targeting & Code Adjustments | ||
| - name: "Target Framework Selection" | ||
| prompt: "Suggest the correct `TargetFramework` for each project (e.g., `net8.0`). Review and update deprecated SDK or build configurations." | ||
|
|
||
| - name: "Code Modernization Analysis" | ||
| prompt: "Identify code patterns needing modernization (e.g., `WebHostBuilder` → `HostBuilder`). Suggest replacements for deprecated .NET APIs and third-party libraries." | ||
|
|
||
| - name: "Async Pattern Conversion" | ||
| prompt: "Recommend conversion of synchronous calls to async where appropriate for improved performance and scalability." | ||
|
|
||
| # NuGet & Dependency Management | ||
| - name: "Package Compatibility Analysis" | ||
| prompt: "Analyze outdated or incompatible NuGet packages and suggest compatible versions. Identify third-party libraries that lack .NET 8 support and provide migration paths." | ||
|
|
||
| - name: "Shared Dependency Strategy" | ||
| prompt: "Recommend strategies for handling shared dependency upgrades across projects. Evaluate usage of legacy packages and suggest alternatives in Microsoft-supported namespaces." | ||
|
|
||
| - name: "Transitive Dependency Review" | ||
| prompt: "Review transitive dependencies and potential version conflicts after upgrade. Suggest resolution strategies for dependency conflicts." | ||
|
|
||
| # CI/CD & Build Pipeline Updates | ||
| - name: "Pipeline Configuration Analysis" | ||
| prompt: "Analyze YAML build definitions for SDK version pinning and recommend updates. Suggest modifications for `UseDotNet@2` and `NuGetToolInstaller` tasks." | ||
|
|
||
| - name: "Build Pipeline Modernization" | ||
| prompt: "Generate updated build pipeline snippets for .NET 8 migration. Recommend validation builds on feature branches before merging to main." | ||
|
|
||
| - name: "CI Automation Enhancement" | ||
| prompt: "Identify opportunities to automate test and build verification in CI pipelines. Suggest strategies for continuous integration validation." |
There was a problem hiding this comment.
This SKILL content appears to mix Markdown headings with YAML-like structures (- name: / prompt:) without fencing it as a code block or converting it into standard Markdown lists/sections. As-is, it’s hard to read and may be misinterpreted by renderers/parsers. Suggest either wrapping the YAML-like portion in a fenced block (and labeling it) or rewriting it as normal Markdown sections with bullets.
| - name: "Project Classification Analysis" | |
| prompt: "Identify all projects in the solution and classify them by type (`.NET Framework`, `.NET Core`, `.NET Standard`). Analyze each `.csproj` for its current `TargetFramework` and SDK usage." | |
| - name: "Dependency Compatibility Review" | |
| prompt: "Review external and internal dependencies for framework compatibility. Determine the upgrade complexity based on dependency graph depth." | |
| - name: "Legacy Package Detection" | |
| prompt: "Identify legacy `packages.config` projects needing migration to `PackageReference` format." | |
| # Upgrade Strategy & Sequencing | |
| - name: "Project Upgrade Ordering" | |
| prompt: "Recommend a project upgrade order from least to most dependent components. Suggest how to isolate class library upgrades before API or Azure Function migrations." | |
| - name: "Incremental Strategy Planning" | |
| prompt: "Propose an incremental upgrade strategy with rollback checkpoints. Evaluate the use of **Upgrade Assistant** or **manual upgrades** based on project structure." | |
| - name: "Progress Tracking Setup" | |
| prompt: "Generate an upgrade checklist for tracking build, test, and deployment readiness across all projects." | |
| # Framework Targeting & Code Adjustments | |
| - name: "Target Framework Selection" | |
| prompt: "Suggest the correct `TargetFramework` for each project (e.g., `net8.0`). Review and update deprecated SDK or build configurations." | |
| - name: "Code Modernization Analysis" | |
| prompt: "Identify code patterns needing modernization (e.g., `WebHostBuilder` → `HostBuilder`). Suggest replacements for deprecated .NET APIs and third-party libraries." | |
| - name: "Async Pattern Conversion" | |
| prompt: "Recommend conversion of synchronous calls to async where appropriate for improved performance and scalability." | |
| # NuGet & Dependency Management | |
| - name: "Package Compatibility Analysis" | |
| prompt: "Analyze outdated or incompatible NuGet packages and suggest compatible versions. Identify third-party libraries that lack .NET 8 support and provide migration paths." | |
| - name: "Shared Dependency Strategy" | |
| prompt: "Recommend strategies for handling shared dependency upgrades across projects. Evaluate usage of legacy packages and suggest alternatives in Microsoft-supported namespaces." | |
| - name: "Transitive Dependency Review" | |
| prompt: "Review transitive dependencies and potential version conflicts after upgrade. Suggest resolution strategies for dependency conflicts." | |
| # CI/CD & Build Pipeline Updates | |
| - name: "Pipeline Configuration Analysis" | |
| prompt: "Analyze YAML build definitions for SDK version pinning and recommend updates. Suggest modifications for `UseDotNet@2` and `NuGetToolInstaller` tasks." | |
| - name: "Build Pipeline Modernization" | |
| prompt: "Generate updated build pipeline snippets for .NET 8 migration. Recommend validation builds on feature branches before merging to main." | |
| - name: "CI Automation Enhancement" | |
| prompt: "Identify opportunities to automate test and build verification in CI pipelines. Suggest strategies for continuous integration validation." | |
| - **Project Classification Analysis** | |
| Identify all projects in the solution and classify them by type (`.NET Framework`, `.NET Core`, `.NET Standard`). Analyze each `.csproj` for its current `TargetFramework` and SDK usage. | |
| - **Dependency Compatibility Review** | |
| Review external and internal dependencies for framework compatibility. Determine the upgrade complexity based on dependency graph depth. | |
| - **Legacy Package Detection** | |
| Identify legacy `packages.config` projects needing migration to `PackageReference` format. | |
| # Upgrade Strategy & Sequencing | |
| - **Project Upgrade Ordering** | |
| Recommend a project upgrade order from least to most dependent components. Suggest how to isolate class library upgrades before API or Azure Function migrations. | |
| - **Incremental Strategy Planning** | |
| Propose an incremental upgrade strategy with rollback checkpoints. Evaluate the use of **Upgrade Assistant** or **manual upgrades** based on project structure. | |
| - **Progress Tracking Setup** | |
| Generate an upgrade checklist for tracking build, test, and deployment readiness across all projects. | |
| # Framework Targeting & Code Adjustments | |
| - **Target Framework Selection** | |
| Suggest the correct `TargetFramework` for each project (e.g., `net8.0`). Review and update deprecated SDK or build configurations. | |
| - **Code Modernization Analysis** | |
| Identify code patterns needing modernization (e.g., `WebHostBuilder` → `HostBuilder`). Suggest replacements for deprecated .NET APIs and third-party libraries. | |
| - **Async Pattern Conversion** | |
| Recommend conversion of synchronous calls to async where appropriate for improved performance and scalability. | |
| # NuGet & Dependency Management | |
| - **Package Compatibility Analysis** | |
| Analyze outdated or incompatible NuGet packages and suggest compatible versions. Identify third-party libraries that lack .NET 8 support and provide migration paths. | |
| - **Shared Dependency Strategy** | |
| Recommend strategies for handling shared dependency upgrades across projects. Evaluate usage of legacy packages and suggest alternatives in Microsoft-supported namespaces. | |
| - **Transitive Dependency Review** | |
| Review transitive dependencies and potential version conflicts after upgrade. Suggest resolution strategies for dependency conflicts. | |
| # CI/CD & Build Pipeline Updates | |
| - **Pipeline Configuration Analysis** | |
| Analyze YAML build definitions for SDK version pinning and recommend updates. Suggest modifications for `UseDotNet@2` and `NuGetToolInstaller` tasks. | |
| - **Build Pipeline Modernization** | |
| Generate updated build pipeline snippets for .NET 8 migration. Recommend validation builds on feature branches before merging to main. | |
| - **CI Automation Enhancement** | |
| Identify opportunities to automate test and build verification in CI pipelines. Suggest strategies for continuous integration validation. |
| - Docker | ||
| - Docker Compose | ||
|
|
||
| - If you need to custom the project name, please change the `artifactId` and the `packageName` in [download-spring-boot-project-template](./create-spring-boot-java-project.prompt.md#download-spring-boot-project-template) |
There was a problem hiding this comment.
Grammar: replace 'custom' with 'customize' (verb form) for clarity.
| - If you need to custom the project name, please change the `artifactId` and the `packageName` in [download-spring-boot-project-template](./create-spring-boot-java-project.prompt.md#download-spring-boot-project-template) | |
| - If you need to customize the project name, please change the `artifactId` and the `packageName` in [download-spring-boot-project-template](./create-spring-boot-java-project.prompt.md#download-spring-boot-project-template) |
| const session = await client.createSession({ | ||
| onPermissionRequest: approveAll, | ||
| model: "gpt-5", | ||
| streaming: true, | ||
| tools: [...], |
There was a problem hiding this comment.
These instruction files now encourage approveAll/approve_all in many “basic” examples, which effectively disables permission gating and can lead to unintended tool execution if copied into real applications. Recommend limiting auto-approval to clearly-labeled “unattended/autonomous” sections and keeping default/basic examples on an explicit/interactive permission policy (or at minimum adding a prominent warning near the first example).
Pull Request Checklist
npm startand verified thatREADME.mdis up to date.Description
Addresses the 5 review comments from PR #1103:
Fix invalid object literal syntax in
instructions/copilot-sdk-nodejs.instructions.md: TheresumeSessionexample had a stray leading comma beforeonPermissionRequestwhich would cause a TypeScript parse error. Fixed to proper comma-separated properties.Fix unused
PermissionHandlerimport incookbook/copilot-sdk/python/recipe/ralph_loop.py:PermissionHandlerwas imported but the code used an inline lambda. Replaced withPermissionHandler.approve_allfor consistency.Fix unused
approveAllimport incookbook/copilot-sdk/nodejs/recipe/ralph-loop.ts:approveAllwas imported but the code used an inline handler. Replaced withapproveAllfor consistency.Add missing
PermissionHandlerimport to 4 Python snippets inskills/copilot-sdk/SKILL.mdthat referenced it without importing.Add missing
approveAllimport to 3 TypeScript snippets inskills/copilot-sdk/SKILL.mdthat referenced it without importing.Type of Contribution
By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.