Skip to content

feat(plugins): add a GitHub Copilot plugin for Site Ops - #80

Closed
Paymaun (digimaun) wants to merge 4 commits into
Azure:mainfrom
digimaun:feat/copilot-plugin
Closed

Paymaun (digimaun) wants to merge 4 commits into
Azure:mainfrom
digimaun:feat/copilot-plugin

Conversation

@digimaun

Copy link
Copy Markdown
Member

Summary

  • Adds a GitHub Copilot plugin, siteops, published through a scale-kit marketplace in this repository. Install it in Copilot CLI with copilot plugin marketplace add Azure/digital-ops-scale-kit and copilot plugin install siteops@scale-kit, or from VS Code and the Copilot app.
  • Its skills let you ask Copilot in plain language to install Site Ops from a verified release, deploy AIO to one cluster or a fleet with optional Secret Sync, upgrade saved Sites, explore what a release can deploy and diagnose Site Ops errors.
  • Each skill uses Site Ops for every change and asks before it installs, enrolls a source or edits a file. Copilot shows the plan, stops, and deploys only that plan after you reply yes, with the same command and --yes. Before installing AIO, it checks that the cluster's resource group has no AIO instance.
  • The plugin uses the Agent Plugins 1.0 format. The README, documentation index and repository guide link to the plugin guide, and CI runs when plugins or documentation change.

Validation

  • Tests check each skill against the Agent Skills format, resolve every link and heading, parse every siteops command in the skills with the current CLI, require a confirmation question before every deploy, and compare the stated defaults with the workspace. Each check fails when its rule is broken.
  • Copilot CLI sessions with the plugin loaded from this branch, using stand-in commands, confirmed that plain-language requests select the right skill, stop after the plan, refuse a cluster that already runs AIO, and deploy only the confirmed plan after the reply yes.
  • Unit tests with the CI invocation pass on Windows.

The Agent Plugins 1.0 plugin teaches GitHub Copilot to install Site Ops from a verified release, deploy AIO to one cluster or a fleet with optional Secret Sync, upgrade saved Sites, explore what a release can deploy and diagnose Site Ops errors. Each skill states the rules that keep it on its path. It uses Site Ops for every change, asks before it installs, enrolls a source or edits a file, never plans and deploys in the same turn, and deploys only the plan the user confirmed, with the same command and --yes. Before installing AIO, it checks that the cluster's resource group has no AIO instance.
The repository's marketplace lists the plugin, so Copilot CLI, VS Code and the Copilot app can install siteops@scale-kit. The plugin guide lists each skill with an example request, explains how Copilot confirms each plan, and covers installation, updates and removal in each client. The cloud agent is not supported for deployments. The README, documentation index and repository guide link to the guide.
Plugin tests read the plugin, its marketplace, the documentation and the README, so changes to those paths now run CI.
Tests check each skill against the Agent Skills format and its path rules, resolve every link and heading, parse every siteops command in skills and references with the current CLI, require a confirmation question before every deploy and each deploy to repeat a plan from the same skill, and compare the stated defaults and Secret Sync releases with the workspace.
Copilot AI balanced review requested due to automatic review settings October 21, 2026 02:35

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The deployment guard can inspect the wrong subscription, and several workflow instructions need correction.

4 open issues
What changed in this PR

Adds a GitHub Copilot plugin that guides operators through Site Ops installation and AIO workflows.

Changes:

  • Publishes the siteops plugin through the scale-kit marketplace.
  • Adds five skills with deployment planning and confirmation guidance.
  • Adds plugin validation tests, documentation links and CI triggers.
File Description
tests/​test_copilot_plugin.py Validates manifests, links, commands and confirmation guidance.
README.md Introduces plugin installation.
plugins/​siteops/​skills/​upgrade-aio/​SKILL.md Guides saved-Site upgrades.
plugins/​siteops/​skills/​troubleshoot-siteops/​SKILL.md Defines diagnostic workflows.
plugins/​siteops/​skills/​troubleshoot-siteops/​references/​errors.md Maps errors to remedies.
plugins/​siteops/​skills/​install-siteops/​SKILL.md Guides verified installation and updates.
plugins/​siteops/​skills/​explore-content/​SKILL.md Guides content browsing and previews.
plugins/​siteops/​skills/​deploy-aio/​SKILL.md Guides AIO and Secret Sync deployments.
plugins/​siteops/​skills/​deploy-aio/​references/​fleet.md Adds multi-cluster deployment guidance.
plugins/​siteops/​README.md Documents plugin installation and usage.
plugins/​siteops/​plugin.json Defines plugin metadata.
docs/​repository-guide.md Identifies plugin directories.
docs/​README.md Links the plugin guide.
.github/​workflows/​ci.yaml Includes plugin and documentation changes in CI.
.github/​plugin/​marketplace.json Registers the plugin in the marketplace.

Review effort: Balanced

Comment on lines +152 to +155
Then check that the cluster's resource group has no AIO instance yet:

```text
az resource list --resource-type Microsoft.IoTOperations/instances --resource-group <resource-group> --query "[].id" --output tsv
Comment on lines +204 to +206
operation counts from the plan output. Take the AIO release from the
`aioRelease` input, or the default 2609. Secret Sync is enabled when the
plan marks the `secretsync` step with `+`.
Comment on lines +50 to +51
which release installed it. If Site Ops works and the user did not ask for a
specific release, skip to step 6. Otherwise check for other `siteops`
Comment on lines +50 to +51
Upgrades use saved Sites, because the AIO release is a Site setting. Ask for
the project directory if the user has not named it, then list its Sites:
@digimaun

Copy link
Copy Markdown
Member Author

Closing in favor of #81, which carries this change as one commit and fixes the four review comments here. The existing AIO check now uses the cluster's own subscription. The Secret Sync summary reports the instance's AIO release as unchanged. A request to update Site Ops goes through release selection. An upgrade without a saved Site now finds the installation and saves its Site first.

@digimaun
Paymaun (digimaun) deleted the feat/copilot-plugin branch October 21, 2026 16:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants