Skip to main content

create-plugin

Create a new Kiro Power using the Agent Plugins v1.0.0 specification. Use when building a new power from scratch with plugin.json, skills, and optional MCP server configuration.

Informations de source

Dépôt
kirodotdev/powers
Dernière activité de la source
21 août 2026 à 20:50
Langue détectée de SKILL.md
anglais
Étoiles
384
Forks
204

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
create-plugin
description
Create a new Kiro Power using the Agent Plugins v1.0.0 specification. Use when building a new power from scratch with plugin.json, skills, and optional MCP server configuration.
license
MIT
metadata
{"author":"Kiro Team","version":"1.0.0"}
# Create a New Agent Plugin Interactive workflow for creating a Kiro Power that conforms to the Agent Plugins specification v1.0.0. ## Overview This skill guides you through creating a portable plugin with: - A `plugin.json` manifest - One or more skills (each with `SKILL.md`) - Optional `mcp.json` for MCP server integration - Optional helper scripts, references, and assets ## Workflow Overview ``` 1. Understand the user's use case 2. Determine plugin components (skills, MCP, or both) 3. Create plugin directory and plugin.json 4. Create skills (SKILL.md + supporting files) 5. Create mcp.json (if MCP server involved) 6. Test and install locally ``` ## Step-by-Step Guide ### 1. Understand the Use Case Have a natural conversation to understand: - What problem does this plugin solve? - Does it involve an MCP server? (needs mcp.json) - What distinct tasks/workflows does it enable? (each becomes a skill) - Is it pure documentation/guidance? (skills only, no mcp.json) - Who is the audience? Through this conversation, determine: - The **plugin name** (lowercase, hyphens, 1-64 chars, no `--`) - Whether it needs **mcp.json** (MCP server integration) - How many **skills** it needs (one per distinct workflow/concern) - Basic metadata (description, keywords, author) ### 2. Create Plugin Directory ```bash mkdir -p {workspace}/powers/{plugin-name} mkdir -p {workspace}/powers/{plugin-name}/skills ``` Tell the user the location: `{workspace}/powers/{plugin-name}/` ### 3. Generate plugin.json Create the manifest. Always required. ```json { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "{plugin-name}", "version": "1.0.0", "description": "{description}", "author": { "name": "{author-name}" }, "keywords": ["{keyword1}", "{keyword2}", "{keyword3}"], "license": "MIT" } ``` **Validation checklist:** - [ ] `$schema` is exactly `https://agent-plugins.org/schemas/1.0.0/plugin.schema.json` - [ ] `name` matches directory name - [ ] `name` is 1-64 chars, lowercase `a-z0-9.-`, no `--` or `..`, starts/ends alphanumeric - [ ] No fields beyond: `$schema`, `name`, `version`, `description`, `author`, `homepage`, `repository`, `license`, `keywords` ### 4. Create Skills For each distinct workflow or concern, create a skill directory with SKILL.md. #### 4.1: Determine Skill Boundaries Each skill should be a self-contained unit covering one task area. Split when: - Workflows are independent (a user would use one without the other) - Content exceeds 800 lines (break into focused skills) - Different prerequisites or contexts Keep together when: - Steps form a single workflow - Content is under 800 lines - Users always need all the information together #### 4.2: Create Skill Directory For each skill: ```bash mkdir -p {workspace}/powers/{plugin-name}/skills/{skill-name} ``` #### 4.3: Write SKILL.md Each skill needs a SKILL.md with frontmatter and markdown body: ```markdown --- name: "{skill-name}" description: "{What it does}. Use when {trigger conditions}." license: "MIT" metadata: author: "{author}" version: "1.0.0" --- # {Skill Title} ## Overview {2-3 sentences: what this skill does, why it's useful, key capabilities.} ## Prerequisites Checklist - [ ] {Requirement 1} - [ ] {Requirement 2} ## Step-by-Step Guide ### 1. {First Step} {Clear instructions with code examples} ### 2. {Second Step} {Instructions...} ## Common Workflows ### Workflow: {Name} **Goal:** {What this accomplishes} ## Troubleshooting ### Error: "{common error message}" **Cause:** {why it happens} **Solution:** 1. {fix step} 2. {verify step} ## Best Practices - {Practice 1} - {Practice 2} - {Practice 3} ``` **SKILL.md validation:** - [ ] Frontmatter `name` matches directory name exactly - [ ] `description` starts with a verb, max 1024 chars - [ ] `description` includes "Use when..." trigger phrase - [ ] Body is 400-800 lines (move excess to references/) - [ ] Code examples are complete and copy-paste ready - [ ] All relative paths reference files within the skill directory #### 4.4: Add Supporting Files (Optional) **scripts/** - Helper scripts the agent or user can execute: ```bash mkdir -p {workspace}/powers/{plugin-name}/skills/{skill-name}/scripts ``` Focus on core logic, < 500 lines. The agent may regenerate with appropriate parameters. **references/** - Additional documentation too large for SKILL.md: ```bash mkdir -p {workspace}/powers/{plugin-name}/skills/{skill-name}/references ``` Use for: API references, detailed examples, checklists, extended troubleshooting. **assets/** - Templates, config files, static resources: ```bash mkdir -p {workspace}/powers/{plugin-name}/skills/{skill-name}/assets ``` Use for: boilerplate templates, example configs, starter files. ### 5. Create mcp.json (If Needed) Only create mcp.json if the plugin integrates with an MCP server. #### 5.1: Gather MCP Server Information Check if the user already has the MCP server configured in Kiro: - Workspace: `.kiro/settings/mcp.json` - User: `~/.kiro/settings/mcp.json` If configured, read the existing config and adapt it. If not, ask the user for: - How the server is started (command, npm package, binary) - Required environment variables - Whether it's local (stdio) or remote (HTTP) #### 5.2: Generate mcp.json **For local (stdio) servers:** ```json { "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "{server-name}": { "type": "stdio", "command": "{command}", "args": ["{arg1}", "{arg2}"], "env": { "{ENV_VAR}": "{value-or-placeholder}" } } } } ``` **For remote servers:** ```json { "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "{server-name}": { "type": "streamable-http", "url": "https://example.com/mcp", "headers": { "X-Tenant": "public-value" } } } } ``` **mcp.json validation:** - [ ] `$schema` is exactly `https://agent-plugins.org/schemas/1.0.0/mcp.schema.json` - [ ] Each server has a `type` field (`stdio`, `streamable-http`, or `sse`) - [ ] stdio: `command` is a single token (not a shell string) - [ ] stdio: `command` is either a bare name or starts with `./` - [ ] `env` does not contain `PLUGIN_ROOT` or `PLUGIN_DATA` keys - [ ] If `cwd` present: starts with `./`, `${PLUGIN_ROOT}`, or `${PLUGIN_DATA}` - [ ] Remote URLs are HTTPS (HTTP only for localhost) - [ ] No secrets in `env` or `headers` - [ ] No fields beyond those defined per transport type #### 5.3: Sanitize for Sharing If the mcp.json contains user-specific values, replace with placeholders and document them in the relevant skill's SKILL.md under a "Configuration" section. ### 6. Final Structure Validation Verify the complete plugin: ``` {plugin-name}/ ├── plugin.json # Required ├── skills/ # At least one skill recommended │ ├── {skill-1}/ │ │ ├── SKILL.md # Required per skill │ │ ├── scripts/ # Optional │ │ ├── references/ # Optional │ │ └── assets/ # Optional │ └── {skill-2}/ │ └── SKILL.md └── mcp.json # Only if MCP server involved ``` **Final checklist:** - [ ] `plugin.json` exists at root with valid `$schema` and `name` - [ ] All skills have `SKILL.md` with valid frontmatter - [ ] Skill `name` in frontmatter matches directory name - [ ] `mcp.json` (if present) has valid `$schema` and `mcpServers` - [ ] No files reference paths outside the plugin root - [ ] No secrets in any configuration files ### 7. Test and Install #### Install Locally 1. Open Kiro Powers UI (call action="configure") 2. Click "Add Custom Power" at the top 3. Select "Local Directory" 4. Provide the absolute path: `{workspace}/powers/{plugin-name}` 5. Click "Add" #### Test 1. Use the "Try Power" button on the power's detail page 2. Also test in a fresh agent chat session 3. Make natural language requests that should trigger the power's skills 4. Verify MCP tools work if applicable #### Iterate If issues found: 1. Edit files in `{workspace}/powers/{plugin-name}/` 2. In Powers UI, navigate to the installed power 3. Click "Check for Updates" then "Update Power" 4. Re-test ## Sharing ### GitHub Repository Push to a public GitHub repository. Users add the repo URL in Kiro Powers UI. Before sharing: - Sanitize mcp.json (replace secrets with placeholders) - Document all placeholders in relevant SKILL.md files - Include a LICENSE file ### Kiro Recommended Powers Submit at: https://kiro.dev/powers/submit/ Requirements: - Public GitHub repository - Complete documentation and testing - Sanitized configuration - Clear use cases and examples ## Agent Guidelines ### Do - Ask questions one at a time, don't overwhelm - Generate complete files, never leave `{TODO}` placeholders - Use exact MCP tool names from documentation - Include copy-paste-ready examples - Validate all files against the spec before finishing ### Don't - Don't add fields not in the spec schemas - Don't use shell command strings in `command` (single token only) - Don't embed secrets in config files - Don't create overly broad keywords that cause false activations - Don't skip the `$schema` field on plugin.json or mcp.json - Don't put `PLUGIN_ROOT` or `PLUGIN_DATA` as keys in `env`
Voir sur GitHub