diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 1d1bc47..59d61e9 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -1,24 +1,19 @@ { - "name": "cursor-plugin-starters", + "name": "gitkraken", "owner": { - "name": "Your Org", - "email": "plugins@example.com" + "name": "GitKraken", + "email": "product.marketing@gitkraken.com" }, "metadata": { - "description": "Starter marketplace template for Cursor plugins", + "description": "The GitKraken Cursor Plugin wraps our MCP Server and turns your AI assistant into a context-aware development partner by connecting it to git history, branches, issues, pull requests, and multi-repo workflows through GitKraken. It works with all the providers you would expect from the GitKraken software suite such as GitHub, GitLab, Azure DevOps, Bitbucket, Jira and more.", "version": "0.1.0", "pluginRoot": "plugins" }, "plugins": [ { - "name": "starter-simple", - "source": "./plugins/starter-simple", - "description": "Minimal plugin with rules and skills only" - }, - { - "name": "starter-advanced", - "source": "./plugins/starter-advanced", - "description": "Full-featured plugin with rules, skills, agents, commands, hooks, and MCP" + "name": "gitkraken", + "source": "./gitkraken", + "description": "The GitKraken Cursor Plugin wraps our MCP Server and turns your AI assistant into a context-aware development partner by connecting it to git history, branches, issues, pull requests, and multi-repo workflows through GitKraken. It works with all the providers you would expect from the GitKraken software suite such as GitHub, GitLab, Azure DevOps, Bitbucket, Jira and more." } ] } diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..8d3b5d8 --- /dev/null +++ b/LICENSE @@ -0,0 +1,7 @@ +Copyright 2026 GitKraken + +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. diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..c0635ca --- /dev/null +++ b/NOTICE @@ -0,0 +1,4 @@ +GitKraken Cursor Plugin +Copyright 2026-present GitKraken + +This product includes software developed at GitKraken (https://www.gitkraken.com/). diff --git a/README.md b/README.md index a184d56..86eba4b 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,51 @@ -# Cursor plugin template +**This plugin is currently in Preview.** -Build and publish Cursor Marketplace plugins from a single repo. +# GitKraken Cursor Plugin -Two starter plugins are included: +This plugin gives Cursor's AI access to your real Git and project context: commits, branches, pull requests, and issues across every repo you work in. Ask the agent a question about your work, and it answers from what's actually in your history and your trackers, not what it can guess from the open file. -- **starter-simple**: rules and skills only -- **starter-advanced**: rules, skills, agents, commands, hooks, MCP, and scripts +Works with GitHub, GitLab, Azure DevOps, Bitbucket, and Jira. -## Getting started +## What you need -[Use this template](https://github.com/cursor/plugin-template/generate) to create a new repository, then customize: +- [Cursor](https://cursor.com/) IDE (v2.6.0+) +- A [GitKraken account](https://gitkraken.dev) (free works) to connect your Git and tracker providers -1. `.cursor-plugin/marketplace.json`: set marketplace `name`, `owner`, and `metadata`. -2. `plugins/*/.cursor-plugin/plugin.json`: set `name` (lowercase kebab-case), `displayName`, `author`, `description`, `keywords`, `license`, and `version`. -3. Replace placeholder rules, skills, agents, commands, hooks, scripts, and logos. +## Installation -To add more plugins, see `docs/add-a-plugin.md`. +- Open Cursor Settings (gear icon in the left sidebar, or "Cursor Settings" in the Command Palette). +- Go to Plugins. +- Install the GitKraken plugin. +- When prompted, sign in to GitKraken and connect the providers you want the agent to see (GitHub, GitLab, Jira, etc.). -## Single plugin vs multi-plugin +Already running the GitKraken MCP server in Cursor separately? Disable or remove it first so you don't get conflicting tools. -This template defaults to **multi-plugin** (multiple plugins in one repo). +## What you can do -For a **single plugin**, move your plugin folder contents to the repository root, keep one `.cursor-plugin/plugin.json`, and remove `.cursor-plugin/marketplace.json`. +Once connected, just ask the agent anything about your Git repos, branches, commits, pull requests, issues, and more. Here are some example prompts to get you started: -## Submission checklist +``` +Show me issues assigned to me +``` -- Each plugin has a valid `.cursor-plugin/plugin.json`. -- Plugin names are unique, lowercase, and kebab-case. -- `.cursor-plugin/marketplace.json` entries map to real plugin folders. -- All frontmatter metadata is present in rule, skill, agent, and command files. -- Logos are committed and referenced with relative paths. -- `node scripts/validate-template.mjs` passes. -- Repository link is ready for submission to the Cursor team (Slack or `kniparko@anysphere.com`). +``` +Show me pull requests in progress +``` + +``` +Who last modified this file +``` + +## Support + +If you run into any issues, double check if we have the problem covered in our [Help Center](https://help.gitkraken.com/mcp/mcp-getting-started/). + +You can give feedback and report bugs on GitHub by [submitting an issue](https://github.com/gitkraken/gk-cli/issues/new?template=bug_report.yml). + +If you would like to reach out to Support directly, you can [submit a ticket](https://gitkraken.com/contact) + +## Legal + +See the [LICENSE](LICENSE) and [NOTICE](NOTICE) files included with this plugin. + +For details on how GitKraken handles your data, see the [GitKraken Privacy Policy](https://www.gitkraken.com/privacy). diff --git a/docs/.gitkeep b/docs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/add-a-plugin.md b/docs/add-a-plugin.md deleted file mode 100644 index 822bd30..0000000 --- a/docs/add-a-plugin.md +++ /dev/null @@ -1,76 +0,0 @@ -# Add a plugin - -Add a new plugin under `plugins/` and register it in `.cursor-plugin/marketplace.json`. - -## 1. Create plugin directory - -Create a new folder: - -```text -plugins/my-new-plugin/ -``` - -Add the required manifest: - -```text -plugins/my-new-plugin/.cursor-plugin/plugin.json -``` - -Example manifest: - -```json -{ - "name": "my-new-plugin", - "displayName": "My New Plugin", - "version": "0.1.0", - "description": "Describe what this plugin does", - "author": { - "name": "Your Org" - }, - "logo": "assets/logo.svg" -} -``` - -## 2. Add plugin components - -Add only the components you need: - -- `rules/` with `.mdc` files (YAML frontmatter required) -- `skills//SKILL.md` (YAML frontmatter required) -- `agents/*.md` (YAML frontmatter required) -- `commands/*.(md|mdc|markdown|txt)` (frontmatter recommended) -- `hooks/hooks.json` and `scripts/*` for automation hooks -- `mcp.json` for MCP server definitions -- `assets/logo.svg` for marketplace display - -## 3. Register in marketplace manifest - -Edit `.cursor-plugin/marketplace.json` and append a new entry: - -```json -{ - "name": "my-new-plugin", - "source": "./plugins/my-new-plugin", - "description": "Describe your plugin" -} -``` - -`source` is the relative path from the repository root to the plugin folder. - -## 4. Validate - -```bash -node scripts/validate-template.mjs -``` - -Fix all reported errors before committing. - -## 5. Common pitfalls - -- Plugin `name` not kebab-case. -- `source` path in marketplace manifest does not match folder name. -- Missing `.cursor-plugin/plugin.json` in plugin folder. -- Missing frontmatter keys (`name`, `description`) in skills, agents, or commands. -- Rule files missing frontmatter `description`. -- Using a filename other than `mcp.json` for MCP server definitions. -- Broken relative paths for `logo`, `hooks`, or `mcpServers` in manifest files. diff --git a/plugins/gitkraken/.cursor-plugin/plugin.json b/plugins/gitkraken/.cursor-plugin/plugin.json new file mode 100644 index 0000000..2487f87 --- /dev/null +++ b/plugins/gitkraken/.cursor-plugin/plugin.json @@ -0,0 +1,23 @@ +{ + "name": "gitkraken", + "displayName": "GitKraken", + "version": "0.1.0", + "description": "GitKraken MCP wrapper", + "author": { + "name": "GitKraken", + "email": "plugins@gitkraken.com" + }, + "license": "MIT", + "keywords": [ + "cursor", + "plugin", + "gitkraken", + "rules", + "skills", + "agents", + "commands", + "hooks", + "mcp" + ], + "logo": "assets/logo.svg" +} diff --git a/plugins/starter-advanced/README.md b/plugins/gitkraken/README.md similarity index 94% rename from plugins/starter-advanced/README.md rename to plugins/gitkraken/README.md index e5a2f7e..4fdd25a 100644 --- a/plugins/starter-advanced/README.md +++ b/plugins/gitkraken/README.md @@ -1,4 +1,4 @@ -# starter-advanced +# GitKraken Full-featured Cursor plugin starter. diff --git a/plugins/gitkraken/agents/.gitkeep b/plugins/gitkraken/agents/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plugins/starter-advanced/assets/logo.svg b/plugins/gitkraken/assets/logo.svg similarity index 100% rename from plugins/starter-advanced/assets/logo.svg rename to plugins/gitkraken/assets/logo.svg diff --git a/plugins/gitkraken/commands/.gitkeep b/plugins/gitkraken/commands/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plugins/gitkraken/hooks/.gitkeep b/plugins/gitkraken/hooks/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plugins/gitkraken/mcp.json b/plugins/gitkraken/mcp.json new file mode 100644 index 0000000..81cb891 --- /dev/null +++ b/plugins/gitkraken/mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "gitkraken": { + "command": "npx", + "args": ["-y", "@gitkraken/gk", "mcp"] + } + } +} diff --git a/plugins/gitkraken/rules/.gitkeep b/plugins/gitkraken/rules/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plugins/gitkraken/scripts/.gitkeep b/plugins/gitkraken/scripts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plugins/gitkraken/skills/.gitkeep b/plugins/gitkraken/skills/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/plugins/starter-advanced/.cursor-plugin/plugin.json b/plugins/starter-advanced/.cursor-plugin/plugin.json deleted file mode 100644 index 6e41288..0000000 --- a/plugins/starter-advanced/.cursor-plugin/plugin.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "starter-advanced", - "displayName": "Advanced Starter", - "version": "0.1.0", - "description": "Full-featured Cursor plugin starter with rules, skills, agents, commands, hooks, and MCP.", - "author": { - "name": "Your Org", - "email": "plugins@example.com" - }, - "license": "MIT", - "keywords": ["cursor", "plugin", "rules", "skills", "agents", "commands", "hooks", "mcp"], - "logo": "assets/logo.svg" -} diff --git a/plugins/starter-advanced/agents/security-reviewer.md b/plugins/starter-advanced/agents/security-reviewer.md deleted file mode 100644 index a47b26e..0000000 --- a/plugins/starter-advanced/agents/security-reviewer.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: security-reviewer -description: Security-focused reviewer that checks for common vulnerabilities and unsafe defaults. ---- - -# Security reviewer - -You are a security-focused reviewer. Prioritize concrete, high-impact findings. - -## Review focus - -1. Injection risks in SQL, shell commands, and rendered HTML content. -2. Sensitive data handling (tokens, credentials, personal data). -3. Authentication and authorization checks on privileged operations. -4. Safe defaults in configuration and network-facing behavior. -5. Dependency and supply-chain hygiene where relevant. diff --git a/plugins/starter-advanced/commands/deploy-staging.md b/plugins/starter-advanced/commands/deploy-staging.md deleted file mode 100644 index 42ec2db..0000000 --- a/plugins/starter-advanced/commands/deploy-staging.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: deploy-staging -description: Deploy the current branch to the staging environment after validation. ---- - -# Deploy to staging - -1. Run project validation checks and tests. -2. Build artifacts for the target environment. -3. Publish or deploy to staging. -4. Run smoke checks and report status. diff --git a/plugins/starter-advanced/hooks/hooks.json b/plugins/starter-advanced/hooks/hooks.json deleted file mode 100644 index f023f07..0000000 --- a/plugins/starter-advanced/hooks/hooks.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "hooks": { - "afterFileEdit": [ - { - "command": "./scripts/format-code.sh" - } - ], - "beforeShellExecution": [ - { - "command": "./scripts/validate-shell.sh", - "matcher": "rm|curl|wget" - } - ], - "sessionEnd": [ - { - "command": "./scripts/audit.sh" - } - ] - } -} diff --git a/plugins/starter-advanced/mcp.json b/plugins/starter-advanced/mcp.json deleted file mode 100644 index 19bcbb3..0000000 --- a/plugins/starter-advanced/mcp.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "mcpServers": { - "postgres": { - "command": "npx", - "args": ["-y", "@modelcontextprotocol/server-postgres"], - "env": { - "POSTGRES_CONNECTION_STRING": "${POSTGRES_URL}" - } - } - } -} diff --git a/plugins/starter-advanced/rules/coding-standards.mdc b/plugins/starter-advanced/rules/coding-standards.mdc deleted file mode 100644 index 758350a..0000000 --- a/plugins/starter-advanced/rules/coding-standards.mdc +++ /dev/null @@ -1,11 +0,0 @@ ---- -description: Baseline coding standards for readable, maintainable changes -alwaysApply: true ---- - -coding-standards: - -- Prefer small, focused changes with a clear purpose. -- Use descriptive names for functions, variables, and files. -- Add concise comments only when non-obvious logic needs context. -- Keep user-facing documentation updated when behavior changes. diff --git a/plugins/starter-advanced/rules/review-checklist.mdc b/plugins/starter-advanced/rules/review-checklist.mdc deleted file mode 100644 index 2089407..0000000 --- a/plugins/starter-advanced/rules/review-checklist.mdc +++ /dev/null @@ -1,13 +0,0 @@ ---- -description: Checklist used during implementation and review -alwaysApply: false -globs: - - "**/*" ---- - -review-checklist: - -- Confirm new behavior has clear examples or tests where practical. -- Flag security-sensitive code paths for input validation review. -- Check for breaking changes in APIs, config, or user workflows. -- Ensure docs and migration notes are present for meaningful changes. diff --git a/plugins/starter-advanced/scripts/audit.sh b/plugins/starter-advanced/scripts/audit.sh deleted file mode 100644 index 2e67e9d..0000000 --- a/plugins/starter-advanced/scripts/audit.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -echo "[starter-advanced] session audit placeholder" -echo "Write logs, metrics, or policy checks here." diff --git a/plugins/starter-advanced/scripts/format-code.sh b/plugins/starter-advanced/scripts/format-code.sh deleted file mode 100644 index 8a7d1de..0000000 --- a/plugins/starter-advanced/scripts/format-code.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -echo "[starter-advanced] format-code hook placeholder" -echo "Replace this script with your formatter invocation." diff --git a/plugins/starter-advanced/scripts/validate-shell.sh b/plugins/starter-advanced/scripts/validate-shell.sh deleted file mode 100644 index a3d8981..0000000 --- a/plugins/starter-advanced/scripts/validate-shell.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -echo "[starter-advanced] validate-shell hook placeholder" -echo "Inspect command inputs here before shell execution." diff --git a/plugins/starter-advanced/skills/code-reviewer/SKILL.md b/plugins/starter-advanced/skills/code-reviewer/SKILL.md deleted file mode 100644 index fbcc365..0000000 --- a/plugins/starter-advanced/skills/code-reviewer/SKILL.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: code-reviewer -description: Review code for correctness, maintainability, and security risks. Use when preparing a PR or auditing a change set. ---- - -# Code reviewer - -## When to use - -- Before opening a pull request -- After large refactors -- When validating risky changes - -## Instructions - -1. Identify potential behavioral regressions first. -2. Flag security concerns (XSS, SQL injection, command injection, secrets). -3. Evaluate readability, structure, and naming consistency. -4. Recommend concrete fixes with minimal churn. -5. Call out missing tests or validation steps. diff --git a/plugins/starter-simple/.cursor-plugin/plugin.json b/plugins/starter-simple/.cursor-plugin/plugin.json deleted file mode 100644 index e28e8a7..0000000 --- a/plugins/starter-simple/.cursor-plugin/plugin.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "starter-simple", - "displayName": "Simple Starter", - "version": "0.1.0", - "description": "Minimal Cursor plugin starter with rules and skills.", - "author": { - "name": "Your Org", - "email": "plugins@example.com" - }, - "license": "MIT", - "keywords": ["cursor", "plugin", "rules", "skills"], - "logo": "assets/logo.svg" -} diff --git a/plugins/starter-simple/README.md b/plugins/starter-simple/README.md deleted file mode 100644 index 76ef122..0000000 --- a/plugins/starter-simple/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# starter-simple - -Minimal Cursor plugin with rules and skills. - -## Included - -- `rules/`: one example rule -- `skills/code-reviewer/`: one example skill diff --git a/plugins/starter-simple/assets/logo.svg b/plugins/starter-simple/assets/logo.svg deleted file mode 100644 index b834618..0000000 --- a/plugins/starter-simple/assets/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - Starter Simple Logo - Minimal geometric logo for the starter simple plugin. - - - - diff --git a/plugins/starter-simple/rules/coding-standards.mdc b/plugins/starter-simple/rules/coding-standards.mdc deleted file mode 100644 index 758350a..0000000 --- a/plugins/starter-simple/rules/coding-standards.mdc +++ /dev/null @@ -1,11 +0,0 @@ ---- -description: Baseline coding standards for readable, maintainable changes -alwaysApply: true ---- - -coding-standards: - -- Prefer small, focused changes with a clear purpose. -- Use descriptive names for functions, variables, and files. -- Add concise comments only when non-obvious logic needs context. -- Keep user-facing documentation updated when behavior changes. diff --git a/plugins/starter-simple/skills/code-reviewer/SKILL.md b/plugins/starter-simple/skills/code-reviewer/SKILL.md deleted file mode 100644 index fbcc365..0000000 --- a/plugins/starter-simple/skills/code-reviewer/SKILL.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: code-reviewer -description: Review code for correctness, maintainability, and security risks. Use when preparing a PR or auditing a change set. ---- - -# Code reviewer - -## When to use - -- Before opening a pull request -- After large refactors -- When validating risky changes - -## Instructions - -1. Identify potential behavioral regressions first. -2. Flag security concerns (XSS, SQL injection, command injection, secrets). -3. Evaluate readability, structure, and naming consistency. -4. Recommend concrete fixes with minimal churn. -5. Call out missing tests or validation steps.