Add Security Skills Toolkit plugin 🤖🤖🤖#2116
Conversation
🔒 PR Risk Scan ResultsScanned 26 changed file(s).
|
🔍 Skill Validator Results
Summary
Full validator output |
There was a problem hiding this comment.
Pull request overview
Adds a new security-skills-toolkit plugin to the Awesome Copilot marketplace, centered around an orchestrator agent that routes developers to specialized security modernization skills (managed identity/secretless-auth migrations, MSAL.js upgrade hops, and a general SFI-guided helper).
Changes:
- Introduces the
security-skills-toolkitplugin (manifest + README) and lists it in the marketplace + generated docs. - Adds the
sst-security-skills-orchestratoragent as the plugin entrypoint. - Adds the
sst-*skill set (secretless-auth migrations + MSAL.js migration router and hop skills).
Reviewed changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated 21 comments.
Show a summary per file
| File | Description |
|---|---|
.github/plugin/marketplace.json |
Registers the new plugin in the generated marketplace index. |
agents/sst-security-skills-orchestrator.agent.md |
Adds the orchestrator agent definition and routing instructions. |
docs/README.agents.md |
Adds the orchestrator agent to generated agent documentation. |
docs/README.plugins.md |
Adds the plugin to generated plugin documentation. |
docs/README.skills.md |
Adds the new sst-* skills to generated skill documentation. |
plugins/security-skills-toolkit/.github/plugin/plugin.json |
Defines plugin metadata and references the agent + skills included in the plugin. |
plugins/security-skills-toolkit/README.md |
Provides installation and usage docs for the plugin and its capabilities. |
skills/sst-cognitive-secretless-auth/SKILL.md |
Skill for migrating Azure Cognitive/AI Services from API keys to Entra/managed identity. |
skills/sst-container-vulnerability-patching/SKILL.md |
Skill for container base-image vulnerability patching guidance grounded in public docs. |
skills/sst-cosmosdb-secretless-auth/SKILL.md |
Skill for migrating Cosmos DB from keys to Entra/managed identity auth. |
skills/sst-eventhub-secretless-auth/SKILL.md |
Skill for migrating Event Hubs from SAS/connection strings to Entra/managed identity. |
skills/sst-general-security-helper/SKILL.md |
General SFI-guided helper skill for concerns without a dedicated specialist skill. |
skills/sst-msaljs-migration/SKILL.md |
Router/orchestrator skill for MSAL.js migrations across package/version hops. |
skills/sst-msaljs-migration-angular-v2-to-v3/SKILL.md |
MSAL Angular v2→v3 hop guidance skill. |
skills/sst-msaljs-migration-angular-v3-to-v4/SKILL.md |
MSAL Angular v3→v4 hop guidance skill. |
skills/sst-msaljs-migration-angular-v4-to-v5/SKILL.md |
MSAL Angular v4→v5 hop guidance skill. |
skills/sst-msaljs-migration-browser-v2-to-v3/SKILL.md |
MSAL Browser v2→v3 hop guidance skill. |
skills/sst-msaljs-migration-browser-v3-to-v4/SKILL.md |
MSAL Browser v3→v4 hop guidance skill. |
skills/sst-msaljs-migration-browser-v4-to-v5/SKILL.md |
MSAL Browser v4→v5 hop guidance skill. |
skills/sst-msaljs-migration-node-v2-to-v3/SKILL.md |
MSAL Node v2→v3 hop guidance skill. |
skills/sst-msaljs-migration-node-v3-to-v5/SKILL.md |
MSAL Node v3→v5 hop guidance skill. |
skills/sst-msaljs-migration-react-v3-to-v5/SKILL.md |
MSAL React v3→v5 hop guidance skill. |
skills/sst-redis-secretless-auth/SKILL.md |
Skill for migrating Azure Cache for Redis from access keys to Entra/managed identity. |
skills/sst-servicebus-secretless-auth/SKILL.md |
Skill for migrating Azure Service Bus from SAS/connection strings to Entra/managed identity. |
skills/sst-sql-secretless-auth/SKILL.md |
Skill for migrating Azure SQL from SQL auth to Entra/managed identity. |
skills/sst-storage-secretless-auth/SKILL.md |
Skill for migrating Azure Storage from shared keys to Entra/managed identity. |
…github.com/harrider/awesome-copilot into harrider/skill/add-security-skills-toolkit
|
|
||
| **You do NOT own:** Code changes (skills own that). Portal navigation (developer owns that with skill guidance). | ||
|
|
||
| **The one rule:** You are a ROUTER. You classify the developer's concern, explain context, and hand off to skills for code changes. The skills (including `sst-general-security-helper`) are the ones who propose and apply fixes alongside the developer. |
There was a problem hiding this comment.
This conflicts with the output control section which was also "the one rule"
|
|
||
| ### Explanation-first edit gate (binds every skill you route to) | ||
|
|
||
| Routing to a skill does **not** authorize it to edit. Every skill you hand off to starts in **explanation mode** and stays there until the developer **explicitly asks for changes**. This gate is yours to enforce — a skill running its own procedural steps does not lift it. |
There was a problem hiding this comment.
Isn't this just friction against the built-in permissions in most harnesses? Why would this agent ask for read or write when the harness is also going to ask and enforce?
There was a problem hiding this comment.
The other point being that the harnesses checks are deterministic.
There was a problem hiding this comment.
This is again about the runtime behavior of our own plugin. We don't want for it to immediately start doing things, especially with regards to someone's codebase without their consent. This is just a gate that if a user doesn't want the agent or skills to run any kind of scan of their codebase to fall back to just using a general helper skill that would fetch public docs based on the issue the user is describing.
This is also separate from the actual built-in permissions that would actually give something like Copilot CLI OS level permissions
| Ask the developer to describe their security concern. They might say: | ||
| - "I need to migrate my storage account to managed identity" | ||
| - "I have a container vulnerability I need to patch" | ||
| - "My app uses an old version of MSAL.JS" | ||
| - "I want to improve my app's authentication security" | ||
| - Something more general or vague | ||
|
|
||
| If the concern is vague, ask clarifying questions to understand: | ||
| - What Azure service or technology is involved? | ||
| - What's the current authentication/security pattern? | ||
| - What's the target state they want to reach? |
There was a problem hiding this comment.
| Ask the developer to describe their security concern. They might say: | |
| - "I need to migrate my storage account to managed identity" | |
| - "I have a container vulnerability I need to patch" | |
| - "My app uses an old version of MSAL.JS" | |
| - "I want to improve my app's authentication security" | |
| - Something more general or vague | |
| If the concern is vague, ask clarifying questions to understand: | |
| - What Azure service or technology is involved? | |
| - What's the current authentication/security pattern? | |
| - What's the target state they want to reach? | |
| Ask the developer to describe their security concern. If the concern is vague, ask clarifying questions to understand: | |
| - What Azure service or technology is involved? | |
| - What's the current authentication/security pattern? | |
| - What's the target state they want to reach? |
This should be sufficient here. No? The other lines are a very limited subset of possible inputs, I don't that is going to help much
|
|
||
| Then route to `sst-general-security-helper` with the developer's choice and context. | ||
|
|
||
| ### Context Passed to Skills |
There was a problem hiding this comment.
This confuses me a bit, skills are loaded into the current context, they already have all of this unless it is routed through a sub agent.
|
|
||
| **You do NOT own:** Code changes (skills own that). Portal navigation (developer owns that with skill guidance). | ||
|
|
||
| **The one rule:** You are a ROUTER. You classify the developer's concern, explain context, and hand off to skills for code changes. The skills (including `sst-general-security-helper`) are the ones who propose and apply fixes alongside the developer. |
There was a problem hiding this comment.
This confuses me. The agent stays the same when the skill is being executed. Skills don't "propose and apply fixes", skills only provide instructions and context to the agent
There was a problem hiding this comment.
This is about the runtime behavior and establishing the behavioral trust boundaries around the agent vs the skills. We don't want for the agent context itself to execute changes on its own without the dedicated skills in context. The dedicated skills are crafted to provide very targeted instructions for helping to remediate issues.
This is verbatim from the other plugin and kind of the main load bearing pillars of the model that drives the whole concept
| You are the developer's **first stop** on the way to the right specialist — and more than that, you're their partner in improving their application's security posture. Your accurate classification of concerns and correct routing to skills ensures developers get the right guidance. Take care in your analysis — a misrouted concern can cause wasted effort and frustration. | ||
|
|
||
| **Remember:** | ||
| - You are a ROUTER, not a REMEDIATOR — skills do the actual work |
There was a problem hiding this comment.
This is again about the runtime behavior and not necessarily the mechanism Copilot CLI uses to load agents and skills. This comes verbatim from the other plugin
|
|
||
| --- | ||
|
|
||
| ## Step-by-Step Guide |
Pull Request Checklist
npm startand verified thatREADME.mdis up to date.stagedbranch for this pull request.Description
Adds the security-skills-toolkit plugin — an AI-powered helper for developers modernizing the security posture of Azure-based applications. A developer describes a security concern in plain language, and an orchestrator agent routes to a specialist skill that pulls relevant public Microsoft documentation and helps plan/apply changes, with the developer in control throughout.
The plugin ships 1 agent + 19 skills (all prefixed
sst-):sst-security-skills-orchestrator— classifies a concern and routes to the right skill.sst-storage-secretless-auth,sst-sql-secretless-auth,sst-cosmosdb-secretless-auth,sst-redis-secretless-auth,sst-eventhub-secretless-auth,sst-servicebus-secretless-auth,sst-cognitive-secretless-auth— move from keys/SAS/passwords to Microsoft Entra managed identity.sst-msaljs-migrationrouter plus 9 version-hop skills (browser/Angular/Node/React).sst-container-vulnerability-patching.sst-general-security-helperfor concerns without a dedicated skill.All guidance is grounded in publicly available Microsoft documentation (Entra/managed identity, MSAL.js, SFI/Zero Trust).
Type of Contribution
Additional Notes
staged: the plugin folder contains only.github/plugin/plugin.json+README.md; the agent lives in top-levelagents/and the 19 skills in top-levelskills/, referenced declaratively fromplugin.json(CI materializes them on publish)..github/plugin/marketplace.jsonanddocs/README.{agents,plugins,skills}.md(npm run buildproduces no further diff).npm run plugin:validate→security-skills-toolkit is valid; all 19sst-*skills passnpm run skill:validate.copilot plugin install): the orchestrator agent is discoverable/selectable and routes correctly to thesst-skills (tested MSAL.js migration and storage secretless-auth).author: "Awesome Copilot Community".