Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
6ff7b9f
Consolidate 5 plugins into AgentKit + SaaSKit
saif-shines May 12, 2026
ade11de
remove testing-agentkit-tools skill — redundant with MCP server
saif-shines May 13, 2026
4f4eac9
trim agents: remove sdk-version-advisor, session-management-reviewer,…
saif-shines May 13, 2026
d56faff
add install scripts and fix README install examples
saif-shines May 13, 2026
c7d2d32
rename scripts/install_copilot_marketplace.sh to scripts/install.sh
saif-shines May 13, 2026
adeae05
Improve post-install message with plugin activation and auto-update g…
saif-shines May 13, 2026
58cd1c7
Simplify post-install message to focus on what to look for, not UI steps
saif-shines May 13, 2026
4ece3c1
Make bootstrap installer resilient to missing execute bit in tarball
saif-shines May 13, 2026
97044a1
Add 4 missing agent-connectors docs (attention, chorus, clari_copilot…
saif-shines May 13, 2026
dccdd2a
Remove agent-connectors directory, point to live docs instead
saif-shines May 13, 2026
c2ebf8b
fix: align copilot plugins with platform conventions
saif-shines May 13, 2026
d45f6b9
fix: use plugin@marketplace format for copilot install commands
saif-shines May 13, 2026
a00ab29
fix: tolerate already-registered marketplace in install script
saif-shines May 13, 2026
ab0d03e
fix: remove and re-add marketplace to ensure latest version on reinstall
saif-shines May 13, 2026
c0119c0
fix: use local path for marketplace when running from git checkout
saif-shines May 13, 2026
b30cd7a
fix: revert local checkout detection, keep CLI commands for install
saif-shines May 13, 2026
76c392a
fix: restore original install structure, keep @marketplace qualifier fix
saif-shines May 13, 2026
a2c333b
fix: handle already-registered marketplace gracefully, suggest auto-u…
saif-shines May 13, 2026
b8a8810
fix: update all plugins on re-run instead of just suggesting it
saif-shines May 13, 2026
19fdcb5
fix: use remove+add to refresh marketplace (no update command available)
saif-shines May 13, 2026
a4d381c
fix: use copilot plugin update NAME on re-runs, fix installed-plugins…
saif-shines May 13, 2026
cec8c33
fix: update stale install examples and product name in plugin READMEs
saif-shines May 14, 2026
b4d399e
fix: add old plugin name symlinks for backwards compatibility
saif-shines May 14, 2026
919d61a
fix: broken cross-references, stale CLAUDE.md, wrong tool name and re…
saif-shines May 14, 2026
88df993
Add scalekit-code-doctor skill to both plugins
saif-shines May 15, 2026
4b3c554
fix: update 40+ connectors to 100+ and standardize author name to Sca…
saif-shines May 20, 2026
7e3e6a7
fix: register scalekit-code-doctor skill in both plugin.json files
saif-shines May 20, 2026
858e9b8
feat: add Scalekit CLI install step to setup-scalekit agent and testi…
saif-shines May 20, 2026
bbb93aa
fix: correct email domain extraction, stale URL, and stray code fence
saif-shines May 20, 2026
d66f81d
fix: update stale docs URLs and remove SDK version pin
saif-shines May 20, 2026
6ada4e8
fix: correct Python package names, broken links in agentkit references
saif-shines May 20, 2026
3d7d82d
fix: update stale MCP docs URL in bring-your-own-auth
saif-shines May 20, 2026
85bbab0
Sync all skill descriptions from claude-code SOT
saif-shines May 20, 2026
9ea9dcb
Sync improved skills from skills repo (all 90%+)
saif-shines May 21, 2026
ea5d542
fix: wrong pip package, SDK class name, and missing README skills
saif-shines May 21, 2026
dbd1ab6
fix: remaining CTO review issues — token expiry, missing refs, README…
saif-at-scalekit May 21, 2026
6277620
feat: add setup/onboarding skill to agentkit and saaskit
saif-at-scalekit May 21, 2026
787bef0
fix: wrong Python SDK methods and stale .io domain
saif-at-scalekit May 21, 2026
f4ed5f0
fix: plugin.json skill entries, agent name, and platform-specific refs
saif-at-scalekit May 22, 2026
9b55ec3
fix: .md URL suffixes, env var canonicalization, module shadowing, Go…
saif-at-scalekit May 22, 2026
d9e7f5f
fix: scalekit.auth sub-client, SCIM methods, webhook, getLogoutUrl, s…
saif-at-scalekit May 22, 2026
589f74f
fix: SK_ENV_URL→SCALEKIT_ENVIRONMENT_URL in MCP OAuth refs, stale gui…
saif-at-scalekit May 22, 2026
4465775
fix: decodeToken→validateAccessTokenAndGetClaims in access-control
saif-at-scalekit May 22, 2026
6e425cf
fix: correct Python SDK call patterns for get_authorization_url and g…
saif-at-scalekit May 22, 2026
fc0d808
fix: get_authorization_url options must be typed object, not dict, in…
saif-at-scalekit May 22, 2026
2c1be9b
fix(p0): add .gitignore, restore troubleshooter maxTurns, fix listOrg…
claude May 26, 2026
b0ca20d
fix(p2): fix access-control e.g./Unauthorized, LogoutUrlOptions keywo…
claude May 26, 2026
c85b88d
fix(p1): bump marketplace version 1.0.0→2.0.0, replace npx mcp-remote…
claude May 26, 2026
b3afffd
fix(p3): add missing CLI install step, FSA→SaaSKit label, scrub real …
claude May 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 28 additions & 16 deletions .github/plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,38 +5,50 @@
"email": "support@scalekit.com"
},
"metadata": {
"description": "GitHub Copilot CLI plugins for authentication",
"version": "1.0.0"
"description": "Scalekit Auth Stack for GitHub Copilot — AgentKit and SaaSKit plugins.",
"version": "2.0.0"
},
"plugins": [
{
"name": "mcp-auth",
"description": "Add OAuth 2.1 authorization to MCP servers using Scalekit.",
"version": "1.0.0",
"source": "./plugins/mcp-auth"
"name": "agentkit",
"description": "Authentication for AI agents. OAuth flows, token vault, 100+ connectors (Gmail, Slack, Salesforce, etc.), tool discovery, and live testing — so agents can act on behalf of users.",
"version": "2.0.0",
"source": "./plugins/agentkit"
},
{
"name": "full-stack-auth",
"description": "Production-ready authentication flows (sign-up, login, logout, sessions) using Scalekit full-stack auth across common stacks.",
"version": "1.3.4",
"source": "./plugins/full-stack-auth"
"name": "saaskit",
"description": "Production-ready auth for B2B SaaS apps. Login, sessions, SSO (Okta, Azure AD, Google), SCIM provisioning, RBAC, MCP server auth, and API key management.",
"version": "2.0.0",
"source": "./plugins/saaskit"
},
{
"name": "agent-auth",
"description": "Implements Scalekit Agent Auth so AI agents can act in third-party apps (Gmail, Slack, Calendar, Notion) on behalf of users.",
"version": "1.5.2",
"description": "Alias for agentkit — AI agent authentication with OAuth flows, token vault, and 100+ connectors.",
"version": "2.0.0",
"source": "./plugins/agent-auth"
},
{
"name": "mcp-auth",
"description": "Alias for saaskit — includes OAuth 2.1 for MCP servers alongside login, SSO, SCIM, and RBAC.",
"version": "2.0.0",
"source": "./plugins/mcp-auth"
},
{
"name": "full-stack-auth",
"description": "Alias for saaskit — full-stack authentication including login, sessions, SSO, SCIM, and RBAC.",
"version": "2.0.0",
"source": "./plugins/full-stack-auth"
},
{
"name": "modular-sso",
"description": "Modular SSO flows using Scalekit for apps with existing user management, including IdP-initiated login and enterprise onboarding.",
"version": "1.1.4",
"description": "Alias for saaskit — enterprise SSO is now part of the unified SaaSKit plugin.",
"version": "2.0.0",
"source": "./plugins/modular-sso"
},
{
"name": "modular-scim",
"description": "SCIM webhook provisioning with Scalekit for real-time user and group lifecycle management.",
"version": "1.1.2",
"description": "Alias for saaskit — SCIM provisioning is now part of the unified SaaSKit plugin.",
"version": "2.0.0",
"source": "./plugins/modular-scim"
}
]
Expand Down
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
node_modules/
.DS_Store
.env
.env.local
*.log
dist/
build/
coverage/
10 changes: 5 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ copilot plugin marketplace add ./github-copilot-authstack
copilot plugin list

# Install a specific plugin
copilot plugin install mcp-auth
copilot plugin install agentkit@github-copilot-authstack

# Test the plugin
copilot <agent-name> "Your prompt"
Expand Down Expand Up @@ -469,11 +469,11 @@ Documentation
| Artifact | Convention | Example |
|---|---|---|
| Marketplace name | `kebab-case` | `team-plugins` |
| Plugin name | `kebab-case` | `mcp-auth` |
| Plugin name | `kebab-case` | `agentkit` |
| Agent filename | `<name>.agent.md` | `scalekit-mcp-auth-troubleshooter.agent.md` |
| Agent ID | derived from filename | `scalekit-mcp-auth-troubleshooter` |
| Skill directory | `kebab-case` | `mcp-auth` |
| Skill name | defined in SKILL.md | `MCP Auth` |
| Skill directory | `kebab-case` | `integrating-agentkit` |
| Skill name | defined in SKILL.md | `integrating-agentkit` |
| MCP server name | `kebab-case` | `scalekit-auth-server` |

**Note**: All file paths must use forward slashes (`/`) regardless of operating system.
Expand Down Expand Up @@ -505,7 +505,7 @@ copilot plugin marketplace add octo-org/octo-repo
copilot plugin list

# Install a specific plugin
copilot plugin install mcp-auth
copilot plugin install agentkit@github-copilot-authstack

