From 9d1df57ebc2001f7b084b62d9bb63741b7967088 Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Wed, 18 Feb 2026 14:11:22 +1100 Subject: [PATCH] refactor: migrate plugins to Claude Code spec format - Move plugin manifests from .github/plugin/ to .claude-plugin/ - Convert items[] to Claude Code spec fields (agents, commands, skills) - Rename tags to keywords, drop display/featured/instructions from plugins - Delete all symlinks and materialized files from plugin directories - Add eng/materialize-plugins.mjs to copy source files into plugin dirs at publish time - Add .github/workflows/publish.yml for staged->main publishing - Update CI triggers to target staged branch - Update validation, creation, marketplace, and README generation scripts - Update CONTRIBUTING.md and AGENTS.md documentation - Include all new content from main (polyglot-test-agent, gem-browser-tester, fabric-lakehouse, fluentui-blazor, quasi-coder, transloadit-media-processing, make-repo-contribution hardening, website logo/gradient changes) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/check-line-endings.yml | 4 +- .github/workflows/codespell.yml | 4 +- .github/workflows/publish.yml | 49 +++++ .github/workflows/validate-readme.yml | 1 + AGENTS.md | 13 +- CONTRIBUTING.md | 86 ++++----- docs/README.plugins.md | 80 ++++----- eng/create-plugin.mjs | 47 +++-- eng/generate-marketplace.mjs | 4 +- eng/generate-website-data.mjs | 28 +-- eng/materialize-plugins.mjs | 167 ++++++++++++++++++ eng/update-readme.mjs | 18 +- eng/validate-plugins.mjs | 144 +++++++-------- .../.github/plugin/plugin.json | 36 +--- .../agents/meta-agentic-project-scaffold.md | 1 - .../suggest-awesome-github-copilot-agents.md | 1 - ...est-awesome-github-copilot-instructions.md | 1 - .../suggest-awesome-github-copilot-prompts.md | 1 - .../suggest-awesome-github-copilot-skills.md | 1 - .../.github/plugin/plugin.json | 91 ++-------- .../agents/azure-logic-apps-expert.md | 1 - .../agents/azure-principal-architect.md | 1 - .../agents/azure-saas-architect.md | 1 - .../agents/azure-verified-modules-bicep.md | 1 - .../azure-verified-modules-terraform.md | 1 - .../agents/terraform-azure-implement.md | 1 - .../agents/terraform-azure-planning.md | 1 - .../commands/az-cost-optimize.md | 1 - .../azure-resource-health-diagnose.md | 1 - .../cast-imaging/.github/plugin/plugin.json | 26 +-- .../agents/cast-imaging-impact-analysis.md | 1 - .../agents/cast-imaging-software-discovery.md | 1 - ...cast-imaging-structural-quality-advisor.md | 1 - .../.github/plugin/plugin.json | 24 +-- .../agents/clojure-interactive-programming.md | 1 - .../remember-interactive-programming.md | 1 - .../.github/plugin/plugin.json | 38 +--- .../agents/context-architect.md | 1 - .../commands/context-map.md | 1 - .../commands/refactor-plan.md | 1 - .../commands/what-context-needed.md | 1 - .../copilot-sdk/.github/plugin/plugin.json | 30 +--- plugins/copilot-sdk/skills/copilot-sdk | 1 - .../.github/plugin/plugin.json | 68 ++----- .../agents/expert-dotnet-software-engineer.md | 1 - .../commands/aspnet-minimal-api-openapi.md | 1 - .../commands/csharp-async.md | 1 - .../commands/csharp-mstest.md | 1 - .../commands/csharp-nunit.md | 1 - .../commands/csharp-tunit.md | 1 - .../commands/csharp-xunit.md | 1 - .../commands/dotnet-best-practices.md | 1 - .../commands/dotnet-upgrade.md | 1 - .../.github/plugin/plugin.json | 25 +-- .../agents/csharp-mcp-expert.md | 1 - .../commands/csharp-mcp-server-generator.md | 1 - .../.github/plugin/plugin.json | 48 ++--- .../agents/ms-sql-dba.md | 1 - .../agents/postgresql-dba.md | 1 - .../commands/postgresql-code-review.md | 1 - .../commands/postgresql-optimization.md | 1 - .../commands/sql-code-review.md | 1 - .../commands/sql-optimization.md | 1 - .../.github/plugin/plugin.json | 80 +-------- .../dataverse-python-advanced-patterns.md | 1 - .../dataverse-python-production-code.md | 1 - .../commands/dataverse-python-quickstart.md | 1 - .../dataverse-python-usecase-builder.md | 1 - .../devops-oncall/.github/plugin/plugin.json | 33 +--- .../agents/azure-principal-architect.md | 1 - .../azure-resource-health-diagnose.md | 1 - .../commands/multi-stage-dockerfile.md | 1 - .../edge-ai-tasks/.github/plugin/plugin.json | 25 +-- plugins/edge-ai-tasks/agents/task-planner.md | 1 - .../edge-ai-tasks/agents/task-researcher.md | 1 - .../.github/plugin/plugin.json | 58 +----- .../agents/electron-angular-native.md | 1 - .../agents/expert-react-frontend-engineer.md | 1 - .../commands/playwright-explore-website.md | 1 - .../commands/playwright-generate-test.md | 1 - plugins/gem-team/.github/plugin/plugin.json | 56 ++---- plugins/gem-team/agents/gem-browser-tester.md | 1 - plugins/gem-team/agents/gem-devops.md | 1 - .../agents/gem-documentation-writer.md | 1 - plugins/gem-team/agents/gem-implementer.md | 1 - plugins/gem-team/agents/gem-orchestrator.md | 1 - plugins/gem-team/agents/gem-planner.md | 1 - plugins/gem-team/agents/gem-researcher.md | 1 - plugins/gem-team/agents/gem-reviewer.md | 1 - .../.github/plugin/plugin.json | 25 +-- .../agents/go-mcp-expert.md | 1 - .../commands/go-mcp-server-generator.md | 1 - .../.github/plugin/plugin.json | 60 +------ .../create-spring-boot-java-project.md | 1 - .../java-development/commands/java-docs.md | 1 - .../java-development/commands/java-junit.md | 1 - .../commands/java-springboot.md | 1 - .../.github/plugin/plugin.json | 25 +-- .../agents/java-mcp-expert.md | 1 - .../commands/java-mcp-server-generator.md | 1 - .../.github/plugin/plugin.json | 25 +-- .../agents/kotlin-mcp-expert.md | 1 - .../commands/kotlin-mcp-server-generator.md | 1 - .../.github/plugin/plugin.json | 34 +--- .../agents/mcp-m365-agent-expert.md | 1 - .../commands/mcp-create-adaptive-cards.md | 1 - .../commands/mcp-create-declarative-agent.md | 1 - .../commands/mcp-deploy-manage-agents.md | 1 - .../.github/plugin/plugin.json | 24 +-- .../agents/openapi-to-application.md | 1 - .../commands/openapi-to-application-code.md | 1 - .../.github/plugin/plugin.json | 24 +-- .../agents/openapi-to-application.md | 1 - .../commands/openapi-to-application-code.md | 1 - .../.github/plugin/plugin.json | 24 +-- .../agents/openapi-to-application.md | 1 - .../commands/openapi-to-application-code.md | 1 - .../.github/plugin/plugin.json | 24 +-- .../agents/openapi-to-application.md | 1 - .../commands/openapi-to-application-code.md | 1 - .../.github/plugin/plugin.json | 24 +-- .../agents/openapi-to-application.md | 1 - .../commands/openapi-to-application-code.md | 1 - .../.github/plugin/plugin.json | 5 +- .../ospo-sponsorship/skills/sponsor-finder | 1 - plugins/partners/.github/plugin/plugin.json | 109 +++--------- .../amplitude-experiment-implementation.md | 1 - .../agents/apify-integration-expert.md | 1 - plugins/partners/agents/arm-migration.md | 1 - plugins/partners/agents/comet-opik.md | 1 - plugins/partners/agents/diffblue-cover.md | 1 - plugins/partners/agents/droid.md | 1 - plugins/partners/agents/dynatrace-expert.md | 1 - .../agents/elasticsearch-observability.md | 1 - plugins/partners/agents/jfrog-sec.md | 1 - .../agents/launchdarkly-flag-cleanup.md | 1 - plugins/partners/agents/lingodotdev-i18n.md | 1 - plugins/partners/agents/monday-bug-fixer.md | 1 - .../agents/mongodb-performance-advisor.md | 1 - .../agents/neo4j-docker-client-generator.md | 1 - .../agents/neon-migration-specialist.md | 1 - .../agents/neon-optimization-analyzer.md | 1 - .../octopus-deploy-release-notes-mcp.md | 1 - .../agents/pagerduty-incident-responder.md | 1 - .../agents/stackhawk-security-onboarding.md | 1 - plugins/partners/agents/terraform.md | 1 - .../.github/plugin/plugin.json | 76 +------- .../.github/plugin/plugin.json | 24 +-- .../agents/php-mcp-expert.md | 1 - .../commands/php-mcp-server-generator.md | 1 - .../.github/plugin/plugin.json | 59 ++----- .../agents/polyglot-test-builder.md | 1 - .../agents/polyglot-test-fixer.md | 1 - .../agents/polyglot-test-generator.md | 1 - .../agents/polyglot-test-implementer.md | 1 - .../agents/polyglot-test-linter.md | 1 - .../agents/polyglot-test-planner.md | 1 - .../agents/polyglot-test-researcher.md | 1 - .../agents/polyglot-test-tester.md | 1 - .../commands/unit-test-generation.md | 1 - .../skills/polyglot-test-agent | 1 - .../.github/plugin/plugin.json | 24 +-- .../agents/power-platform-expert.md | 1 - .../commands/power-apps-code-app-scaffold.md | 1 - .../.github/plugin/plugin.json | 74 ++------ .../agents/power-bi-data-modeling-expert.md | 1 - .../agents/power-bi-dax-expert.md | 1 - .../agents/power-bi-performance-expert.md | 1 - .../agents/power-bi-visualization-expert.md | 1 - .../commands/power-bi-dax-optimization.md | 1 - .../commands/power-bi-model-design-review.md | 1 - .../power-bi-performance-troubleshooting.md | 1 - .../power-bi-report-design-consultation.md | 1 - .../.github/plugin/plugin.json | 29 +-- .../power-platform-mcp-integration-expert.md | 1 - .../mcp-copilot-studio-server-generator.md | 1 - .../power-platform-mcp-connector-suite.md | 1 - .../.github/plugin/plugin.json | 93 ++-------- .../agents/implementation-plan.md | 1 - plugins/project-planning/agents/plan.md | 1 - plugins/project-planning/agents/planner.md | 1 - plugins/project-planning/agents/prd.md | 1 - .../agents/research-technical-spike.md | 1 - .../project-planning/agents/task-planner.md | 1 - .../agents/task-researcher.md | 1 - .../commands/breakdown-epic-arch.md | 1 - .../commands/breakdown-epic-pm.md | 1 - .../breakdown-feature-implementation.md | 1 - .../commands/breakdown-feature-prd.md | 1 - ...issues-feature-from-implementation-plan.md | 1 - .../commands/create-implementation-plan.md | 1 - .../commands/create-technical-spike.md | 1 - .../commands/update-implementation-plan.md | 1 - .../.github/plugin/plugin.json | 25 +-- .../agents/python-mcp-expert.md | 1 - .../commands/python-mcp-server-generator.md | 1 - .../.github/plugin/plugin.json | 25 +-- .../agents/ruby-mcp-expert.md | 1 - .../commands/ruby-mcp-server-generator.md | 1 - .../.github/plugin/plugin.json | 20 +-- .../agents/qa-subagent.md | 1 - .../agents/rug-orchestrator.md | 1 - .../agents/swe-subagent.md | 1 - .../.github/plugin/plugin.json | 25 +-- .../agents/rust-mcp-expert.md | 1 - .../commands/rust-mcp-server-generator.md | 1 - .../.github/plugin/plugin.json | 33 +--- .../ai-prompt-engineering-safety-review.md | 1 - .../.github/plugin/plugin.json | 44 +---- .../agents/se-gitops-ci-specialist.md | 1 - .../agents/se-product-manager-advisor.md | 1 - .../agents/se-responsible-ai-code.md | 1 - .../agents/se-security-reviewer.md | 1 - .../agents/se-system-architecture-reviewer.md | 1 - .../agents/se-technical-writer.md | 1 - .../agents/se-ux-ui-designer.md | 1 - .../.github/plugin/plugin.json | 7 +- .../commands/structured-autonomy-generate.md | 1 - .../commands/structured-autonomy-implement.md | 1 - .../commands/structured-autonomy-plan.md | 1 - .../.github/plugin/plugin.json | 25 +-- .../agents/swift-mcp-expert.md | 1 - .../commands/swift-mcp-server-generator.md | 1 - .../.github/plugin/plugin.json | 20 +-- .../agents/research-technical-spike.md | 1 - .../commands/create-technical-spike.md | 1 - .../.github/plugin/plugin.json | 63 ++----- .../agents/playwright-tester.md | 1 - .../testing-automation/agents/tdd-green.md | 1 - plugins/testing-automation/agents/tdd-red.md | 1 - .../testing-automation/agents/tdd-refactor.md | 1 - .../ai-prompt-engineering-safety-review.md | 1 - .../commands/csharp-nunit.md | 1 - .../testing-automation/commands/java-junit.md | 1 - .../commands/playwright-explore-website.md | 1 - .../commands/playwright-generate-test.md | 1 - .../.github/plugin/plugin.json | 25 +-- .../agents/typescript-mcp-expert.md | 1 - .../typescript-mcp-server-generator.md | 1 - .../.github/plugin/plugin.json | 27 +-- .../commands/typespec-api-operations.md | 1 - .../commands/typespec-create-agent.md | 1 - .../commands/typespec-create-api-plugin.md | 1 - 243 files changed, 753 insertions(+), 1836 deletions(-) create mode 100644 .github/workflows/publish.yml create mode 100644 eng/materialize-plugins.mjs delete mode 120000 plugins/awesome-copilot/agents/meta-agentic-project-scaffold.md delete mode 120000 plugins/awesome-copilot/commands/suggest-awesome-github-copilot-agents.md delete mode 120000 plugins/awesome-copilot/commands/suggest-awesome-github-copilot-instructions.md delete mode 120000 plugins/awesome-copilot/commands/suggest-awesome-github-copilot-prompts.md delete mode 120000 plugins/awesome-copilot/commands/suggest-awesome-github-copilot-skills.md delete mode 120000 plugins/azure-cloud-development/agents/azure-logic-apps-expert.md delete mode 120000 plugins/azure-cloud-development/agents/azure-principal-architect.md delete mode 120000 plugins/azure-cloud-development/agents/azure-saas-architect.md delete mode 120000 plugins/azure-cloud-development/agents/azure-verified-modules-bicep.md delete mode 120000 plugins/azure-cloud-development/agents/azure-verified-modules-terraform.md delete mode 120000 plugins/azure-cloud-development/agents/terraform-azure-implement.md delete mode 120000 plugins/azure-cloud-development/agents/terraform-azure-planning.md delete mode 120000 plugins/azure-cloud-development/commands/az-cost-optimize.md delete mode 120000 plugins/azure-cloud-development/commands/azure-resource-health-diagnose.md delete mode 120000 plugins/cast-imaging/agents/cast-imaging-impact-analysis.md delete mode 120000 plugins/cast-imaging/agents/cast-imaging-software-discovery.md delete mode 120000 plugins/cast-imaging/agents/cast-imaging-structural-quality-advisor.md delete mode 120000 plugins/clojure-interactive-programming/agents/clojure-interactive-programming.md delete mode 120000 plugins/clojure-interactive-programming/commands/remember-interactive-programming.md delete mode 120000 plugins/context-engineering/agents/context-architect.md delete mode 120000 plugins/context-engineering/commands/context-map.md delete mode 120000 plugins/context-engineering/commands/refactor-plan.md delete mode 120000 plugins/context-engineering/commands/what-context-needed.md delete mode 120000 plugins/copilot-sdk/skills/copilot-sdk delete mode 120000 plugins/csharp-dotnet-development/agents/expert-dotnet-software-engineer.md delete mode 120000 plugins/csharp-dotnet-development/commands/aspnet-minimal-api-openapi.md delete mode 120000 plugins/csharp-dotnet-development/commands/csharp-async.md delete mode 120000 plugins/csharp-dotnet-development/commands/csharp-mstest.md delete mode 120000 plugins/csharp-dotnet-development/commands/csharp-nunit.md delete mode 120000 plugins/csharp-dotnet-development/commands/csharp-tunit.md delete mode 120000 plugins/csharp-dotnet-development/commands/csharp-xunit.md delete mode 120000 plugins/csharp-dotnet-development/commands/dotnet-best-practices.md delete mode 120000 plugins/csharp-dotnet-development/commands/dotnet-upgrade.md delete mode 120000 plugins/csharp-mcp-development/agents/csharp-mcp-expert.md delete mode 120000 plugins/csharp-mcp-development/commands/csharp-mcp-server-generator.md delete mode 120000 plugins/database-data-management/agents/ms-sql-dba.md delete mode 120000 plugins/database-data-management/agents/postgresql-dba.md delete mode 120000 plugins/database-data-management/commands/postgresql-code-review.md delete mode 120000 plugins/database-data-management/commands/postgresql-optimization.md delete mode 120000 plugins/database-data-management/commands/sql-code-review.md delete mode 120000 plugins/database-data-management/commands/sql-optimization.md delete mode 120000 plugins/dataverse-sdk-for-python/commands/dataverse-python-advanced-patterns.md delete mode 120000 plugins/dataverse-sdk-for-python/commands/dataverse-python-production-code.md delete mode 120000 plugins/dataverse-sdk-for-python/commands/dataverse-python-quickstart.md delete mode 120000 plugins/dataverse-sdk-for-python/commands/dataverse-python-usecase-builder.md delete mode 120000 plugins/devops-oncall/agents/azure-principal-architect.md delete mode 120000 plugins/devops-oncall/commands/azure-resource-health-diagnose.md delete mode 120000 plugins/devops-oncall/commands/multi-stage-dockerfile.md delete mode 120000 plugins/edge-ai-tasks/agents/task-planner.md delete mode 120000 plugins/edge-ai-tasks/agents/task-researcher.md delete mode 120000 plugins/frontend-web-dev/agents/electron-angular-native.md delete mode 120000 plugins/frontend-web-dev/agents/expert-react-frontend-engineer.md delete mode 120000 plugins/frontend-web-dev/commands/playwright-explore-website.md delete mode 120000 plugins/frontend-web-dev/commands/playwright-generate-test.md delete mode 120000 plugins/gem-team/agents/gem-browser-tester.md delete mode 120000 plugins/gem-team/agents/gem-devops.md delete mode 120000 plugins/gem-team/agents/gem-documentation-writer.md delete mode 120000 plugins/gem-team/agents/gem-implementer.md delete mode 120000 plugins/gem-team/agents/gem-orchestrator.md delete mode 120000 plugins/gem-team/agents/gem-planner.md delete mode 120000 plugins/gem-team/agents/gem-researcher.md delete mode 120000 plugins/gem-team/agents/gem-reviewer.md delete mode 120000 plugins/go-mcp-development/agents/go-mcp-expert.md delete mode 120000 plugins/go-mcp-development/commands/go-mcp-server-generator.md delete mode 120000 plugins/java-development/commands/create-spring-boot-java-project.md delete mode 120000 plugins/java-development/commands/java-docs.md delete mode 120000 plugins/java-development/commands/java-junit.md delete mode 120000 plugins/java-development/commands/java-springboot.md delete mode 120000 plugins/java-mcp-development/agents/java-mcp-expert.md delete mode 120000 plugins/java-mcp-development/commands/java-mcp-server-generator.md delete mode 120000 plugins/kotlin-mcp-development/agents/kotlin-mcp-expert.md delete mode 120000 plugins/kotlin-mcp-development/commands/kotlin-mcp-server-generator.md delete mode 120000 plugins/mcp-m365-copilot/agents/mcp-m365-agent-expert.md delete mode 120000 plugins/mcp-m365-copilot/commands/mcp-create-adaptive-cards.md delete mode 120000 plugins/mcp-m365-copilot/commands/mcp-create-declarative-agent.md delete mode 120000 plugins/mcp-m365-copilot/commands/mcp-deploy-manage-agents.md delete mode 120000 plugins/openapi-to-application-csharp-dotnet/agents/openapi-to-application.md delete mode 120000 plugins/openapi-to-application-csharp-dotnet/commands/openapi-to-application-code.md delete mode 120000 plugins/openapi-to-application-go/agents/openapi-to-application.md delete mode 120000 plugins/openapi-to-application-go/commands/openapi-to-application-code.md delete mode 120000 plugins/openapi-to-application-java-spring-boot/agents/openapi-to-application.md delete mode 120000 plugins/openapi-to-application-java-spring-boot/commands/openapi-to-application-code.md delete mode 120000 plugins/openapi-to-application-nodejs-nestjs/agents/openapi-to-application.md delete mode 120000 plugins/openapi-to-application-nodejs-nestjs/commands/openapi-to-application-code.md delete mode 120000 plugins/openapi-to-application-python-fastapi/agents/openapi-to-application.md delete mode 120000 plugins/openapi-to-application-python-fastapi/commands/openapi-to-application-code.md delete mode 120000 plugins/ospo-sponsorship/skills/sponsor-finder delete mode 120000 plugins/partners/agents/amplitude-experiment-implementation.md delete mode 120000 plugins/partners/agents/apify-integration-expert.md delete mode 120000 plugins/partners/agents/arm-migration.md delete mode 120000 plugins/partners/agents/comet-opik.md delete mode 120000 plugins/partners/agents/diffblue-cover.md delete mode 120000 plugins/partners/agents/droid.md delete mode 120000 plugins/partners/agents/dynatrace-expert.md delete mode 120000 plugins/partners/agents/elasticsearch-observability.md delete mode 120000 plugins/partners/agents/jfrog-sec.md delete mode 120000 plugins/partners/agents/launchdarkly-flag-cleanup.md delete mode 120000 plugins/partners/agents/lingodotdev-i18n.md delete mode 120000 plugins/partners/agents/monday-bug-fixer.md delete mode 120000 plugins/partners/agents/mongodb-performance-advisor.md delete mode 120000 plugins/partners/agents/neo4j-docker-client-generator.md delete mode 120000 plugins/partners/agents/neon-migration-specialist.md delete mode 120000 plugins/partners/agents/neon-optimization-analyzer.md delete mode 120000 plugins/partners/agents/octopus-deploy-release-notes-mcp.md delete mode 120000 plugins/partners/agents/pagerduty-incident-responder.md delete mode 120000 plugins/partners/agents/stackhawk-security-onboarding.md delete mode 120000 plugins/partners/agents/terraform.md delete mode 120000 plugins/php-mcp-development/agents/php-mcp-expert.md delete mode 120000 plugins/php-mcp-development/commands/php-mcp-server-generator.md delete mode 120000 plugins/polyglot-test-agent/agents/polyglot-test-builder.md delete mode 120000 plugins/polyglot-test-agent/agents/polyglot-test-fixer.md delete mode 120000 plugins/polyglot-test-agent/agents/polyglot-test-generator.md delete mode 120000 plugins/polyglot-test-agent/agents/polyglot-test-implementer.md delete mode 120000 plugins/polyglot-test-agent/agents/polyglot-test-linter.md delete mode 120000 plugins/polyglot-test-agent/agents/polyglot-test-planner.md delete mode 120000 plugins/polyglot-test-agent/agents/polyglot-test-researcher.md delete mode 120000 plugins/polyglot-test-agent/agents/polyglot-test-tester.md delete mode 120000 plugins/polyglot-test-agent/commands/unit-test-generation.md delete mode 120000 plugins/polyglot-test-agent/skills/polyglot-test-agent delete mode 120000 plugins/power-apps-code-apps/agents/power-platform-expert.md delete mode 120000 plugins/power-apps-code-apps/commands/power-apps-code-app-scaffold.md delete mode 120000 plugins/power-bi-development/agents/power-bi-data-modeling-expert.md delete mode 120000 plugins/power-bi-development/agents/power-bi-dax-expert.md delete mode 120000 plugins/power-bi-development/agents/power-bi-performance-expert.md delete mode 120000 plugins/power-bi-development/agents/power-bi-visualization-expert.md delete mode 120000 plugins/power-bi-development/commands/power-bi-dax-optimization.md delete mode 120000 plugins/power-bi-development/commands/power-bi-model-design-review.md delete mode 120000 plugins/power-bi-development/commands/power-bi-performance-troubleshooting.md delete mode 120000 plugins/power-bi-development/commands/power-bi-report-design-consultation.md delete mode 120000 plugins/power-platform-mcp-connector-development/agents/power-platform-mcp-integration-expert.md delete mode 120000 plugins/power-platform-mcp-connector-development/commands/mcp-copilot-studio-server-generator.md delete mode 120000 plugins/power-platform-mcp-connector-development/commands/power-platform-mcp-connector-suite.md delete mode 120000 plugins/project-planning/agents/implementation-plan.md delete mode 120000 plugins/project-planning/agents/plan.md delete mode 120000 plugins/project-planning/agents/planner.md delete mode 120000 plugins/project-planning/agents/prd.md delete mode 120000 plugins/project-planning/agents/research-technical-spike.md delete mode 120000 plugins/project-planning/agents/task-planner.md delete mode 120000 plugins/project-planning/agents/task-researcher.md delete mode 120000 plugins/project-planning/commands/breakdown-epic-arch.md delete mode 120000 plugins/project-planning/commands/breakdown-epic-pm.md delete mode 120000 plugins/project-planning/commands/breakdown-feature-implementation.md delete mode 120000 plugins/project-planning/commands/breakdown-feature-prd.md delete mode 120000 plugins/project-planning/commands/create-github-issues-feature-from-implementation-plan.md delete mode 120000 plugins/project-planning/commands/create-implementation-plan.md delete mode 120000 plugins/project-planning/commands/create-technical-spike.md delete mode 120000 plugins/project-planning/commands/update-implementation-plan.md delete mode 120000 plugins/python-mcp-development/agents/python-mcp-expert.md delete mode 120000 plugins/python-mcp-development/commands/python-mcp-server-generator.md delete mode 120000 plugins/ruby-mcp-development/agents/ruby-mcp-expert.md delete mode 120000 plugins/ruby-mcp-development/commands/ruby-mcp-server-generator.md delete mode 120000 plugins/rug-agentic-workflow/agents/qa-subagent.md delete mode 120000 plugins/rug-agentic-workflow/agents/rug-orchestrator.md delete mode 120000 plugins/rug-agentic-workflow/agents/swe-subagent.md delete mode 120000 plugins/rust-mcp-development/agents/rust-mcp-expert.md delete mode 120000 plugins/rust-mcp-development/commands/rust-mcp-server-generator.md delete mode 120000 plugins/security-best-practices/commands/ai-prompt-engineering-safety-review.md delete mode 120000 plugins/software-engineering-team/agents/se-gitops-ci-specialist.md delete mode 120000 plugins/software-engineering-team/agents/se-product-manager-advisor.md delete mode 120000 plugins/software-engineering-team/agents/se-responsible-ai-code.md delete mode 120000 plugins/software-engineering-team/agents/se-security-reviewer.md delete mode 120000 plugins/software-engineering-team/agents/se-system-architecture-reviewer.md delete mode 120000 plugins/software-engineering-team/agents/se-technical-writer.md delete mode 120000 plugins/software-engineering-team/agents/se-ux-ui-designer.md delete mode 120000 plugins/structured-autonomy/commands/structured-autonomy-generate.md delete mode 120000 plugins/structured-autonomy/commands/structured-autonomy-implement.md delete mode 120000 plugins/structured-autonomy/commands/structured-autonomy-plan.md delete mode 120000 plugins/swift-mcp-development/agents/swift-mcp-expert.md delete mode 120000 plugins/swift-mcp-development/commands/swift-mcp-server-generator.md delete mode 120000 plugins/technical-spike/agents/research-technical-spike.md delete mode 120000 plugins/technical-spike/commands/create-technical-spike.md delete mode 120000 plugins/testing-automation/agents/playwright-tester.md delete mode 120000 plugins/testing-automation/agents/tdd-green.md delete mode 120000 plugins/testing-automation/agents/tdd-red.md delete mode 120000 plugins/testing-automation/agents/tdd-refactor.md delete mode 120000 plugins/testing-automation/commands/ai-prompt-engineering-safety-review.md delete mode 120000 plugins/testing-automation/commands/csharp-nunit.md delete mode 120000 plugins/testing-automation/commands/java-junit.md delete mode 120000 plugins/testing-automation/commands/playwright-explore-website.md delete mode 120000 plugins/testing-automation/commands/playwright-generate-test.md delete mode 120000 plugins/typescript-mcp-development/agents/typescript-mcp-expert.md delete mode 120000 plugins/typescript-mcp-development/commands/typescript-mcp-server-generator.md delete mode 120000 plugins/typespec-m365-copilot/commands/typespec-api-operations.md delete mode 120000 plugins/typespec-m365-copilot/commands/typespec-create-agent.md delete mode 120000 plugins/typespec-m365-copilot/commands/typespec-create-api-plugin.md diff --git a/.github/workflows/check-line-endings.yml b/.github/workflows/check-line-endings.yml index e37a3b99..793aaa80 100644 --- a/.github/workflows/check-line-endings.yml +++ b/.github/workflows/check-line-endings.yml @@ -2,9 +2,9 @@ name: Check Line Endings on: push: - branches: [main] + branches: [staged] pull_request: - branches: [main] + branches: [staged] permissions: contents: read diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml index fa44e258..57a89fa9 100644 --- a/.github/workflows/codespell.yml +++ b/.github/workflows/codespell.yml @@ -2,9 +2,9 @@ name: Check Spelling on: push: - branches: [main] + branches: [staged] pull_request: - branches: [main] + branches: [staged] permissions: contents: read diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..3cd1b695 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,49 @@ +name: Publish to main + +on: + push: + branches: [staged] + +permissions: + contents: write + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout staged branch + uses: actions/checkout@v4 + with: + ref: staged + fetch-depth: 0 + + - name: Extract Node version from package.json + id: node-version + run: | + NODE_VERSION=$(jq -r '.engines.node // "22"' package.json) + echo "version=${NODE_VERSION}" >> "$GITHUB_OUTPUT" + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ steps.node-version.outputs.version }} + + - name: Install dependencies + run: npm ci + + - name: Materialize plugin files + run: node eng/materialize-plugins.mjs + + - name: Build generated files + run: npm run build + + - name: Fix line endings + run: bash scripts/fix-line-endings.sh + + - name: Publish to main + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add -A + git commit -m "chore: publish from staged [skip ci]" --allow-empty + git push origin HEAD:main --force diff --git a/.github/workflows/validate-readme.yml b/.github/workflows/validate-readme.yml index ab9547d1..6df185e3 100644 --- a/.github/workflows/validate-readme.yml +++ b/.github/workflows/validate-readme.yml @@ -2,6 +2,7 @@ name: Validate README.md on: pull_request: + branches: [staged] types: [opened, synchronize, reopened] paths: - "instructions/**" diff --git a/AGENTS.md b/AGENTS.md index 194a7e67..b2dbd6fd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -9,7 +9,7 @@ The Awesome GitHub Copilot repository is a community-driven collection of custom - **Instructions** - Coding standards and best practices applied to specific file patterns - **Skills** - Self-contained folders with instructions and bundled resources for specialized tasks - **Hooks** - Automated workflows triggered by specific events during development -- **Plugins** - Installable packages that group related agents, prompts, and skills around specific themes +- **Plugins** - Installable packages that group related agents, commands, and skills around specific themes ## Repository Structure @@ -101,7 +101,7 @@ All agent files (`*.agent.md`), prompt files (`*.prompt.md`), and instruction fi - plugin.json must have `name` field (matching the folder name) - plugin.json must have `description` field (describing the plugin's purpose) - plugin.json must have `version` field (semantic version, e.g., "1.0.0") -- Plugin folders can contain any combination of agents, prompts, instructions, skills, and hooks +- Plugin content is defined declaratively in plugin.json using Claude Code spec fields (`agents`, `commands`, `skills`). Source files live in top-level directories and are materialized into plugins by CI. - The `marketplace.json` file is automatically generated from all plugins during build - Plugins are discoverable and installable via GitHub Copilot CLI @@ -135,7 +135,7 @@ When adding a new agent, prompt, instruction, skill, hook, or plugin: **For Plugins:** 1. Run `npm run plugin:create -- --name ` to scaffold a new plugin -2. Add agents, prompts, skills, or hooks to the plugin folder +2. Define agents, commands, and skills in `plugin.json` using Claude Code spec fields 3. Edit the generated `plugin.json` with your metadata 4. Run `npm run plugin:validate` to validate the plugin structure 5. Run `npm run build` to update README.md and marketplace.json @@ -179,6 +179,8 @@ Before committing: When creating a pull request: +> **Important:** All pull requests should target the **`staged`** branch, not `main`. + 1. **README updates**: New files should automatically be added to the README when you run `npm run build` 2. **Front matter validation**: Ensure all markdown files have the required front matter fields 3. **File naming**: Verify all new files follow the lower-case-with-hyphens naming convention @@ -246,9 +248,8 @@ For plugins (plugins/*/): - [ ] `plugin.json` has non-empty `description` field - [ ] `plugin.json` has `version` field (semantic version, e.g., "1.0.0") - [ ] Directory name is lower case with hyphens -- [ ] If `tags` is present, it is an array of lowercase hyphenated strings -- [ ] If `items` is present, each item has `path` and `kind` fields -- [ ] The `kind` field value is one of: `prompt`, `agent`, `instruction`, `skill`, or `hook` +- [ ] If `keywords` is present, it is an array of lowercase hyphenated strings +- [ ] If `agents`, `commands`, or `skills` arrays are present, each entry is a valid relative path - [ ] The plugin does not reference non-existent files - [ ] Run `npm run build` to verify marketplace.json is updated correctly diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ef7a39d8..da0d4e91 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,31 +2,6 @@ Thank you for your interest in contributing to the Awesome GitHub Copilot repository! We welcome contributions from the community to help expand our collection of custom instructions and prompts. -## Prerequisites - -### Windows Users: Enable Symlinks - -This repository uses symbolic links for plugins. On Windows, you need to enable symlink support before cloning: - -1. **Enable Developer Mode** (recommended): - - Open **Settings** → **Update & Security** → **For developers** - - Enable **Developer Mode** - - This allows creating symlinks without administrator privileges - -2. **Configure Git to use symlinks**: - ```bash - git config --global core.symlinks true - ``` - -3. **Clone the repository** (after enabling the above): - ```bash - git clone https://github.com/github/awesome-copilot.git - ``` - -> **Note:** If you cloned the repository before enabling symlinks, the symlinks will appear as plain text files containing the target path. You'll need to delete the local repository and re-clone after enabling symlink support. - -**Alternative for older Windows versions:** If Developer Mode is not available, you can run Git Bash as Administrator, or grant your user the "Create symbolic links" privilege via Local Security Policy (`secpol.msc` → Local Policies → User Rights Assignment → Create symbolic links). - ## How to Contribute ### Adding Instructions @@ -138,11 +113,11 @@ Skills are self-contained folders in the `skills/` directory that include a `SKI ### Adding Plugins -Plugins group related prompts, agents, and skills around specific themes or workflows, making it easy for users to install comprehensive toolkits via GitHub Copilot CLI. +Plugins group related agents, commands (prompts), and skills around specific themes or workflows, making it easy for users to install comprehensive toolkits via GitHub Copilot CLI. 1. **Create your plugin**: Run `npm run plugin:create` to scaffold a new plugin 2. **Follow the naming convention**: Use descriptive, lowercase folder names with hyphens (e.g., `python-web-development`) -3. **Add your content**: Add agents, commands (prompts), and skills to the plugin folder using symlinks to existing repo files +3. **Define your content**: List agents, commands, and skills in `plugin.json` using the Claude Code spec fields 4. **Test your plugin**: Run `npm run plugin:validate` to verify your plugin structure #### Creating a plugin @@ -155,41 +130,37 @@ npm run plugin:create -- --name my-plugin-id ``` plugins/my-plugin-id/ -├── .github/plugin/plugin.json # Plugin metadata -├── README.md # Plugin documentation -├── commands/ # Symlinked prompt files -├── agents/ # Symlinked agent files -└── skills/ # Symlinked skill folders +├── .github/plugin/plugin.json # Plugin metadata (Claude Code spec format) +└── README.md # Plugin documentation +``` + +> **Note:** Plugin content is defined declaratively in plugin.json using Claude Code spec fields (`agents`, `commands`, `skills`). Source files live in top-level directories and are materialized into plugins by CI. + +#### plugin.json example + +```json +{ + "name": "my-plugin-id", + "description": "Plugin description", + "version": "1.0.0", + "keywords": [], + "author": { "name": "Awesome Copilot Community" }, + "repository": "https://github.com/github/awesome-copilot", + "license": "MIT", + "agents": ["./agents/my-agent.md"], + "commands": ["./commands/my-command.md"], + "skills": ["./skills/my-skill/"] +} ``` #### Plugin Guidelines -- **Use symlinks**: Plugin content should be symlinks to source files in agents/, prompts/, skills/ directories -- **Valid references**: All items referenced in plugin.json must exist in the repository +- **Declarative content**: Plugin content is specified via `agents`, `commands`, and `skills` arrays in plugin.json — source files live in top-level directories and are materialized into plugins by CI +- **Valid references**: All paths referenced in plugin.json must point to existing source files in the repository +- **Instructions excluded**: Instructions are standalone resources and are not part of plugins - **Clear purpose**: The plugin should solve a specific problem or workflow - **Validate before submitting**: Run `npm run plugin:validate` to ensure your plugin is valid -### Working with Plugins - -Plugins are installable packages that contain symlinked agents, commands (prompts), and skills organized around a specific theme or workflow. - -#### Plugin Structure - -```plaintext -plugins// -├── .github/plugin/plugin.json # Plugin metadata -├── README.md # Plugin documentation -├── agents/ # Symlinks to agent files (.md) -├── commands/ # Symlinks to prompt files (.md) -└── skills/ # Symlinks to skill folders -``` - -#### Plugin Guidelines - -- **Symlinks, not copies**: Plugin files are symlinks to the source files, avoiding duplication -- **Instructions excluded**: Instructions are not currently supported in plugins -- **Validate before submitting**: Run `npm run plugin:validate` to ensure your plugin is valid - ## Submitting Your Contribution 1. **Fork this repository** @@ -198,11 +169,14 @@ plugins// 4. **Run the update script**: `npm start` to update the README with your new file (make sure you run `npm install` first if you haven't already) - A GitHub Actions workflow will verify that this step was performed correctly - If the README.md would be modified by running the script, the PR check will fail with a comment showing the required changes -5. **Submit a pull request** with: +5. **Submit a pull request** targeting the `staged` branch with: - A clear title describing your contribution - A brief description of what your instruction/prompt does - Any relevant context or usage notes +> [!IMPORTANT] +> All pull requests should target the **`staged`** branch, not `main`. + > [!NOTE] > We use [all-contributors](https://github.com/all-contributors/all-contributors) to recognize all types of contributions to the project. Jump to [Contributors Recognition](#contributor-recognition) to learn more! diff --git a/docs/README.plugins.md b/docs/README.plugins.md index a7ffc9aa..6f679d2d 100644 --- a/docs/README.plugins.md +++ b/docs/README.plugins.md @@ -16,48 +16,48 @@ Curated plugins of related prompts, agents, and skills organized around specific | Name | Description | Items | Tags | | ---- | ----------- | ----- | ---- | -| [⭐ awesome-copilot](../plugins/awesome-copilot/README.md) | Meta prompts that help you discover and generate curated GitHub Copilot agents, instructions, prompts, and skills. | 5 items | github-copilot, discovery, meta, prompt-engineering, agents | -| [⭐ copilot-sdk](../plugins/copilot-sdk/README.md) | Build applications with the GitHub Copilot SDK across multiple programming languages. Includes comprehensive instructions for C#, Go, Node.js/TypeScript, and Python to help you create AI-powered applications. | 5 items | copilot-sdk, sdk, csharp, go, nodejs, typescript, python, ai, github-copilot | -| [⭐ partners](../plugins/partners/README.md) | Custom agents that have been created by GitHub partners | 20 items | devops, security, database, cloud, infrastructure, observability, feature-flags, cicd, migration, performance | -| [azure-cloud-development](../plugins/azure-cloud-development/README.md) | Comprehensive Azure cloud development tools including Infrastructure as Code, serverless functions, architecture patterns, and cost optimization for building scalable cloud applications. | 18 items | azure, cloud, infrastructure, bicep, terraform, serverless, architecture, devops | +| [awesome-copilot](../plugins/awesome-copilot/README.md) | Meta prompts that help you discover and generate curated GitHub Copilot agents, instructions, prompts, and skills. | 5 items | github-copilot, discovery, meta, prompt-engineering, agents | +| [azure-cloud-development](../plugins/azure-cloud-development/README.md) | Comprehensive Azure cloud development tools including Infrastructure as Code, serverless functions, architecture patterns, and cost optimization for building scalable cloud applications. | 9 items | azure, cloud, infrastructure, bicep, terraform, serverless, architecture, devops | | [cast-imaging](../plugins/cast-imaging/README.md) | A comprehensive collection of specialized agents for software analysis, impact assessment, structural quality advisories, and architectural review using CAST Imaging. | 3 items | cast-imaging, software-analysis, architecture, quality, impact-analysis, devops | -| [clojure-interactive-programming](../plugins/clojure-interactive-programming/README.md) | Tools for REPL-first Clojure workflows featuring Clojure instructions, the interactive programming chat mode and supporting guidance. | 3 items | clojure, repl, interactive-programming | -| [context-engineering](../plugins/context-engineering/README.md) | Tools and techniques for maximizing GitHub Copilot effectiveness through better context management. Includes guidelines for structuring code, an agent for planning multi-file changes, and prompts for context-aware development. | 5 items | context, productivity, refactoring, best-practices, architecture | -| [csharp-dotnet-development](../plugins/csharp-dotnet-development/README.md) | Essential prompts, instructions, and chat modes for C# and .NET development including testing, documentation, and best practices. | 11 items | csharp, dotnet, aspnet, testing | -| [csharp-mcp-development](../plugins/csharp-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in C# using the official SDK. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 3 items | csharp, mcp, model-context-protocol, dotnet, server-development | -| [database-data-management](../plugins/database-data-management/README.md) | Database administration, SQL optimization, and data management tools for PostgreSQL, SQL Server, and general database development best practices. | 8 items | database, sql, postgresql, sql-server, dba, optimization, queries, data-management | -| [dataverse-sdk-for-python](../plugins/dataverse-sdk-for-python/README.md) | Comprehensive collection for building production-ready Python integrations with Microsoft Dataverse. Includes official documentation, best practices, advanced features, file operations, and code generation prompts. | 17 items | dataverse, python, integration, sdk | -| [devops-oncall](../plugins/devops-oncall/README.md) | A focused set of prompts, instructions, and a chat mode to help triage incidents and respond quickly with DevOps tools and Azure resources. | 5 items | devops, incident-response, oncall, azure | -| [edge-ai-tasks](../plugins/edge-ai-tasks/README.md) | Task Researcher and Task Planner for intermediate to expert users and large codebases - Brought to you by microsoft/edge-ai | 3 items | architecture, planning, research, tasks, implementation | -| [frontend-web-dev](../plugins/frontend-web-dev/README.md) | Essential prompts, instructions, and chat modes for modern frontend web development including React, Angular, Vue, TypeScript, and CSS frameworks. | 11 items | frontend, web, react, typescript, javascript, css, html, angular, vue | +| [clojure-interactive-programming](../plugins/clojure-interactive-programming/README.md) | Tools for REPL-first Clojure workflows featuring Clojure instructions, the interactive programming chat mode and supporting guidance. | 2 items | clojure, repl, interactive-programming | +| [context-engineering](../plugins/context-engineering/README.md) | Tools and techniques for maximizing GitHub Copilot effectiveness through better context management. Includes guidelines for structuring code, an agent for planning multi-file changes, and prompts for context-aware development. | 4 items | context, productivity, refactoring, best-practices, architecture | +| [copilot-sdk](../plugins/copilot-sdk/README.md) | Build applications with the GitHub Copilot SDK across multiple programming languages. Includes comprehensive instructions for C#, Go, Node.js/TypeScript, and Python to help you create AI-powered applications. | 1 items | copilot-sdk, sdk, csharp, go, nodejs, typescript, python, ai, github-copilot | +| [csharp-dotnet-development](../plugins/csharp-dotnet-development/README.md) | Essential prompts, instructions, and chat modes for C# and .NET development including testing, documentation, and best practices. | 9 items | csharp, dotnet, aspnet, testing | +| [csharp-mcp-development](../plugins/csharp-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in C# using the official SDK. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 2 items | csharp, mcp, model-context-protocol, dotnet, server-development | +| [database-data-management](../plugins/database-data-management/README.md) | Database administration, SQL optimization, and data management tools for PostgreSQL, SQL Server, and general database development best practices. | 6 items | database, sql, postgresql, sql-server, dba, optimization, queries, data-management | +| [dataverse-sdk-for-python](../plugins/dataverse-sdk-for-python/README.md) | Comprehensive collection for building production-ready Python integrations with Microsoft Dataverse. Includes official documentation, best practices, advanced features, file operations, and code generation prompts. | 4 items | dataverse, python, integration, sdk | +| [devops-oncall](../plugins/devops-oncall/README.md) | A focused set of prompts, instructions, and a chat mode to help triage incidents and respond quickly with DevOps tools and Azure resources. | 3 items | devops, incident-response, oncall, azure | +| [edge-ai-tasks](../plugins/edge-ai-tasks/README.md) | Task Researcher and Task Planner for intermediate to expert users and large codebases - Brought to you by microsoft/edge-ai | 2 items | architecture, planning, research, tasks, implementation | +| [frontend-web-dev](../plugins/frontend-web-dev/README.md) | Essential prompts, instructions, and chat modes for modern frontend web development including React, Angular, Vue, TypeScript, and CSS frameworks. | 4 items | frontend, web, react, typescript, javascript, css, html, angular, vue | | [gem-team](../plugins/gem-team/README.md) | A modular multi-agent team for complex project execution with DAG-based planning, parallel execution, TDD verification, and automated testing. | 8 items | multi-agent, orchestration, dag-planning, parallel-execution, tdd, verification, automation, security | -| [go-mcp-development](../plugins/go-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Go using the official github.com/modelcontextprotocol/go-sdk. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 3 items | go, golang, mcp, model-context-protocol, server-development, sdk | -| [java-development](../plugins/java-development/README.md) | Comprehensive collection of prompts and instructions for Java development including Spring Boot, Quarkus, testing, documentation, and best practices. | 12 items | java, springboot, quarkus, jpa, junit, javadoc | -| [java-mcp-development](../plugins/java-mcp-development/README.md) | Complete toolkit for building Model Context Protocol servers in Java using the official MCP Java SDK with reactive streams and Spring Boot integration. | 3 items | java, mcp, model-context-protocol, server-development, sdk, reactive-streams, spring-boot, reactor | -| [kotlin-mcp-development](../plugins/kotlin-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Kotlin using the official io.modelcontextprotocol:kotlin-sdk library. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 3 items | kotlin, mcp, model-context-protocol, kotlin-multiplatform, server-development, ktor | -| [mcp-m365-copilot](../plugins/mcp-m365-copilot/README.md) | Comprehensive collection for building declarative agents with Model Context Protocol integration for Microsoft 365 Copilot | 5 items | mcp, m365-copilot, declarative-agents, api-plugins, model-context-protocol, adaptive-cards | -| [openapi-to-application-csharp-dotnet](../plugins/openapi-to-application-csharp-dotnet/README.md) | Generate production-ready .NET applications from OpenAPI specifications. Includes ASP.NET Core project scaffolding, controller generation, entity framework integration, and C# best practices. | 3 items | openapi, code-generation, api, csharp, dotnet, aspnet | -| [openapi-to-application-go](../plugins/openapi-to-application-go/README.md) | Generate production-ready Go applications from OpenAPI specifications. Includes project scaffolding, handler generation, middleware setup, and Go best practices for REST APIs. | 3 items | openapi, code-generation, api, go, golang | -| [openapi-to-application-java-spring-boot](../plugins/openapi-to-application-java-spring-boot/README.md) | Generate production-ready Spring Boot applications from OpenAPI specifications. Includes project scaffolding, REST controller generation, service layer organization, and Spring Boot best practices. | 3 items | openapi, code-generation, api, java, spring-boot | -| [openapi-to-application-nodejs-nestjs](../plugins/openapi-to-application-nodejs-nestjs/README.md) | Generate production-ready NestJS applications from OpenAPI specifications. Includes project scaffolding, controller and service generation, TypeScript best practices, and enterprise patterns. | 3 items | openapi, code-generation, api, nodejs, typescript, nestjs | -| [openapi-to-application-python-fastapi](../plugins/openapi-to-application-python-fastapi/README.md) | Generate production-ready FastAPI applications from OpenAPI specifications. Includes project scaffolding, route generation, dependency injection, and Python best practices for async APIs. | 3 items | openapi, code-generation, api, python, fastapi | -| [ospo-sponsorship](../plugins/ospo-sponsorship/README.md) | Tools and resources for Open Source Program Offices (OSPOs) to identify, evaluate, and manage sponsorship of open source dependencies through GitHub Sponsors, Open Collective, and other funding platforms. | 0 items | | -| [pcf-development](../plugins/pcf-development/README.md) | Complete toolkit for developing custom code components using Power Apps Component Framework for model-driven and canvas apps | 17 items | power-apps, pcf, component-framework, typescript, power-platform | -| [php-mcp-development](../plugins/php-mcp-development/README.md) | Comprehensive resources for building Model Context Protocol servers using the official PHP SDK with attribute-based discovery, including best practices, project generation, and expert assistance | 3 items | php, mcp, model-context-protocol, server-development, sdk, attributes, composer | -| [polyglot-test-agent](../plugins/polyglot-test-agent/README.md) | Multi-agent pipeline for generating comprehensive unit tests across any programming language. Orchestrates research, planning, and implementation phases using specialized agents to produce tests that compile, pass, and follow project conventions. | 10 items | testing, unit-tests, polyglot, test-generation, multi-agent, tdd, csharp, typescript, python, go | -| [power-apps-code-apps](../plugins/power-apps-code-apps/README.md) | Complete toolkit for Power Apps Code Apps development including project scaffolding, development standards, and expert guidance for building code-first applications with Power Platform integration. | 3 items | power-apps, power-platform, typescript, react, code-apps, dataverse, connectors | -| [power-bi-development](../plugins/power-bi-development/README.md) | Comprehensive Power BI development resources including data modeling, DAX optimization, performance tuning, visualization design, security best practices, and DevOps/ALM guidance for building enterprise-grade Power BI solutions. | 14 items | power-bi, dax, data-modeling, performance, visualization, security, devops, business-intelligence | -| [power-platform-mcp-connector-development](../plugins/power-platform-mcp-connector-development/README.md) | Complete toolkit for developing Power Platform custom connectors with Model Context Protocol integration for Microsoft Copilot Studio | 4 items | power-platform, mcp, copilot-studio, custom-connector, json-rpc | -| [project-planning](../plugins/project-planning/README.md) | Tools and guidance for software project planning, feature breakdown, epic management, implementation planning, and task organization for development teams. | 17 items | planning, project-management, epic, feature, implementation, task, architecture, technical-spike | -| [python-mcp-development](../plugins/python-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Python using the official SDK with FastMCP. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 3 items | python, mcp, model-context-protocol, fastmcp, server-development | -| [ruby-mcp-development](../plugins/ruby-mcp-development/README.md) | Complete toolkit for building Model Context Protocol servers in Ruby using the official MCP Ruby SDK gem with Rails integration support. | 3 items | ruby, mcp, model-context-protocol, server-development, sdk, rails, gem | +| [go-mcp-development](../plugins/go-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Go using the official github.com/modelcontextprotocol/go-sdk. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 2 items | go, golang, mcp, model-context-protocol, server-development, sdk | +| [java-development](../plugins/java-development/README.md) | Comprehensive collection of prompts and instructions for Java development including Spring Boot, Quarkus, testing, documentation, and best practices. | 4 items | java, springboot, quarkus, jpa, junit, javadoc | +| [java-mcp-development](../plugins/java-mcp-development/README.md) | Complete toolkit for building Model Context Protocol servers in Java using the official MCP Java SDK with reactive streams and Spring Boot integration. | 2 items | java, mcp, model-context-protocol, server-development, sdk, reactive-streams, spring-boot, reactor | +| [kotlin-mcp-development](../plugins/kotlin-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Kotlin using the official io.modelcontextprotocol:kotlin-sdk library. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 2 items | kotlin, mcp, model-context-protocol, kotlin-multiplatform, server-development, ktor | +| [mcp-m365-copilot](../plugins/mcp-m365-copilot/README.md) | Comprehensive collection for building declarative agents with Model Context Protocol integration for Microsoft 365 Copilot | 4 items | mcp, m365-copilot, declarative-agents, api-plugins, model-context-protocol, adaptive-cards | +| [openapi-to-application-csharp-dotnet](../plugins/openapi-to-application-csharp-dotnet/README.md) | Generate production-ready .NET applications from OpenAPI specifications. Includes ASP.NET Core project scaffolding, controller generation, entity framework integration, and C# best practices. | 2 items | openapi, code-generation, api, csharp, dotnet, aspnet | +| [openapi-to-application-go](../plugins/openapi-to-application-go/README.md) | Generate production-ready Go applications from OpenAPI specifications. Includes project scaffolding, handler generation, middleware setup, and Go best practices for REST APIs. | 2 items | openapi, code-generation, api, go, golang | +| [openapi-to-application-java-spring-boot](../plugins/openapi-to-application-java-spring-boot/README.md) | Generate production-ready Spring Boot applications from OpenAPI specifications. Includes project scaffolding, REST controller generation, service layer organization, and Spring Boot best practices. | 2 items | openapi, code-generation, api, java, spring-boot | +| [openapi-to-application-nodejs-nestjs](../plugins/openapi-to-application-nodejs-nestjs/README.md) | Generate production-ready NestJS applications from OpenAPI specifications. Includes project scaffolding, controller and service generation, TypeScript best practices, and enterprise patterns. | 2 items | openapi, code-generation, api, nodejs, typescript, nestjs | +| [openapi-to-application-python-fastapi](../plugins/openapi-to-application-python-fastapi/README.md) | Generate production-ready FastAPI applications from OpenAPI specifications. Includes project scaffolding, route generation, dependency injection, and Python best practices for async APIs. | 2 items | openapi, code-generation, api, python, fastapi | +| [ospo-sponsorship](../plugins/ospo-sponsorship/README.md) | Tools and resources for Open Source Program Offices (OSPOs) to identify, evaluate, and manage sponsorship of open source dependencies through GitHub Sponsors, Open Collective, and other funding platforms. | 1 items | | +| [partners](../plugins/partners/README.md) | Custom agents that have been created by GitHub partners | 20 items | devops, security, database, cloud, infrastructure, observability, feature-flags, cicd, migration, performance | +| [pcf-development](../plugins/pcf-development/README.md) | Complete toolkit for developing custom code components using Power Apps Component Framework for model-driven and canvas apps | 0 items | power-apps, pcf, component-framework, typescript, power-platform | +| [php-mcp-development](../plugins/php-mcp-development/README.md) | Comprehensive resources for building Model Context Protocol servers using the official PHP SDK with attribute-based discovery, including best practices, project generation, and expert assistance | 2 items | php, mcp, model-context-protocol, server-development, sdk, attributes, composer | +| [polyglot-test-agent](../plugins/polyglot-test-agent/README.md) | Multi-agent pipeline for generating comprehensive unit tests across any programming language. Orchestrates research, planning, and implementation phases using specialized agents to produce tests that compile, pass, and follow project conventions. | 9 items | testing, unit-tests, polyglot, test-generation, multi-agent, tdd, csharp, typescript, python, go | +| [power-apps-code-apps](../plugins/power-apps-code-apps/README.md) | Complete toolkit for Power Apps Code Apps development including project scaffolding, development standards, and expert guidance for building code-first applications with Power Platform integration. | 2 items | power-apps, power-platform, typescript, react, code-apps, dataverse, connectors | +| [power-bi-development](../plugins/power-bi-development/README.md) | Comprehensive Power BI development resources including data modeling, DAX optimization, performance tuning, visualization design, security best practices, and DevOps/ALM guidance for building enterprise-grade Power BI solutions. | 8 items | power-bi, dax, data-modeling, performance, visualization, security, devops, business-intelligence | +| [power-platform-mcp-connector-development](../plugins/power-platform-mcp-connector-development/README.md) | Complete toolkit for developing Power Platform custom connectors with Model Context Protocol integration for Microsoft Copilot Studio | 3 items | power-platform, mcp, copilot-studio, custom-connector, json-rpc | +| [project-planning](../plugins/project-planning/README.md) | Tools and guidance for software project planning, feature breakdown, epic management, implementation planning, and task organization for development teams. | 15 items | planning, project-management, epic, feature, implementation, task, architecture, technical-spike | +| [python-mcp-development](../plugins/python-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Python using the official SDK with FastMCP. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 2 items | python, mcp, model-context-protocol, fastmcp, server-development | +| [ruby-mcp-development](../plugins/ruby-mcp-development/README.md) | Complete toolkit for building Model Context Protocol servers in Ruby using the official MCP Ruby SDK gem with Rails integration support. | 2 items | ruby, mcp, model-context-protocol, server-development, sdk, rails, gem | | [rug-agentic-workflow](../plugins/rug-agentic-workflow/README.md) | Three-agent workflow for orchestrated software delivery with an orchestrator plus implementation and QA subagents. | 3 items | agentic-workflow, orchestration, subagents, software-engineering, qa | -| [rust-mcp-development](../plugins/rust-mcp-development/README.md) | Build high-performance Model Context Protocol servers in Rust using the official rmcp SDK with async/await, procedural macros, and type-safe implementations. | 3 items | rust, mcp, model-context-protocol, server-development, sdk, tokio, async, macros, rmcp | -| [security-best-practices](../plugins/security-best-practices/README.md) | Security frameworks, accessibility guidelines, performance optimization, and code quality best practices for building secure, maintainable, and high-performance applications. | 6 items | security, accessibility, performance, code-quality, owasp, a11y, optimization, best-practices | +| [rust-mcp-development](../plugins/rust-mcp-development/README.md) | Build high-performance Model Context Protocol servers in Rust using the official rmcp SDK with async/await, procedural macros, and type-safe implementations. | 2 items | rust, mcp, model-context-protocol, server-development, sdk, tokio, async, macros, rmcp | +| [security-best-practices](../plugins/security-best-practices/README.md) | Security frameworks, accessibility guidelines, performance optimization, and code quality best practices for building secure, maintainable, and high-performance applications. | 1 items | security, accessibility, performance, code-quality, owasp, a11y, optimization, best-practices | | [software-engineering-team](../plugins/software-engineering-team/README.md) | 7 specialized agents covering the full software development lifecycle from UX design and architecture to security and DevOps. | 7 items | team, enterprise, security, devops, ux, architecture, product, ai-ethics | -| [structured-autonomy](../plugins/structured-autonomy/README.md) | Premium planning, thrifty implementation | 0 items | | -| [swift-mcp-development](../plugins/swift-mcp-development/README.md) | Comprehensive collection for building Model Context Protocol servers in Swift using the official MCP Swift SDK with modern concurrency features. | 3 items | swift, mcp, model-context-protocol, server-development, sdk, ios, macos, concurrency, actor, async-await | +| [structured-autonomy](../plugins/structured-autonomy/README.md) | Premium planning, thrifty implementation | 3 items | | +| [swift-mcp-development](../plugins/swift-mcp-development/README.md) | Comprehensive collection for building Model Context Protocol servers in Swift using the official MCP Swift SDK with modern concurrency features. | 2 items | swift, mcp, model-context-protocol, server-development, sdk, ios, macos, concurrency, actor, async-await | | [technical-spike](../plugins/technical-spike/README.md) | Tools for creation, management and research of technical spikes to reduce unknowns and assumptions before proceeding to specification and implementation of solutions. | 2 items | technical-spike, assumption-testing, validation, research | -| [testing-automation](../plugins/testing-automation/README.md) | Comprehensive collection for writing tests, test automation, and test-driven development including unit tests, integration tests, and end-to-end testing strategies. | 11 items | testing, tdd, automation, unit-tests, integration, playwright, jest, nunit | -| [typescript-mcp-development](../plugins/typescript-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in TypeScript/Node.js using the official SDK. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 3 items | typescript, mcp, model-context-protocol, nodejs, server-development | -| [typespec-m365-copilot](../plugins/typespec-m365-copilot/README.md) | Comprehensive collection of prompts, instructions, and resources for building declarative agents and API plugins using TypeSpec for Microsoft 365 Copilot extensibility. | 4 items | typespec, m365-copilot, declarative-agents, api-plugins, agent-development, microsoft-365 | +| [testing-automation](../plugins/testing-automation/README.md) | Comprehensive collection for writing tests, test automation, and test-driven development including unit tests, integration tests, and end-to-end testing strategies. | 9 items | testing, tdd, automation, unit-tests, integration, playwright, jest, nunit | +| [typescript-mcp-development](../plugins/typescript-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in TypeScript/Node.js using the official SDK. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 2 items | typescript, mcp, model-context-protocol, nodejs, server-development | +| [typespec-m365-copilot](../plugins/typespec-m365-copilot/README.md) | Comprehensive collection of prompts, instructions, and resources for building declarative agents and API plugins using TypeSpec for Microsoft 365 Copilot extensibility. | 3 items | typespec, m365-copilot, declarative-agents, api-plugins, agent-development, microsoft-365 | diff --git a/eng/create-plugin.mjs b/eng/create-plugin.mjs index 0e8f41e1..69f5e378 100755 --- a/eng/create-plugin.mjs +++ b/eng/create-plugin.mjs @@ -20,7 +20,7 @@ function prompt(question) { function parseArgs() { const args = process.argv.slice(2); - const out = { name: undefined, tags: undefined }; + const out = { name: undefined, keywords: undefined }; for (let i = 0; i < args.length; i++) { const a = args[i]; @@ -29,22 +29,22 @@ function parseArgs() { i++; } else if (a.startsWith("--name=")) { out.name = a.split("=")[1]; - } else if (a === "--tags" || a === "-t") { - out.tags = args[i + 1]; + } else if (a === "--keywords" || a === "--tags" || a === "-t") { + out.keywords = args[i + 1]; i++; - } else if (a.startsWith("--tags=")) { - out.tags = a.split("=")[1]; + } else if (a.startsWith("--keywords=") || a.startsWith("--tags=")) { + out.keywords = a.split("=")[1]; } else if (!a.startsWith("-") && !out.name) { // first positional -> name out.name = a; - } else if (!a.startsWith("-") && out.name && !out.tags) { - // second positional -> tags - out.tags = a; + } else if (!a.startsWith("-") && out.name && !out.keywords) { + // second positional -> keywords + out.keywords = a; } } - if (Array.isArray(out.tags)) { - out.tags = out.tags.join(","); + if (Array.isArray(out.keywords)) { + out.keywords = out.keywords.join(","); } return out; @@ -108,23 +108,23 @@ async function createPlugin() { description = defaultDescription; } - // Get tags - let tags = []; - let tagInput = parsed.tags; - if (!tagInput) { - tagInput = await prompt( - "Tags (comma-separated, or press Enter for defaults): " + // Get keywords + let keywords = []; + let keywordInput = parsed.keywords; + if (!keywordInput) { + keywordInput = await prompt( + "Keywords (comma-separated, or press Enter for defaults): " ); } - if (tagInput && tagInput.toString().trim()) { - tags = tagInput + if (keywordInput && keywordInput.toString().trim()) { + keywords = keywordInput .toString() .split(",") - .map((tag) => tag.trim()) - .filter((tag) => tag); + .map((kw) => kw.trim()) + .filter((kw) => kw); } else { - tags = pluginId.split("-").slice(0, 3); + keywords = pluginId.split("-").slice(0, 3); } // Create directory structure @@ -136,11 +136,10 @@ async function createPlugin() { name: pluginId, description, version: "1.0.0", + keywords, author: { name: "Awesome Copilot Community" }, repository: "https://github.com/github/awesome-copilot", license: "MIT", - tags, - items: [], }; fs.writeFileSync( @@ -177,7 +176,7 @@ MIT console.log(`\n✅ Created plugin: ${pluginDir}`); console.log("\n📝 Next steps:"); console.log(`1. Add agents, prompts, or instructions to plugins/${pluginId}/`); - console.log(`2. Update plugins/${pluginId}/.github/plugin/plugin.json to list your items`); + console.log(`2. Update plugins/${pluginId}/.github/plugin/plugin.json with your metadata`); console.log(`3. Edit plugins/${pluginId}/README.md to describe your plugin`); console.log("4. Run 'npm run build' to regenerate documentation"); } catch (error) { diff --git a/eng/generate-marketplace.mjs b/eng/generate-marketplace.mjs index 80139c85..88f72a0d 100755 --- a/eng/generate-marketplace.mjs +++ b/eng/generate-marketplace.mjs @@ -5,7 +5,7 @@ import path from "path"; import { ROOT_FOLDER } from "./constants.mjs"; const PLUGINS_DIR = path.join(ROOT_FOLDER, "plugins"); -const MARKETPLACE_FILE = path.join(ROOT_FOLDER, ".github", "plugin", "marketplace.json"); +const MARKETPLACE_FILE = path.join(ROOT_FOLDER, ".github/plugin", "marketplace.json"); /** * Read plugin metadata from plugin.json file @@ -13,7 +13,7 @@ const MARKETPLACE_FILE = path.join(ROOT_FOLDER, ".github", "plugin", "marketplac * @returns {object|null} - Plugin metadata or null if not found */ function readPluginMetadata(pluginDir) { - const pluginJsonPath = path.join(pluginDir, ".github", "plugin", "plugin.json"); + const pluginJsonPath = path.join(pluginDir, ".github/plugin", "plugin.json"); if (!fs.existsSync(pluginJsonPath)) { console.warn(`Warning: No plugin.json found for ${path.basename(pluginDir)}`); diff --git a/eng/generate-website-data.mjs b/eng/generate-website-data.mjs index 560c309b..5ac93e31 100644 --- a/eng/generate-website-data.mjs +++ b/eng/generate-website-data.mjs @@ -488,7 +488,7 @@ function generatePluginsData(gitDates) { const plugins = []; if (!fs.existsSync(PLUGINS_DIR)) { - return plugins; + return { items: [], filters: { tags: [] } }; } const pluginDirs = fs.readdirSync(PLUGINS_DIR, { withFileTypes: true }) @@ -496,7 +496,7 @@ function generatePluginsData(gitDates) { for (const dir of pluginDirs) { const pluginDir = path.join(PLUGINS_DIR, dir.name); - const jsonPath = path.join(pluginDir, ".github", "plugin", "plugin.json"); + const jsonPath = path.join(pluginDir, ".github/plugin", "plugin.json"); if (!fs.existsSync(jsonPath)) continue; @@ -505,17 +505,25 @@ function generatePluginsData(gitDates) { const relPath = `plugins/${dir.name}`; const dates = gitDates[relPath] || gitDates[`${relPath}/`] || {}; + // Build items list from spec fields (agents, commands, skills) + const items = [ + ...(data.agents || []).map(p => ({ kind: "agent", path: p })), + ...(data.commands || []).map(p => ({ kind: "prompt", path: p })), + ...(data.skills || []).map(p => ({ kind: "skill", path: p })), + ]; + + const tags = data.keywords || data.tags || []; + plugins.push({ id: dir.name, name: data.name || dir.name, description: data.description || "", path: relPath, - tags: data.tags || [], - featured: data.featured || false, - itemCount: data.items ? data.items.length : 0, - items: data.items || [], + tags: tags, + itemCount: items.length, + items: items, lastUpdated: dates.lastModified || null, - searchText: `${data.name || dir.name} ${data.description || ""} ${(data.tags || []).join(" ")}`.toLowerCase(), + searchText: `${data.name || dir.name} ${data.description || ""} ${tags.join(" ")}`.toLowerCase(), }); } catch (e) { console.warn(`Failed to parse plugin: ${dir.name}`, e.message); @@ -525,11 +533,7 @@ function generatePluginsData(gitDates) { // Collect all unique tags const allTags = [...new Set(plugins.flatMap(p => p.tags))].sort(); - const sortedPlugins = plugins.sort((a, b) => { - if (a.featured && !b.featured) return -1; - if (!a.featured && b.featured) return 1; - return a.name.localeCompare(b.name); - }); + const sortedPlugins = plugins.sort((a, b) => a.name.localeCompare(b.name)); return { items: sortedPlugins, diff --git a/eng/materialize-plugins.mjs b/eng/materialize-plugins.mjs new file mode 100644 index 00000000..44b90510 --- /dev/null +++ b/eng/materialize-plugins.mjs @@ -0,0 +1,167 @@ +#!/usr/bin/env node + +import fs from "fs"; +import path from "path"; +import { ROOT_FOLDER } from "./constants.mjs"; + +const PLUGINS_DIR = path.join(ROOT_FOLDER, "plugins"); + +/** + * Recursively copy a directory. + */ +function copyDirRecursive(src, dest) { + fs.mkdirSync(dest, { recursive: true }); + for (const entry of fs.readdirSync(src, { withFileTypes: true })) { + const srcPath = path.join(src, entry.name); + const destPath = path.join(dest, entry.name); + if (entry.isDirectory()) { + copyDirRecursive(srcPath, destPath); + } else { + fs.copyFileSync(srcPath, destPath); + } + } +} + +/** + * Resolve a plugin-relative path to the repo-root source file. + * + * ./agents/foo.md → ROOT/agents/foo.agent.md + * ./commands/bar.md → ROOT/prompts/bar.prompt.md + * ./skills/baz/ → ROOT/skills/baz/ + */ +function resolveSource(relPath) { + const basename = path.basename(relPath, ".md"); + if (relPath.startsWith("./agents/")) { + return path.join(ROOT_FOLDER, "agents", `${basename}.agent.md`); + } + if (relPath.startsWith("./commands/")) { + return path.join(ROOT_FOLDER, "prompts", `${basename}.prompt.md`); + } + if (relPath.startsWith("./skills/")) { + // Strip trailing slash and get the skill folder name + const skillName = relPath.replace(/^\.\/skills\//, "").replace(/\/$/, ""); + return path.join(ROOT_FOLDER, "skills", skillName); + } + return null; +} + +function materializePlugins() { + console.log("Materializing plugin files...\n"); + + if (!fs.existsSync(PLUGINS_DIR)) { + console.error(`Error: Plugins directory not found at ${PLUGINS_DIR}`); + process.exit(1); + } + + const pluginDirs = fs.readdirSync(PLUGINS_DIR, { withFileTypes: true }) + .filter(entry => entry.isDirectory()) + .map(entry => entry.name) + .sort(); + + let totalAgents = 0; + let totalCommands = 0; + let totalSkills = 0; + let warnings = 0; + let errors = 0; + + for (const dirName of pluginDirs) { + const pluginPath = path.join(PLUGINS_DIR, dirName); + const pluginJsonPath = path.join(pluginPath, ".github/plugin", "plugin.json"); + + if (!fs.existsSync(pluginJsonPath)) { + continue; + } + + let metadata; + try { + metadata = JSON.parse(fs.readFileSync(pluginJsonPath, "utf8")); + } catch (err) { + console.error(`Error: Failed to parse ${pluginJsonPath}: ${err.message}`); + errors++; + continue; + } + + const pluginName = metadata.name || dirName; + + // Process agents + if (Array.isArray(metadata.agents)) { + for (const relPath of metadata.agents) { + const src = resolveSource(relPath); + if (!src) { + console.warn(` ⚠ ${pluginName}: Unknown path format: ${relPath}`); + warnings++; + continue; + } + if (!fs.existsSync(src)) { + console.warn(` ⚠ ${pluginName}: Source not found: ${src}`); + warnings++; + continue; + } + const dest = path.join(pluginPath, relPath.replace(/^\.\//, "")); + fs.mkdirSync(path.dirname(dest), { recursive: true }); + fs.copyFileSync(src, dest); + totalAgents++; + } + } + + // Process commands + if (Array.isArray(metadata.commands)) { + for (const relPath of metadata.commands) { + const src = resolveSource(relPath); + if (!src) { + console.warn(` ⚠ ${pluginName}: Unknown path format: ${relPath}`); + warnings++; + continue; + } + if (!fs.existsSync(src)) { + console.warn(` ⚠ ${pluginName}: Source not found: ${src}`); + warnings++; + continue; + } + const dest = path.join(pluginPath, relPath.replace(/^\.\//, "")); + fs.mkdirSync(path.dirname(dest), { recursive: true }); + fs.copyFileSync(src, dest); + totalCommands++; + } + } + + // Process skills + if (Array.isArray(metadata.skills)) { + for (const relPath of metadata.skills) { + const src = resolveSource(relPath); + if (!src) { + console.warn(` ⚠ ${pluginName}: Unknown path format: ${relPath}`); + warnings++; + continue; + } + if (!fs.existsSync(src) || !fs.statSync(src).isDirectory()) { + console.warn(` ⚠ ${pluginName}: Source directory not found: ${src}`); + warnings++; + continue; + } + const dest = path.join(pluginPath, relPath.replace(/^\.\//, "").replace(/\/$/, "")); + copyDirRecursive(src, dest); + totalSkills++; + } + } + + const counts = []; + if (metadata.agents?.length) counts.push(`${metadata.agents.length} agents`); + if (metadata.commands?.length) counts.push(`${metadata.commands.length} commands`); + if (metadata.skills?.length) counts.push(`${metadata.skills.length} skills`); + if (counts.length) { + console.log(`✓ ${pluginName}: ${counts.join(", ")}`); + } + } + + console.log(`\nDone. Copied ${totalAgents} agents, ${totalCommands} commands, ${totalSkills} skills.`); + if (warnings > 0) { + console.log(`${warnings} warning(s).`); + } + if (errors > 0) { + console.error(`${errors} error(s).`); + process.exit(1); + } +} + +materializePlugins(); diff --git a/eng/update-readme.mjs b/eng/update-readme.mjs index 33f754ff..f14a0bc0 100644 --- a/eng/update-readme.mjs +++ b/eng/update-readme.mjs @@ -710,7 +710,7 @@ function generateUnifiedModeSection(cfg) { * Read and parse a plugin.json file from a plugin directory. */ function readPluginJson(pluginDir) { - const jsonPath = path.join(pluginDir, ".github", "plugin", "plugin.json"); + const jsonPath = path.join(pluginDir, ".github/plugin", "plugin.json"); if (!fs.existsSync(jsonPath)) return null; try { return JSON.parse(fs.readFileSync(jsonPath, "utf-8")); @@ -783,13 +783,13 @@ function generatePluginsSection(pluginsDir) { const description = formatTableCell( plugin.description || "No description" ); - const itemCount = plugin.items ? plugin.items.length : 0; - const tags = plugin.tags ? plugin.tags.join(", ") : ""; + const itemCount = (plugin.agents || []).length + (plugin.commands || []).length + (plugin.skills || []).length; + const keywords = plugin.keywords ? plugin.keywords.join(", ") : ""; const link = `../plugins/${dir}/README.md`; const displayName = isFeatured ? `⭐ ${name}` : name; - pluginsContent += `| [${displayName}](${link}) | ${description} | ${itemCount} items | ${tags} |\n`; + pluginsContent += `| [${displayName}](${link}) | ${description} | ${itemCount} items | ${keywords} |\n`; } return `${TEMPLATES.pluginsSection}\n${TEMPLATES.pluginsUsage}\n\n${pluginsContent}`; @@ -826,8 +826,8 @@ function generateFeaturedPluginsSection(pluginsDir) { const description = formatTableCell( plugin.description || "No description" ); - const tags = plugin.tags ? plugin.tags.join(", ") : ""; - const itemCount = plugin.items ? plugin.items.length : 0; + const keywords = plugin.keywords ? plugin.keywords.join(", ") : ""; + const itemCount = (plugin.agents || []).length + (plugin.commands || []).length + (plugin.skills || []).length; return { dir, @@ -835,7 +835,7 @@ function generateFeaturedPluginsSection(pluginsDir) { pluginId: name, name, description, - tags, + keywords, itemCount, }; }, @@ -861,10 +861,10 @@ function generateFeaturedPluginsSection(pluginsDir) { // Generate table rows for each featured plugin for (const entry of featuredPlugins) { - const { dir, name, description, tags, itemCount } = entry; + const { dir, name, description, keywords, itemCount } = entry; const readmeLink = `plugins/${dir}/README.md`; - featuredContent += `| [${name}](${readmeLink}) | ${description} | ${itemCount} items | ${tags} |\n`; + featuredContent += `| [${name}](${readmeLink}) | ${description} | ${itemCount} items | ${keywords} |\n`; } return `${TEMPLATES.featuredPluginsSection}\n\n${featuredContent}`; diff --git a/eng/validate-plugins.mjs b/eng/validate-plugins.mjs index 1d966299..6318c47c 100755 --- a/eng/validate-plugins.mjs +++ b/eng/validate-plugins.mjs @@ -6,8 +6,6 @@ import { ROOT_FOLDER } from "./constants.mjs"; const PLUGINS_DIR = path.join(ROOT_FOLDER, "plugins"); -const VALID_ITEM_KINDS = ["prompt", "agent", "instruction", "skill", "hook"]; - // Validation functions function validateName(name, folderName) { const errors = []; @@ -44,82 +42,74 @@ function validateVersion(version) { return null; } -function validateTags(tags) { - if (tags === undefined) return null; - if (!Array.isArray(tags)) { - return "tags must be an array"; +function validateKeywords(keywords) { + if (keywords === undefined) return null; + if (!Array.isArray(keywords)) { + return "keywords must be an array"; } - if (tags.length > 10) { - return "maximum 10 tags allowed"; + if (keywords.length > 10) { + return "maximum 10 keywords allowed"; } - for (const tag of tags) { - if (typeof tag !== "string") { - return "all tags must be strings"; + for (const keyword of keywords) { + if (typeof keyword !== "string") { + return "all keywords must be strings"; } - if (!/^[a-z0-9-]+$/.test(tag)) { - return `tag "${tag}" must contain only lowercase letters, numbers, and hyphens`; + if (!/^[a-z0-9-]+$/.test(keyword)) { + return `keyword "${keyword}" must contain only lowercase letters, numbers, and hyphens`; } - if (tag.length < 1 || tag.length > 30) { - return `tag "${tag}" must be between 1 and 30 characters`; + if (keyword.length < 1 || keyword.length > 30) { + return `keyword "${keyword}" must be between 1 and 30 characters`; } } return null; } -function validateFeatured(featured) { - if (featured === undefined) return null; - if (typeof featured !== "boolean") { - return "featured must be a boolean"; - } - return null; -} - -function validateDisplay(display) { - if (display === undefined) return null; - if (typeof display !== "object" || Array.isArray(display) || display === null) { - return "display must be an object"; - } - if (display.ordering !== undefined) { - if (!["manual", "alpha"].includes(display.ordering)) { - return "display.ordering must be 'manual' or 'alpha'"; - } - } - if (display.show_badge !== undefined) { - if (typeof display.show_badge !== "boolean") { - return "display.show_badge must be a boolean"; - } - } - return null; -} - -function validateItems(items) { - if (items === undefined) return []; +function validateSpecPaths(plugin) { const errors = []; - if (!Array.isArray(items)) { - errors.push("items must be an array"); - return errors; - } - for (let i = 0; i < items.length; i++) { - const item = items[i]; - if (!item || typeof item !== "object") { - errors.push(`items[${i}] must be an object`); + const specs = { + agents: { prefix: "./agents/", suffix: ".md", repoDir: "agents", repoSuffix: ".agent.md" }, + commands: { prefix: "./commands/", suffix: ".md", repoDir: "prompts", repoSuffix: ".prompt.md" }, + skills: { prefix: "./skills/", suffix: "/", repoDir: "skills", repoFile: "SKILL.md" }, + }; + + for (const [field, spec] of Object.entries(specs)) { + const arr = plugin[field]; + if (arr === undefined) continue; + if (!Array.isArray(arr)) { + errors.push(`${field} must be an array`); continue; } - if (!item.path || typeof item.path !== "string") { - errors.push(`items[${i}] must have a path string`); - } - if (!item.kind || typeof item.kind !== "string") { - errors.push(`items[${i}] must have a kind string`); - } else if (!VALID_ITEM_KINDS.includes(item.kind)) { - errors.push( - `items[${i}] kind must be one of: ${VALID_ITEM_KINDS.join(", ")}` - ); - } - // Validate referenced path exists relative to repo root - if (item.path && typeof item.path === "string") { - const filePath = path.join(ROOT_FOLDER, item.path); - if (!fs.existsSync(filePath)) { - errors.push(`items[${i}] file does not exist: ${item.path}`); + for (let i = 0; i < arr.length; i++) { + const p = arr[i]; + if (typeof p !== "string") { + errors.push(`${field}[${i}] must be a string`); + continue; + } + if (!p.startsWith("./")) { + errors.push(`${field}[${i}] must start with "./"`); + continue; + } + if (!p.startsWith(spec.prefix)) { + errors.push(`${field}[${i}] must start with "${spec.prefix}"`); + continue; + } + if (!p.endsWith(spec.suffix)) { + errors.push(`${field}[${i}] must end with "${spec.suffix}"`); + continue; + } + // Validate the source file exists at repo root + const basename = p.slice(spec.prefix.length, p.length - spec.suffix.length); + if (field === "skills") { + const skillDir = path.join(ROOT_FOLDER, spec.repoDir, basename); + const skillFile = path.join(skillDir, spec.repoFile); + if (!fs.existsSync(skillFile)) { + errors.push(`${field}[${i}] source not found: ${spec.repoDir}/${basename}/SKILL.md`); + } + } else { + const srcFile = path.join(ROOT_FOLDER, spec.repoDir, basename + spec.repoSuffix); + if (!fs.existsSync(srcFile)) { + errors.push(`${field}[${i}] source not found: ${spec.repoDir}/${basename}${spec.repoSuffix}`); + } } } } @@ -131,7 +121,7 @@ function validatePlugin(folderName) { const errors = []; // Rule 1: Must have .github/plugin/plugin.json - const pluginJsonPath = path.join(pluginDir, ".github", "plugin", "plugin.json"); + const pluginJsonPath = path.join(pluginDir, ".github/plugin", "plugin.json"); if (!fs.existsSync(pluginJsonPath)) { errors.push("missing required file: .github/plugin/plugin.json"); return errors; @@ -163,21 +153,13 @@ function validatePlugin(folderName) { const versionError = validateVersion(plugin.version); if (versionError) errors.push(versionError); - // Rule 5: tags - const tagsError = validateTags(plugin.tags); - if (tagsError) errors.push(tagsError); + // Rule 5: keywords (or tags for backward compat) + const keywordsError = validateKeywords(plugin.keywords ?? plugin.tags); + if (keywordsError) errors.push(keywordsError); - // Rule 8: featured - const featuredError = validateFeatured(plugin.featured); - if (featuredError) errors.push(featuredError); - - // Rule 9: display - const displayError = validateDisplay(plugin.display); - if (displayError) errors.push(displayError); - - // Rule 6 & 7: items - const itemErrors = validateItems(plugin.items); - errors.push(...itemErrors); + // Rule 6: agents, commands, skills paths + const specErrors = validateSpecPaths(plugin); + errors.push(...specErrors); return errors; } diff --git a/plugins/awesome-copilot/.github/plugin/plugin.json b/plugins/awesome-copilot/.github/plugin/plugin.json index 12e33731..e273e817 100644 --- a/plugins/awesome-copilot/.github/plugin/plugin.json +++ b/plugins/awesome-copilot/.github/plugin/plugin.json @@ -7,38 +7,20 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "github-copilot", "discovery", "meta", "prompt-engineering", "agents" ], - "featured": true, - "display": { - "ordering": "alpha", - "show_badge": true - }, - "items": [ - { - "path": "prompts/suggest-awesome-github-copilot-skills.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/suggest-awesome-github-copilot-instructions.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/suggest-awesome-github-copilot-prompts.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/suggest-awesome-github-copilot-agents.prompt.md", - "kind": "prompt" - }, - { - "path": "agents/meta-agentic-project-scaffold.agent.md", - "kind": "agent" - } + "agents": [ + "./agents/meta-agentic-project-scaffold.md" + ], + "commands": [ + "./commands/suggest-awesome-github-copilot-skills.md", + "./commands/suggest-awesome-github-copilot-instructions.md", + "./commands/suggest-awesome-github-copilot-prompts.md", + "./commands/suggest-awesome-github-copilot-agents.md" ] } diff --git a/plugins/awesome-copilot/agents/meta-agentic-project-scaffold.md b/plugins/awesome-copilot/agents/meta-agentic-project-scaffold.md deleted file mode 120000 index e1af8dfc..00000000 --- a/plugins/awesome-copilot/agents/meta-agentic-project-scaffold.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/meta-agentic-project-scaffold.agent.md \ No newline at end of file diff --git a/plugins/awesome-copilot/commands/suggest-awesome-github-copilot-agents.md b/plugins/awesome-copilot/commands/suggest-awesome-github-copilot-agents.md deleted file mode 120000 index 5ee74520..00000000 --- a/plugins/awesome-copilot/commands/suggest-awesome-github-copilot-agents.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/suggest-awesome-github-copilot-agents.prompt.md \ No newline at end of file diff --git a/plugins/awesome-copilot/commands/suggest-awesome-github-copilot-instructions.md b/plugins/awesome-copilot/commands/suggest-awesome-github-copilot-instructions.md deleted file mode 120000 index f361d474..00000000 --- a/plugins/awesome-copilot/commands/suggest-awesome-github-copilot-instructions.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/suggest-awesome-github-copilot-instructions.prompt.md \ No newline at end of file diff --git a/plugins/awesome-copilot/commands/suggest-awesome-github-copilot-prompts.md b/plugins/awesome-copilot/commands/suggest-awesome-github-copilot-prompts.md deleted file mode 120000 index 0719e828..00000000 --- a/plugins/awesome-copilot/commands/suggest-awesome-github-copilot-prompts.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/suggest-awesome-github-copilot-prompts.prompt.md \ No newline at end of file diff --git a/plugins/awesome-copilot/commands/suggest-awesome-github-copilot-skills.md b/plugins/awesome-copilot/commands/suggest-awesome-github-copilot-skills.md deleted file mode 120000 index 080834a5..00000000 --- a/plugins/awesome-copilot/commands/suggest-awesome-github-copilot-skills.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/suggest-awesome-github-copilot-skills.prompt.md \ No newline at end of file diff --git a/plugins/azure-cloud-development/.github/plugin/plugin.json b/plugins/azure-cloud-development/.github/plugin/plugin.json index 3e4e7026..9bf3a8c0 100644 --- a/plugins/azure-cloud-development/.github/plugin/plugin.json +++ b/plugins/azure-cloud-development/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "azure", "cloud", "infrastructure", @@ -17,82 +17,17 @@ "architecture", "devops" ], - "display": { - "ordering": "alpha", - "show_badge": true - }, - "items": [ - { - "path": "agents/azure-principal-architect.agent.md", - "kind": "agent" - }, - { - "path": "agents/azure-saas-architect.agent.md", - "kind": "agent" - }, - { - "path": "agents/azure-logic-apps-expert.agent.md", - "kind": "agent" - }, - { - "path": "agents/azure-verified-modules-bicep.agent.md", - "kind": "agent" - }, - { - "path": "agents/azure-verified-modules-terraform.agent.md", - "kind": "agent" - }, - { - "path": "agents/terraform-azure-planning.agent.md", - "kind": "agent" - }, - { - "path": "agents/terraform-azure-implement.agent.md", - "kind": "agent" - }, - { - "path": "instructions/bicep-code-best-practices.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/terraform.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/terraform-azure.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/azure-verified-modules-terraform.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/azure-functions-typescript.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/azure-logic-apps-power-automate.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/azure-devops-pipelines.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/containerization-docker-best-practices.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/kubernetes-deployment-best-practices.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/azure-resource-health-diagnose.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/az-cost-optimize.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/azure-principal-architect.md", + "./agents/azure-saas-architect.md", + "./agents/azure-logic-apps-expert.md", + "./agents/azure-verified-modules-bicep.md", + "./agents/azure-verified-modules-terraform.md", + "./agents/terraform-azure-planning.md", + "./agents/terraform-azure-implement.md" + ], + "commands": [ + "./commands/azure-resource-health-diagnose.md", + "./commands/az-cost-optimize.md" ] } diff --git a/plugins/azure-cloud-development/agents/azure-logic-apps-expert.md b/plugins/azure-cloud-development/agents/azure-logic-apps-expert.md deleted file mode 120000 index 96402162..00000000 --- a/plugins/azure-cloud-development/agents/azure-logic-apps-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/azure-logic-apps-expert.agent.md \ No newline at end of file diff --git a/plugins/azure-cloud-development/agents/azure-principal-architect.md b/plugins/azure-cloud-development/agents/azure-principal-architect.md deleted file mode 120000 index 14829306..00000000 --- a/plugins/azure-cloud-development/agents/azure-principal-architect.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/azure-principal-architect.agent.md \ No newline at end of file diff --git a/plugins/azure-cloud-development/agents/azure-saas-architect.md b/plugins/azure-cloud-development/agents/azure-saas-architect.md deleted file mode 120000 index 9fad868a..00000000 --- a/plugins/azure-cloud-development/agents/azure-saas-architect.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/azure-saas-architect.agent.md \ No newline at end of file diff --git a/plugins/azure-cloud-development/agents/azure-verified-modules-bicep.md b/plugins/azure-cloud-development/agents/azure-verified-modules-bicep.md deleted file mode 120000 index 5df39b05..00000000 --- a/plugins/azure-cloud-development/agents/azure-verified-modules-bicep.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/azure-verified-modules-bicep.agent.md \ No newline at end of file diff --git a/plugins/azure-cloud-development/agents/azure-verified-modules-terraform.md b/plugins/azure-cloud-development/agents/azure-verified-modules-terraform.md deleted file mode 120000 index c464bce7..00000000 --- a/plugins/azure-cloud-development/agents/azure-verified-modules-terraform.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/azure-verified-modules-terraform.agent.md \ No newline at end of file diff --git a/plugins/azure-cloud-development/agents/terraform-azure-implement.md b/plugins/azure-cloud-development/agents/terraform-azure-implement.md deleted file mode 120000 index b23a9441..00000000 --- a/plugins/azure-cloud-development/agents/terraform-azure-implement.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/terraform-azure-implement.agent.md \ No newline at end of file diff --git a/plugins/azure-cloud-development/agents/terraform-azure-planning.md b/plugins/azure-cloud-development/agents/terraform-azure-planning.md deleted file mode 120000 index a11eb37e..00000000 --- a/plugins/azure-cloud-development/agents/terraform-azure-planning.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/terraform-azure-planning.agent.md \ No newline at end of file diff --git a/plugins/azure-cloud-development/commands/az-cost-optimize.md b/plugins/azure-cloud-development/commands/az-cost-optimize.md deleted file mode 120000 index e568a62f..00000000 --- a/plugins/azure-cloud-development/commands/az-cost-optimize.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/az-cost-optimize.prompt.md \ No newline at end of file diff --git a/plugins/azure-cloud-development/commands/azure-resource-health-diagnose.md b/plugins/azure-cloud-development/commands/azure-resource-health-diagnose.md deleted file mode 120000 index 8cd7b959..00000000 --- a/plugins/azure-cloud-development/commands/azure-resource-health-diagnose.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/azure-resource-health-diagnose.prompt.md \ No newline at end of file diff --git a/plugins/cast-imaging/.github/plugin/plugin.json b/plugins/cast-imaging/.github/plugin/plugin.json index a1edc666..77c36be5 100644 --- a/plugins/cast-imaging/.github/plugin/plugin.json +++ b/plugins/cast-imaging/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "cast-imaging", "software-analysis", "architecture", @@ -15,25 +15,9 @@ "impact-analysis", "devops" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "agents/cast-imaging-software-discovery.agent.md", - "kind": "agent", - "usage": "This agent is designed for comprehensive software application discovery and architectural mapping. It helps users understand code structure, dependencies, and architectural patterns, including database schemas and physical source file locations.\n\nIdeal for:\n- Exploring available applications and getting overviews.\n- Understanding system architecture and component structure.\n- Analyzing dependencies and database schemas (tables/columns).\n- Locating and analyzing physical source files." - }, - { - "path": "agents/cast-imaging-impact-analysis.agent.md", - "kind": "agent", - "usage": "This agent specializes in comprehensive change impact assessment and risk analysis. It assists users in understanding ripple effects of code changes, identifying architectural coupling (shared resources), and developing testing strategies.\n\nIdeal for:\n- Assessing potential impacts of code modifications.\n- Identifying architectural coupling and shared code risks.\n- Analyzing impacts spanning multiple applications.\n- Developing targeted testing approaches based on change scope." - }, - { - "path": "agents/cast-imaging-structural-quality-advisor.agent.md", - "kind": "agent", - "usage": "This agent focuses on identifying, analyzing, and providing remediation guidance for structural quality issues. It supports specialized standards including Security (CVE), Green IT deficiencies, and ISO-5055 compliance.\n\nIdeal for:\n- Identifying and understanding code quality issues and structural flaws.\n- Checking compliance with Security (CVE), Green IT, and ISO-5055 standards.\n- Prioritizing quality issues based on business impact and risk.\n- Analyzing quality trends and providing remediation guidance." - } + "agents": [ + "./agents/cast-imaging-software-discovery.md", + "./agents/cast-imaging-impact-analysis.md", + "./agents/cast-imaging-structural-quality-advisor.md" ] } diff --git a/plugins/cast-imaging/agents/cast-imaging-impact-analysis.md b/plugins/cast-imaging/agents/cast-imaging-impact-analysis.md deleted file mode 120000 index 4fafdf23..00000000 --- a/plugins/cast-imaging/agents/cast-imaging-impact-analysis.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/cast-imaging-impact-analysis.agent.md \ No newline at end of file diff --git a/plugins/cast-imaging/agents/cast-imaging-software-discovery.md b/plugins/cast-imaging/agents/cast-imaging-software-discovery.md deleted file mode 120000 index 73cfd6ac..00000000 --- a/plugins/cast-imaging/agents/cast-imaging-software-discovery.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/cast-imaging-software-discovery.agent.md \ No newline at end of file diff --git a/plugins/cast-imaging/agents/cast-imaging-structural-quality-advisor.md b/plugins/cast-imaging/agents/cast-imaging-structural-quality-advisor.md deleted file mode 120000 index 10c6d7d2..00000000 --- a/plugins/cast-imaging/agents/cast-imaging-structural-quality-advisor.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/cast-imaging-structural-quality-advisor.agent.md \ No newline at end of file diff --git a/plugins/clojure-interactive-programming/.github/plugin/plugin.json b/plugins/clojure-interactive-programming/.github/plugin/plugin.json index f255b6ab..e4cc886f 100644 --- a/plugins/clojure-interactive-programming/.github/plugin/plugin.json +++ b/plugins/clojure-interactive-programming/.github/plugin/plugin.json @@ -7,27 +7,15 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "clojure", "repl", "interactive-programming" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/clojure.instructions.md", - "kind": "instruction" - }, - { - "path": "agents/clojure-interactive-programming.agent.md", - "kind": "agent" - }, - { - "path": "prompts/remember-interactive-programming.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/clojure-interactive-programming.md" + ], + "commands": [ + "./commands/remember-interactive-programming.md" ] } diff --git a/plugins/clojure-interactive-programming/agents/clojure-interactive-programming.md b/plugins/clojure-interactive-programming/agents/clojure-interactive-programming.md deleted file mode 120000 index ac486f27..00000000 --- a/plugins/clojure-interactive-programming/agents/clojure-interactive-programming.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/clojure-interactive-programming.agent.md \ No newline at end of file diff --git a/plugins/clojure-interactive-programming/commands/remember-interactive-programming.md b/plugins/clojure-interactive-programming/commands/remember-interactive-programming.md deleted file mode 120000 index a460e40e..00000000 --- a/plugins/clojure-interactive-programming/commands/remember-interactive-programming.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/remember-interactive-programming.prompt.md \ No newline at end of file diff --git a/plugins/context-engineering/.github/plugin/plugin.json b/plugins/context-engineering/.github/plugin/plugin.json index a249c2bd..1f2f7434 100644 --- a/plugins/context-engineering/.github/plugin/plugin.json +++ b/plugins/context-engineering/.github/plugin/plugin.json @@ -7,41 +7,19 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "context", "productivity", "refactoring", "best-practices", "architecture" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/context-engineering.instructions.md", - "kind": "instruction" - }, - { - "path": "agents/context-architect.agent.md", - "kind": "agent", - "usage": "recommended\n\nThe Context Architect agent helps plan multi-file changes by mapping dependencies\nand identifying all relevant files before making modifications.\n\nUse this agent when:\n- Planning refactors that span multiple files\n- Adding features that touch several modules\n- Investigating unfamiliar parts of the codebase\n\nExample usage:\n```\n@context-architect I need to add rate limiting to all API endpoints.\nWhat files are involved and what's the best approach?\n```\n\nFor best results:\n- Describe the high-level goal, not just the immediate task\n- Let the agent search before you provide files\n- Review the context map before approving changes" - }, - { - "path": "prompts/context-map.prompt.md", - "kind": "prompt", - "usage": "optional\n\nUse before any significant change to understand the blast radius.\nProduces a structured map of files, dependencies, and tests." - }, - { - "path": "prompts/what-context-needed.prompt.md", - "kind": "prompt", - "usage": "optional\n\nUse when Copilot gives a generic or incorrect answer.\nAsks Copilot to explicitly list what files it needs to see." - }, - { - "path": "prompts/refactor-plan.prompt.md", - "kind": "prompt", - "usage": "optional\n\nUse for multi-file refactors. Produces a phased plan with\nverification steps and rollback procedures." - } + "agents": [ + "./agents/context-architect.md" + ], + "commands": [ + "./commands/context-map.md", + "./commands/what-context-needed.md", + "./commands/refactor-plan.md" ] } diff --git a/plugins/context-engineering/agents/context-architect.md b/plugins/context-engineering/agents/context-architect.md deleted file mode 120000 index b7c06a33..00000000 --- a/plugins/context-engineering/agents/context-architect.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/context-architect.agent.md \ No newline at end of file diff --git a/plugins/context-engineering/commands/context-map.md b/plugins/context-engineering/commands/context-map.md deleted file mode 120000 index 827ba052..00000000 --- a/plugins/context-engineering/commands/context-map.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/context-map.prompt.md \ No newline at end of file diff --git a/plugins/context-engineering/commands/refactor-plan.md b/plugins/context-engineering/commands/refactor-plan.md deleted file mode 120000 index cc58005d..00000000 --- a/plugins/context-engineering/commands/refactor-plan.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/refactor-plan.prompt.md \ No newline at end of file diff --git a/plugins/context-engineering/commands/what-context-needed.md b/plugins/context-engineering/commands/what-context-needed.md deleted file mode 120000 index 6fa010a3..00000000 --- a/plugins/context-engineering/commands/what-context-needed.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/what-context-needed.prompt.md \ No newline at end of file diff --git a/plugins/copilot-sdk/.github/plugin/plugin.json b/plugins/copilot-sdk/.github/plugin/plugin.json index 367b0ff3..42c16680 100644 --- a/plugins/copilot-sdk/.github/plugin/plugin.json +++ b/plugins/copilot-sdk/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "copilot-sdk", "sdk", "csharp", @@ -18,31 +18,7 @@ "ai", "github-copilot" ], - "featured": true, - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/copilot-sdk-csharp.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/copilot-sdk-go.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/copilot-sdk-nodejs.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/copilot-sdk-python.instructions.md", - "kind": "instruction" - }, - { - "path": "skills/copilot-sdk/SKILL.md", - "kind": "skill" - } + "skills": [ + "./skills/copilot-sdk/" ] } diff --git a/plugins/copilot-sdk/skills/copilot-sdk b/plugins/copilot-sdk/skills/copilot-sdk deleted file mode 120000 index 4b137987..00000000 --- a/plugins/copilot-sdk/skills/copilot-sdk +++ /dev/null @@ -1 +0,0 @@ -../../../skills/copilot-sdk \ No newline at end of file diff --git a/plugins/csharp-dotnet-development/.github/plugin/plugin.json b/plugins/csharp-dotnet-development/.github/plugin/plugin.json index 6a3cb957..bceb46a3 100644 --- a/plugins/csharp-dotnet-development/.github/plugin/plugin.json +++ b/plugins/csharp-dotnet-development/.github/plugin/plugin.json @@ -7,55 +7,23 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": ["csharp", "dotnet", "aspnet", "testing"], - "display": { - "ordering": "alpha", - "show_badge": false - }, - "items": [ - { - "path": "prompts/csharp-async.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/aspnet-minimal-api-openapi.prompt.md", - "kind": "prompt" - }, - { - "path": "instructions/csharp.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/dotnet-architecture-good-practices.instructions.md", - "kind": "instruction" - }, - { - "path": "agents/expert-dotnet-software-engineer.agent.md", - "kind": "agent" - }, - { - "path": "prompts/csharp-xunit.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/csharp-nunit.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/csharp-mstest.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/csharp-tunit.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/dotnet-best-practices.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/dotnet-upgrade.prompt.md", - "kind": "prompt" - } + "keywords": [ + "csharp", + "dotnet", + "aspnet", + "testing" + ], + "agents": [ + "./agents/expert-dotnet-software-engineer.md" + ], + "commands": [ + "./commands/csharp-async.md", + "./commands/aspnet-minimal-api-openapi.md", + "./commands/csharp-xunit.md", + "./commands/csharp-nunit.md", + "./commands/csharp-mstest.md", + "./commands/csharp-tunit.md", + "./commands/dotnet-best-practices.md", + "./commands/dotnet-upgrade.md" ] } diff --git a/plugins/csharp-dotnet-development/agents/expert-dotnet-software-engineer.md b/plugins/csharp-dotnet-development/agents/expert-dotnet-software-engineer.md deleted file mode 120000 index b5e161c9..00000000 --- a/plugins/csharp-dotnet-development/agents/expert-dotnet-software-engineer.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/expert-dotnet-software-engineer.agent.md \ No newline at end of file diff --git a/plugins/csharp-dotnet-development/commands/aspnet-minimal-api-openapi.md b/plugins/csharp-dotnet-development/commands/aspnet-minimal-api-openapi.md deleted file mode 120000 index 16e2e6cc..00000000 --- a/plugins/csharp-dotnet-development/commands/aspnet-minimal-api-openapi.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/aspnet-minimal-api-openapi.prompt.md \ No newline at end of file diff --git a/plugins/csharp-dotnet-development/commands/csharp-async.md b/plugins/csharp-dotnet-development/commands/csharp-async.md deleted file mode 120000 index c1812eac..00000000 --- a/plugins/csharp-dotnet-development/commands/csharp-async.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/csharp-async.prompt.md \ No newline at end of file diff --git a/plugins/csharp-dotnet-development/commands/csharp-mstest.md b/plugins/csharp-dotnet-development/commands/csharp-mstest.md deleted file mode 120000 index 941cbef4..00000000 --- a/plugins/csharp-dotnet-development/commands/csharp-mstest.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/csharp-mstest.prompt.md \ No newline at end of file diff --git a/plugins/csharp-dotnet-development/commands/csharp-nunit.md b/plugins/csharp-dotnet-development/commands/csharp-nunit.md deleted file mode 120000 index 486fd260..00000000 --- a/plugins/csharp-dotnet-development/commands/csharp-nunit.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/csharp-nunit.prompt.md \ No newline at end of file diff --git a/plugins/csharp-dotnet-development/commands/csharp-tunit.md b/plugins/csharp-dotnet-development/commands/csharp-tunit.md deleted file mode 120000 index 4ffd0add..00000000 --- a/plugins/csharp-dotnet-development/commands/csharp-tunit.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/csharp-tunit.prompt.md \ No newline at end of file diff --git a/plugins/csharp-dotnet-development/commands/csharp-xunit.md b/plugins/csharp-dotnet-development/commands/csharp-xunit.md deleted file mode 120000 index ce359d30..00000000 --- a/plugins/csharp-dotnet-development/commands/csharp-xunit.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/csharp-xunit.prompt.md \ No newline at end of file diff --git a/plugins/csharp-dotnet-development/commands/dotnet-best-practices.md b/plugins/csharp-dotnet-development/commands/dotnet-best-practices.md deleted file mode 120000 index 44df2779..00000000 --- a/plugins/csharp-dotnet-development/commands/dotnet-best-practices.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/dotnet-best-practices.prompt.md \ No newline at end of file diff --git a/plugins/csharp-dotnet-development/commands/dotnet-upgrade.md b/plugins/csharp-dotnet-development/commands/dotnet-upgrade.md deleted file mode 120000 index fc03407d..00000000 --- a/plugins/csharp-dotnet-development/commands/dotnet-upgrade.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/dotnet-upgrade.prompt.md \ No newline at end of file diff --git a/plugins/csharp-mcp-development/.github/plugin/plugin.json b/plugins/csharp-mcp-development/.github/plugin/plugin.json index 3b374432..04be5cd2 100644 --- a/plugins/csharp-mcp-development/.github/plugin/plugin.json +++ b/plugins/csharp-mcp-development/.github/plugin/plugin.json @@ -7,30 +7,17 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "csharp", "mcp", "model-context-protocol", "dotnet", "server-development" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/csharp-mcp-server.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/csharp-mcp-server-generator.prompt.md", - "kind": "prompt" - }, - { - "path": "agents/csharp-mcp-expert.agent.md", - "kind": "agent", - "usage": "recommended\n\nThis chat mode provides expert guidance for building MCP servers in C#.\n\nThis chat mode is ideal for:\n- Creating new MCP server projects\n- Implementing tools and prompts\n- Debugging protocol issues\n- Optimizing server performance\n- Learning MCP best practices\n\nTo get the best results, consider:\n- Using the instruction file to set context for all Copilot interactions\n- Using the prompt to generate initial project structure\n- Switching to the expert chat mode for detailed implementation help\n- Providing specific details about what tools or functionality you need" - } + "agents": [ + "./agents/csharp-mcp-expert.md" + ], + "commands": [ + "./commands/csharp-mcp-server-generator.md" ] } diff --git a/plugins/csharp-mcp-development/agents/csharp-mcp-expert.md b/plugins/csharp-mcp-development/agents/csharp-mcp-expert.md deleted file mode 120000 index 803748ff..00000000 --- a/plugins/csharp-mcp-development/agents/csharp-mcp-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/csharp-mcp-expert.agent.md \ No newline at end of file diff --git a/plugins/csharp-mcp-development/commands/csharp-mcp-server-generator.md b/plugins/csharp-mcp-development/commands/csharp-mcp-server-generator.md deleted file mode 120000 index eac6f7ed..00000000 --- a/plugins/csharp-mcp-development/commands/csharp-mcp-server-generator.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/csharp-mcp-server-generator.prompt.md \ No newline at end of file diff --git a/plugins/database-data-management/.github/plugin/plugin.json b/plugins/database-data-management/.github/plugin/plugin.json index 43e629da..efdcce7a 100644 --- a/plugins/database-data-management/.github/plugin/plugin.json +++ b/plugins/database-data-management/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "database", "sql", "postgresql", @@ -17,42 +17,14 @@ "queries", "data-management" ], - "display": { - "ordering": "alpha", - "show_badge": true - }, - "items": [ - { - "path": "agents/postgresql-dba.agent.md", - "kind": "agent" - }, - { - "path": "agents/ms-sql-dba.agent.md", - "kind": "agent" - }, - { - "path": "instructions/ms-sql-dba.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/sql-sp-generation.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/sql-optimization.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/sql-code-review.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/postgresql-optimization.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/postgresql-code-review.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/postgresql-dba.md", + "./agents/ms-sql-dba.md" + ], + "commands": [ + "./commands/sql-optimization.md", + "./commands/sql-code-review.md", + "./commands/postgresql-optimization.md", + "./commands/postgresql-code-review.md" ] } diff --git a/plugins/database-data-management/agents/ms-sql-dba.md b/plugins/database-data-management/agents/ms-sql-dba.md deleted file mode 120000 index ba3f60c8..00000000 --- a/plugins/database-data-management/agents/ms-sql-dba.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/ms-sql-dba.agent.md \ No newline at end of file diff --git a/plugins/database-data-management/agents/postgresql-dba.md b/plugins/database-data-management/agents/postgresql-dba.md deleted file mode 120000 index 9e233062..00000000 --- a/plugins/database-data-management/agents/postgresql-dba.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/postgresql-dba.agent.md \ No newline at end of file diff --git a/plugins/database-data-management/commands/postgresql-code-review.md b/plugins/database-data-management/commands/postgresql-code-review.md deleted file mode 120000 index 2244159b..00000000 --- a/plugins/database-data-management/commands/postgresql-code-review.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/postgresql-code-review.prompt.md \ No newline at end of file diff --git a/plugins/database-data-management/commands/postgresql-optimization.md b/plugins/database-data-management/commands/postgresql-optimization.md deleted file mode 120000 index ef7999df..00000000 --- a/plugins/database-data-management/commands/postgresql-optimization.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/postgresql-optimization.prompt.md \ No newline at end of file diff --git a/plugins/database-data-management/commands/sql-code-review.md b/plugins/database-data-management/commands/sql-code-review.md deleted file mode 120000 index 7d0254db..00000000 --- a/plugins/database-data-management/commands/sql-code-review.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/sql-code-review.prompt.md \ No newline at end of file diff --git a/plugins/database-data-management/commands/sql-optimization.md b/plugins/database-data-management/commands/sql-optimization.md deleted file mode 120000 index e5cdbc2f..00000000 --- a/plugins/database-data-management/commands/sql-optimization.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/sql-optimization.prompt.md \ No newline at end of file diff --git a/plugins/dataverse-sdk-for-python/.github/plugin/plugin.json b/plugins/dataverse-sdk-for-python/.github/plugin/plugin.json index 329e6680..3579e96b 100644 --- a/plugins/dataverse-sdk-for-python/.github/plugin/plugin.json +++ b/plugins/dataverse-sdk-for-python/.github/plugin/plugin.json @@ -7,84 +7,16 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "dataverse", "python", "integration", "sdk" ], - "display": { - "ordering": "alpha", - "show_badge": true - }, - "items": [ - { - "path": "instructions/dataverse-python-sdk.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/dataverse-python-api-reference.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/dataverse-python-modules.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/dataverse-python-best-practices.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/dataverse-python-advanced-features.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/dataverse-python-agentic-workflows.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/dataverse-python-authentication-security.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/dataverse-python-error-handling.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/dataverse-python-file-operations.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/dataverse-python-pandas-integration.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/dataverse-python-performance-optimization.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/dataverse-python-real-world-usecases.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/dataverse-python-testing-debugging.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/dataverse-python-quickstart.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/dataverse-python-advanced-patterns.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/dataverse-python-production-code.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/dataverse-python-usecase-builder.prompt.md", - "kind": "prompt" - } + "commands": [ + "./commands/dataverse-python-quickstart.md", + "./commands/dataverse-python-advanced-patterns.md", + "./commands/dataverse-python-production-code.md", + "./commands/dataverse-python-usecase-builder.md" ] } diff --git a/plugins/dataverse-sdk-for-python/commands/dataverse-python-advanced-patterns.md b/plugins/dataverse-sdk-for-python/commands/dataverse-python-advanced-patterns.md deleted file mode 120000 index 4d02eab3..00000000 --- a/plugins/dataverse-sdk-for-python/commands/dataverse-python-advanced-patterns.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/dataverse-python-advanced-patterns.prompt.md \ No newline at end of file diff --git a/plugins/dataverse-sdk-for-python/commands/dataverse-python-production-code.md b/plugins/dataverse-sdk-for-python/commands/dataverse-python-production-code.md deleted file mode 120000 index a86c9094..00000000 --- a/plugins/dataverse-sdk-for-python/commands/dataverse-python-production-code.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/dataverse-python-production-code.prompt.md \ No newline at end of file diff --git a/plugins/dataverse-sdk-for-python/commands/dataverse-python-quickstart.md b/plugins/dataverse-sdk-for-python/commands/dataverse-python-quickstart.md deleted file mode 120000 index 9c4702b8..00000000 --- a/plugins/dataverse-sdk-for-python/commands/dataverse-python-quickstart.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/dataverse-python-quickstart.prompt.md \ No newline at end of file diff --git a/plugins/dataverse-sdk-for-python/commands/dataverse-python-usecase-builder.md b/plugins/dataverse-sdk-for-python/commands/dataverse-python-usecase-builder.md deleted file mode 120000 index 8478dfa5..00000000 --- a/plugins/dataverse-sdk-for-python/commands/dataverse-python-usecase-builder.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/dataverse-python-usecase-builder.prompt.md \ No newline at end of file diff --git a/plugins/devops-oncall/.github/plugin/plugin.json b/plugins/devops-oncall/.github/plugin/plugin.json index d2d14277..c06cee86 100644 --- a/plugins/devops-oncall/.github/plugin/plugin.json +++ b/plugins/devops-oncall/.github/plugin/plugin.json @@ -7,36 +7,17 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "devops", "incident-response", "oncall", "azure" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "prompts/azure-resource-health-diagnose.prompt.md", - "kind": "prompt" - }, - { - "path": "instructions/devops-core-principles.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/containerization-docker-best-practices.instructions.md", - "kind": "instruction" - }, - { - "path": "agents/azure-principal-architect.agent.md", - "kind": "agent" - }, - { - "path": "prompts/multi-stage-dockerfile.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/azure-principal-architect.md" + ], + "commands": [ + "./commands/azure-resource-health-diagnose.md", + "./commands/multi-stage-dockerfile.md" ] } diff --git a/plugins/devops-oncall/agents/azure-principal-architect.md b/plugins/devops-oncall/agents/azure-principal-architect.md deleted file mode 120000 index 14829306..00000000 --- a/plugins/devops-oncall/agents/azure-principal-architect.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/azure-principal-architect.agent.md \ No newline at end of file diff --git a/plugins/devops-oncall/commands/azure-resource-health-diagnose.md b/plugins/devops-oncall/commands/azure-resource-health-diagnose.md deleted file mode 120000 index 8cd7b959..00000000 --- a/plugins/devops-oncall/commands/azure-resource-health-diagnose.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/azure-resource-health-diagnose.prompt.md \ No newline at end of file diff --git a/plugins/devops-oncall/commands/multi-stage-dockerfile.md b/plugins/devops-oncall/commands/multi-stage-dockerfile.md deleted file mode 120000 index 96d8327c..00000000 --- a/plugins/devops-oncall/commands/multi-stage-dockerfile.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/multi-stage-dockerfile.prompt.md \ No newline at end of file diff --git a/plugins/edge-ai-tasks/.github/plugin/plugin.json b/plugins/edge-ai-tasks/.github/plugin/plugin.json index a17a1399..5479ee9d 100644 --- a/plugins/edge-ai-tasks/.github/plugin/plugin.json +++ b/plugins/edge-ai-tasks/.github/plugin/plugin.json @@ -7,32 +7,15 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "architecture", "planning", "research", "tasks", "implementation" ], - "display": { - "ordering": "alpha", - "show_badge": false - }, - "items": [ - { - "path": "agents/task-researcher.agent.md", - "kind": "agent", - "usage": "Now you can iterate on research for your tasks!\n\n```markdown, research.prompt.md\n---\nmode: task-researcher\ntitle: Research microsoft fabric realtime intelligence terraform support\n---\nReview the microsoft documentation for fabric realtime intelligence\nand come up with ideas on how to implement this support into our terraform components.\n```\n\nResearch is dumped out into a .copilot-tracking/research/*-research.md file and will include discoveries for GHCP along with examples and schema that will be useful during implementation.\n\nAlso, task-researcher will provide additional ideas for implementation which you can work with GitHub Copilot on selecting the right one to focus on." - }, - { - "path": "agents/task-planner.agent.md", - "kind": "agent", - "usage": "Also, task-researcher will provide additional ideas for implementation which you can work with GitHub Copilot on selecting the right one to focus on.\n\n```markdown, task-plan.prompt.md\n---\nmode: task-planner\ntitle: Plan microsoft fabric realtime intelligence terraform support\n---\n#file: .copilot-tracking/research/*-fabric-rti-blueprint-modification-research.md\nBuild a plan to support adding fabric rti to this project\n```\n\n`task-planner` will help you create a plan for implementing your task(s). It will use your fully researched ideas or build new research if not already provided.\n\n`task-planner` will produce three (3) files that will be used by `task-implementation.instructions.md`.\n\n* `.copilot-tracking/plan/*-plan.instructions.md`\n\n * A newly generated instructions file that has the plan as a checklist of Phases and Tasks.\n* `.copilot-tracking/details/*-details.md`\n\n * The details for the implementation, the plan file refers to this file for specific details (important if you have a big plan).\n* `.copilot-tracking/prompts/implement-*.prompt.md`\n\n * A newly generated prompt file that will create a `.copilot-tracking/changes/*-changes.md` file and proceed to implement the changes.\n\nContinue to use `task-planner` to iterate on the plan until you have exactly what you want done to your codebase." - }, - { - "path": "instructions/task-implementation.instructions.md", - "kind": "instruction", - "usage": "Continue to use `task-planner` to iterate on the plan until you have exactly what you want done to your codebase.\n\nWhen you are ready to implement the plan, **create a new chat** and switch to `Agent` mode then fire off the newly generated prompt.\n\n```markdown, implement-fabric-rti-changes.prompt.md\n---\nmode: agent\ntitle: Implement microsoft fabric realtime intelligence terraform support\n---\n/implement-fabric-rti-blueprint-modification phaseStop=true\n```\n\nThis prompt has the added benefit of attaching the plan as instructions, which helps with keeping the plan in context throughout the whole conversation.\n\n**Expert Warning** ->>Use `phaseStop=false` to have Copilot implement the whole plan without stopping. Additionally, you can use `taskStop=true` to have Copilot stop after every Task implementation for finer detail control.\n\nTo use these generated instructions and prompts, you'll need to update your `settings.json` accordingly:\n\n```json\n \"chat.instructionsFilesLocations\": {\n // Existing instructions folders...\n \".copilot-tracking/plans\": true\n },\n \"chat.promptFilesLocations\": {\n // Existing prompts folders...\n \".copilot-tracking/prompts\": true\n },\n```" - } + "agents": [ + "./agents/task-researcher.md", + "./agents/task-planner.md" ] } diff --git a/plugins/edge-ai-tasks/agents/task-planner.md b/plugins/edge-ai-tasks/agents/task-planner.md deleted file mode 120000 index 71acbbad..00000000 --- a/plugins/edge-ai-tasks/agents/task-planner.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/task-planner.agent.md \ No newline at end of file diff --git a/plugins/edge-ai-tasks/agents/task-researcher.md b/plugins/edge-ai-tasks/agents/task-researcher.md deleted file mode 120000 index 6fd8b921..00000000 --- a/plugins/edge-ai-tasks/agents/task-researcher.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/task-researcher.agent.md \ No newline at end of file diff --git a/plugins/frontend-web-dev/.github/plugin/plugin.json b/plugins/frontend-web-dev/.github/plugin/plugin.json index e96423d1..05ccb628 100644 --- a/plugins/frontend-web-dev/.github/plugin/plugin.json +++ b/plugins/frontend-web-dev/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "frontend", "web", "react", @@ -18,54 +18,12 @@ "angular", "vue" ], - "display": { - "ordering": "alpha", - "show_badge": true - }, - "items": [ - { - "path": "agents/expert-react-frontend-engineer.agent.md", - "kind": "agent" - }, - { - "path": "agents/electron-angular-native.agent.md", - "kind": "agent" - }, - { - "path": "instructions/reactjs.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/angular.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/vuejs3.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/nextjs.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/nextjs-tailwind.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/tanstack-start-shadcn-tailwind.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/nodejs-javascript-vitest.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/playwright-explore-website.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/playwright-generate-test.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/expert-react-frontend-engineer.md", + "./agents/electron-angular-native.md" + ], + "commands": [ + "./commands/playwright-explore-website.md", + "./commands/playwright-generate-test.md" ] } diff --git a/plugins/frontend-web-dev/agents/electron-angular-native.md b/plugins/frontend-web-dev/agents/electron-angular-native.md deleted file mode 120000 index 87b9a7cd..00000000 --- a/plugins/frontend-web-dev/agents/electron-angular-native.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/electron-angular-native.agent.md \ No newline at end of file diff --git a/plugins/frontend-web-dev/agents/expert-react-frontend-engineer.md b/plugins/frontend-web-dev/agents/expert-react-frontend-engineer.md deleted file mode 120000 index 626d4cf3..00000000 --- a/plugins/frontend-web-dev/agents/expert-react-frontend-engineer.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/expert-react-frontend-engineer.agent.md \ No newline at end of file diff --git a/plugins/frontend-web-dev/commands/playwright-explore-website.md b/plugins/frontend-web-dev/commands/playwright-explore-website.md deleted file mode 120000 index 37779dc7..00000000 --- a/plugins/frontend-web-dev/commands/playwright-explore-website.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/playwright-explore-website.prompt.md \ No newline at end of file diff --git a/plugins/frontend-web-dev/commands/playwright-generate-test.md b/plugins/frontend-web-dev/commands/playwright-generate-test.md deleted file mode 120000 index 983ad66a..00000000 --- a/plugins/frontend-web-dev/commands/playwright-generate-test.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/playwright-generate-test.prompt.md \ No newline at end of file diff --git a/plugins/gem-team/.github/plugin/plugin.json b/plugins/gem-team/.github/plugin/plugin.json index ed239219..c8941fd0 100644 --- a/plugins/gem-team/.github/plugin/plugin.json +++ b/plugins/gem-team/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "multi-agent", "orchestration", "dag-planning", @@ -17,50 +17,14 @@ "automation", "security" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "agents/gem-orchestrator.agent.md", - "kind": "agent", - "usage": "recommended\n\nThe Orchestrator is the coordination hub that coordinates multi-agent workflows, delegates tasks via runSubagent, and synthesizes results. It does not execute tasks directly but manages the overall workflow.\n\nThis agent is ideal for:\n- Coordinating complex multi-agent workflows\n- Managing task delegation and parallel execution\n- Synthesizing results from multiple agents\n- Maintaining plan.yaml state\n\nTo get the best results, consider:\n- Start with the Orchestrator for any complex project\n- Provide clear goals and constraints\n- Review the plan.yaml before execution\n- Use the walkthrough summaries to track progress" - }, - { - "path": "agents/gem-researcher.agent.md", - "kind": "agent", - "usage": "recommended\n\nThe Researcher gathers codebase context, identifies relevant files/patterns, and returns structured findings. It is typically invoked by the Orchestrator with a specific focus area.\n\nThis agent is ideal for:\n- Understanding codebase structure and patterns\n- Identifying relevant files for a specific feature\n- Gathering context before making changes\n- Researching technical dependencies\n\nTo get the best results, consider:\n- Specify a clear focus area or question\n- Provide context about what you're trying to achieve\n- Use multiple Researchers in parallel for different areas" - }, - { - "path": "agents/gem-planner.agent.md", - "kind": "agent", - "usage": "recommended\n\nThe Planner creates DAG-based plans with pre-mortem analysis, presents for approval, and iterates on feedback. It synthesizes research findings into a structured plan.\n\nThis agent is ideal for:\n- Breaking down complex goals into atomic tasks\n- Creating task dependencies (DAG)\n- Running pre-mortem analysis to identify risks\n- Getting approval before execution\n\nTo get the best results, consider:\n- Provide clear research findings from the Researcher\n- Review the plan carefully before approving\n- Ask for iterations if the plan is not optimal\n- Use the plan_review tool for collaborative planning" - }, - { - "path": "agents/gem-implementer.agent.md", - "kind": "agent", - "usage": "recommended\n\nThe Implementer executes TDD code changes, ensures verification, and maintains quality. It follows strict TDD discipline with verification commands.\n\nThis agent is ideal for:\n- Implementing features with TDD discipline\n- Writing tests first, then code\n- Ensuring verification commands pass\n- Maintaining code quality\n\nTo get the best results, consider:\n- Always provide verification commands\n- Follow TDD: red, green, refactor\n- Check get_errors after every edit\n- Keep changes minimal and focused" - }, - { - "path": "agents/gem-browser-tester.agent.md", - "kind": "agent", - "usage": "optional\n\nThe Browser Tester automates browser testing, UI/UX validation using browser automation tools and visual verification techniques.\n\nThis agent is ideal for:\n- Automated browser testing\n- UI/UX validation\n- Capturing screenshots and snapshots\n- Testing web applications\n\nTo get the best results, consider:\n- Have browser automation tools installed\n- Provide clear test scenarios\n- Use snapshots for debugging\n- Test on different viewports" - }, - { - "path": "agents/gem-devops.agent.md", - "kind": "agent", - "usage": "optional\n\nThe DevOps agent manages containers, CI/CD pipelines, and infrastructure deployment. It handles infrastructure as code and deployment automation.\n\nThis agent is ideal for:\n- Setting up CI/CD pipelines\n- Managing containers (Docker, Kubernetes)\n- Infrastructure deployment\n- DevOps automation\n\nTo get the best results, consider:\n- Provide clear infrastructure requirements\n- Use IaC best practices\n- Test pipelines locally\n- Document deployment processes" - }, - { - "path": "agents/gem-reviewer.agent.md", - "kind": "agent", - "usage": "recommended\n\nThe Reviewer is a security gatekeeper for critical tasks. It applies OWASP scanning, secrets detection, and compliance verification.\n\nThis agent is ideal for:\n- Security code reviews\n- OWASP Top 10 scanning\n- Secrets and PII detection\n- Compliance verification\n\nTo get the best results, consider:\n- Use for all critical security changes\n- Review findings carefully\n- Address all security issues\n- Keep documentation updated" - }, - { - "path": "agents/gem-documentation-writer.agent.md", - "kind": "agent", - "usage": "optional\n\nThe Documentation Writer generates technical docs, diagrams, and maintains code-documentation parity.\n\nThis agent is ideal for:\n- Generating technical documentation\n- Creating diagrams\n- Keeping docs in sync with code\n- API documentation\n\nTo get the best results, consider:\n- Provide clear context and requirements\n- Review generated docs for accuracy\n- Update docs with code changes\n- Use consistent documentation style" - } + "agents": [ + "./agents/gem-orchestrator.md", + "./agents/gem-researcher.md", + "./agents/gem-planner.md", + "./agents/gem-implementer.md", + "./agents/gem-browser-tester.md", + "./agents/gem-devops.md", + "./agents/gem-reviewer.md", + "./agents/gem-documentation-writer.md" ] } diff --git a/plugins/gem-team/agents/gem-browser-tester.md b/plugins/gem-team/agents/gem-browser-tester.md deleted file mode 120000 index fd85cc30..00000000 --- a/plugins/gem-team/agents/gem-browser-tester.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/gem-browser-tester.agent.md \ No newline at end of file diff --git a/plugins/gem-team/agents/gem-devops.md b/plugins/gem-team/agents/gem-devops.md deleted file mode 120000 index 5a965bed..00000000 --- a/plugins/gem-team/agents/gem-devops.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/gem-devops.agent.md \ No newline at end of file diff --git a/plugins/gem-team/agents/gem-documentation-writer.md b/plugins/gem-team/agents/gem-documentation-writer.md deleted file mode 120000 index de10461e..00000000 --- a/plugins/gem-team/agents/gem-documentation-writer.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/gem-documentation-writer.agent.md \ No newline at end of file diff --git a/plugins/gem-team/agents/gem-implementer.md b/plugins/gem-team/agents/gem-implementer.md deleted file mode 120000 index 030a21d5..00000000 --- a/plugins/gem-team/agents/gem-implementer.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/gem-implementer.agent.md \ No newline at end of file diff --git a/plugins/gem-team/agents/gem-orchestrator.md b/plugins/gem-team/agents/gem-orchestrator.md deleted file mode 120000 index 0f72d3bb..00000000 --- a/plugins/gem-team/agents/gem-orchestrator.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/gem-orchestrator.agent.md \ No newline at end of file diff --git a/plugins/gem-team/agents/gem-planner.md b/plugins/gem-team/agents/gem-planner.md deleted file mode 120000 index b6cdc652..00000000 --- a/plugins/gem-team/agents/gem-planner.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/gem-planner.agent.md \ No newline at end of file diff --git a/plugins/gem-team/agents/gem-researcher.md b/plugins/gem-team/agents/gem-researcher.md deleted file mode 120000 index 29b4b593..00000000 --- a/plugins/gem-team/agents/gem-researcher.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/gem-researcher.agent.md \ No newline at end of file diff --git a/plugins/gem-team/agents/gem-reviewer.md b/plugins/gem-team/agents/gem-reviewer.md deleted file mode 120000 index de8ce09a..00000000 --- a/plugins/gem-team/agents/gem-reviewer.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/gem-reviewer.agent.md \ No newline at end of file diff --git a/plugins/go-mcp-development/.github/plugin/plugin.json b/plugins/go-mcp-development/.github/plugin/plugin.json index 5795d6cc..810eb927 100644 --- a/plugins/go-mcp-development/.github/plugin/plugin.json +++ b/plugins/go-mcp-development/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "go", "golang", "mcp", @@ -15,23 +15,10 @@ "server-development", "sdk" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/go-mcp-server.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/go-mcp-server-generator.prompt.md", - "kind": "prompt" - }, - { - "path": "agents/go-mcp-expert.agent.md", - "kind": "agent", - "usage": "recommended\n\nThis chat mode provides expert guidance for building MCP servers in Go.\n\nThis chat mode is ideal for:\n- Creating new MCP server projects with Go\n- Implementing type-safe tools with structs and JSON schema tags\n- Setting up stdio or HTTP transports\n- Debugging context handling and error patterns\n- Learning Go MCP best practices with the official SDK\n- Optimizing server performance and concurrency\n\nTo get the best results, consider:\n- Using the instruction file to set context for Go MCP development\n- Using the prompt to generate initial project structure\n- Switching to the expert chat mode for detailed implementation help\n- Specifying whether you need stdio or HTTP transport\n- Providing details about what tools or functionality you need\n- Mentioning if you need resources, prompts, or special capabilities" - } + "agents": [ + "./agents/go-mcp-expert.md" + ], + "commands": [ + "./commands/go-mcp-server-generator.md" ] } diff --git a/plugins/go-mcp-development/agents/go-mcp-expert.md b/plugins/go-mcp-development/agents/go-mcp-expert.md deleted file mode 120000 index 602fc1c9..00000000 --- a/plugins/go-mcp-development/agents/go-mcp-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/go-mcp-expert.agent.md \ No newline at end of file diff --git a/plugins/go-mcp-development/commands/go-mcp-server-generator.md b/plugins/go-mcp-development/commands/go-mcp-server-generator.md deleted file mode 120000 index 2377c935..00000000 --- a/plugins/go-mcp-development/commands/go-mcp-server-generator.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/go-mcp-server-generator.prompt.md \ No newline at end of file diff --git a/plugins/java-development/.github/plugin/plugin.json b/plugins/java-development/.github/plugin/plugin.json index c9d08bed..7c31c967 100644 --- a/plugins/java-development/.github/plugin/plugin.json +++ b/plugins/java-development/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "java", "springboot", "quarkus", @@ -15,58 +15,10 @@ "junit", "javadoc" ], - "display": { - "ordering": "alpha", - "show_badge": false - }, - "items": [ - { - "path": "instructions/java.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/springboot.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/quarkus.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/quarkus-mcp-server-sse.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/convert-jpa-to-spring-data-cosmos.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/java-11-to-java-17-upgrade.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/java-17-to-java-21-upgrade.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/java-21-to-java-25-upgrade.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/java-docs.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/java-junit.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/java-springboot.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/create-spring-boot-java-project.prompt.md", - "kind": "prompt" - } + "commands": [ + "./commands/java-docs.md", + "./commands/java-junit.md", + "./commands/java-springboot.md", + "./commands/create-spring-boot-java-project.md" ] } diff --git a/plugins/java-development/commands/create-spring-boot-java-project.md b/plugins/java-development/commands/create-spring-boot-java-project.md deleted file mode 120000 index b2d16157..00000000 --- a/plugins/java-development/commands/create-spring-boot-java-project.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/create-spring-boot-java-project.prompt.md \ No newline at end of file diff --git a/plugins/java-development/commands/java-docs.md b/plugins/java-development/commands/java-docs.md deleted file mode 120000 index 40b5f6cc..00000000 --- a/plugins/java-development/commands/java-docs.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/java-docs.prompt.md \ No newline at end of file diff --git a/plugins/java-development/commands/java-junit.md b/plugins/java-development/commands/java-junit.md deleted file mode 120000 index c8888a0e..00000000 --- a/plugins/java-development/commands/java-junit.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/java-junit.prompt.md \ No newline at end of file diff --git a/plugins/java-development/commands/java-springboot.md b/plugins/java-development/commands/java-springboot.md deleted file mode 120000 index c6b488c8..00000000 --- a/plugins/java-development/commands/java-springboot.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/java-springboot.prompt.md \ No newline at end of file diff --git a/plugins/java-mcp-development/.github/plugin/plugin.json b/plugins/java-mcp-development/.github/plugin/plugin.json index 6b663b43..146b1cc6 100644 --- a/plugins/java-mcp-development/.github/plugin/plugin.json +++ b/plugins/java-mcp-development/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "java", "mcp", "model-context-protocol", @@ -17,23 +17,10 @@ "spring-boot", "reactor" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/java-mcp-server.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/java-mcp-server-generator.prompt.md", - "kind": "prompt" - }, - { - "path": "agents/java-mcp-expert.agent.md", - "kind": "agent", - "usage": "recommended\n\nThis chat mode provides expert guidance for building MCP servers in Java.\n\nThis chat mode is ideal for:\n- Creating new MCP server projects with Java\n- Implementing reactive handlers with Project Reactor\n- Setting up stdio or HTTP transports\n- Debugging reactive streams and error handling\n- Learning Java MCP best practices with the official SDK\n- Integrating with Spring Boot applications\n\nTo get the best results, consider:\n- Using the instruction file to set context for Java MCP development\n- Using the prompt to generate initial project structure\n- Switching to the expert chat mode for detailed implementation help\n- Specifying whether you need Maven or Gradle\n- Providing details about what tools or functionality you need\n- Mentioning if you need Spring Boot integration" - } + "agents": [ + "./agents/java-mcp-expert.md" + ], + "commands": [ + "./commands/java-mcp-server-generator.md" ] } diff --git a/plugins/java-mcp-development/agents/java-mcp-expert.md b/plugins/java-mcp-development/agents/java-mcp-expert.md deleted file mode 120000 index 37952373..00000000 --- a/plugins/java-mcp-development/agents/java-mcp-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/java-mcp-expert.agent.md \ No newline at end of file diff --git a/plugins/java-mcp-development/commands/java-mcp-server-generator.md b/plugins/java-mcp-development/commands/java-mcp-server-generator.md deleted file mode 120000 index 5d9f5292..00000000 --- a/plugins/java-mcp-development/commands/java-mcp-server-generator.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/java-mcp-server-generator.prompt.md \ No newline at end of file diff --git a/plugins/kotlin-mcp-development/.github/plugin/plugin.json b/plugins/kotlin-mcp-development/.github/plugin/plugin.json index 2b70d00f..463ee8d0 100644 --- a/plugins/kotlin-mcp-development/.github/plugin/plugin.json +++ b/plugins/kotlin-mcp-development/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "kotlin", "mcp", "model-context-protocol", @@ -15,23 +15,10 @@ "server-development", "ktor" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/kotlin-mcp-server.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/kotlin-mcp-server-generator.prompt.md", - "kind": "prompt" - }, - { - "path": "agents/kotlin-mcp-expert.agent.md", - "kind": "agent", - "usage": "recommended\n\nThis chat mode provides expert guidance for building MCP servers in Kotlin.\n\nThis chat mode is ideal for:\n- Creating new MCP server projects with Kotlin\n- Implementing type-safe tools with coroutines and kotlinx.serialization\n- Setting up stdio or SSE transports with Ktor\n- Debugging coroutine patterns and JSON schema issues\n- Learning Kotlin MCP best practices with the official SDK\n- Building multiplatform MCP servers (JVM, Wasm, iOS)\n\nTo get the best results, consider:\n- Using the instruction file to set context for Kotlin MCP development\n- Using the prompt to generate initial project structure with Gradle\n- Switching to the expert chat mode for detailed implementation help\n- Specifying whether you need stdio or SSE/HTTP transport\n- Providing details about what tools or functionality you need\n- Mentioning if you need multiplatform support or specific targets" - } + "agents": [ + "./agents/kotlin-mcp-expert.md" + ], + "commands": [ + "./commands/kotlin-mcp-server-generator.md" ] } diff --git a/plugins/kotlin-mcp-development/agents/kotlin-mcp-expert.md b/plugins/kotlin-mcp-development/agents/kotlin-mcp-expert.md deleted file mode 120000 index c5c9b8e3..00000000 --- a/plugins/kotlin-mcp-development/agents/kotlin-mcp-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/kotlin-mcp-expert.agent.md \ No newline at end of file diff --git a/plugins/kotlin-mcp-development/commands/kotlin-mcp-server-generator.md b/plugins/kotlin-mcp-development/commands/kotlin-mcp-server-generator.md deleted file mode 120000 index 5505d2f6..00000000 --- a/plugins/kotlin-mcp-development/commands/kotlin-mcp-server-generator.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/kotlin-mcp-server-generator.prompt.md \ No newline at end of file diff --git a/plugins/mcp-m365-copilot/.github/plugin/plugin.json b/plugins/mcp-m365-copilot/.github/plugin/plugin.json index 9e8f49bc..a7eab6ef 100644 --- a/plugins/mcp-m365-copilot/.github/plugin/plugin.json +++ b/plugins/mcp-m365-copilot/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "mcp", "m365-copilot", "declarative-agents", @@ -15,30 +15,12 @@ "model-context-protocol", "adaptive-cards" ], - "display": { - "show_badge": true - }, - "items": [ - { - "path": "prompts/mcp-create-declarative-agent.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/mcp-create-adaptive-cards.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/mcp-deploy-manage-agents.prompt.md", - "kind": "prompt" - }, - { - "path": "instructions/mcp-m365-copilot.instructions.md", - "kind": "instruction" - }, - { - "path": "agents/mcp-m365-agent-expert.agent.md", - "kind": "agent", - "usage": "recommended\n\nThis chat mode provides expert guidance for building MCP-based declarative agents for Microsoft 365 Copilot.\n\nThis chat mode is ideal for:\n- Creating new declarative agents with MCP integration\n- Designing Adaptive Cards for visual responses\n- Configuring OAuth 2.0 or SSO authentication\n- Setting up response semantics and data extraction\n- Troubleshooting deployment and governance issues\n- Learning MCP best practices for M365 Copilot\n\nTo get the best results, consider:\n- Using the instruction file to set context for all Copilot interactions\n- Using prompts to generate initial agent structure and configurations\n- Switching to the expert chat mode for detailed implementation help\n- Providing specific details about your MCP server, tools, and business scenario" - } + "agents": [ + "./agents/mcp-m365-agent-expert.md" + ], + "commands": [ + "./commands/mcp-create-declarative-agent.md", + "./commands/mcp-create-adaptive-cards.md", + "./commands/mcp-deploy-manage-agents.md" ] } diff --git a/plugins/mcp-m365-copilot/agents/mcp-m365-agent-expert.md b/plugins/mcp-m365-copilot/agents/mcp-m365-agent-expert.md deleted file mode 120000 index 620101c4..00000000 --- a/plugins/mcp-m365-copilot/agents/mcp-m365-agent-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/mcp-m365-agent-expert.agent.md \ No newline at end of file diff --git a/plugins/mcp-m365-copilot/commands/mcp-create-adaptive-cards.md b/plugins/mcp-m365-copilot/commands/mcp-create-adaptive-cards.md deleted file mode 120000 index 3b9c9611..00000000 --- a/plugins/mcp-m365-copilot/commands/mcp-create-adaptive-cards.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/mcp-create-adaptive-cards.prompt.md \ No newline at end of file diff --git a/plugins/mcp-m365-copilot/commands/mcp-create-declarative-agent.md b/plugins/mcp-m365-copilot/commands/mcp-create-declarative-agent.md deleted file mode 120000 index d3d557c7..00000000 --- a/plugins/mcp-m365-copilot/commands/mcp-create-declarative-agent.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/mcp-create-declarative-agent.prompt.md \ No newline at end of file diff --git a/plugins/mcp-m365-copilot/commands/mcp-deploy-manage-agents.md b/plugins/mcp-m365-copilot/commands/mcp-deploy-manage-agents.md deleted file mode 120000 index 04563a57..00000000 --- a/plugins/mcp-m365-copilot/commands/mcp-deploy-manage-agents.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/mcp-deploy-manage-agents.prompt.md \ No newline at end of file diff --git a/plugins/openapi-to-application-csharp-dotnet/.github/plugin/plugin.json b/plugins/openapi-to-application-csharp-dotnet/.github/plugin/plugin.json index ff4d2820..2622c211 100644 --- a/plugins/openapi-to-application-csharp-dotnet/.github/plugin/plugin.json +++ b/plugins/openapi-to-application-csharp-dotnet/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "openapi", "code-generation", "api", @@ -15,22 +15,10 @@ "dotnet", "aspnet" ], - "display": { - "ordering": "manual", - "show_badge": false - }, - "items": [ - { - "path": "agents/openapi-to-application.agent.md", - "kind": "agent" - }, - { - "path": "instructions/csharp.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/openapi-to-application-code.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/openapi-to-application.md" + ], + "commands": [ + "./commands/openapi-to-application-code.md" ] } diff --git a/plugins/openapi-to-application-csharp-dotnet/agents/openapi-to-application.md b/plugins/openapi-to-application-csharp-dotnet/agents/openapi-to-application.md deleted file mode 120000 index 12a099b4..00000000 --- a/plugins/openapi-to-application-csharp-dotnet/agents/openapi-to-application.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/openapi-to-application.agent.md \ No newline at end of file diff --git a/plugins/openapi-to-application-csharp-dotnet/commands/openapi-to-application-code.md b/plugins/openapi-to-application-csharp-dotnet/commands/openapi-to-application-code.md deleted file mode 120000 index f0c3da0c..00000000 --- a/plugins/openapi-to-application-csharp-dotnet/commands/openapi-to-application-code.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/openapi-to-application-code.prompt.md \ No newline at end of file diff --git a/plugins/openapi-to-application-go/.github/plugin/plugin.json b/plugins/openapi-to-application-go/.github/plugin/plugin.json index 3ce2d218..776c013a 100644 --- a/plugins/openapi-to-application-go/.github/plugin/plugin.json +++ b/plugins/openapi-to-application-go/.github/plugin/plugin.json @@ -7,29 +7,17 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "openapi", "code-generation", "api", "go", "golang" ], - "display": { - "ordering": "manual", - "show_badge": false - }, - "items": [ - { - "path": "agents/openapi-to-application.agent.md", - "kind": "agent" - }, - { - "path": "instructions/go.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/openapi-to-application-code.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/openapi-to-application.md" + ], + "commands": [ + "./commands/openapi-to-application-code.md" ] } diff --git a/plugins/openapi-to-application-go/agents/openapi-to-application.md b/plugins/openapi-to-application-go/agents/openapi-to-application.md deleted file mode 120000 index 12a099b4..00000000 --- a/plugins/openapi-to-application-go/agents/openapi-to-application.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/openapi-to-application.agent.md \ No newline at end of file diff --git a/plugins/openapi-to-application-go/commands/openapi-to-application-code.md b/plugins/openapi-to-application-go/commands/openapi-to-application-code.md deleted file mode 120000 index f0c3da0c..00000000 --- a/plugins/openapi-to-application-go/commands/openapi-to-application-code.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/openapi-to-application-code.prompt.md \ No newline at end of file diff --git a/plugins/openapi-to-application-java-spring-boot/.github/plugin/plugin.json b/plugins/openapi-to-application-java-spring-boot/.github/plugin/plugin.json index dde91c38..0974f39c 100644 --- a/plugins/openapi-to-application-java-spring-boot/.github/plugin/plugin.json +++ b/plugins/openapi-to-application-java-spring-boot/.github/plugin/plugin.json @@ -7,29 +7,17 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "openapi", "code-generation", "api", "java", "spring-boot" ], - "display": { - "ordering": "manual", - "show_badge": false - }, - "items": [ - { - "path": "agents/openapi-to-application.agent.md", - "kind": "agent" - }, - { - "path": "instructions/springboot.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/openapi-to-application-code.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/openapi-to-application.md" + ], + "commands": [ + "./commands/openapi-to-application-code.md" ] } diff --git a/plugins/openapi-to-application-java-spring-boot/agents/openapi-to-application.md b/plugins/openapi-to-application-java-spring-boot/agents/openapi-to-application.md deleted file mode 120000 index 12a099b4..00000000 --- a/plugins/openapi-to-application-java-spring-boot/agents/openapi-to-application.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/openapi-to-application.agent.md \ No newline at end of file diff --git a/plugins/openapi-to-application-java-spring-boot/commands/openapi-to-application-code.md b/plugins/openapi-to-application-java-spring-boot/commands/openapi-to-application-code.md deleted file mode 120000 index f0c3da0c..00000000 --- a/plugins/openapi-to-application-java-spring-boot/commands/openapi-to-application-code.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/openapi-to-application-code.prompt.md \ No newline at end of file diff --git a/plugins/openapi-to-application-nodejs-nestjs/.github/plugin/plugin.json b/plugins/openapi-to-application-nodejs-nestjs/.github/plugin/plugin.json index 5449423e..04289089 100644 --- a/plugins/openapi-to-application-nodejs-nestjs/.github/plugin/plugin.json +++ b/plugins/openapi-to-application-nodejs-nestjs/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "openapi", "code-generation", "api", @@ -15,22 +15,10 @@ "typescript", "nestjs" ], - "display": { - "ordering": "manual", - "show_badge": false - }, - "items": [ - { - "path": "agents/openapi-to-application.agent.md", - "kind": "agent" - }, - { - "path": "instructions/nestjs.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/openapi-to-application-code.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/openapi-to-application.md" + ], + "commands": [ + "./commands/openapi-to-application-code.md" ] } diff --git a/plugins/openapi-to-application-nodejs-nestjs/agents/openapi-to-application.md b/plugins/openapi-to-application-nodejs-nestjs/agents/openapi-to-application.md deleted file mode 120000 index 12a099b4..00000000 --- a/plugins/openapi-to-application-nodejs-nestjs/agents/openapi-to-application.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/openapi-to-application.agent.md \ No newline at end of file diff --git a/plugins/openapi-to-application-nodejs-nestjs/commands/openapi-to-application-code.md b/plugins/openapi-to-application-nodejs-nestjs/commands/openapi-to-application-code.md deleted file mode 120000 index f0c3da0c..00000000 --- a/plugins/openapi-to-application-nodejs-nestjs/commands/openapi-to-application-code.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/openapi-to-application-code.prompt.md \ No newline at end of file diff --git a/plugins/openapi-to-application-python-fastapi/.github/plugin/plugin.json b/plugins/openapi-to-application-python-fastapi/.github/plugin/plugin.json index e034fe22..791a8ac0 100644 --- a/plugins/openapi-to-application-python-fastapi/.github/plugin/plugin.json +++ b/plugins/openapi-to-application-python-fastapi/.github/plugin/plugin.json @@ -7,29 +7,17 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "openapi", "code-generation", "api", "python", "fastapi" ], - "display": { - "ordering": "manual", - "show_badge": false - }, - "items": [ - { - "path": "agents/openapi-to-application.agent.md", - "kind": "agent" - }, - { - "path": "instructions/python.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/openapi-to-application-code.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/openapi-to-application.md" + ], + "commands": [ + "./commands/openapi-to-application-code.md" ] } diff --git a/plugins/openapi-to-application-python-fastapi/agents/openapi-to-application.md b/plugins/openapi-to-application-python-fastapi/agents/openapi-to-application.md deleted file mode 120000 index 12a099b4..00000000 --- a/plugins/openapi-to-application-python-fastapi/agents/openapi-to-application.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/openapi-to-application.agent.md \ No newline at end of file diff --git a/plugins/openapi-to-application-python-fastapi/commands/openapi-to-application-code.md b/plugins/openapi-to-application-python-fastapi/commands/openapi-to-application-code.md deleted file mode 120000 index f0c3da0c..00000000 --- a/plugins/openapi-to-application-python-fastapi/commands/openapi-to-application-code.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/openapi-to-application-code.prompt.md \ No newline at end of file diff --git a/plugins/ospo-sponsorship/.github/plugin/plugin.json b/plugins/ospo-sponsorship/.github/plugin/plugin.json index b5508ba7..4d4a1f2c 100644 --- a/plugins/ospo-sponsorship/.github/plugin/plugin.json +++ b/plugins/ospo-sponsorship/.github/plugin/plugin.json @@ -6,5 +6,8 @@ "name": "Awesome Copilot Community" }, "repository": "https://github.com/github/awesome-copilot", - "license": "MIT" + "license": "MIT", + "skills": [ + "./skills/sponsor-finder/" + ] } diff --git a/plugins/ospo-sponsorship/skills/sponsor-finder b/plugins/ospo-sponsorship/skills/sponsor-finder deleted file mode 120000 index d9aa6da7..00000000 --- a/plugins/ospo-sponsorship/skills/sponsor-finder +++ /dev/null @@ -1 +0,0 @@ -../../../skills/sponsor-finder \ No newline at end of file diff --git a/plugins/partners/.github/plugin/plugin.json b/plugins/partners/.github/plugin/plugin.json index c99d9328..72801efc 100644 --- a/plugins/partners/.github/plugin/plugin.json +++ b/plugins/partners/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "devops", "security", "database", @@ -19,91 +19,26 @@ "migration", "performance" ], - "featured": true, - "display": { - "ordering": "alpha", - "show_badge": true - }, - "items": [ - { - "path": "agents/amplitude-experiment-implementation.agent.md", - "kind": "agent" - }, - { - "path": "agents/apify-integration-expert.agent.md", - "kind": "agent" - }, - { - "path": "agents/arm-migration.agent.md", - "kind": "agent" - }, - { - "path": "agents/diffblue-cover.agent.md", - "kind": "agent" - }, - { - "path": "agents/droid.agent.md", - "kind": "agent" - }, - { - "path": "agents/dynatrace-expert.agent.md", - "kind": "agent" - }, - { - "path": "agents/elasticsearch-observability.agent.md", - "kind": "agent" - }, - { - "path": "agents/jfrog-sec.agent.md", - "kind": "agent" - }, - { - "path": "agents/launchdarkly-flag-cleanup.agent.md", - "kind": "agent" - }, - { - "path": "agents/lingodotdev-i18n.agent.md", - "kind": "agent" - }, - { - "path": "agents/monday-bug-fixer.agent.md", - "kind": "agent" - }, - { - "path": "agents/mongodb-performance-advisor.agent.md", - "kind": "agent" - }, - { - "path": "agents/neo4j-docker-client-generator.agent.md", - "kind": "agent" - }, - { - "path": "agents/neon-migration-specialist.agent.md", - "kind": "agent" - }, - { - "path": "agents/neon-optimization-analyzer.agent.md", - "kind": "agent" - }, - { - "path": "agents/octopus-deploy-release-notes-mcp.agent.md", - "kind": "agent" - }, - { - "path": "agents/stackhawk-security-onboarding.agent.md", - "kind": "agent" - }, - { - "path": "agents/terraform.agent.md", - "kind": "agent" - }, - { - "path": "agents/pagerduty-incident-responder.agent.md", - "kind": "agent" - }, - { - "path": "agents/comet-opik.agent.md", - "kind": "agent" - } + "agents": [ + "./agents/amplitude-experiment-implementation.md", + "./agents/apify-integration-expert.md", + "./agents/arm-migration.md", + "./agents/diffblue-cover.md", + "./agents/droid.md", + "./agents/dynatrace-expert.md", + "./agents/elasticsearch-observability.md", + "./agents/jfrog-sec.md", + "./agents/launchdarkly-flag-cleanup.md", + "./agents/lingodotdev-i18n.md", + "./agents/monday-bug-fixer.md", + "./agents/mongodb-performance-advisor.md", + "./agents/neo4j-docker-client-generator.md", + "./agents/neon-migration-specialist.md", + "./agents/neon-optimization-analyzer.md", + "./agents/octopus-deploy-release-notes-mcp.md", + "./agents/stackhawk-security-onboarding.md", + "./agents/terraform.md", + "./agents/pagerduty-incident-responder.md", + "./agents/comet-opik.md" ] } diff --git a/plugins/partners/agents/amplitude-experiment-implementation.md b/plugins/partners/agents/amplitude-experiment-implementation.md deleted file mode 120000 index 73485ea4..00000000 --- a/plugins/partners/agents/amplitude-experiment-implementation.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/amplitude-experiment-implementation.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/apify-integration-expert.md b/plugins/partners/agents/apify-integration-expert.md deleted file mode 120000 index 76816360..00000000 --- a/plugins/partners/agents/apify-integration-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/apify-integration-expert.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/arm-migration.md b/plugins/partners/agents/arm-migration.md deleted file mode 120000 index db6d299a..00000000 --- a/plugins/partners/agents/arm-migration.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/arm-migration.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/comet-opik.md b/plugins/partners/agents/comet-opik.md deleted file mode 120000 index bd0cb7fc..00000000 --- a/plugins/partners/agents/comet-opik.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/comet-opik.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/diffblue-cover.md b/plugins/partners/agents/diffblue-cover.md deleted file mode 120000 index c53baeaf..00000000 --- a/plugins/partners/agents/diffblue-cover.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/diffblue-cover.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/droid.md b/plugins/partners/agents/droid.md deleted file mode 120000 index 63217a94..00000000 --- a/plugins/partners/agents/droid.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/droid.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/dynatrace-expert.md b/plugins/partners/agents/dynatrace-expert.md deleted file mode 120000 index 6b6e16cc..00000000 --- a/plugins/partners/agents/dynatrace-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/dynatrace-expert.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/elasticsearch-observability.md b/plugins/partners/agents/elasticsearch-observability.md deleted file mode 120000 index 85ff64c9..00000000 --- a/plugins/partners/agents/elasticsearch-observability.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/elasticsearch-observability.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/jfrog-sec.md b/plugins/partners/agents/jfrog-sec.md deleted file mode 120000 index 32e51871..00000000 --- a/plugins/partners/agents/jfrog-sec.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/jfrog-sec.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/launchdarkly-flag-cleanup.md b/plugins/partners/agents/launchdarkly-flag-cleanup.md deleted file mode 120000 index d9e5f577..00000000 --- a/plugins/partners/agents/launchdarkly-flag-cleanup.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/launchdarkly-flag-cleanup.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/lingodotdev-i18n.md b/plugins/partners/agents/lingodotdev-i18n.md deleted file mode 120000 index 895b28db..00000000 --- a/plugins/partners/agents/lingodotdev-i18n.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/lingodotdev-i18n.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/monday-bug-fixer.md b/plugins/partners/agents/monday-bug-fixer.md deleted file mode 120000 index 1507ea06..00000000 --- a/plugins/partners/agents/monday-bug-fixer.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/monday-bug-fixer.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/mongodb-performance-advisor.md b/plugins/partners/agents/mongodb-performance-advisor.md deleted file mode 120000 index f5e12447..00000000 --- a/plugins/partners/agents/mongodb-performance-advisor.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/mongodb-performance-advisor.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/neo4j-docker-client-generator.md b/plugins/partners/agents/neo4j-docker-client-generator.md deleted file mode 120000 index f439fed4..00000000 --- a/plugins/partners/agents/neo4j-docker-client-generator.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/neo4j-docker-client-generator.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/neon-migration-specialist.md b/plugins/partners/agents/neon-migration-specialist.md deleted file mode 120000 index 3336836f..00000000 --- a/plugins/partners/agents/neon-migration-specialist.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/neon-migration-specialist.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/neon-optimization-analyzer.md b/plugins/partners/agents/neon-optimization-analyzer.md deleted file mode 120000 index f04e4654..00000000 --- a/plugins/partners/agents/neon-optimization-analyzer.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/neon-optimization-analyzer.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/octopus-deploy-release-notes-mcp.md b/plugins/partners/agents/octopus-deploy-release-notes-mcp.md deleted file mode 120000 index 79aeb34f..00000000 --- a/plugins/partners/agents/octopus-deploy-release-notes-mcp.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/octopus-deploy-release-notes-mcp.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/pagerduty-incident-responder.md b/plugins/partners/agents/pagerduty-incident-responder.md deleted file mode 120000 index 8e50dd30..00000000 --- a/plugins/partners/agents/pagerduty-incident-responder.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/pagerduty-incident-responder.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/stackhawk-security-onboarding.md b/plugins/partners/agents/stackhawk-security-onboarding.md deleted file mode 120000 index 6d0b2150..00000000 --- a/plugins/partners/agents/stackhawk-security-onboarding.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/stackhawk-security-onboarding.agent.md \ No newline at end of file diff --git a/plugins/partners/agents/terraform.md b/plugins/partners/agents/terraform.md deleted file mode 120000 index b8e7b703..00000000 --- a/plugins/partners/agents/terraform.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/terraform.agent.md \ No newline at end of file diff --git a/plugins/pcf-development/.github/plugin/plugin.json b/plugins/pcf-development/.github/plugin/plugin.json index 9951f276..a692982d 100644 --- a/plugins/pcf-development/.github/plugin/plugin.json +++ b/plugins/pcf-development/.github/plugin/plugin.json @@ -7,85 +7,11 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "power-apps", "pcf", "component-framework", "typescript", "power-platform" - ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/pcf-overview.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-code-components.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-model-driven-apps.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-canvas-apps.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-power-pages.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-react-platform-libraries.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-fluent-modern-theming.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-dependent-libraries.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-events.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-tooling.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-limitations.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-alm.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-best-practices.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-sample-components.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-api-reference.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-manifest-schema.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/pcf-community-resources.instructions.md", - "kind": "instruction" - } ] } diff --git a/plugins/php-mcp-development/.github/plugin/plugin.json b/plugins/php-mcp-development/.github/plugin/plugin.json index 1ee6783d..8adc99e7 100644 --- a/plugins/php-mcp-development/.github/plugin/plugin.json +++ b/plugins/php-mcp-development/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "php", "mcp", "model-context-protocol", @@ -16,22 +16,10 @@ "attributes", "composer" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/php-mcp-server.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/php-mcp-server-generator.prompt.md", - "kind": "prompt" - }, - { - "path": "agents/php-mcp-expert.agent.md", - "kind": "agent" - } + "agents": [ + "./agents/php-mcp-expert.md" + ], + "commands": [ + "./commands/php-mcp-server-generator.md" ] } diff --git a/plugins/php-mcp-development/agents/php-mcp-expert.md b/plugins/php-mcp-development/agents/php-mcp-expert.md deleted file mode 120000 index d6febcc7..00000000 --- a/plugins/php-mcp-development/agents/php-mcp-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/php-mcp-expert.agent.md \ No newline at end of file diff --git a/plugins/php-mcp-development/commands/php-mcp-server-generator.md b/plugins/php-mcp-development/commands/php-mcp-server-generator.md deleted file mode 120000 index dff5afc3..00000000 --- a/plugins/php-mcp-development/commands/php-mcp-server-generator.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/php-mcp-server-generator.prompt.md \ No newline at end of file diff --git a/plugins/polyglot-test-agent/.github/plugin/plugin.json b/plugins/polyglot-test-agent/.github/plugin/plugin.json index 30656b80..09e2a22c 100644 --- a/plugins/polyglot-test-agent/.github/plugin/plugin.json +++ b/plugins/polyglot-test-agent/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "testing", "unit-tests", "polyglot", @@ -19,50 +19,17 @@ "python", "go" ], - "display": { - "ordering": "alpha", - "show_badge": true - }, - "items": [ - { - "path": "agents/polyglot-test-generator.agent.md", - "kind": "agent" - }, - { - "path": "agents/polyglot-test-researcher.agent.md", - "kind": "agent" - }, - { - "path": "agents/polyglot-test-planner.agent.md", - "kind": "agent" - }, - { - "path": "agents/polyglot-test-implementer.agent.md", - "kind": "agent" - }, - { - "path": "agents/polyglot-test-builder.agent.md", - "kind": "agent" - }, - { - "path": "agents/polyglot-test-tester.agent.md", - "kind": "agent" - }, - { - "path": "agents/polyglot-test-fixer.agent.md", - "kind": "agent" - }, - { - "path": "agents/polyglot-test-linter.agent.md", - "kind": "agent" - }, - { - "path": "skills/polyglot-test-agent/unit-test-generation.prompt.md", - "kind": "prompt" - }, - { - "path": "skills/polyglot-test-agent/SKILL.md", - "kind": "skill" - } + "agents": [ + "./agents/polyglot-test-generator.md", + "./agents/polyglot-test-researcher.md", + "./agents/polyglot-test-planner.md", + "./agents/polyglot-test-implementer.md", + "./agents/polyglot-test-builder.md", + "./agents/polyglot-test-tester.md", + "./agents/polyglot-test-fixer.md", + "./agents/polyglot-test-linter.md" + ], + "skills": [ + "./skills/polyglot-test-agent/" ] } diff --git a/plugins/polyglot-test-agent/agents/polyglot-test-builder.md b/plugins/polyglot-test-agent/agents/polyglot-test-builder.md deleted file mode 120000 index 3f39f494..00000000 --- a/plugins/polyglot-test-agent/agents/polyglot-test-builder.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/polyglot-test-builder.agent.md \ No newline at end of file diff --git a/plugins/polyglot-test-agent/agents/polyglot-test-fixer.md b/plugins/polyglot-test-agent/agents/polyglot-test-fixer.md deleted file mode 120000 index 11bda0d0..00000000 --- a/plugins/polyglot-test-agent/agents/polyglot-test-fixer.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/polyglot-test-fixer.agent.md \ No newline at end of file diff --git a/plugins/polyglot-test-agent/agents/polyglot-test-generator.md b/plugins/polyglot-test-agent/agents/polyglot-test-generator.md deleted file mode 120000 index 09151b30..00000000 --- a/plugins/polyglot-test-agent/agents/polyglot-test-generator.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/polyglot-test-generator.agent.md \ No newline at end of file diff --git a/plugins/polyglot-test-agent/agents/polyglot-test-implementer.md b/plugins/polyglot-test-agent/agents/polyglot-test-implementer.md deleted file mode 120000 index 07fbbce1..00000000 --- a/plugins/polyglot-test-agent/agents/polyglot-test-implementer.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/polyglot-test-implementer.agent.md \ No newline at end of file diff --git a/plugins/polyglot-test-agent/agents/polyglot-test-linter.md b/plugins/polyglot-test-agent/agents/polyglot-test-linter.md deleted file mode 120000 index c2eec9f4..00000000 --- a/plugins/polyglot-test-agent/agents/polyglot-test-linter.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/polyglot-test-linter.agent.md \ No newline at end of file diff --git a/plugins/polyglot-test-agent/agents/polyglot-test-planner.md b/plugins/polyglot-test-agent/agents/polyglot-test-planner.md deleted file mode 120000 index 572cb1a8..00000000 --- a/plugins/polyglot-test-agent/agents/polyglot-test-planner.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/polyglot-test-planner.agent.md \ No newline at end of file diff --git a/plugins/polyglot-test-agent/agents/polyglot-test-researcher.md b/plugins/polyglot-test-agent/agents/polyglot-test-researcher.md deleted file mode 120000 index 36c018fb..00000000 --- a/plugins/polyglot-test-agent/agents/polyglot-test-researcher.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/polyglot-test-researcher.agent.md \ No newline at end of file diff --git a/plugins/polyglot-test-agent/agents/polyglot-test-tester.md b/plugins/polyglot-test-agent/agents/polyglot-test-tester.md deleted file mode 120000 index aa2c72f6..00000000 --- a/plugins/polyglot-test-agent/agents/polyglot-test-tester.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/polyglot-test-tester.agent.md \ No newline at end of file diff --git a/plugins/polyglot-test-agent/commands/unit-test-generation.md b/plugins/polyglot-test-agent/commands/unit-test-generation.md deleted file mode 120000 index 4ab97f22..00000000 --- a/plugins/polyglot-test-agent/commands/unit-test-generation.md +++ /dev/null @@ -1 +0,0 @@ -../../../skills/polyglot-test-agent/unit-test-generation.prompt.md \ No newline at end of file diff --git a/plugins/polyglot-test-agent/skills/polyglot-test-agent b/plugins/polyglot-test-agent/skills/polyglot-test-agent deleted file mode 120000 index c03dc1f6..00000000 --- a/plugins/polyglot-test-agent/skills/polyglot-test-agent +++ /dev/null @@ -1 +0,0 @@ -../../../skills/polyglot-test-agent \ No newline at end of file diff --git a/plugins/power-apps-code-apps/.github/plugin/plugin.json b/plugins/power-apps-code-apps/.github/plugin/plugin.json index 7eb379d1..d9920f2e 100644 --- a/plugins/power-apps-code-apps/.github/plugin/plugin.json +++ b/plugins/power-apps-code-apps/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "power-apps", "power-platform", "typescript", @@ -16,22 +16,10 @@ "dataverse", "connectors" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "prompts/power-apps-code-app-scaffold.prompt.md", - "kind": "prompt" - }, - { - "path": "instructions/power-apps-code-apps.instructions.md", - "kind": "instruction" - }, - { - "path": "agents/power-platform-expert.agent.md", - "kind": "agent" - } + "agents": [ + "./agents/power-platform-expert.md" + ], + "commands": [ + "./commands/power-apps-code-app-scaffold.md" ] } diff --git a/plugins/power-apps-code-apps/agents/power-platform-expert.md b/plugins/power-apps-code-apps/agents/power-platform-expert.md deleted file mode 120000 index b78e789a..00000000 --- a/plugins/power-apps-code-apps/agents/power-platform-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/power-platform-expert.agent.md \ No newline at end of file diff --git a/plugins/power-apps-code-apps/commands/power-apps-code-app-scaffold.md b/plugins/power-apps-code-apps/commands/power-apps-code-app-scaffold.md deleted file mode 120000 index 2cca5e61..00000000 --- a/plugins/power-apps-code-apps/commands/power-apps-code-app-scaffold.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/power-apps-code-app-scaffold.prompt.md \ No newline at end of file diff --git a/plugins/power-bi-development/.github/plugin/plugin.json b/plugins/power-bi-development/.github/plugin/plugin.json index 649fb92d..a50403c2 100644 --- a/plugins/power-bi-development/.github/plugin/plugin.json +++ b/plugins/power-bi-development/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "power-bi", "dax", "data-modeling", @@ -17,66 +17,16 @@ "devops", "business-intelligence" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "agents/power-bi-data-modeling-expert.agent.md", - "kind": "agent" - }, - { - "path": "agents/power-bi-dax-expert.agent.md", - "kind": "agent" - }, - { - "path": "agents/power-bi-performance-expert.agent.md", - "kind": "agent" - }, - { - "path": "agents/power-bi-visualization-expert.agent.md", - "kind": "agent" - }, - { - "path": "instructions/power-bi-custom-visuals-development.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/power-bi-data-modeling-best-practices.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/power-bi-dax-best-practices.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/power-bi-devops-alm-best-practices.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/power-bi-report-design-best-practices.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/power-bi-security-rls-best-practices.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/power-bi-dax-optimization.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/power-bi-model-design-review.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/power-bi-performance-troubleshooting.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/power-bi-report-design-consultation.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/power-bi-data-modeling-expert.md", + "./agents/power-bi-dax-expert.md", + "./agents/power-bi-performance-expert.md", + "./agents/power-bi-visualization-expert.md" + ], + "commands": [ + "./commands/power-bi-dax-optimization.md", + "./commands/power-bi-model-design-review.md", + "./commands/power-bi-performance-troubleshooting.md", + "./commands/power-bi-report-design-consultation.md" ] } diff --git a/plugins/power-bi-development/agents/power-bi-data-modeling-expert.md b/plugins/power-bi-development/agents/power-bi-data-modeling-expert.md deleted file mode 120000 index 090aa4de..00000000 --- a/plugins/power-bi-development/agents/power-bi-data-modeling-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/power-bi-data-modeling-expert.agent.md \ No newline at end of file diff --git a/plugins/power-bi-development/agents/power-bi-dax-expert.md b/plugins/power-bi-development/agents/power-bi-dax-expert.md deleted file mode 120000 index d3fe5375..00000000 --- a/plugins/power-bi-development/agents/power-bi-dax-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/power-bi-dax-expert.agent.md \ No newline at end of file diff --git a/plugins/power-bi-development/agents/power-bi-performance-expert.md b/plugins/power-bi-development/agents/power-bi-performance-expert.md deleted file mode 120000 index f618f2b2..00000000 --- a/plugins/power-bi-development/agents/power-bi-performance-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/power-bi-performance-expert.agent.md \ No newline at end of file diff --git a/plugins/power-bi-development/agents/power-bi-visualization-expert.md b/plugins/power-bi-development/agents/power-bi-visualization-expert.md deleted file mode 120000 index c5bd5076..00000000 --- a/plugins/power-bi-development/agents/power-bi-visualization-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/power-bi-visualization-expert.agent.md \ No newline at end of file diff --git a/plugins/power-bi-development/commands/power-bi-dax-optimization.md b/plugins/power-bi-development/commands/power-bi-dax-optimization.md deleted file mode 120000 index 447174f1..00000000 --- a/plugins/power-bi-development/commands/power-bi-dax-optimization.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/power-bi-dax-optimization.prompt.md \ No newline at end of file diff --git a/plugins/power-bi-development/commands/power-bi-model-design-review.md b/plugins/power-bi-development/commands/power-bi-model-design-review.md deleted file mode 120000 index 1e778607..00000000 --- a/plugins/power-bi-development/commands/power-bi-model-design-review.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/power-bi-model-design-review.prompt.md \ No newline at end of file diff --git a/plugins/power-bi-development/commands/power-bi-performance-troubleshooting.md b/plugins/power-bi-development/commands/power-bi-performance-troubleshooting.md deleted file mode 120000 index 2f8ec3e6..00000000 --- a/plugins/power-bi-development/commands/power-bi-performance-troubleshooting.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/power-bi-performance-troubleshooting.prompt.md \ No newline at end of file diff --git a/plugins/power-bi-development/commands/power-bi-report-design-consultation.md b/plugins/power-bi-development/commands/power-bi-report-design-consultation.md deleted file mode 120000 index 395d340a..00000000 --- a/plugins/power-bi-development/commands/power-bi-report-design-consultation.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/power-bi-report-design-consultation.prompt.md \ No newline at end of file diff --git a/plugins/power-platform-mcp-connector-development/.github/plugin/plugin.json b/plugins/power-platform-mcp-connector-development/.github/plugin/plugin.json index a9dbb7d9..0ef2b937 100644 --- a/plugins/power-platform-mcp-connector-development/.github/plugin/plugin.json +++ b/plugins/power-platform-mcp-connector-development/.github/plugin/plugin.json @@ -7,33 +7,18 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "power-platform", "mcp", "copilot-studio", "custom-connector", "json-rpc" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/power-platform-mcp-development.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/power-platform-mcp-connector-suite.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/mcp-copilot-studio-server-generator.prompt.md", - "kind": "prompt" - }, - { - "path": "agents/power-platform-mcp-integration-expert.agent.md", - "kind": "agent" - } + "agents": [ + "./agents/power-platform-mcp-integration-expert.md" + ], + "commands": [ + "./commands/power-platform-mcp-connector-suite.md", + "./commands/mcp-copilot-studio-server-generator.md" ] } diff --git a/plugins/power-platform-mcp-connector-development/agents/power-platform-mcp-integration-expert.md b/plugins/power-platform-mcp-connector-development/agents/power-platform-mcp-integration-expert.md deleted file mode 120000 index 84521e3d..00000000 --- a/plugins/power-platform-mcp-connector-development/agents/power-platform-mcp-integration-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/power-platform-mcp-integration-expert.agent.md \ No newline at end of file diff --git a/plugins/power-platform-mcp-connector-development/commands/mcp-copilot-studio-server-generator.md b/plugins/power-platform-mcp-connector-development/commands/mcp-copilot-studio-server-generator.md deleted file mode 120000 index cfb9bde8..00000000 --- a/plugins/power-platform-mcp-connector-development/commands/mcp-copilot-studio-server-generator.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/mcp-copilot-studio-server-generator.prompt.md \ No newline at end of file diff --git a/plugins/power-platform-mcp-connector-development/commands/power-platform-mcp-connector-suite.md b/plugins/power-platform-mcp-connector-development/commands/power-platform-mcp-connector-suite.md deleted file mode 120000 index f756e3fb..00000000 --- a/plugins/power-platform-mcp-connector-development/commands/power-platform-mcp-connector-suite.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/power-platform-mcp-connector-suite.prompt.md \ No newline at end of file diff --git a/plugins/project-planning/.github/plugin/plugin.json b/plugins/project-planning/.github/plugin/plugin.json index 34376bdd..92317fa1 100644 --- a/plugins/project-planning/.github/plugin/plugin.json +++ b/plugins/project-planning/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "planning", "project-management", "epic", @@ -17,78 +17,23 @@ "architecture", "technical-spike" ], - "display": { - "ordering": "alpha", - "show_badge": true - }, - "items": [ - { - "path": "agents/task-planner.agent.md", - "kind": "agent" - }, - { - "path": "agents/task-researcher.agent.md", - "kind": "agent" - }, - { - "path": "agents/planner.agent.md", - "kind": "agent" - }, - { - "path": "agents/plan.agent.md", - "kind": "agent" - }, - { - "path": "agents/prd.agent.md", - "kind": "agent" - }, - { - "path": "agents/implementation-plan.agent.md", - "kind": "agent" - }, - { - "path": "agents/research-technical-spike.agent.md", - "kind": "agent" - }, - { - "path": "instructions/task-implementation.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/spec-driven-workflow-v1.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/breakdown-feature-implementation.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/breakdown-feature-prd.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/breakdown-epic-arch.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/breakdown-epic-pm.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/create-implementation-plan.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/update-implementation-plan.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/create-github-issues-feature-from-implementation-plan.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/create-technical-spike.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/task-planner.md", + "./agents/task-researcher.md", + "./agents/planner.md", + "./agents/plan.md", + "./agents/prd.md", + "./agents/implementation-plan.md", + "./agents/research-technical-spike.md" + ], + "commands": [ + "./commands/breakdown-feature-implementation.md", + "./commands/breakdown-feature-prd.md", + "./commands/breakdown-epic-arch.md", + "./commands/breakdown-epic-pm.md", + "./commands/create-implementation-plan.md", + "./commands/update-implementation-plan.md", + "./commands/create-github-issues-feature-from-implementation-plan.md", + "./commands/create-technical-spike.md" ] } diff --git a/plugins/project-planning/agents/implementation-plan.md b/plugins/project-planning/agents/implementation-plan.md deleted file mode 120000 index 7e7e2c18..00000000 --- a/plugins/project-planning/agents/implementation-plan.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/implementation-plan.agent.md \ No newline at end of file diff --git a/plugins/project-planning/agents/plan.md b/plugins/project-planning/agents/plan.md deleted file mode 120000 index 78f977e4..00000000 --- a/plugins/project-planning/agents/plan.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/plan.agent.md \ No newline at end of file diff --git a/plugins/project-planning/agents/planner.md b/plugins/project-planning/agents/planner.md deleted file mode 120000 index c699a372..00000000 --- a/plugins/project-planning/agents/planner.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/planner.agent.md \ No newline at end of file diff --git a/plugins/project-planning/agents/prd.md b/plugins/project-planning/agents/prd.md deleted file mode 120000 index 9af741a1..00000000 --- a/plugins/project-planning/agents/prd.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/prd.agent.md \ No newline at end of file diff --git a/plugins/project-planning/agents/research-technical-spike.md b/plugins/project-planning/agents/research-technical-spike.md deleted file mode 120000 index f70fe5af..00000000 --- a/plugins/project-planning/agents/research-technical-spike.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/research-technical-spike.agent.md \ No newline at end of file diff --git a/plugins/project-planning/agents/task-planner.md b/plugins/project-planning/agents/task-planner.md deleted file mode 120000 index 71acbbad..00000000 --- a/plugins/project-planning/agents/task-planner.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/task-planner.agent.md \ No newline at end of file diff --git a/plugins/project-planning/agents/task-researcher.md b/plugins/project-planning/agents/task-researcher.md deleted file mode 120000 index 6fd8b921..00000000 --- a/plugins/project-planning/agents/task-researcher.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/task-researcher.agent.md \ No newline at end of file diff --git a/plugins/project-planning/commands/breakdown-epic-arch.md b/plugins/project-planning/commands/breakdown-epic-arch.md deleted file mode 120000 index 2d779c5f..00000000 --- a/plugins/project-planning/commands/breakdown-epic-arch.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/breakdown-epic-arch.prompt.md \ No newline at end of file diff --git a/plugins/project-planning/commands/breakdown-epic-pm.md b/plugins/project-planning/commands/breakdown-epic-pm.md deleted file mode 120000 index 87569383..00000000 --- a/plugins/project-planning/commands/breakdown-epic-pm.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/breakdown-epic-pm.prompt.md \ No newline at end of file diff --git a/plugins/project-planning/commands/breakdown-feature-implementation.md b/plugins/project-planning/commands/breakdown-feature-implementation.md deleted file mode 120000 index 584af1df..00000000 --- a/plugins/project-planning/commands/breakdown-feature-implementation.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/breakdown-feature-implementation.prompt.md \ No newline at end of file diff --git a/plugins/project-planning/commands/breakdown-feature-prd.md b/plugins/project-planning/commands/breakdown-feature-prd.md deleted file mode 120000 index 13c8f5b5..00000000 --- a/plugins/project-planning/commands/breakdown-feature-prd.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/breakdown-feature-prd.prompt.md \ No newline at end of file diff --git a/plugins/project-planning/commands/create-github-issues-feature-from-implementation-plan.md b/plugins/project-planning/commands/create-github-issues-feature-from-implementation-plan.md deleted file mode 120000 index dfdfdc16..00000000 --- a/plugins/project-planning/commands/create-github-issues-feature-from-implementation-plan.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/create-github-issues-feature-from-implementation-plan.prompt.md \ No newline at end of file diff --git a/plugins/project-planning/commands/create-implementation-plan.md b/plugins/project-planning/commands/create-implementation-plan.md deleted file mode 120000 index bfe78db8..00000000 --- a/plugins/project-planning/commands/create-implementation-plan.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/create-implementation-plan.prompt.md \ No newline at end of file diff --git a/plugins/project-planning/commands/create-technical-spike.md b/plugins/project-planning/commands/create-technical-spike.md deleted file mode 120000 index b926ad62..00000000 --- a/plugins/project-planning/commands/create-technical-spike.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/create-technical-spike.prompt.md \ No newline at end of file diff --git a/plugins/project-planning/commands/update-implementation-plan.md b/plugins/project-planning/commands/update-implementation-plan.md deleted file mode 120000 index 228ea094..00000000 --- a/plugins/project-planning/commands/update-implementation-plan.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/update-implementation-plan.prompt.md \ No newline at end of file diff --git a/plugins/python-mcp-development/.github/plugin/plugin.json b/plugins/python-mcp-development/.github/plugin/plugin.json index 607147df..6b444592 100644 --- a/plugins/python-mcp-development/.github/plugin/plugin.json +++ b/plugins/python-mcp-development/.github/plugin/plugin.json @@ -7,30 +7,17 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "python", "mcp", "model-context-protocol", "fastmcp", "server-development" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/python-mcp-server.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/python-mcp-server-generator.prompt.md", - "kind": "prompt" - }, - { - "path": "agents/python-mcp-expert.agent.md", - "kind": "agent", - "usage": "recommended\n\nThis chat mode provides expert guidance for building MCP servers in Python with FastMCP.\n\nThis chat mode is ideal for:\n- Creating new MCP server projects with Python\n- Implementing typed tools with Pydantic models and structured output\n- Setting up stdio or streamable HTTP transports\n- Debugging type hints and schema validation issues\n- Learning Python MCP best practices with FastMCP\n- Optimizing server performance and resource management\n\nTo get the best results, consider:\n- Using the instruction file to set context for Python/FastMCP development\n- Using the prompt to generate initial project structure with uv\n- Switching to the expert chat mode for detailed implementation help\n- Specifying whether you need stdio or HTTP transport\n- Providing details about what tools or functionality you need\n- Mentioning if you need structured output, sampling, or elicitation" - } + "agents": [ + "./agents/python-mcp-expert.md" + ], + "commands": [ + "./commands/python-mcp-server-generator.md" ] } diff --git a/plugins/python-mcp-development/agents/python-mcp-expert.md b/plugins/python-mcp-development/agents/python-mcp-expert.md deleted file mode 120000 index ae3882e2..00000000 --- a/plugins/python-mcp-development/agents/python-mcp-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/python-mcp-expert.agent.md \ No newline at end of file diff --git a/plugins/python-mcp-development/commands/python-mcp-server-generator.md b/plugins/python-mcp-development/commands/python-mcp-server-generator.md deleted file mode 120000 index 359a1533..00000000 --- a/plugins/python-mcp-development/commands/python-mcp-server-generator.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/python-mcp-server-generator.prompt.md \ No newline at end of file diff --git a/plugins/ruby-mcp-development/.github/plugin/plugin.json b/plugins/ruby-mcp-development/.github/plugin/plugin.json index 0aae2c87..76de29be 100644 --- a/plugins/ruby-mcp-development/.github/plugin/plugin.json +++ b/plugins/ruby-mcp-development/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "ruby", "mcp", "model-context-protocol", @@ -16,23 +16,10 @@ "rails", "gem" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/ruby-mcp-server.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/ruby-mcp-server-generator.prompt.md", - "kind": "prompt" - }, - { - "path": "agents/ruby-mcp-expert.agent.md", - "kind": "agent", - "usage": "recommended\n\nThis chat mode provides expert guidance for building MCP servers in Ruby.\n\nThis chat mode is ideal for:\n- Creating new MCP server projects with Ruby\n- Implementing tools, prompts, and resources\n- Setting up stdio or HTTP transports\n- Debugging schema definitions and error handling\n- Learning Ruby MCP best practices with the official SDK\n- Integrating with Rails applications\n\nTo get the best results, consider:\n- Using the instruction file to set context for Ruby MCP development\n- Using the prompt to generate initial project structure\n- Switching to the expert chat mode for detailed implementation help\n- Specifying whether you need stdio or Rails integration\n- Providing details about what tools or functionality you need\n- Mentioning if you need authentication or server_context usage" - } + "agents": [ + "./agents/ruby-mcp-expert.md" + ], + "commands": [ + "./commands/ruby-mcp-server-generator.md" ] } diff --git a/plugins/ruby-mcp-development/agents/ruby-mcp-expert.md b/plugins/ruby-mcp-development/agents/ruby-mcp-expert.md deleted file mode 120000 index c0fc86d9..00000000 --- a/plugins/ruby-mcp-development/agents/ruby-mcp-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/ruby-mcp-expert.agent.md \ No newline at end of file diff --git a/plugins/ruby-mcp-development/commands/ruby-mcp-server-generator.md b/plugins/ruby-mcp-development/commands/ruby-mcp-server-generator.md deleted file mode 120000 index 1dcdc97b..00000000 --- a/plugins/ruby-mcp-development/commands/ruby-mcp-server-generator.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/ruby-mcp-server-generator.prompt.md \ No newline at end of file diff --git a/plugins/rug-agentic-workflow/.github/plugin/plugin.json b/plugins/rug-agentic-workflow/.github/plugin/plugin.json index 68aed1ec..7bdf0997 100644 --- a/plugins/rug-agentic-workflow/.github/plugin/plugin.json +++ b/plugins/rug-agentic-workflow/.github/plugin/plugin.json @@ -7,26 +7,16 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "agentic-workflow", "orchestration", "subagents", "software-engineering", "qa" ], - "items": [ - { - "path": "agents/rug-orchestrator.agent.md", - "kind": "agent", - "usage": "recommended\n\nThis workflow is designed as a coordinated trio:\n- `RUG` orchestrates decomposition, delegation, and validation loops.\n- `SWE` executes implementation tasks.\n- `QA` validates requirements, edge cases, and regressions.\n\nTypical usage:\n1. Start with `RUG` for multi-step tasks.\n2. Let `RUG` delegate coding to `SWE`.\n3. Let `RUG` delegate verification to `QA`.\n\nBest results:\n- Keep each delegated task narrowly scoped.\n- Require explicit acceptance criteria per task.\n- Run a final cross-task validation pass before completion." - }, - { - "path": "agents/swe-subagent.agent.md", - "kind": "agent" - }, - { - "path": "agents/qa-subagent.agent.md", - "kind": "agent" - } + "agents": [ + "./agents/rug-orchestrator.md", + "./agents/swe-subagent.md", + "./agents/qa-subagent.md" ] } diff --git a/plugins/rug-agentic-workflow/agents/qa-subagent.md b/plugins/rug-agentic-workflow/agents/qa-subagent.md deleted file mode 120000 index 4d9e7414..00000000 --- a/plugins/rug-agentic-workflow/agents/qa-subagent.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/qa-subagent.agent.md \ No newline at end of file diff --git a/plugins/rug-agentic-workflow/agents/rug-orchestrator.md b/plugins/rug-agentic-workflow/agents/rug-orchestrator.md deleted file mode 120000 index 33735028..00000000 --- a/plugins/rug-agentic-workflow/agents/rug-orchestrator.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/rug-orchestrator.agent.md \ No newline at end of file diff --git a/plugins/rug-agentic-workflow/agents/swe-subagent.md b/plugins/rug-agentic-workflow/agents/swe-subagent.md deleted file mode 120000 index be66025d..00000000 --- a/plugins/rug-agentic-workflow/agents/swe-subagent.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/swe-subagent.agent.md \ No newline at end of file diff --git a/plugins/rust-mcp-development/.github/plugin/plugin.json b/plugins/rust-mcp-development/.github/plugin/plugin.json index 004781e2..9a0c78ed 100644 --- a/plugins/rust-mcp-development/.github/plugin/plugin.json +++ b/plugins/rust-mcp-development/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "rust", "mcp", "model-context-protocol", @@ -18,23 +18,10 @@ "macros", "rmcp" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/rust-mcp-server.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/rust-mcp-server-generator.prompt.md", - "kind": "prompt" - }, - { - "path": "agents/rust-mcp-expert.agent.md", - "kind": "agent", - "usage": "recommended\n\nThis chat mode provides expert guidance for building MCP servers in Rust.\n\nThis chat mode is ideal for:\n- Creating new MCP server projects with Rust\n- Implementing async handlers with tokio runtime\n- Using rmcp procedural macros for tools\n- Setting up stdio, SSE, or HTTP transports\n- Debugging async Rust and ownership issues\n- Learning Rust MCP best practices with the official rmcp SDK\n- Performance optimization with Arc and RwLock\n\nTo get the best results, consider:\n- Using the instruction file to set context for Rust MCP development\n- Using the prompt to generate initial project structure\n- Switching to the expert chat mode for detailed implementation help\n- Specifying which transport type you need\n- Providing details about what tools or functionality you need\n- Mentioning if you need OAuth authentication" - } + "agents": [ + "./agents/rust-mcp-expert.md" + ], + "commands": [ + "./commands/rust-mcp-server-generator.md" ] } diff --git a/plugins/rust-mcp-development/agents/rust-mcp-expert.md b/plugins/rust-mcp-development/agents/rust-mcp-expert.md deleted file mode 120000 index c7e0987d..00000000 --- a/plugins/rust-mcp-development/agents/rust-mcp-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/rust-mcp-expert.agent.md \ No newline at end of file diff --git a/plugins/rust-mcp-development/commands/rust-mcp-server-generator.md b/plugins/rust-mcp-development/commands/rust-mcp-server-generator.md deleted file mode 120000 index 963738d2..00000000 --- a/plugins/rust-mcp-development/commands/rust-mcp-server-generator.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/rust-mcp-server-generator.prompt.md \ No newline at end of file diff --git a/plugins/security-best-practices/.github/plugin/plugin.json b/plugins/security-best-practices/.github/plugin/plugin.json index 92e8adf4..b80ca9ea 100644 --- a/plugins/security-best-practices/.github/plugin/plugin.json +++ b/plugins/security-best-practices/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "security", "accessibility", "performance", @@ -17,34 +17,7 @@ "optimization", "best-practices" ], - "display": { - "ordering": "alpha", - "show_badge": true - }, - "items": [ - { - "path": "instructions/security-and-owasp.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/a11y.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/performance-optimization.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/object-calisthenics.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/self-explanatory-code-commenting.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/ai-prompt-engineering-safety-review.prompt.md", - "kind": "prompt" - } + "commands": [ + "./commands/ai-prompt-engineering-safety-review.md" ] } diff --git a/plugins/security-best-practices/commands/ai-prompt-engineering-safety-review.md b/plugins/security-best-practices/commands/ai-prompt-engineering-safety-review.md deleted file mode 120000 index df40993d..00000000 --- a/plugins/security-best-practices/commands/ai-prompt-engineering-safety-review.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/ai-prompt-engineering-safety-review.prompt.md \ No newline at end of file diff --git a/plugins/software-engineering-team/.github/plugin/plugin.json b/plugins/software-engineering-team/.github/plugin/plugin.json index 9f87c6f1..0228eac5 100644 --- a/plugins/software-engineering-team/.github/plugin/plugin.json +++ b/plugins/software-engineering-team/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "team", "enterprise", "security", @@ -17,39 +17,13 @@ "product", "ai-ethics" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "agents/se-ux-ui-designer.agent.md", - "kind": "agent", - "usage": "## About This Collection\n\nThis collection of 7 agents is based on learnings from [The AI-Native Engineering Flow](https://medium.com/data-science-at-microsoft/the-ai-native-engineering-flow-5de5ffd7d877) experiments at Microsoft, designed to augment software engineering teams across the entire development lifecycle.\n\n**Key Design Principles:**\n- **Standalone**: Each agent works independently without cross-dependencies\n- **Enterprise-ready**: Incorporates OWASP, Zero Trust, WCAG, and Well-Architected frameworks\n- **Lifecycle coverage**: From UX research → Architecture → Development → Security → DevOps\n\n**Agents in this collection:**\n- **SE: UX Designer** - Jobs-to-be-Done analysis and user journey mapping\n- **SE: Tech Writer** - Technical documentation, blogs, ADRs, and user guides\n- **SE: DevOps/CI** - CI/CD debugging and deployment troubleshooting\n- **SE: Product Manager** - GitHub issues with business context and acceptance criteria\n- **SE: Responsible AI** - Bias testing, accessibility (WCAG), and ethical development\n- **SE: Architect** - Architecture reviews with Well-Architected frameworks\n- **SE: Security** - OWASP Top 10, LLM/ML security, and Zero Trust\n\nYou can use individual agents as needed or adopt the full collection for comprehensive team augmentation." - }, - { - "path": "agents/se-technical-writer.agent.md", - "kind": "agent" - }, - { - "path": "agents/se-gitops-ci-specialist.agent.md", - "kind": "agent" - }, - { - "path": "agents/se-product-manager-advisor.agent.md", - "kind": "agent" - }, - { - "path": "agents/se-responsible-ai-code.agent.md", - "kind": "agent" - }, - { - "path": "agents/se-system-architecture-reviewer.agent.md", - "kind": "agent" - }, - { - "path": "agents/se-security-reviewer.agent.md", - "kind": "agent" - } + "agents": [ + "./agents/se-ux-ui-designer.md", + "./agents/se-technical-writer.md", + "./agents/se-gitops-ci-specialist.md", + "./agents/se-product-manager-advisor.md", + "./agents/se-responsible-ai-code.md", + "./agents/se-system-architecture-reviewer.md", + "./agents/se-security-reviewer.md" ] } diff --git a/plugins/software-engineering-team/agents/se-gitops-ci-specialist.md b/plugins/software-engineering-team/agents/se-gitops-ci-specialist.md deleted file mode 120000 index 59fcc435..00000000 --- a/plugins/software-engineering-team/agents/se-gitops-ci-specialist.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/se-gitops-ci-specialist.agent.md \ No newline at end of file diff --git a/plugins/software-engineering-team/agents/se-product-manager-advisor.md b/plugins/software-engineering-team/agents/se-product-manager-advisor.md deleted file mode 120000 index 715e7073..00000000 --- a/plugins/software-engineering-team/agents/se-product-manager-advisor.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/se-product-manager-advisor.agent.md \ No newline at end of file diff --git a/plugins/software-engineering-team/agents/se-responsible-ai-code.md b/plugins/software-engineering-team/agents/se-responsible-ai-code.md deleted file mode 120000 index 3f54aa42..00000000 --- a/plugins/software-engineering-team/agents/se-responsible-ai-code.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/se-responsible-ai-code.agent.md \ No newline at end of file diff --git a/plugins/software-engineering-team/agents/se-security-reviewer.md b/plugins/software-engineering-team/agents/se-security-reviewer.md deleted file mode 120000 index 9c461179..00000000 --- a/plugins/software-engineering-team/agents/se-security-reviewer.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/se-security-reviewer.agent.md \ No newline at end of file diff --git a/plugins/software-engineering-team/agents/se-system-architecture-reviewer.md b/plugins/software-engineering-team/agents/se-system-architecture-reviewer.md deleted file mode 120000 index d1b2bcb2..00000000 --- a/plugins/software-engineering-team/agents/se-system-architecture-reviewer.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/se-system-architecture-reviewer.agent.md \ No newline at end of file diff --git a/plugins/software-engineering-team/agents/se-technical-writer.md b/plugins/software-engineering-team/agents/se-technical-writer.md deleted file mode 120000 index 0492e03a..00000000 --- a/plugins/software-engineering-team/agents/se-technical-writer.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/se-technical-writer.agent.md \ No newline at end of file diff --git a/plugins/software-engineering-team/agents/se-ux-ui-designer.md b/plugins/software-engineering-team/agents/se-ux-ui-designer.md deleted file mode 120000 index be29969e..00000000 --- a/plugins/software-engineering-team/agents/se-ux-ui-designer.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/se-ux-ui-designer.agent.md \ No newline at end of file diff --git a/plugins/structured-autonomy/.github/plugin/plugin.json b/plugins/structured-autonomy/.github/plugin/plugin.json index 4f4a4706..524f9df1 100644 --- a/plugins/structured-autonomy/.github/plugin/plugin.json +++ b/plugins/structured-autonomy/.github/plugin/plugin.json @@ -6,5 +6,10 @@ "name": "Awesome Copilot Community" }, "repository": "https://github.com/github/awesome-copilot", - "license": "MIT" + "license": "MIT", + "commands": [ + "./commands/structured-autonomy-generate.md", + "./commands/structured-autonomy-implement.md", + "./commands/structured-autonomy-plan.md" + ] } diff --git a/plugins/structured-autonomy/commands/structured-autonomy-generate.md b/plugins/structured-autonomy/commands/structured-autonomy-generate.md deleted file mode 120000 index 228b1588..00000000 --- a/plugins/structured-autonomy/commands/structured-autonomy-generate.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/structured-autonomy-generate.prompt.md \ No newline at end of file diff --git a/plugins/structured-autonomy/commands/structured-autonomy-implement.md b/plugins/structured-autonomy/commands/structured-autonomy-implement.md deleted file mode 120000 index da752028..00000000 --- a/plugins/structured-autonomy/commands/structured-autonomy-implement.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/structured-autonomy-implement.prompt.md \ No newline at end of file diff --git a/plugins/structured-autonomy/commands/structured-autonomy-plan.md b/plugins/structured-autonomy/commands/structured-autonomy-plan.md deleted file mode 120000 index c5af0dca..00000000 --- a/plugins/structured-autonomy/commands/structured-autonomy-plan.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/structured-autonomy-plan.prompt.md \ No newline at end of file diff --git a/plugins/swift-mcp-development/.github/plugin/plugin.json b/plugins/swift-mcp-development/.github/plugin/plugin.json index 7ab68049..453fa4b1 100644 --- a/plugins/swift-mcp-development/.github/plugin/plugin.json +++ b/plugins/swift-mcp-development/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "swift", "mcp", "model-context-protocol", @@ -19,23 +19,10 @@ "actor", "async-await" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/swift-mcp-server.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/swift-mcp-server-generator.prompt.md", - "kind": "prompt" - }, - { - "path": "agents/swift-mcp-expert.agent.md", - "kind": "agent", - "usage": "recommended\n\nThis chat mode provides expert guidance for building MCP servers in Swift.\n\nThis chat mode is ideal for:\n- Creating new MCP server projects with Swift\n- Implementing async/await patterns and actor-based concurrency\n- Setting up stdio, HTTP, or network transports\n- Debugging Swift concurrency and ServiceLifecycle integration\n- Learning Swift MCP best practices with the official SDK\n- Optimizing server performance for iOS/macOS platforms\n\nTo get the best results, consider:\n- Using the instruction file to set context for Swift MCP development\n- Using the prompt to generate initial project structure\n- Switching to the expert chat mode for detailed implementation help\n- Specifying whether you need stdio, HTTP, or network transport\n- Providing details about what tools or functionality you need\n- Mentioning if you need resources, prompts, or special capabilities" - } + "agents": [ + "./agents/swift-mcp-expert.md" + ], + "commands": [ + "./commands/swift-mcp-server-generator.md" ] } diff --git a/plugins/swift-mcp-development/agents/swift-mcp-expert.md b/plugins/swift-mcp-development/agents/swift-mcp-expert.md deleted file mode 120000 index 1580e9a3..00000000 --- a/plugins/swift-mcp-development/agents/swift-mcp-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/swift-mcp-expert.agent.md \ No newline at end of file diff --git a/plugins/swift-mcp-development/commands/swift-mcp-server-generator.md b/plugins/swift-mcp-development/commands/swift-mcp-server-generator.md deleted file mode 120000 index 0b5140ea..00000000 --- a/plugins/swift-mcp-development/commands/swift-mcp-server-generator.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/swift-mcp-server-generator.prompt.md \ No newline at end of file diff --git a/plugins/technical-spike/.github/plugin/plugin.json b/plugins/technical-spike/.github/plugin/plugin.json index c2a6e681..26247591 100644 --- a/plugins/technical-spike/.github/plugin/plugin.json +++ b/plugins/technical-spike/.github/plugin/plugin.json @@ -7,24 +7,16 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "technical-spike", "assumption-testing", "validation", "research" ], - "display": { - "ordering": "alpha", - "show_badge": false - }, - "items": [ - { - "path": "agents/research-technical-spike.agent.md", - "kind": "agent" - }, - { - "path": "prompts/create-technical-spike.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/research-technical-spike.md" + ], + "commands": [ + "./commands/create-technical-spike.md" ] } diff --git a/plugins/technical-spike/agents/research-technical-spike.md b/plugins/technical-spike/agents/research-technical-spike.md deleted file mode 120000 index f70fe5af..00000000 --- a/plugins/technical-spike/agents/research-technical-spike.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/research-technical-spike.agent.md \ No newline at end of file diff --git a/plugins/technical-spike/commands/create-technical-spike.md b/plugins/technical-spike/commands/create-technical-spike.md deleted file mode 120000 index b926ad62..00000000 --- a/plugins/technical-spike/commands/create-technical-spike.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/create-technical-spike.prompt.md \ No newline at end of file diff --git a/plugins/testing-automation/.github/plugin/plugin.json b/plugins/testing-automation/.github/plugin/plugin.json index e88f781e..d3afed3d 100644 --- a/plugins/testing-automation/.github/plugin/plugin.json +++ b/plugins/testing-automation/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "testing", "tdd", "automation", @@ -17,54 +17,17 @@ "jest", "nunit" ], - "display": { - "ordering": "alpha", - "show_badge": true - }, - "items": [ - { - "path": "agents/tdd-red.agent.md", - "kind": "agent" - }, - { - "path": "agents/tdd-green.agent.md", - "kind": "agent" - }, - { - "path": "agents/tdd-refactor.agent.md", - "kind": "agent" - }, - { - "path": "agents/playwright-tester.agent.md", - "kind": "agent" - }, - { - "path": "instructions/playwright-typescript.instructions.md", - "kind": "instruction" - }, - { - "path": "instructions/playwright-python.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/playwright-explore-website.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/playwright-generate-test.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/csharp-nunit.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/java-junit.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/ai-prompt-engineering-safety-review.prompt.md", - "kind": "prompt" - } + "agents": [ + "./agents/tdd-red.md", + "./agents/tdd-green.md", + "./agents/tdd-refactor.md", + "./agents/playwright-tester.md" + ], + "commands": [ + "./commands/playwright-explore-website.md", + "./commands/playwright-generate-test.md", + "./commands/csharp-nunit.md", + "./commands/java-junit.md", + "./commands/ai-prompt-engineering-safety-review.md" ] } diff --git a/plugins/testing-automation/agents/playwright-tester.md b/plugins/testing-automation/agents/playwright-tester.md deleted file mode 120000 index 8a6c4f1d..00000000 --- a/plugins/testing-automation/agents/playwright-tester.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/playwright-tester.agent.md \ No newline at end of file diff --git a/plugins/testing-automation/agents/tdd-green.md b/plugins/testing-automation/agents/tdd-green.md deleted file mode 120000 index 537335c6..00000000 --- a/plugins/testing-automation/agents/tdd-green.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/tdd-green.agent.md \ No newline at end of file diff --git a/plugins/testing-automation/agents/tdd-red.md b/plugins/testing-automation/agents/tdd-red.md deleted file mode 120000 index ffb141fc..00000000 --- a/plugins/testing-automation/agents/tdd-red.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/tdd-red.agent.md \ No newline at end of file diff --git a/plugins/testing-automation/agents/tdd-refactor.md b/plugins/testing-automation/agents/tdd-refactor.md deleted file mode 120000 index 8407acdf..00000000 --- a/plugins/testing-automation/agents/tdd-refactor.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/tdd-refactor.agent.md \ No newline at end of file diff --git a/plugins/testing-automation/commands/ai-prompt-engineering-safety-review.md b/plugins/testing-automation/commands/ai-prompt-engineering-safety-review.md deleted file mode 120000 index df40993d..00000000 --- a/plugins/testing-automation/commands/ai-prompt-engineering-safety-review.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/ai-prompt-engineering-safety-review.prompt.md \ No newline at end of file diff --git a/plugins/testing-automation/commands/csharp-nunit.md b/plugins/testing-automation/commands/csharp-nunit.md deleted file mode 120000 index 486fd260..00000000 --- a/plugins/testing-automation/commands/csharp-nunit.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/csharp-nunit.prompt.md \ No newline at end of file diff --git a/plugins/testing-automation/commands/java-junit.md b/plugins/testing-automation/commands/java-junit.md deleted file mode 120000 index c8888a0e..00000000 --- a/plugins/testing-automation/commands/java-junit.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/java-junit.prompt.md \ No newline at end of file diff --git a/plugins/testing-automation/commands/playwright-explore-website.md b/plugins/testing-automation/commands/playwright-explore-website.md deleted file mode 120000 index 37779dc7..00000000 --- a/plugins/testing-automation/commands/playwright-explore-website.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/playwright-explore-website.prompt.md \ No newline at end of file diff --git a/plugins/testing-automation/commands/playwright-generate-test.md b/plugins/testing-automation/commands/playwright-generate-test.md deleted file mode 120000 index 983ad66a..00000000 --- a/plugins/testing-automation/commands/playwright-generate-test.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/playwright-generate-test.prompt.md \ No newline at end of file diff --git a/plugins/typescript-mcp-development/.github/plugin/plugin.json b/plugins/typescript-mcp-development/.github/plugin/plugin.json index ebd8bb5b..49fb4c9f 100644 --- a/plugins/typescript-mcp-development/.github/plugin/plugin.json +++ b/plugins/typescript-mcp-development/.github/plugin/plugin.json @@ -7,30 +7,17 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "typescript", "mcp", "model-context-protocol", "nodejs", "server-development" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "instructions/typescript-mcp-server.instructions.md", - "kind": "instruction" - }, - { - "path": "prompts/typescript-mcp-server-generator.prompt.md", - "kind": "prompt" - }, - { - "path": "agents/typescript-mcp-expert.agent.md", - "kind": "agent", - "usage": "recommended\n\nThis chat mode provides expert guidance for building MCP servers in TypeScript/Node.js.\n\nThis chat mode is ideal for:\n- Creating new MCP server projects with TypeScript\n- Implementing tools, resources, and prompts with zod validation\n- Setting up HTTP or stdio transports\n- Debugging schema validation and transport issues\n- Learning TypeScript MCP best practices\n- Optimizing server performance and reliability\n\nTo get the best results, consider:\n- Using the instruction file to set context for TypeScript/Node.js development\n- Using the prompt to generate initial project structure with proper configuration\n- Switching to the expert chat mode for detailed implementation help\n- Specifying whether you need HTTP or stdio transport\n- Providing details about what tools or functionality you need" - } + "agents": [ + "./agents/typescript-mcp-expert.md" + ], + "commands": [ + "./commands/typescript-mcp-server-generator.md" ] } diff --git a/plugins/typescript-mcp-development/agents/typescript-mcp-expert.md b/plugins/typescript-mcp-development/agents/typescript-mcp-expert.md deleted file mode 120000 index 52473b4b..00000000 --- a/plugins/typescript-mcp-development/agents/typescript-mcp-expert.md +++ /dev/null @@ -1 +0,0 @@ -../../../agents/typescript-mcp-expert.agent.md \ No newline at end of file diff --git a/plugins/typescript-mcp-development/commands/typescript-mcp-server-generator.md b/plugins/typescript-mcp-development/commands/typescript-mcp-server-generator.md deleted file mode 120000 index f7e1f9c2..00000000 --- a/plugins/typescript-mcp-development/commands/typescript-mcp-server-generator.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/typescript-mcp-server-generator.prompt.md \ No newline at end of file diff --git a/plugins/typespec-m365-copilot/.github/plugin/plugin.json b/plugins/typespec-m365-copilot/.github/plugin/plugin.json index fced8d58..00337f19 100644 --- a/plugins/typespec-m365-copilot/.github/plugin/plugin.json +++ b/plugins/typespec-m365-copilot/.github/plugin/plugin.json @@ -7,7 +7,7 @@ }, "repository": "https://github.com/github/awesome-copilot", "license": "MIT", - "tags": [ + "keywords": [ "typespec", "m365-copilot", "declarative-agents", @@ -15,26 +15,9 @@ "agent-development", "microsoft-365" ], - "display": { - "ordering": "manual", - "show_badge": true - }, - "items": [ - { - "path": "prompts/typespec-create-agent.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/typespec-create-api-plugin.prompt.md", - "kind": "prompt" - }, - { - "path": "prompts/typespec-api-operations.prompt.md", - "kind": "prompt" - }, - { - "path": "instructions/typespec-m365-copilot.instructions.md", - "kind": "instruction" - } + "commands": [ + "./commands/typespec-create-agent.md", + "./commands/typespec-create-api-plugin.md", + "./commands/typespec-api-operations.md" ] } diff --git a/plugins/typespec-m365-copilot/commands/typespec-api-operations.md b/plugins/typespec-m365-copilot/commands/typespec-api-operations.md deleted file mode 120000 index 9c47333a..00000000 --- a/plugins/typespec-m365-copilot/commands/typespec-api-operations.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/typespec-api-operations.prompt.md \ No newline at end of file diff --git a/plugins/typespec-m365-copilot/commands/typespec-create-agent.md b/plugins/typespec-m365-copilot/commands/typespec-create-agent.md deleted file mode 120000 index 91e32dbe..00000000 --- a/plugins/typespec-m365-copilot/commands/typespec-create-agent.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/typespec-create-agent.prompt.md \ No newline at end of file diff --git a/plugins/typespec-m365-copilot/commands/typespec-create-api-plugin.md b/plugins/typespec-m365-copilot/commands/typespec-create-api-plugin.md deleted file mode 120000 index b8eb4288..00000000 --- a/plugins/typespec-m365-copilot/commands/typespec-create-api-plugin.md +++ /dev/null @@ -1 +0,0 @@ -../../../prompts/typespec-create-api-plugin.prompt.md \ No newline at end of file