diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json
index 1d1bc47..7d83d04 100644
--- a/.cursor-plugin/marketplace.json
+++ b/.cursor-plugin/marketplace.json
@@ -1,24 +1,17 @@
{
- "name": "cursor-plugin-starters",
+ "name": "firetiger-marketplace",
"owner": {
- "name": "Your Org",
- "email": "plugins@example.com"
+ "name": "Firetiger"
},
"metadata": {
- "description": "Starter marketplace template for Cursor plugins",
- "version": "0.1.0",
- "pluginRoot": "plugins"
+ "description": "Marketplace manifest for the Firetiger Cursor plugin",
+ "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": "firetiger",
+ "source": ".",
+ "description": "Firetiger observability plugin with skills and MCP access"
}
]
}
diff --git a/.cursor-plugin/plugin.json b/.cursor-plugin/plugin.json
new file mode 100644
index 0000000..fd98726
--- /dev/null
+++ b/.cursor-plugin/plugin.json
@@ -0,0 +1,15 @@
+{
+ "name": "firetiger",
+ "version": "0.1.0",
+ "description": "Cursor plugin for Firetiger observability workflows and MCP-powered investigations.",
+ "author": {
+ "name": "Firetiger"
+ },
+ "homepage": "https://firetiger.com",
+ "repository": "https://github.com/firetigerai/cursor-plugin",
+ "license": "MIT",
+ "keywords": ["cursor", "plugin", "observability", "firetiger", "mcp"],
+ "logo": "assets/firetiger.svg",
+ "skills": "skills",
+ "mcpServers": "mcp.json"
+}
diff --git a/README.md b/README.md
index 9f55d2d..ce7b16e 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,20 @@
-
+
# Firetiger Cursor Plugin
-The official [Cursor](https://cursor.com) plugin for [Firetiger](https://firetiger.com). Firetiger agents monitor, investigate, catalog issues, and apply runbooks autonomously -- the Cursor agents write all your code, Firetiger agents makes sure it works in prod.
+The official [Cursor](https://cursor.com) plugin for [Firetiger](https://firetiger.com). Firetiger agents monitor, investigate, catalog issues, and apply runbooks autonomously while Cursor helps you build and debug code.
+
+## Repository Layout
+
+This repository publishes a single plugin:
+
+- `.cursor-plugin/plugin.json`: plugin manifest
+- `.cursor-plugin/marketplace.json`: marketplace manifest pointing at the root plugin
+- `skills/`: Firetiger skills exposed to Cursor
+- `mcp.json`: Firetiger MCP server configuration
+- `assets/firetiger.svg`: plugin logo
## What's Included
@@ -23,6 +33,14 @@ Connect to Firetiger's API for querying telemetry data, managing investigations,
| `firetiger-plan` | Plan and create new AI agents for automating workflows |
| `firetiger-run` | Run existing agents by creating sessions and interacting with them |
+## Validation
+
+Run the repository check before publishing changes:
+
+```bash
+node scripts/validate-template.mjs
+```
+
## Resources
- [Firetiger Documentation](https://docs.firetiger.com)
diff --git a/docs/add-a-plugin.md b/docs/add-a-plugin.md
deleted file mode 100644
index b7b3414..0000000
--- a/docs/add-a-plugin.md
+++ /dev/null
@@ -1,75 +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`.
-- Broken relative paths for `logo`, `hooks`, or `mcpServers` in manifest files.
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 @@
-
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 @@
-
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.
diff --git a/scripts/validate-template.mjs b/scripts/validate-template.mjs
index 5310b9e..d486f6c 100644
--- a/scripts/validate-template.mjs
+++ b/scripts/validate-template.mjs
@@ -345,13 +345,13 @@ async function main() {
await validateComponentFrontmatter(pluginDir, entry.name);
const hooksPath = path.join(pluginDir, "hooks", "hooks.json");
- if (!(await pathExists(hooksPath))) {
- addWarning(`${entry.name}: no hooks/hooks.json file found (only needed when using hooks).`);
+ if (pluginManifest.hooks !== undefined && !(await pathExists(hooksPath))) {
+ addWarning(`${entry.name}: hooks are declared but hooks/hooks.json is missing.`);
}
const mcpPath = path.join(pluginDir, "mcp.json");
- if (!(await pathExists(mcpPath))) {
- addWarning(`${entry.name}: no mcp.json file found (only needed when using MCP servers).`);
+ if (pluginManifest.mcpServers !== undefined && !(await pathExists(mcpPath))) {
+ addWarning(`${entry.name}: MCP servers are declared but mcp.json is missing.`);
}
}