# Use an agent from the plugin
copilot <agent-name> "Your prompt"
Expand Down
188 changes: 38 additions & 150 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,168 +1,56 @@
# CLAUDE.md (Repo guide for agents)

This repository contains GitHub Copilot CLI plugins for marketplace distribution.
It is a monorepo. Always work inside one plugin directory at a time.
This repository is a monorepo of GitHub Copilot CLI plugins for marketplace distribution.
Always work inside one plugin directory at a time.

If you are making changes, read AGENTS.md first and follow it as the source of truth.
Read AGENTS.md first it is the source of truth for all rules.

## Quick orientation
## Repo structure

Top level:

- .github/plugin/ Marketplace manifest location
- plugins/ Monorepo root for all plugins
- AGENTS.md Non negotiable rules for manifests, commands, security
- README.md Repo overview

Plugins (examples you may see here):

- plugins/frontend-design/
- plugins/security-checks/
- plugins/deploy-tools/
```
.github/plugin/marketplace.json Marketplace manifest
plugins/agentkit/ AgentKit plugin (OAuth, token vault, connectors)
plugins/saaskit/ SaaSKit plugin (SSO, SCIM, sessions, MCP auth)
plugins/agent-auth -> agentkit Backwards-compat symlink
plugins/mcp-auth -> saaskit Backwards-compat symlink
plugins/full-stack-auth -> saaskit Backwards-compat symlink
plugins/modular-sso -> saaskit Backwards-compat symlink
plugins/modular-scim -> saaskit Backwards-compat symlink
AGENTS.md Non-negotiable rules
README.md Repo overview
scripts/install.sh Installation script
```

Each plugin is expected to look like:
Each plugin contains:
```
plugins/<plugin-name>/
manifest.json Plugin manifest (name, version, commands)
src/index.ts Plugin entrypoint
commands/ CLI command implementations
package.json Node.js dependencies
README.md Required docs for that plugin

## Marketplace structure

The marketplace.json file in .github/plugin/ defines which plugins are available:

```json
{
"name": "github-copilot-authstack",
"owner": {
"name": "Plugin Owner",
"email": "owner@example.com"
},
"metadata": {
"description": "GitHub Copilot CLI plugins marketplace",
"version": "1.0.0"
},
"plugins": [
{
"name": "plugin-name",
"description": "Plugin description",
"version": "1.0.0",
"source": "./plugins/plugin-name"
}
]
}
.github/plugin/plugin.json Plugin manifest (required)
agents/*.agent.md Agent definitions
skills/<skill-name>/SKILL.md Skill entrypoints
references/ Deep docs loaded on demand
hooks/hooks.json Lifecycle hooks (optional)
.mcp.json MCP server config (optional)
README.md Required docs
```

Source paths are relative to the repository root. Use `./plugins/plugin-name` or `plugins/plugin-name` (both work).

## Golden rules

- Do not edit multiple plugins in one change unless explicitly requested.
- Prefer smallest viable change that improves correctness, safety, or docs.
- Never add secrets, tokens, or credentials to this repo.
- Follow naming rules from AGENTS.md for plugin names and command names.
- Keep command implementations focused and testable.

## Workflow for improvements

1. Identify the target plugin directory under plugins/<plugin-name>.
2. Read these files before coding:
- .github/plugin/marketplace.json
- plugins/<plugin-name>/manifest.json
- plugins/<plugin-name>/README.md
- plugins/<plugin-name>/src/index.ts
- Any relevant commands/*.ts
3. Decide the change type:
- New plugin: Create plugin directory, update marketplace.json
- New command: Add command file, update manifest.json commands array
- Command change: Update command implementation, update README if needed
- Manifest change: Update manifest.json fields (version, description, etc.)
4. Update documentation:
- Always update plugins/<plugin-name>/README.md when behavior changes.
- Update .github/plugin/marketplace.json if adding/updating plugins.
5. Local verification:
- Add marketplace locally:
copilot plugin marketplace add ./github-copilot-authstack
- List available plugins:
copilot plugin list
- Test the plugin command:
copilot <plugin-name> <command> [args]
6. Definition of done:
- Clear docs for how to use the change
- No secrets added
- Naming follows AGENTS.md
- Marketplace.json source path is correct
- Minimal surface area change

## When adding a new plugin

1. Create plugin directory: plugins/<plugin-name>/
2. Create manifest.json with required fields
3. Create src/index.ts with plugin entrypoint
4. Create commands/ directory and implement commands
5. Create package.json with dependencies
6. Create README.md with all 7 required sections
7. Update .github/plugin/marketplace.json to include the new plugin
8. Test locally with copilot CLI

## When updating an existing plugin
## Before coding

1. Edit plugin files in plugins/<plugin-name>/
2. Update version in manifest.json if behavior changes
3. Update README.md if commands or behavior changes
4. Run local tests with copilot CLI
5. Commit changes with conventional commit message
1. Read AGENTS.md for all rules
2. Read .github/plugin/marketplace.json for plugin registry
3. Read the target plugin's plugin.json and README.md

## Common pitfalls to avoid

- Wrong source paths in marketplace.json. Must be relative to repo root.
- Missing required fields in manifest.json.
- Using reserved words in plugin names (github, copilot).
- Not validating command inputs.
- Forgetting to update README.md when behavior changes.
- Hardcoding credentials or secrets.
- Not testing with copilot CLI before committing.

## Testing before publishing

Always test locally:
## Local testing

```bash
# Add the marketplace
copilot plugin marketplace add ./github-copilot-authstack

# Verify marketplace loaded
copilot plugin list

# Test plugin commands
copilot <plugin-name> <command> [args]

# Verify output matches expected behavior
```

Run unit tests if available:

```bash
cd plugins/<plugin-name>
npm test
copilot plugin install agentkit@github-copilot-authstack
```

## When uncertain

If the request is ambiguous, ask which plugin folder under plugins/ is the target before making changes.

If unsure about marketplace.json structure, reference the existing entries in .github/plugin/marketplace.json.

## Branch strategy for pushing

When making changes that will be pushed to GitHub:

1. Create a feature branch: `git checkout -b feature/plugin-name-update`
2. Make your changes
3. Test locally with copilot CLI
4. Commit changes with conventional commit format
5. Push to remote: `git push origin feature/plugin-name-update`
6. Create pull request for review
## Golden rules

Never push directly to main branch for marketplace changes.
- One plugin at a time unless explicitly asked otherwise.
- Never add secrets, tokens, or credentials.
- Prefer minimal changes for correctness, safety, and clarity.
- Forward slashes in all paths.
- Update README.md when behavior changes.
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2025 AuthStack Marketplace

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading