Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
51 changes: 44 additions & 7 deletions .agents/skills/scaffold-plugin/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ Ask for a one-line description if not already provided.
plugins/{plugin-name}/
├── .claude-plugin/
│ └── plugin.json
├── .cursor-plugin/
│ └── plugin.json
├── skills/ (empty, ready for skills)
└── README.md
```
Expand All @@ -66,7 +68,30 @@ Do NOT create a CHANGELOG.md — release-please manages that automatically.
}
```

### 4. Create README.md
### 4. Create Cursor plugin.json

Create `plugins/{plugin-name}/.cursor-plugin/plugin.json`. The `name`, `description`, and `version` must match `.claude-plugin/plugin.json` exactly. The file must satisfy `schemas/cursor-plugin/plugin.schema.json`, which rejects unknown fields such as `author.url`.

```json
{
"name": "{plugin-name}",
"displayName": "TrogonStack {Human Name}",
"description": "{description}",
"version": "0.0.1",
"author": {
"name": "TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/{plugin-name}",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": ["trogonstack", "{topic}"],
"category": "developer-tools",
"tags": ["{topic}"],
"skills": "./skills/"
}
```

### 5. Create README.md

````markdown
# {plugin-name}
Expand All @@ -78,7 +103,7 @@ claude plugin install {plugin-name}@trogonstack
```
````

### 5. Register in Marketplace
### 6. Register in Marketplaces

Add an entry to `.claude-plugin/marketplace.json` in the `plugins` array:

Expand All @@ -91,7 +116,17 @@ Add an entry to `.claude-plugin/marketplace.json` in the `plugins` array:
}
```

### 6. Register in Release Please Config
Add an entry to `.cursor-plugin/marketplace.json` in the `plugins` array, with the same description as the Claude marketplace entry:

```json
{
"name": "{plugin-name}",
"source": "plugins/{plugin-name}",
"description": "{description}"
}
```

### 7. Register in Release Please Config

Add the package to `.github/release-please-config.json` in the `packages` object:

Expand All @@ -101,7 +136,7 @@ Add the package to `.github/release-please-config.json` in the `packages` object
}
```

### 7. Register in Release Please Manifest
### 8. Register in Release Please Manifest

Add the initial version to `.github/release-please-manifest.json`:

Expand All @@ -111,7 +146,7 @@ Add the initial version to `.github/release-please-manifest.json`:

It must be `0.0.1`.

### 8. Commit
### 9. Commit

Use conventional commit format:

Expand All @@ -123,10 +158,12 @@ feat({plugin-name}): scaffold plugin for {short purpose}

- [ ] Plugin directory exists at `plugins/{plugin-name}/`
- [ ] `plugins/{plugin-name}/.claude-plugin/plugin.json` exists with correct name, description, version `0.0.1`, and author
- [ ] `plugins/{plugin-name}/.cursor-plugin/plugin.json` exists with name, description, and version matching the Claude manifest
- [ ] `plugins/{plugin-name}/README.md` exists with install command
- [ ] `plugins/{plugin-name}/skills/` directory exists (empty)
- [ ] No CHANGELOG.md was created
- [ ] `.claude-plugin/marketplace.json` has the new plugin entry
- [ ] `.claude-plugin/marketplace.json` and `.cursor-plugin/marketplace.json` have the new plugin entry
- [ ] `node scripts/validate-plugins.mjs` passes
- [ ] `.github/release-please-config.json` has the new package
- [ ] `.github/release-please-manifest.json` has the new version entry at `0.0.1`
- [ ] Description is consistent across plugin.json, marketplace.json, and README.md
- [ ] Description is consistent across both plugin.json files, both marketplace.json files, and README.md
61 changes: 61 additions & 0 deletions .cursor-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
{
"name": "trogonstack",
"owner": {
"name": "TrogonStack"
},
"metadata": {
"description": "Plugins by TrogonStack for Cursor"
},
"plugins": [
{
"name": "trogonstack-diataxis",
"source": "plugins/trogonstack-diataxis",
"description": "Documentation skills following the Diataxis framework for organizing and generating docs into tutorials, how-to guides, reference, and explanation sections"
},
{
"name": "trogonstack-gh",
"source": "plugins/trogonstack-gh",
"description": "GitHub workflow skills for enriching PR descriptions, automating code review context, and streamlining collaboration through the gh CLI"
},
{
"name": "trogonstack-nats",
"source": "plugins/trogonstack-nats",
"description": "NATS messaging skills for designing subject hierarchies with naming conventions and wildcard patterns"
},
{
"name": "trogonstack-datadog",
"source": "plugins/trogonstack-datadog",
"description": "Datadog observability skills for designing dashboards with proper widget selection, layout patterns, and template variables using the pup CLI, and for checking metrics against Datadog's no-cost metrics"
},
{
"name": "trogonstack-ask",
"source": "plugins/trogonstack-ask",
"description": "Structured question-asking skill for gathering requirements and context through deliberate, one-at-a-time questions"
},
{
"name": "trogonstack-otel",
"source": "plugins/trogonstack-otel",
"description": "OpenTelemetry skills for naming metrics and spans following OTel Semantic Conventions"
},
{
"name": "trogonstack-eventmodeling",
"source": "plugins/trogonstack-eventmodeling",
"description": "Event Modeling skills for brainstorming, designing, slicing, and validating software systems following the Event Modeling methodology"
},
{
"name": "trogonstack-eda",
"source": "plugins/trogonstack-eda",
"description": "Event-driven architecture skills for designing event names, schemas, contracts, and catalogs following good practices for domain and integration events"
},
{
"name": "trogonstack-product-requirements",
"source": "plugins/trogonstack-product-requirements",
"description": "Skills for writing and reviewing Product Requirements Documents (PRDs) and Feature Requirements Documents (FRDs)"
},
{
"name": "trogonstack-elixir",
"source": "plugins/trogonstack-elixir",
"description": "Elixir skills for designing and reviewing OTP processes such as GenServers"
}
]
}
5 changes: 5 additions & 0 deletions .github/release-please-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@
"type": "json",
"path": ".claude-plugin/plugin.json",
"jsonpath": "$.version"
},
{
"type": "json",
"path": ".cursor-plugin/plugin.json",
"jsonpath": "$.version"
}
],
"changelog-sections": [
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/validate-plugins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ on:
paths:
- "plugins/**"
- ".claude-plugin/marketplace.json"
- ".cursor-plugin/marketplace.json"
- "schemas/cursor-plugin/**"
- ".github/release-please-config.json"
- ".github/release-please-manifest.json"
- "scripts/validate-plugins.mjs"
Expand All @@ -18,5 +20,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24
- name: Install schema validator
run: npm install --no-save ajv@8 ajv-formats@3
- name: Validate plugin registrations
run: node scripts/validate-plugins.mjs
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ Releases are automated via release-please:
2. Release-please creates/updates a "Release PR" with changelog and version bump
3. Merge the Release PR to publish a new version

The version in `.claude-plugin/plugin.json` is automatically updated when a release is published.
The version in `.claude-plugin/plugin.json` and `.cursor-plugin/plugin.json` is automatically updated when a release is published.
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@ claude plugin marketplace add TrogonStack/agentskills
claude plugin install {plugin-name}@trogonstack
```

In Cursor on a Teams or Enterprise plan, import `https://github.com/TrogonStack/agentskills` as a team marketplace from **Dashboard > Plugins & MCPs > Team Marketplaces > Add Marketplace > Import from Repo**, then install plugins from **Customize** in the sidebar.

On other Cursor plans, copy a plugin into the local plugins directory and restart Cursor:

```bash
git clone https://github.com/TrogonStack/agentskills
mkdir -p ~/.cursor/plugins/local
cp -R agentskills/plugins/{plugin-name} ~/.cursor/plugins/local/
```

See all available plugins under [plugins](./plugins) directory.

## Contributing
Expand Down
23 changes: 23 additions & 0 deletions plugins/trogonstack-ask/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"name": "trogonstack-ask",
"displayName": "TrogonStack Ask",
"description": "Structured question-asking skill for gathering requirements and context through deliberate, one-at-a-time questions",
"version": "0.2.1",
"author": {
"name": "TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/trogonstack-ask",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": [
"trogonstack",
"requirements",
"questions"
],
"category": "developer-tools",
"tags": [
"requirements",
"questions"
],
"skills": "./skills/"
}
25 changes: 25 additions & 0 deletions plugins/trogonstack-datadog/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "trogonstack-datadog",
"displayName": "TrogonStack Datadog",
"description": "Datadog observability skills for designing, redesigning, and auditing dashboards with proper widget selection, layout patterns, template variables, and operational readiness validation using the pup CLI, and for checking metrics against Datadog's no-cost metrics before creating custom ones",
"version": "0.4.0",
"author": {
"name": "TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/trogonstack-datadog",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": [
"trogonstack",
"datadog",
"observability",
"dashboards"
],
"category": "developer-tools",
"tags": [
"datadog",
"observability",
"dashboards"
],
"skills": "./skills/"
}
23 changes: 23 additions & 0 deletions plugins/trogonstack-diataxis/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"name": "trogonstack-diataxis",
"displayName": "TrogonStack Diátaxis",
"description": "Documentation skills following the Diataxis framework for organizing and generating docs into tutorials, how-to guides, reference, and explanation sections",
"version": "0.1.0",
"author": {
"name": "TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/trogonstack-diataxis",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": [
"trogonstack",
"documentation",
"diataxis"
],
"category": "developer-tools",
"tags": [
"documentation",
"diataxis"
],
"skills": "./skills/"
}
25 changes: 25 additions & 0 deletions plugins/trogonstack-eda/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "trogonstack-eda",
"displayName": "TrogonStack Event-Driven Architecture",
"description": "Event-driven architecture skills for designing event definitions, schemas, contracts, and catalogs following good practices for domain and integration events",
"version": "0.1.2",
"author": {
"name": "TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/trogonstack-eda",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": [
"trogonstack",
"event-driven-architecture",
"events",
"schemas"
],
"category": "developer-tools",
"tags": [
"event-driven-architecture",
"events",
"schemas"
],
"skills": "./skills/"
}
25 changes: 25 additions & 0 deletions plugins/trogonstack-elixir/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "trogonstack-elixir",
"displayName": "TrogonStack Elixir",
"description": "Elixir skills for designing and reviewing OTP processes such as GenServers",
"version": "0.1.0",
"author": {
"name": "TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/trogonstack-elixir",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": [
"trogonstack",
"elixir",
"otp",
"genserver"
],
"category": "developer-tools",
"tags": [
"elixir",
"otp",
"genserver"
],
"skills": "./skills/"
}
25 changes: 25 additions & 0 deletions plugins/trogonstack-eventmodeling/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "trogonstack-eventmodeling",
"displayName": "TrogonStack Event Modeling",
"description": "Event Modeling skills for brainstorming, designing, slicing, and validating software systems following the Event Modeling methodology",
"version": "0.1.2",
"author": {
"name": "TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/trogonstack-eventmodeling",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": [
"trogonstack",
"event-modeling",
"event-sourcing",
"design"
],
"category": "developer-tools",
"tags": [
"event-modeling",
"event-sourcing",
"design"
],
"skills": "./skills/"
}
25 changes: 25 additions & 0 deletions plugins/trogonstack-gh/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "trogonstack-gh",
"displayName": "TrogonStack GitHub",
"description": "GitHub workflow skills for enriching PR descriptions, automating code review context, and streamlining collaboration through the gh CLI",
"version": "0.0.2",
"author": {
"name": "TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/trogonstack-gh",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": [
"trogonstack",
"github",
"pull-requests",
"code-review"
],
"category": "developer-tools",
"tags": [
"github",
"pull-requests",
"code-review"
],
"skills": "./skills/"
}
Loading
Loading