diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json index 5943c88..ae72f19 100644 --- a/.cursor-plugin/marketplace.json +++ b/.cursor-plugin/marketplace.json @@ -1,23 +1,18 @@ { - "name": "cursor-plugin-starters", + "name": "mobilerun", "owner": { - "name": "Your Org", - "email": "plugins@example.com" + "name": "droidrun", + "email": "developer@droidrun.ai" }, "metadata": { - "description": "Starter marketplace template for Cursor plugins", + "description": "Cursor plugins for the Mobilerun cloud platform by droidrun", "version": "0.1.0" }, "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": "mobilerun", + "source": "./plugins/mobilerun", + "description": "Control Android device fleets, phone numbers, eSIMs, apps, and automation workflows via the Mobilerun MCP." } ] } diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml new file mode 100644 index 0000000..af7756e --- /dev/null +++ b/.github/workflows/validate.yml @@ -0,0 +1,17 @@ +name: Validate plugins + +on: + pull_request: + push: + branches: [main] + +jobs: + validate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + - name: Validate marketplace and plugins + run: node scripts/validate-template.mjs diff --git a/.gitignore b/.gitignore index 01ef2f7..776e5c0 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,6 @@ *.log tmp/ temp/ + +# Local planning docs +PLAN.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6b7dc00 --- /dev/null +++ b/LICENSE @@ -0,0 +1,190 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the + purposes of this License, Derivative Works shall not include works + that remain separable from, or merely link (or bind by name) to the + interfaces of, the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2026 droidrun GmbH + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index a184d56..58379ef 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,39 @@ -# Cursor plugin template +# droidrun Cursor plugins -Build and publish Cursor Marketplace plugins from a single repo. +Cursor Marketplace plugins for the [Mobilerun](https://mobilerun.ai) cloud platform. -Two starter plugins are included: +## Plugins -- **starter-simple**: rules and skills only -- **starter-advanced**: rules, skills, agents, commands, hooks, MCP, and scripts +- **[mobilerun](./plugins/mobilerun)** — control Android device fleets, phone numbers, + eSIMs, apps, and automation workflows via the Mobilerun MCP server (remote, OAuth). -## Getting started +## Repository layout -[Use this template](https://github.com/cursor/plugin-template/generate) to create a new repository, then customize: +``` +.cursor-plugin/marketplace.json marketplace manifest (lists the plugins below) +plugins// one folder per plugin +scripts/validate-template.mjs structural validator (run before committing) +``` -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. +## Adding a plugin -To add more plugins, see `docs/add-a-plugin.md`. +See [`docs/add-a-plugin.md`](./docs/add-a-plugin.md). In short: create +`plugins//` with a `.cursor-plugin/plugin.json`, add its components (`mcp.json`, +`rules/`, `skills/`, …), and register it in `.cursor-plugin/marketplace.json`. -## Single plugin vs multi-plugin +## Validate -This template defaults to **multi-plugin** (multiple plugins in one repo). +```bash +node scripts/validate-template.mjs +``` -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`. +Fix all reported errors before committing. CI runs the same check on every pull request. -## Submission checklist +## Submission -- 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`). +Plugins are submitted at (Cursor team contact: +Slack or `kniparko@anysphere.com`). + +## License + +[Apache-2.0](./LICENSE) diff --git a/plugins/mobilerun/.cursor-plugin/plugin.json b/plugins/mobilerun/.cursor-plugin/plugin.json new file mode 100644 index 0000000..b8bd2b8 --- /dev/null +++ b/plugins/mobilerun/.cursor-plugin/plugin.json @@ -0,0 +1,15 @@ +{ + "name": "mobilerun", + "displayName": "Mobilerun", + "version": "0.1.0", + "description": "Control Android device fleets, phone numbers, eSIMs, apps, and automation workflows on the Mobilerun cloud platform.", + "author": { + "name": "droidrun", + "email": "developer@droidrun.ai" + }, + "license": "Apache-2.0", + "homepage": "https://mobilerun.ai", + "repository": "https://github.com/droidrun/cursor-plugin", + "keywords": ["mobilerun", "android", "mcp", "automation", "devices", "esim", "phone-numbers"], + "logo": "assets/logo.svg" +} diff --git a/plugins/mobilerun/README.md b/plugins/mobilerun/README.md new file mode 100644 index 0000000..369f0bd --- /dev/null +++ b/plugins/mobilerun/README.md @@ -0,0 +1,39 @@ +# Mobilerun + +Connect Cursor to the [Mobilerun](https://mobilerun.ai) cloud platform. The Mobilerun +MCP server lets the agent control real Android device fleets, provision phone numbers and +eSIMs, manage apps, and run automation workflows. + +## Install + +Install the plugin from the Cursor Marketplace. On first use Cursor opens a browser and +runs the OAuth login against `cloud.mobilerun.ai` — sign in with your Mobilerun account +and approve access. Cursor stores the credentials; there is no API key to copy. + +## What it connects to + +The plugin registers a single remote MCP server: + +```json +{ + "mcpServers": { + "mobilerun": { + "url": "https://cloud.mobilerun.ai/api/mcp" + } + } +} +``` + +Authentication is OAuth 2.1 + PKCE with dynamic client registration — no configuration +required. Cursor discovers the authorization server from the endpoint and handles the flow. + +## Capabilities + +- **Devices** — list, control, and inspect Android devices in your fleet +- **Phone numbers & eSIMs** — provision, list, and manage connectivity +- **Apps** — browse and install apps onto devices +- **Workflows** — create and run automation workflows + +## Support + +Issues and questions: diff --git a/plugins/mobilerun/assets/logo.svg b/plugins/mobilerun/assets/logo.svg new file mode 100644 index 0000000..9768296 --- /dev/null +++ b/plugins/mobilerun/assets/logo.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/plugins/mobilerun/mcp.json b/plugins/mobilerun/mcp.json new file mode 100644 index 0000000..d52d6fb --- /dev/null +++ b/plugins/mobilerun/mcp.json @@ -0,0 +1,7 @@ +{ + "mcpServers": { + "mobilerun": { + "url": "https://cloud.mobilerun.ai/api/mcp" + } + } +} 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/README.md b/plugins/starter-advanced/README.md deleted file mode 100644 index e5a2f7e..0000000 --- a/plugins/starter-advanced/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# starter-advanced - -Full-featured Cursor plugin starter. - -## Included - -- `rules/`: coding standards and review checklist -- `skills/code-reviewer/`: code review skill -- `agents/`: security reviewer agent -- `commands/`: deploy-staging command -- `hooks/hooks.json`: hook definitions -- `scripts/`: hook script placeholders -- `mcp.json`: MCP server config 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/assets/logo.svg b/plugins/starter-advanced/assets/logo.svg deleted file mode 100644 index 078f604..0000000 --- a/plugins/starter-advanced/assets/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - Starter Advanced Logo - Full-featured plugin logo with lightning and badge. - - - - 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.