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
35 changes: 29 additions & 6 deletions .agents/skills/scaffold-plugin/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ plugins/{plugin-name}/
│ └── plugin.json
├── .cursor-plugin/
│ └── plugin.json
├── plugin.json (Agent Plugins manifest)
├── skills/ (empty, ready for skills)
└── README.md
```
Expand Down Expand Up @@ -91,7 +92,28 @@ Create `plugins/{plugin-name}/.cursor-plugin/plugin.json`. The `name`, `descript
}
```

### 5. Create README.md
### 5. Create Agent Plugins plugin.json

Create `plugins/{plugin-name}/plugin.json` following the [Agent Plugins](https://agent-plugins.org) 1.0.0 spec. The `name`, `description`, and `version` must match `.claude-plugin/plugin.json` exactly, and it must satisfy `schemas/agent-plugins/1.0.0/plugin.schema.json`. Skills are discovered from the fixed `skills/` location, so do not declare component paths.

```json
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "{plugin-name}",
"version": "0.0.1",
"description": "{description}",
"author": {
"name": "TrogonStack",
"url": "https://github.com/TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/{plugin-name}",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": ["trogonstack", "{topic}"]
}
```

### 6. Create README.md

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

### 6. Register in Marketplaces
### 7. Register in Marketplaces

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

Expand All @@ -126,7 +148,7 @@ Add an entry to `.cursor-plugin/marketplace.json` in the `plugins` array, with t
}
```

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

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

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

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

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

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

It must be `0.0.1`.

### 9. Commit
### 10. Commit

Use conventional commit format:

Expand All @@ -159,11 +181,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}/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` 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 both plugin.json files, both marketplace.json files, and README.md
- [ ] Description is consistent across all three plugin.json files, both marketplace.json files, and README.md
5 changes: 5 additions & 0 deletions .github/release-please-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@
"type": "json",
"path": ".cursor-plugin/plugin.json",
"jsonpath": "$.version"
},
{
"type": "json",
"path": "plugin.json",
"jsonpath": "$.version"
}
],
"changelog-sections": [
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/validate-plugins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
- "plugins/**"
- ".claude-plugin/marketplace.json"
- ".cursor-plugin/marketplace.json"
- "schemas/cursor-plugin/**"
- "schemas/**"
- ".github/release-please-config.json"
- ".github/release-please-manifest.json"
- "scripts/validate-plugins.mjs"
Expand Down
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` and `.cursor-plugin/plugin.json` is automatically updated when a release is published.
The version in `.claude-plugin/plugin.json`, `.cursor-plugin/plugin.json`, and `plugin.json` is automatically updated when a release is published.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ 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.

Each plugin also ships a root `plugin.json` following the [Agent Plugins](https://agent-plugins.org) 1.0.0 spec, for any client that supports it.

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

```bash
Expand Down
18 changes: 18 additions & 0 deletions plugins/trogonstack-ask/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "trogonstack-ask",
"version": "0.2.1",
"description": "Structured question-asking skill for gathering requirements and context through deliberate, one-at-a-time questions",
"author": {
"name": "TrogonStack",
"url": "https://github.com/TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/trogonstack-ask",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": [
"trogonstack",
"requirements",
"questions"
]
}
19 changes: 19 additions & 0 deletions plugins/trogonstack-datadog/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "trogonstack-datadog",
"version": "0.4.0",
"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",
"author": {
"name": "TrogonStack",
"url": "https://github.com/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"
]
}
18 changes: 18 additions & 0 deletions plugins/trogonstack-diataxis/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "trogonstack-diataxis",
"version": "0.1.0",
"description": "Documentation skills following the Diataxis framework for organizing and generating docs into tutorials, how-to guides, reference, and explanation sections",
"author": {
"name": "TrogonStack",
"url": "https://github.com/TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/trogonstack-diataxis",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": [
"trogonstack",
"documentation",
"diataxis"
]
}
19 changes: 19 additions & 0 deletions plugins/trogonstack-eda/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "trogonstack-eda",
"version": "0.1.2",
"description": "Event-driven architecture skills for designing event definitions, schemas, contracts, and catalogs following good practices for domain and integration events",
"author": {
"name": "TrogonStack",
"url": "https://github.com/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"
]
}
19 changes: 19 additions & 0 deletions plugins/trogonstack-elixir/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "trogonstack-elixir",
"version": "0.1.0",
"description": "Elixir skills for designing and reviewing OTP processes such as GenServers",
"author": {
"name": "TrogonStack",
"url": "https://github.com/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"
]
}
19 changes: 19 additions & 0 deletions plugins/trogonstack-eventmodeling/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "trogonstack-eventmodeling",
"version": "0.1.2",
"description": "Event Modeling skills for brainstorming, designing, slicing, and validating software systems following the Event Modeling methodology",
"author": {
"name": "TrogonStack",
"url": "https://github.com/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"
]
}
19 changes: 19 additions & 0 deletions plugins/trogonstack-gh/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "trogonstack-gh",
"version": "0.0.2",
"description": "GitHub workflow skills for enriching PR descriptions, automating code review context, and streamlining collaboration through the gh CLI",
"author": {
"name": "TrogonStack",
"url": "https://github.com/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"
]
}
18 changes: 18 additions & 0 deletions plugins/trogonstack-nats/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "trogonstack-nats",
"version": "0.1.3",
"description": "NATS messaging skills for designing subject hierarchies with naming conventions and wildcard patterns",
"author": {
"name": "TrogonStack",
"url": "https://github.com/TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/trogonstack-nats",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": [
"trogonstack",
"nats",
"messaging"
]
}
19 changes: 19 additions & 0 deletions plugins/trogonstack-otel/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "trogonstack-otel",
"version": "0.1.2",
"description": "OpenTelemetry skills for naming metrics and spans following OTel Semantic Conventions",
"author": {
"name": "TrogonStack",
"url": "https://github.com/TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/trogonstack-otel",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": [
"trogonstack",
"opentelemetry",
"observability",
"semantic-conventions"
]
}
19 changes: 19 additions & 0 deletions plugins/trogonstack-product-requirements/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "trogonstack-product-requirements",
"version": "0.1.1",
"description": "Skills for writing and reviewing Product Requirements Documents (PRDs) and Feature Requirements Documents (FRDs)",
"author": {
"name": "TrogonStack",
"url": "https://github.com/TrogonStack"
},
"homepage": "https://github.com/TrogonStack/agentskills/tree/main/plugins/trogonstack-product-requirements",
"repository": "https://github.com/TrogonStack/agentskills",
"license": "MIT",
"keywords": [
"trogonstack",
"prd",
"frd",
"product"
]
}
65 changes: 65 additions & 0 deletions schemas/agent-plugins/1.0.0/plugin.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"title": "Agent Plugins Manifest",
"description": "Machine-readable schema for plugin.json in Agent Plugins 1.0.0. The Agent Plugins specification defines additional semantic and operational requirements.",
"type": "object",
"properties": {
"$schema": {
"const": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"description": "Canonical identifier of the plugin manifest schema for the Agent Plugins version targeted by this document."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^(?!.*(?:--|\\.\\.))[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$",
"description": "Human-readable plugin name."
},
"version": {
"type": "string"
},
"description": {
"type": "string"
},
"author": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"url": {
"type": "string"
}
},
"additionalProperties": false
},
"homepage": {
"type": "string"
},
"repository": {
"type": "string"
},
"license": {
"type": "string"
},
"keywords": {
"type": "array",
"items": {
"type": "string"
}
},
"extensions": {
"type": "object",
"description": "Client-specific manifest data keyed by reverse-domain extension namespace. Agent Plugins assigns no semantics to namespace object contents.",
"additionalProperties": {
"type": "object"
}
}
},
"required": ["$schema", "name"],
"additionalProperties": false
}
Loading
Loading