Added da-RubberDuck sample#127
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new Microsoft 365 Copilot declarative agent sample (“Rubber Duck Debugging Assistant”) that guides developers through rubber-duck debugging via reflective questions.
Changes:
- New Agents Toolkit project configuration (
m365agents.yml) and environment sample for provisioning/publishing. - New Teams app package artifacts (Teams manifest, declarative agent definition, instructions, and icons).
- New sample metadata and documentation (README +
assets/sample.json).
Reviewed changes
Copilot reviewed 8 out of 12 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| samples/da-RubberDuck/m365agents.yml | Defines provision/publish lifecycles for packaging, updating, and extending the app to M365. |
| samples/da-RubberDuck/env/.env.dev.sample | Provides baseline environment variables for dev provisioning. |
| samples/da-RubberDuck/assets/sample.json | Registers sample metadata for catalog/discovery. |
| samples/da-RubberDuck/appPackage/manifest.json | Teams app manifest that wires the declarative agent into copilotAgents. |
| samples/da-RubberDuck/appPackage/declarativeAgent.json | Declarative agent definition pointing to the instruction file. |
| samples/da-RubberDuck/appPackage/instruction.txt | Agent behavior/instruction prompt for rubber-duck debugging interaction style. |
| samples/da-RubberDuck/appPackage/color.png | App icon (color). |
| samples/da-RubberDuck/appPackage/outline.png | App icon (outline). |
| samples/da-RubberDuck/README.md | End-user setup and usage documentation for the sample. |
| samples/da-RubberDuck/.gitignore | Ignores build outputs, local env files, and dependencies. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # Visit https://aka.ms/teamsfx-v5.0-guide for details on this file | ||
| # Visit https://aka.ms/teamsfx-actions for details on actions | ||
| version: v1.11 | ||
|
|
There was a problem hiding this comment.
additionalMetadata.sampleTag is missing from this project config. Other samples include it (e.g., samples/da-CanvasStudent/m365agents.yml:6-8) and it’s used for consistent sample identification/tagging; consider adding additionalMetadata: { sampleTag: pnp-copilot-pro-dev:da-RubberDuck } near the top.
| additionalMetadata: | |
| sampleTag: pnp-copilot-pro-dev:da-RubberDuck |
| # Build app package with latest env value | ||
| - uses: teamsApp/zipAppPackage | ||
| with: | ||
| # Path to manifest template | ||
| manifestPath: ./appPackage/manifest.json | ||
| outputZipPath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip | ||
| outputFolder: ./appPackage/build | ||
| # Update the app manifest to an existing app in Developer Portal. | ||
| # Will use the app id in manifest file to determine which app to update. | ||
| - uses: teamsApp/update | ||
| with: | ||
| # Relative path to this file. This is the path for built zip file. | ||
| appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip | ||
| # Extend your app to Outlook and the Microsoft 365 app |
There was a problem hiding this comment.
The provision lifecycle is missing a teamsApp/validateAppPackage step after teamsApp/zipAppPackage. All other Agents Toolkit sample configs include this validation (e.g., samples/da-CanvasStudent/m365agents.yml:43-47), and omitting it can allow invalid manifests/app packages to be applied.
| # Build app package with latest env value | ||
| - uses: teamsApp/zipAppPackage | ||
| with: | ||
| # Path to manifest template | ||
| manifestPath: ./appPackage/manifest.json | ||
| outputZipPath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip | ||
| outputFolder: ./appPackage/build | ||
| # Apply the app manifest to an existing app in | ||
| # Developer Portal. | ||
| # Will use the app id in manifest file to determine which app to update. | ||
| - uses: teamsApp/update | ||
| with: | ||
| # Relative path to this file. This is the path for built zip file. | ||
| appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip | ||
| # Publish the app to |
There was a problem hiding this comment.
The publish lifecycle also lacks a teamsApp/validateAppPackage step between zipAppPackage and teamsApp/update (and before publishing). This validation is consistently present in other samples and helps catch schema/manifest issues before attempting update/publish.
| "full": "Rubber duck is your personal coding assistant that helps you debug and understand your code by explaining it in simple terms." | ||
| }, | ||
| "accentColor": "#FFFFFF", | ||
| "supportsChannelFeatures": "tier1", |
There was a problem hiding this comment.
supportsChannelFeatures is set to the string value "tier1", which doesn’t match how other Teams app manifests in this repo are structured and is likely to fail schema validation. Consider removing this property or updating it to the correct type/value per the Teams manifest schema you’re targeting.
| "supportsChannelFeatures": "tier1", |
Fixed typo Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Fixed typo Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@GuidoZam thank you for your contribution. I've marked the PR as draft, can you take a look at the comments and mark as ready for review when resolved, thanks. |
|
Merged manually — squashed into a single commit on main with review fixes applied (added sampleTag, validateAppPackage steps). Thanks for the contribution @GuidoZam! 🎉 |
This is a new sample called "Rubber Duck Debugging Assistant" for Microsoft 365 Copilot.
The sample provides a declarative agent that emulates the classic rubber duck debugging technique, helping developers debug code by guiding them through thoughtful, open-ended questions instead of providing direct solutions.