Skip to content

Added da-RubberDuck sample#127

Closed
GuidoZam wants to merge 4 commits into
pnp:mainfrom
GuidoZam:guidozam-da-RubberDuck
Closed

Added da-RubberDuck sample#127
GuidoZam wants to merge 4 commits into
pnp:mainfrom
GuidoZam:guidozam-da-RubberDuck

Conversation

@GuidoZam
Copy link
Copy Markdown
Contributor

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.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread samples/da-RubberDuck/appPackage/declarativeAgent.json Outdated
# 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

Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
additionalMetadata:
sampleTag: pnp-copilot-pro-dev:da-RubberDuck

Copilot uses AI. Check for mistakes.
Comment on lines +20 to +33
# 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
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Comment on lines +48 to +62
# 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
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
"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",
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
"supportsChannelFeatures": "tier1",

Copilot uses AI. Check for mistakes.
Comment thread samples/da-RubberDuck/appPackage/manifest.json Outdated
GuidoZam and others added 2 commits April 20, 2026 16:42
Fixed typo

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Fixed typo

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@garrytrinder garrytrinder marked this pull request as draft April 20, 2026 15:01
@garrytrinder
Copy link
Copy Markdown
Member

@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.

@garrytrinder
Copy link
Copy Markdown
Member

Merged manually — squashed into a single commit on main with review fixes applied (added sampleTag, validateAppPackage steps). Thanks for the contribution @GuidoZam! 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants