Add duplicate resource detector agentic workflow#762
Add duplicate resource detector agentic workflow#762aaronpowell wants to merge 1 commit intostagedfrom
Conversation
There was a problem hiding this comment.
Plugin directories on the staged branch should only contain:
.github/plugin/plugin.json(metadata)README.md
Agent, command, and skill files are copied in automatically when publishing to main.
Issues found:
- plugins/awesome-copilot/agents/ contains 1 file(s): meta-agentic-project-scaffold.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/awesome-copilot/commands/ contains 4 file(s): suggest-awesome-github-copilot-agents.md, suggest-awesome-github-copilot-instructions.md, suggest-awesome-github-copilot-prompts.md, suggest-awesome-github-copilot-skills.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/azure-cloud-development/agents/ contains 7 file(s): azure-logic-apps-expert.md, azure-principal-architect.md, azure-saas-architect.md, azure-verified-modules-bicep.md, azure-verified-modules-terraform.md, terraform-azure-implement.md, terraform-azure-planning.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/azure-cloud-development/commands/ contains 2 file(s): az-cost-optimize.md, azure-resource-health-diagnose.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/cast-imaging/agents/ contains 3 file(s): cast-imaging-impact-analysis.md, cast-imaging-software-discovery.md, cast-imaging-structural-quality-advisor.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/clojure-interactive-programming/agents/ contains 1 file(s): clojure-interactive-programming.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/clojure-interactive-programming/commands/ contains 1 file(s): remember-interactive-programming.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/context-engineering/agents/ contains 1 file(s): context-architect.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/context-engineering/commands/ contains 3 file(s): context-map.md, refactor-plan.md, what-context-needed.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/copilot-sdk/skills/ contains 1 file(s): copilot-sdk. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/csharp-dotnet-development/agents/ contains 1 file(s): expert-dotnet-software-engineer.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/csharp-dotnet-development/commands/ contains 8 file(s): aspnet-minimal-api-openapi.md, csharp-async.md, csharp-mstest.md, csharp-nunit.md, csharp-tunit.md, csharp-xunit.md, dotnet-best-practices.md, dotnet-upgrade.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/csharp-mcp-development/agents/ contains 1 file(s): csharp-mcp-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/csharp-mcp-development/commands/ contains 1 file(s): csharp-mcp-server-generator.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/database-data-management/agents/ contains 2 file(s): ms-sql-dba.md, postgresql-dba.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/database-data-management/commands/ contains 4 file(s): postgresql-code-review.md, postgresql-optimization.md, sql-code-review.md, sql-optimization.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/dataverse-sdk-for-python/commands/ contains 4 file(s): dataverse-python-advanced-patterns.md, dataverse-python-production-code.md, dataverse-python-quickstart.md, dataverse-python-usecase-builder.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/devops-oncall/agents/ contains 1 file(s): azure-principal-architect.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/devops-oncall/commands/ contains 2 file(s): azure-resource-health-diagnose.md, multi-stage-dockerfile.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/edge-ai-tasks/agents/ contains 2 file(s): task-planner.md, task-researcher.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/frontend-web-dev/agents/ contains 2 file(s): electron-angular-native.md, expert-react-frontend-engineer.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/frontend-web-dev/commands/ contains 2 file(s): playwright-explore-website.md, playwright-generate-test.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/gem-team/agents/ contains 8 file(s): gem-browser-tester.md, gem-devops.md, gem-documentation-writer.md, gem-implementer.md, gem-orchestrator.md, gem-planner.md, gem-researcher.md, gem-reviewer.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/go-mcp-development/agents/ contains 1 file(s): go-mcp-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/go-mcp-development/commands/ contains 1 file(s): go-mcp-server-generator.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/java-development/commands/ contains 4 file(s): create-spring-boot-java-project.md, java-docs.md, java-junit.md, java-springboot.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/java-mcp-development/agents/ contains 1 file(s): java-mcp-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/java-mcp-development/commands/ contains 1 file(s): java-mcp-server-generator.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/kotlin-mcp-development/agents/ contains 1 file(s): kotlin-mcp-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/kotlin-mcp-development/commands/ contains 1 file(s): kotlin-mcp-server-generator.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/mcp-m365-copilot/agents/ contains 1 file(s): mcp-m365-agent-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/mcp-m365-copilot/commands/ contains 3 file(s): mcp-create-adaptive-cards.md, mcp-create-declarative-agent.md, mcp-deploy-manage-agents.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/openapi-to-application-csharp-dotnet/agents/ contains 1 file(s): openapi-to-application.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/openapi-to-application-csharp-dotnet/commands/ contains 1 file(s): openapi-to-application-code.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/openapi-to-application-go/agents/ contains 1 file(s): openapi-to-application.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/openapi-to-application-go/commands/ contains 1 file(s): openapi-to-application-code.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/openapi-to-application-java-spring-boot/agents/ contains 1 file(s): openapi-to-application.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/openapi-to-application-java-spring-boot/commands/ contains 1 file(s): openapi-to-application-code.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/openapi-to-application-nodejs-nestjs/agents/ contains 1 file(s): openapi-to-application.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/openapi-to-application-nodejs-nestjs/commands/ contains 1 file(s): openapi-to-application-code.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/openapi-to-application-python-fastapi/agents/ contains 1 file(s): openapi-to-application.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/openapi-to-application-python-fastapi/commands/ contains 1 file(s): openapi-to-application-code.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/ospo-sponsorship/skills/ contains 1 file(s): sponsor-finder. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/partners/agents/ contains 20 file(s): amplitude-experiment-implementation.md, apify-integration-expert.md, arm-migration.md, comet-opik.md, diffblue-cover.md, droid.md, dynatrace-expert.md, elasticsearch-observability.md, jfrog-sec.md, launchdarkly-flag-cleanup.md, lingodotdev-i18n.md, monday-bug-fixer.md, mongodb-performance-advisor.md, neo4j-docker-client-generator.md, neon-migration-specialist.md, neon-optimization-analyzer.md, octopus-deploy-release-notes-mcp.md, pagerduty-incident-responder.md, stackhawk-security-onboarding.md, terraform.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/php-mcp-development/agents/ contains 1 file(s): php-mcp-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/php-mcp-development/commands/ contains 1 file(s): php-mcp-server-generator.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/polyglot-test-agent/agents/ contains 8 file(s): polyglot-test-builder.md, polyglot-test-fixer.md, polyglot-test-generator.md, polyglot-test-implementer.md, polyglot-test-linter.md, polyglot-test-planner.md, polyglot-test-researcher.md, polyglot-test-tester.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/polyglot-test-agent/skills/ contains 1 file(s): polyglot-test-agent. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/power-apps-code-apps/agents/ contains 1 file(s): power-platform-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/power-apps-code-apps/commands/ contains 1 file(s): power-apps-code-app-scaffold.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/power-bi-development/agents/ contains 4 file(s): power-bi-data-modeling-expert.md, power-bi-dax-expert.md, power-bi-performance-expert.md, power-bi-visualization-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/power-bi-development/commands/ contains 4 file(s): power-bi-dax-optimization.md, power-bi-model-design-review.md, power-bi-performance-troubleshooting.md, power-bi-report-design-consultation.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/power-platform-mcp-connector-development/agents/ contains 1 file(s): power-platform-mcp-integration-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/power-platform-mcp-connector-development/commands/ contains 2 file(s): mcp-copilot-studio-server-generator.md, power-platform-mcp-connector-suite.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/project-planning/agents/ contains 7 file(s): implementation-plan.md, plan.md, planner.md, prd.md, research-technical-spike.md, task-planner.md, task-researcher.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/project-planning/commands/ contains 8 file(s): breakdown-epic-arch.md, breakdown-epic-pm.md, breakdown-feature-implementation.md, breakdown-feature-prd.md, create-github-issues-feature-from-implementation-plan.md, create-implementation-plan.md, create-technical-spike.md, update-implementation-plan.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/python-mcp-development/agents/ contains 1 file(s): python-mcp-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/python-mcp-development/commands/ contains 1 file(s): python-mcp-server-generator.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/ruby-mcp-development/agents/ contains 1 file(s): ruby-mcp-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/ruby-mcp-development/commands/ contains 1 file(s): ruby-mcp-server-generator.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/rug-agentic-workflow/agents/ contains 3 file(s): qa-subagent.md, rug-orchestrator.md, swe-subagent.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/rust-mcp-development/agents/ contains 1 file(s): rust-mcp-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/rust-mcp-development/commands/ contains 1 file(s): rust-mcp-server-generator.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/security-best-practices/commands/ contains 1 file(s): ai-prompt-engineering-safety-review.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/software-engineering-team/agents/ contains 7 file(s): se-gitops-ci-specialist.md, se-product-manager-advisor.md, se-responsible-ai-code.md, se-security-reviewer.md, se-system-architecture-reviewer.md, se-technical-writer.md, se-ux-ui-designer.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/structured-autonomy/commands/ contains 3 file(s): structured-autonomy-generate.md, structured-autonomy-implement.md, structured-autonomy-plan.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/swift-mcp-development/agents/ contains 1 file(s): swift-mcp-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/swift-mcp-development/commands/ contains 1 file(s): swift-mcp-server-generator.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/technical-spike/agents/ contains 1 file(s): research-technical-spike.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/technical-spike/commands/ contains 1 file(s): create-technical-spike.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/testing-automation/agents/ contains 4 file(s): playwright-tester.md, tdd-green.md, tdd-red.md, tdd-refactor.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/testing-automation/commands/ contains 5 file(s): ai-prompt-engineering-safety-review.md, csharp-nunit.md, java-junit.md, playwright-explore-website.md, playwright-generate-test.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/typescript-mcp-development/agents/ contains 1 file(s): typescript-mcp-expert.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/typescript-mcp-development/commands/ contains 1 file(s): typescript-mcp-server-generator.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
- plugins/typespec-m365-copilot/commands/ contains 3 file(s): typespec-api-operations.md, typespec-create-agent.md, typespec-create-api-plugin.md. Plugin directories on staged should only contain .github/plugin/plugin.json and README.md. Agent, command, and skill files are materialized automatically during publish to main.
How to fix
It looks like your branch may be based on main (which contains materialized files). Here are two options:
Option 1: Rebase onto staged (recommended if you have few commits)
git fetch origin staged
git rebase --onto origin/staged origin/main overlapping-items-workflow
git push --force-with-leaseOption 2: Remove the extra files manually
# Remove materialized files from plugin directories
find plugins/ -mindepth 2 -maxdepth 2 -type d \( -name agents -o -name commands -o -name skills \) -exec rm -rf {} +
# Remove any symlinks
find plugins/ -type l -delete
git add -A && git commit -m "fix: remove materialized plugin files"
git pushThere was a problem hiding this comment.
Pull request overview
This PR adds a new GitHub Agentic Workflow that performs weekly automated scans to identify potential duplicate resources across agents, prompts, instructions, and skills, creating GitHub issues with grouped findings while excluding previously-reviewed pairs.
Changes:
- New agentic workflow with weekly scheduling and manual trigger support
- Automated duplicate detection using name, description, and content similarity
- Integration with existing duplicate-review issues to avoid re-flagging accepted pairs
| issues: read | ||
| tools: | ||
| github: | ||
| toolsets: [repos, issues] |
There was a problem hiding this comment.
The field name toolsets is ambiguous in the GitHub tools context. Based on GitHub API conventions, this should likely be scopes or endpoints to clearly indicate which GitHub API capabilities are being requested.
| toolsets: [repos, issues] | |
| scopes: [repos, issues] |
Weekly scheduled workflow that scans agents, prompts, instructions, and skills for potential duplicates based on name, description, and content similarity. Reports findings as a GitHub issue with task list checkboxes for review. Checks previous duplicate-review issues to exclude known accepted pairs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
5878e21 to
3436da9
Compare
Summary
Adds a new GitHub Agentic Workflow that scans the repository weekly for potential duplicate resources.
What it does
workflow_dispatch)duplicate-reviewto find pairs already reviewed/accepted and excludes them from the reportduplicate-reviewfor easy backlog discoverynoopif no duplicates are foundDuplicate detection signals
Resources are flagged when they share two or more of:
namefieldsdescriptionfieldsFiles
.github/workflows/duplicate-resource-detector.md— agentic workflow definition.github/workflows/duplicate-resource-detector.lock.yml— compiled GitHub Actions workflow (generated bygh aw compile)