Add Python Notebook Sample Builder agent#944
Add Python Notebook Sample Builder agent#944aymenfurter wants to merge 3 commits intogithub:stagedfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new Python Notebook Sample Builder agent and expands/normalizes multiple plugin definitions and content across the repo.
Changes:
- Added
Python Notebook Sample Builderagent and documented it indocs/README.agents.md - Introduced many new plugin agents/skills/reference docs across multiple
plugins/*packages - Normalized multiple
plugin.jsonentries (e.g., removing trailing slashes; switching some lists to directory entries)
Reviewed changes
Copilot reviewed 126 out of 273 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| plugins/napkin/skills/napkin/SKILL.md | Adds a “Napkin” whiteboard skill with activation + reading instructions. |
| plugins/napkin/.github/plugin/plugin.json | Normalizes skills path entry. |
| plugins/mcp-m365-copilot/agents/mcp-m365-agent-expert.md | Adds an agent for MCP-based Microsoft 365 Copilot declarative agents. |
| plugins/mcp-m365-copilot/.github/plugin/plugin.json | Switches agents/skills entries to directory/no-trailing-slash paths. |
| plugins/kotlin-mcp-development/agents/kotlin-mcp-expert.md | Adds Kotlin MCP server expert agent content. |
| plugins/kotlin-mcp-development/.github/plugin/plugin.json | Switches agents/skills entries to directory/no-trailing-slash paths. |
| plugins/java-mcp-development/.github/plugin/plugin.json | Switches agents/skills entries to directory/no-trailing-slash paths. |
| plugins/java-development/skills/java-springboot/SKILL.md | Adds Spring Boot best practices skill. |
| plugins/java-development/skills/java-junit/SKILL.md | Adds JUnit 5 best practices skill. |
| plugins/java-development/skills/java-docs/SKILL.md | Adds Javadoc documentation best practices skill. |
| plugins/java-development/skills/create-spring-boot-java-project/SKILL.md | Adds a Spring Boot project skeleton creation skill. |
| plugins/java-development/.github/plugin/plugin.json | Normalizes skill paths (no trailing slashes). |
| plugins/go-mcp-development/agents/go-mcp-expert.md | Adds Go MCP server expert agent content. |
| plugins/go-mcp-development/.github/plugin/plugin.json | Switches agents/skills entries to directory/no-trailing-slash paths. |
| plugins/gem-team/agents/gem-reviewer.md | Adds security/reviewer agent definition (read-only audit). |
| plugins/gem-team/agents/gem-implementer.md | Adds implementer agent definition (TDD execution). |
| plugins/gem-team/agents/gem-documentation-writer.md | Adds docs-writer agent definition. |
| plugins/gem-team/agents/gem-devops.md | Adds devops agent definition with approval gates. |
| plugins/gem-team/agents/gem-browser-tester.md | Adds browser tester agent definition. |
| plugins/gem-team/.github/plugin/plugin.json | Switches agents entry to a directory. |
| 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 | Switches agents entry to a directory; normalizes skill paths. |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-mcp/references/connection-references.md | Adds reference documentation for connection references. |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-mcp/references/action-types.md | Adds action type quick reference documentation. |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-mcp/references/MCP-BOOTSTRAP.md | Adds MCP bootstrap quick reference documentation. |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-debug/references/debug-workflow.md | Adds flow debugging workflow documentation. |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-debug/references/common-errors.md | Adds common errors documentation. |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-build/references/trigger-types.md | Adds trigger templates documentation. |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-build/references/flow-schema.md | Adds flow schema documentation. |
| plugins/flowstudio-power-automate/skills/flowstudio-power-automate-build/references/build-patterns.md | Adds build patterns documentation. |
| plugins/flowstudio-power-automate/.github/plugin/plugin.json | Normalizes skill paths (no trailing slashes). |
| plugins/edge-ai-tasks/.github/plugin/plugin.json | Switches agents entry to a 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 an Azure principal architect agent definition (devops-oncall plugin). |
| plugins/devops-oncall/.github/plugin/plugin.json | Switches agents entry to a directory; normalizes skill paths. |
| plugins/dataverse/.github/plugin/plugin.json | Normalizes skill path (no trailing slash). |
| plugins/dataverse-sdk-for-python/skills/dataverse-python-usecase-builder/SKILL.md | Adds detailed Dataverse SDK for Python use case builder skill. |
| plugins/dataverse-sdk-for-python/skills/dataverse-python-quickstart/SKILL.md | Adds Dataverse SDK for Python quickstart skill. |
| plugins/dataverse-sdk-for-python/skills/dataverse-python-production-code/SKILL.md | Adds Dataverse SDK for Python production code skill. |
| plugins/dataverse-sdk-for-python/skills/dataverse-python-advanced-patterns/SKILL.md | Adds Dataverse SDK for Python advanced patterns skill. |
| plugins/dataverse-sdk-for-python/.github/plugin/plugin.json | Normalizes skill paths (no trailing slashes). |
| plugins/database-data-management/skills/postgresql-code-review/SKILL.md | Adds PostgreSQL-specific code review skill. |
| plugins/database-data-management/agents/postgresql-dba.md | Adds PostgreSQL DBA agent definition. |
| plugins/database-data-management/agents/ms-sql-dba.md | Adds MS SQL DBA agent definition. |
| plugins/database-data-management/.github/plugin/plugin.json | Switches agents entry to a directory; normalizes skill paths. |
| 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 server expert agent. |
| plugins/csharp-mcp-development/.github/plugin/plugin.json | Switches agents entry to a directory; normalizes skill paths. |
| plugins/csharp-dotnet-development/skills/dotnet-upgrade/SKILL.md | Adds .NET upgrade guidance skill. |
| 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 programming best practices skill. |
| plugins/csharp-dotnet-development/skills/aspnet-minimal-api-openapi/SKILL.md | Adds ASP.NET Minimal API + OpenAPI guidance skill. |
| plugins/csharp-dotnet-development/agents/expert-dotnet-software-engineer.md | Adds an “expert .NET software engineer” agent definition. |
| plugins/csharp-dotnet-development/.github/plugin/plugin.json | Switches agents entry to a directory; normalizes skill paths. |
| plugins/copilot-sdk/.github/plugin/plugin.json | Normalizes skill path (no trailing slash). |
| plugins/context-engineering/skills/what-context-needed/SKILL.md | Adds a context request skill template. |
| plugins/context-engineering/skills/refactor-plan/SKILL.md | Adds a refactor planning skill template. |
| plugins/context-engineering/skills/context-map/SKILL.md | Adds a context mapping skill template. |
| plugins/context-engineering/agents/context-architect.md | Adds a context planning agent definition. |
| plugins/context-engineering/.github/plugin/plugin.json | Switches agents entry to a directory; normalizes skill paths. |
| plugins/clojure-interactive-programming/skills/remember-interactive-programming/SKILL.md | Adds a micro-skill reminder for REPL-first workflow. |
| plugins/clojure-interactive-programming/agents/clojure-interactive-programming.md | Adds a Clojure REPL-first agent definition. |
| plugins/clojure-interactive-programming/.github/plugin/plugin.json | Switches agents entry to a directory; normalizes skill paths. |
| plugins/cast-imaging/agents/cast-imaging-structural-quality-advisor.md | Adds CAST Imaging structural 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 | Switches agents entry to a directory. |
| plugins/azure-cloud-development/skills/azure-pricing/references/SERVICE-NAMES.md | Adds Azure pricing service names reference. |
| plugins/azure-cloud-development/skills/azure-pricing/references/REGIONS.md | Adds Azure pricing regions reference. |
| plugins/azure-cloud-development/skills/azure-pricing/references/COST-ESTIMATOR.md | Adds pricing cost estimator reference. |
| plugins/azure-cloud-development/skills/azure-pricing/references/COPILOT-STUDIO-RATES.md | Adds Copilot Studio billing rates reference. |
| plugins/azure-cloud-development/agents/terraform-azure-planning.md | Adds Azure Terraform planning agent definition. |
| plugins/azure-cloud-development/agents/terraform-azure-implement.md | Adds Azure Terraform implementation agent definition. |
| plugins/azure-cloud-development/agents/azure-verified-modules-terraform.md | Adds Azure AVM Terraform agent definition. |
| plugins/azure-cloud-development/agents/azure-verified-modules-bicep.md | Adds Azure AVM Bicep agent definition. |
| plugins/azure-cloud-development/agents/azure-saas-architect.md | Adds Azure SaaS architect agent definition. |
| plugins/azure-cloud-development/agents/azure-principal-architect.md | Adds Azure principal architect agent definition (azure-cloud-development plugin). |
| plugins/azure-cloud-development/agents/azure-logic-apps-expert.md | Adds Azure Logic Apps expert agent definition. |
| plugins/azure-cloud-development/.github/plugin/plugin.json | Switches agents entry to a directory; normalizes skill paths. |
| plugins/awesome-copilot/skills/suggest-awesome-github-copilot-skills/SKILL.md | Adds skill to suggest skills from awesome-copilot repo. |
| plugins/awesome-copilot/skills/suggest-awesome-github-copilot-instructions/SKILL.md | Adds skill to suggest instructions from awesome-copilot repo. |
| plugins/awesome-copilot/skills/suggest-awesome-github-copilot-agents/SKILL.md | Adds skill to suggest agents from awesome-copilot repo. |
| plugins/awesome-copilot/agents/meta-agentic-project-scaffold.md | Adds meta scaffolding agent to pull resources from awesome-copilot. |
| plugins/awesome-copilot/.github/plugin/plugin.json | Switches agents entry to a directory; normalizes skill paths. |
| plugins/automate-this/.github/plugin/plugin.json | Normalizes skill path (no trailing slash). |
| docs/README.skills.md | Updates skills documentation (notably winmd-api-search assets listing). |
| docs/README.agents.md | Documents the new Python notebook agent. |
| agents/python-notebook-sample-builder.agent.md | Adds the Python Notebook Sample Builder agent definition. |
| | [what-context-needed](../skills/what-context-needed/SKILL.md) | Ask Copilot what files it needs to see before answering a question | None | | ||
| | [winapp-cli](../skills/winapp-cli/SKILL.md) | Windows App Development CLI (winapp) for building, packaging, and deploying Windows applications. Use when asked to initialize Windows app projects, create MSIX packages, generate AppxManifest.xml, manage development certificates, add package identity for debugging, sign packages, publish to the Microsoft Store, create external catalogs, or access Windows SDK build tools. Supports .NET (csproj), C++, Electron, Rust, Tauri, and cross-platform frameworks targeting Windows. | None | | ||
| | [winmd-api-search](../skills/winmd-api-search/SKILL.md) | Find and explore Windows desktop APIs. Use when building features that need platform capabilities — camera, file access, notifications, UI controls, AI/ML, sensors, networking, etc. Discovers the right API for a task and retrieves full type details (methods, properties, events, enumeration values). | `LICENSE.txt`<br />`scripts/Invoke-WinMdQuery.ps1`<br />`scripts/Update-WinMdCache.ps1`<br />`scripts/cache-generator/CacheGenerator.csproj`<br />`scripts/cache-generator/Directory.Build.props`<br />`scripts/cache-generator/Directory.Build.targets`<br />`scripts/cache-generator/Directory.Packages.props`<br />`scripts/cache-generator/Program.cs` | | ||
| | [winmd-api-search](../skills/winmd-api-search/SKILL.md) | Find and explore Windows desktop APIs. Use when building features that need platform capabilities — camera, file access, notifications, UI controls, AI/ML, sensors, networking, etc. Discovers the right API for a task and retrieves full type details (methods, properties, events, enumeration values). | `LICENSE.txt`<br />`scripts/Invoke-WinMdQuery.ps1`<br />`scripts/Update-WinMdCache.ps1`<br />`scripts/cache-generator/CacheGenerator.csproj`<br />`scripts/cache-generator/Directory.Build.props`<br />`scripts/cache-generator/Directory.Build.targets`<br />`scripts/cache-generator/Directory.Packages.props`<br />`scripts/cache-generator/Program.cs`<br />`scripts/cache-generator/obj/CacheGenerator.csproj.nuget.dgspec.json`<br />`scripts/cache-generator/obj/CacheGenerator.csproj.nuget.g.props`<br />`scripts/cache-generator/obj/CacheGenerator.csproj.nuget.g.targets`<br />`scripts/cache-generator/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs`<br />`scripts/cache-generator/obj/Debug/net8.0/CacheGenerator.AssemblyInfo.cs`<br />`scripts/cache-generator/obj/Debug/net8.0/CacheGenerator.AssemblyInfoInputs.cache`<br />`scripts/cache-generator/obj/Debug/net8.0/CacheGenerator.GeneratedMSBuildEditorConfig.editorconfig`<br />`scripts/cache-generator/obj/Debug/net8.0/CacheGenerator.GlobalUsings.g.cs`<br />`scripts/cache-generator/obj/Debug/net8.0/CacheGenerator.assets.cache`<br />`scripts/cache-generator/obj/project.assets.json`<br />`scripts/cache-generator/obj/project.nuget.cache` | |
There was a problem hiding this comment.
This README entry lists build output under scripts/cache-generator/obj/... as bundled assets. obj/ artifacts are typically generated and should not be shipped, referenced as assets, or committed. Recommendation: remove obj/ files from the repo (and from this assets list) and ensure they’re ignored (e.g., via .gitignore) so future README generation doesn’t pick them up.
| | [winmd-api-search](../skills/winmd-api-search/SKILL.md) | Find and explore Windows desktop APIs. Use when building features that need platform capabilities — camera, file access, notifications, UI controls, AI/ML, sensors, networking, etc. Discovers the right API for a task and retrieves full type details (methods, properties, events, enumeration values). | `LICENSE.txt`<br />`scripts/Invoke-WinMdQuery.ps1`<br />`scripts/Update-WinMdCache.ps1`<br />`scripts/cache-generator/CacheGenerator.csproj`<br />`scripts/cache-generator/Directory.Build.props`<br />`scripts/cache-generator/Directory.Build.targets`<br />`scripts/cache-generator/Directory.Packages.props`<br />`scripts/cache-generator/Program.cs`<br />`scripts/cache-generator/obj/CacheGenerator.csproj.nuget.dgspec.json`<br />`scripts/cache-generator/obj/CacheGenerator.csproj.nuget.g.props`<br />`scripts/cache-generator/obj/CacheGenerator.csproj.nuget.g.targets`<br />`scripts/cache-generator/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs`<br />`scripts/cache-generator/obj/Debug/net8.0/CacheGenerator.AssemblyInfo.cs`<br />`scripts/cache-generator/obj/Debug/net8.0/CacheGenerator.AssemblyInfoInputs.cache`<br />`scripts/cache-generator/obj/Debug/net8.0/CacheGenerator.GeneratedMSBuildEditorConfig.editorconfig`<br />`scripts/cache-generator/obj/Debug/net8.0/CacheGenerator.GlobalUsings.g.cs`<br />`scripts/cache-generator/obj/Debug/net8.0/CacheGenerator.assets.cache`<br />`scripts/cache-generator/obj/project.assets.json`<br />`scripts/cache-generator/obj/project.nuget.cache` | | |
| | [winmd-api-search](../skills/winmd-api-search/SKILL.md) | Find and explore Windows desktop APIs. Use when building features that need platform capabilities — camera, file access, notifications, UI controls, AI/ML, sensors, networking, etc. Discovers the right API for a task and retrieves full type details (methods, properties, events, enumeration values). | `LICENSE.txt`<br />`scripts/Invoke-WinMdQuery.ps1`<br />`scripts/Update-WinMdCache.ps1`<br />`scripts/cache-generator/CacheGenerator.csproj`<br />`scripts/cache-generator/Directory.Build.props`<br />`scripts/cache-generator/Directory.Build.targets`<br />`scripts/cache-generator/Directory.Packages.props`<br />`scripts/cache-generator/Program.cs` | |
| @@ -0,0 +1,60 @@ | |||
| --- | |||
| description: "Provide expert Azure Principal Architect guidance using Azure Well-Architected Framework principles and Microsoft best practices." | |||
| name: "Azure Principal Architect mode instructions" | |||
There was a problem hiding this comment.
This agent name duplicates the agent name added under plugins/azure-cloud-development/agents/azure-principal-architect.md in this PR. If agent lookup/selection keys off name, this can cause ambiguity or collisions. Recommendation: make the name values unique (e.g., include the plugin scope such as “(DevOps Oncall)” vs “(Azure Cloud Development)”), while keeping the description consistent.
| name: "Azure Principal Architect mode instructions" | |
| name: "Azure Principal Architect mode instructions (DevOps Oncall)" |
| ### Step 2 — Read the clipboard for structured JSON (supplementary) | ||
|
|
||
| Also try to grab structured JSON data from the system clipboard. The whiteboard copies this automatically alongside the PNG. | ||
|
|
||
| - macOS: `pbpaste` | ||
| - Linux: `xclip -selection clipboard -o` | ||
| - Windows: `powershell -command "Get-Clipboard"` | ||
|
|
||
| The JSON contains the exact text content of sticky notes and text labels, their positions, and their colors. This supplements the PNG by giving you precise text that might be hard to read from a screenshot. | ||
|
|
||
| If the clipboard doesn't contain JSON data, that's fine — the PNG alone gives the model plenty to work with. Do not treat a missing clipboard as an error. |
There was a problem hiding this comment.
Reading the system clipboard can unintentionally capture and expose sensitive user data (password managers, tokens, private text). Recommendation: explicitly ask for user consent before reading clipboard contents, and/or instruct the user to paste the JSON explicitly into the chat instead of pulling from clipboard automatically.
| ### Step 2 — Read the clipboard for structured JSON (supplementary) | |
| Also try to grab structured JSON data from the system clipboard. The whiteboard copies this automatically alongside the PNG. | |
| - macOS: `pbpaste` | |
| - Linux: `xclip -selection clipboard -o` | |
| - Windows: `powershell -command "Get-Clipboard"` | |
| The JSON contains the exact text content of sticky notes and text labels, their positions, and their colors. This supplements the PNG by giving you precise text that might be hard to read from a screenshot. | |
| If the clipboard doesn't contain JSON data, that's fine — the PNG alone gives the model plenty to work with. Do not treat a missing clipboard as an error. | |
| ### Step 2 — Optionally get structured JSON (supplementary) | |
| The whiteboard can also provide structured JSON data that contains the exact text content of sticky notes and text labels, their positions, and their colors. This supplements the PNG by giving you precise text that might be hard to read from a screenshot. | |
| **First, ask for explicit consent** before attempting to read anything from the system clipboard. Explain that the clipboard may contain sensitive information (like passwords or tokens) from other apps. For example: | |
| > I can optionally read structured JSON about your napkin from your system clipboard to better understand the sticky notes and text. Your clipboard may contain other sensitive data (like passwords or tokens). | |
| > | |
| > Is it okay for me to read your clipboard for this napkin session, or would you prefer to paste any JSON here in the chat instead? | |
| Only if the user clearly agrees to clipboard access for this purpose should you attempt to read from the clipboard: | |
| - macOS: `pbpaste` | |
| - Linux: `xclip -selection clipboard -o` | |
| - Windows: `powershell -command "Get-Clipboard"` | |
| If the user does **not** want you to read from the clipboard, or if clipboard access isn't possible, ask them to paste any JSON exported by the napkin directly into the chat instead, and then use that pasted JSON. | |
| If the clipboard (or pasted content) doesn't contain valid JSON data, that's fine — the PNG alone gives the model plenty to work with. Do not treat missing or invalid JSON as an error. |
| - 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' 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) |
| @@ -0,0 +1,45 @@ | |||
| --- | |||
| description: 'Custom agent for building Python Notebooks in VS Code that demonstrate Azure and AI features' | |||
| name: 'Python Notebook Sample Builder' | |||
There was a problem hiding this comment.
The agent front matter does not specify a model. While this may be optional, other agents in this PR pin a model (e.g., GPT-4.1). Recommendation: add a model field (or document why it’s omitted) to make behavior more reproducible across environments.
| name: 'Python Notebook Sample Builder' | |
| name: 'Python Notebook Sample Builder' | |
| model: 'gpt-4.1' |
Pull Request Checklist
npm startand verified that README.md is up to date.Description
Adds a Python Notebook Sample Builder agent that streamlines the creation of interactive Python notebooks for Azure and AI features.
I use this agent regularly when preparing hands-on code samples that demonstrate Azure capabilities (e.g. Containers, Microsoft Foundry, Cosmos DB, etc.). It enforces a "test before you write" workflow (every code snippet is validated in the terminal before it goes into a notebook cell) and emphasizes visualization so that the output is immediately useful and engaging.
The agent is purpose-built for VS Code with Jupyter tooling (notebook creation, package installation, kernel configuration) and integrates Microsoft Learn MCP for documentation lookups. All generated code targets publicly available SDKs and services.
Thought it could be useful for the broader community, especially anyone who builds demo notebooks, workshop content, or learning materials around Azure and AI.
Type of Contribution