P12: Kiro Powers Creator (Bundled Capabilities)
P12: Kiro Powers Creator (Bundled Capabilities)
type: project id: P12 title: Kiro Powers Creator track: Kiro CLI Mastery difficulty: Advanced time_estimate: 2 weeks prerequisites: [P01-P11] knowledge_areas: [Powers, Plugin Systems, MCP, Steering, Distribution] tools: [Kiro CLI, GitHub] main_book: โDesigning Distributed Systems by Brendan Burnsโ โ
Learning Objectives
By completing this project, you will:
- Understand Kiro Powers as the unit of distribution for AI expertise and capabilities
- Master the power structure including MCP servers, steering files, and hooks bundled together
- Learn keyword-triggered activation for dynamic capability loading
- Build and publish your own Power to GitHub for sharing
- Develop practices for versioning and updating distributed AI capabilities
Deep Theoretical Foundation
The Problem: Sharing AI Expertise
Individual Kiro configurations are powerful, but theyโre trapped on one machine:
- Your custom MCP servers donโt travel with you
- Your steering files (coding conventions) stay local
- Your hooks (pre/post actions) arenโt shared with your team
- Every new machine means reconfiguration
What is a Kiro Power?
A Power is a portable bundle of AI capabilities:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ KIRO POWER โ
โ (e.g., "nextjs-power") โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โ
โ โ MCP SERVERS โ โ STEERING FILES โ โ HOOKS โ โ
โ โ โ โ โ โ โ โ
โ โ โข nextjs-docs โ โ โข conventions โ โ โข app-router- โ โ
โ โ โข vercel-api โ โ โข best-practs โ โ validator โ โ
โ โ โข prisma-db โ โ โข file-struct โ โ โข build-check โ โ
โ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โ
โ โ
โ TRIGGERS: ["next", "nextjs", "vercel", "app router"] โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Powers are to Kiro what plugins are to VS Code - but for AI capabilities, not editor features.
The Architecture of Distribution
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ POWER DISTRIBUTION FLOW โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ Creator GitHub Users โ
โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโ โ
โ โ Build โ push โ Repo โ /powers โ Installโ โ
โ โ Power โ โโโโโโโโโโโบ โ โ โโโโโโโโโโโโ โ โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโ โ
โ โ โ โ โ
โ โผ โผ โผ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโ โ
โ โ Test โ โ Releases โ โ Use โ โ
โ โ Locally โ โ Versions โ โ Power โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Power Components Explained
1. MCP Servers (Tools)
MCP servers give Kiro new abilities:
MCP Server: nextjs-docs
โโโ Purpose: Search Next.js documentation
โโโ Tools:
โ โโโ search_docs(query) โ relevant doc sections
โ โโโ get_api_reference(function) โ API details
โ โโโ get_example(topic) โ code examples
โโโ Transport: stdio (bundled binary)
2. Steering Files (Behavior)
Steering files shape how Kiro writes code:
# nextjs-conventions.md
## File Structure
- Use App Router directory structure
- Colocate components with pages
- Keep server components as default
## Coding Style
- Prefer server components over client
- Use 'use client' directive explicitly
- Implement loading.tsx for suspense
3. Hooks (Automation)
Hooks run before/after Kiro actions:
// hooks/app-router-validator.ts
export const afterFileWrite = async (filePath: string) => {
if (filePath.includes('/app/') && filePath.endsWith('.tsx')) {
// Validate App Router conventions
await validateAppRouterFile(filePath);
}
};
Keyword-Triggered Activation
Powers donโt load by default - they activate when you mention trigger keywords:
User: "How do I create a Next.js API route?"
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Keyword Detection โ
โ Found: "Next.js" โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Match Triggers โ
โ nextjs-power: โ
โ ["next", "nextjs"] โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Activate Power โ
โ โข Load MCP servers โ
โ โข Apply steering โ
โ โข Enable hooks โ
โโโโโโโโโโโโโโโโโโโโโโโ
Real-World Analogy: The Specialized Toolkit
Think of a Power like a specialized toolkit:
- Plumberโs Kit: Pipe wrenches, plungers, Teflon tape (tools), plumbing code book (steering), โcheck for leaks afterโ checklist (hooks)
- Electricianโs Kit: Multimeter, wire strippers, voltage tester (tools), NEC codebook (steering), โverify power off firstโ protocol (hooks)
You donโt carry every toolkit everywhere - you bring the one you need. Powers work the same way.
Historical Context: Plugin Evolution
1990s: IDE Plugins (Eclipse, Visual Studio)
โโโ Extended editor functionality
2010s: Package Managers (npm, pip, gem)
โโโ Distributed code libraries
2020s: AI Extensions (GPT plugins, Claude tools)
โโโ Extended AI capabilities
2025: AI Powers (Kiro Powers, Claude Skills)
โโโ Bundled AI expertise + tools + behavior
Powers represent the next evolution: not just tools, but complete expertise packages.
Book Reference
โDesigning Distributed Systemsโ by Brendan Burns discusses patterns for packaging and distributing system capabilities. Powers apply these patterns to AI expertise - encapsulating knowledge, tools, and behavior into distributable units.
Complete Project Specification
What Youโre Building
A complete, publishable Kiro Power for a framework or domain of your choice:
- Framework Power (recommended for learning):
- Next.js Power
- Django Power
- FastAPI Power
- React Native Power
- Domain Power (for specialized knowledge):
- AWS Infrastructure Power
- GraphQL Power
- Testing Power (Jest/Vitest)
Power Structure
your-power/
โโโ power.json # Power manifest
โโโ README.md # Documentation
โโโ mcp/
โ โโโ mcp.json # MCP server configuration
โ โโโ servers/
โ โโโ docs-server/ # Documentation MCP
โ โโโ api-server/ # API integration MCP
โโโ steering/
โ โโโ conventions.md # Coding conventions
โ โโโ patterns.md # Design patterns
โ โโโ examples.md # Code examples
โโโ hooks/
โ โโโ hooks.json # Hook configuration
โ โโโ validators/ # Validation hooks
โ โโโ generators/ # Generation hooks
โโโ tests/
โโโ power.test.ts # Power tests
Expected Behavior
# Installation
$ kiro-cli
> /powers add https://github.com/yourname/nextjs-power
Installing power: nextjs-power v1.0.0
โโโ MCP Servers: 2 loaded
โ โโโ nextjs-docs (documentation search)
โ โโโ vercel-api (deployment integration)
โโโ Steering: 3 files applied
โ โโโ conventions.md
โ โโโ patterns.md
โ โโโ examples.md
โโโ Hooks: 1 enabled
โ โโโ app-router-validator
Power installed successfully!
Triggers: "next", "nextjs", "vercel", "app router", "server components"
# Usage (keyword triggers activation)
> "How do I implement a server component in Next.js?"
[Power: nextjs-power activated]
[nextjs-docs] Searching documentation...
Based on Next.js 14 App Router patterns:
Server Components are the default in the App Router...
[Provides expert-level, docs-backed response]
Solution Architecture
Component Diagram
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ POWER ARCHITECTURE โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ power.json (Manifest) โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ { โโ
โ โ "name": "nextjs-power", โโ
โ โ "version": "1.0.0", โโ
โ โ "triggers": ["next", "nextjs", "vercel"], โโ
โ โ "mcp": "./mcp/mcp.json", โโ
โ โ "steering": ["./steering/*.md"], โโ
โ โ "hooks": "./hooks/hooks.json" โโ
โ โ } โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โ โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโ โ
โ โผ โผ โผ โ
โ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โ โ MCP Config โ โ Steering โ โ Hooks โ โ
โ โ โ โ โ โ โ โ
โ โ mcp.json: โ โ conventions: โ โ hooks.json: โ โ
โ โ { โ โ # File names โ โ { โ โ
โ โ "servers":[ โ โ - Use kebab โ โ "afterFile โ โ
โ โ {...} โ โ - page.tsx โ โ Write": [ โ โ
โ โ ] โ โ โ โ "validate"โ โ
โ โ } โ โ patterns: โ โ ] โ โ
โ โ โ โ # Use server โ โ } โ โ
โ โ โ โ components โ โ โ โ
โ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโ โ
โ โ โ โ โ
โ โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ KIRO RUNTIME โโ
โ โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโ
โ โ โ MCP Loader โ โ Steering โ โ Hook โ โโ
โ โ โ โ โ Injector โ โ Executor โ โโ
โ โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Data Flow: Power Installation
/powers add <url>
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Fetch Repo โ โโโบ Clone or download from GitHub
โโโโโโโโโโฌโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Parse Manifest โ โโโบ Read power.json
โโโโโโโโโโฌโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Validate โ โโโบ Check structure, versions
โโโโโโโโโโฌโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Install MCP โ โโโบ Register MCP servers
โโโโโโโโโโฌโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Load Steering โ โโโบ Add to steering context
โโโโโโโโโโฌโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Register Hooks โ โโโบ Enable hook callbacks
โโโโโโโโโโฌโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Index Triggers โ โโโบ Map keywords to power
โโโโโโโโโโโโโโโโโโโ
Data Flow: Power Activation
User Message: "Create a Next.js API route"
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Tokenize Message โ
โ ["create", "next", โ
โ "api", "route"] โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Match Triggers โ
โ "next" โ nextjs- โ
โ power โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Load Power Context โ
โ โข Start MCP serversโ
โ โข Inject steering โ
โ โข Arm hooks โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Process Request โ
โ with Power active โ
โโโโโโโโโโโโโโโโโโโโโโโ
Key Interfaces
| Interface | Purpose | Location |
|---|---|---|
power.json |
Manifest describing the power | Root |
mcp.json |
MCP server configuration | mcp/ |
*.md steering |
Behavioral instructions | steering/ |
hooks.json |
Hook definitions | hooks/ |
/powers add |
Install a power | Kiro CLI |
/powers list |
List installed powers | Kiro CLI |
/powers remove |
Uninstall a power | Kiro CLI |
Technology Choices
| Component | Choice | Reason |
|---|---|---|
| Distribution | GitHub | Universal, versioned, familiar |
| Manifest | JSON | Structured, parseable |
| Steering | Markdown | Human-readable, AI-friendly |
| MCP Servers | TypeScript/Node | Rich ecosystem |
| Hooks | TypeScript | Type-safe, testable |
Phased Implementation Guide
Phase 1: Foundation - Understanding Power Structure
Goal: Create the basic power structure locally.
Step 1.1: Create Power Directory
mkdir nextjs-power
cd nextjs-power
# Create structure
mkdir -p mcp/servers/docs-server
mkdir -p steering
mkdir -p hooks
mkdir -p tests
Step 1.2: Create Power Manifest
// power.json
{
"name": "nextjs-power",
"version": "1.0.0",
"description": "Expert Next.js 14 App Router assistance",
"author": "Your Name",
"repository": "https://github.com/yourname/nextjs-power",
"triggers": [
"next",
"nextjs",
"next.js",
"vercel",
"app router",
"server components",
"client components"
],
"mcp": "./mcp/mcp.json",
"steering": [
"./steering/conventions.md",
"./steering/patterns.md",
"./steering/examples.md"
],
"hooks": "./hooks/hooks.json",
"kiroVersion": ">=1.0.0"
}
Hint: triggers are lowercase keywords. Include common variations and abbreviations.
Step 1.3: Create Basic Steering
// steering/conventions.md
# Next.js Coding Conventions
## File Naming
- Use kebab-case for directories: `user-profile/`
- Special files: `page.tsx`, `layout.tsx`, `loading.tsx`, `error.tsx`
- Colocate components: `user-profile/user-avatar.tsx`
## Component Defaults
- Prefer Server Components (no directive needed)
- Add `'use client'` only when necessary
- Keep data fetching in server components
## Data Fetching
- Use `fetch` with built-in caching
- Prefer `generateStaticParams` for static pages
- Use `revalidate` for ISR patterns
Hint: Steering files are included in Kiroโs context. Be concise but specific.
Phase 2: Core Functionality - Building MCP and Hooks
Goal: Add functional MCP servers and hooks to your power.
Step 2.1: Create MCP Configuration
// mcp/mcp.json
{
"servers": [
{
"name": "nextjs-docs",
"description": "Search Next.js documentation",
"command": "node",
"args": ["./mcp/servers/docs-server/index.js"],
"transport": "stdio"
}
]
}
Step 2.2: Implement a Simple MCP Server
// mcp/servers/docs-server/index.ts
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
const server = new Server({
name: 'nextjs-docs',
version: '1.0.0',
}, {
capabilities: {
tools: {}
}
});
// Register tools
server.setRequestHandler('tools/list', async () => ({
tools: [
{
name: 'search_docs',
description: 'Search Next.js documentation',
inputSchema: {
type: 'object',
properties: {
query: { type: 'string', description: 'Search query' }
},
required: ['query']
}
}
]
}));
server.setRequestHandler('tools/call', async (request) => {
if (request.params.name === 'search_docs') {
const query = request.params.arguments.query;
// Implement actual search logic
return {
content: [
{ type: 'text', text: `Results for: ${query}\n...` }
]
};
}
throw new Error(`Unknown tool: ${request.params.name}`);
});
// Start server
const transport = new StdioServerTransport();
server.connect(transport);
Hint: Start with a simple implementation. You can enhance the MCP server later.
Step 2.3: Create Hooks Configuration
// hooks/hooks.json
{
"afterFileWrite": [
{
"name": "validate-app-router",
"match": "**/app/**/*.tsx",
"handler": "./hooks/validators/app-router.js"
}
]
}
// hooks/validators/app-router.ts
import * as fs from 'fs';
export default async function validate(filePath: string): Promise<void> {
const content = fs.readFileSync(filePath, 'utf-8');
// Check for common issues
const issues: string[] = [];
// Issue 1: Using useState without 'use client'
if (content.includes('useState') && !content.includes("'use client'")) {
issues.push("File uses useState but missing 'use client' directive");
}
// Issue 2: Importing from 'next/router' instead of 'next/navigation'
if (content.includes("from 'next/router'")) {
issues.push("Use 'next/navigation' instead of 'next/router' in App Router");
}
if (issues.length > 0) {
console.warn(`[nextjs-power] Validation issues in ${filePath}:`);
issues.forEach(issue => console.warn(` - ${issue}`));
}
}
Hint: Hooks run automatically. Keep them fast and non-blocking.
Phase 3: Polish and Distribution
Goal: Test locally, document, and publish to GitHub.
Step 3.1: Test Locally
# Install your power locally for testing
$ kiro-cli
> /powers add ./nextjs-power
# Verify installation
> /powers list
Installed Powers:
nextjs-power v1.0.0 (local)
Triggers: next, nextjs, vercel...
# Test activation
> "How do I create a dynamic route in Next.js?"
[Power: nextjs-power activated]
...
Hint: Test with various trigger phrases to ensure activation works.
Step 3.2: Create Documentation
// README.md
# Next.js Power for Kiro CLI
Expert Next.js 14 App Router assistance for Kiro.
## Installation
\```bash
kiro-cli
> /powers add https://github.com/yourname/nextjs-power
\```
## Features
### MCP Servers
- **nextjs-docs**: Search official Next.js documentation
### Steering
- App Router conventions
- Server/Client component patterns
- Data fetching best practices
### Hooks
- **app-router-validator**: Validates App Router patterns
## Triggers
This power activates when you mention:
- next, nextjs, next.js
- vercel
- app router
- server components, client components
## Examples
\```
> "Create a dynamic blog post page with Next.js"
[Power: nextjs-power activated]
...
\```
## License
MIT
Step 3.3: Publish to GitHub
# Initialize git repo
git init
git add .
git commit -m "Initial release of nextjs-power v1.0.0"
# Create GitHub repo and push
gh repo create nextjs-power --public
git push -u origin master
# Create a release
gh release create v1.0.0 --title "v1.0.0" --notes "Initial release"
Hint: Use GitHub releases for versioning. Users can install specific versions.
Step 3.4: Announce and Share
# Others can now install your power
$ kiro-cli
> /powers add https://github.com/yourname/nextjs-power
# Or a specific version
> /powers add https://github.com/yourname/nextjs-power@v1.0.0
Testing Strategy
Unit Testing
// tests/power.test.ts
import { validatePowerManifest } from '@kiro/power-tools';
import manifest from '../power.json';
describe('Power Manifest', () => {
test('has required fields', () => {
expect(manifest.name).toBeDefined();
expect(manifest.version).toMatch(/^\d+\.\d+\.\d+$/);
expect(manifest.triggers).toBeInstanceOf(Array);
expect(manifest.triggers.length).toBeGreaterThan(0);
});
test('triggers are lowercase', () => {
manifest.triggers.forEach(trigger => {
expect(trigger).toBe(trigger.toLowerCase());
});
});
});
Integration Testing
# Test power installation
$ kiro-cli --test
> /powers add ./nextjs-power
# Expect: Success message with components listed
# Test activation
> "Help with Next.js routing"
# Expect: Power activation message
# Test MCP tool
> [Manually invoke MCP tool]
# Expect: Tool returns results
Validation Checklist
[ ] power.json is valid JSON
[ ] All referenced files exist
[ ] MCP servers start successfully
[ ] Steering files are valid Markdown
[ ] Hooks execute without errors
[ ] Triggers activate the power
[ ] Power installs from GitHub URL
[ ] Power uninstalls cleanly
Common Pitfalls & Debugging
Pitfall 1: Triggers Too Specific
Problem: Power doesnโt activate because triggers are too narrow.
// Bad: Only exact matches
"triggers": ["next.js 14 app router"]
// Good: Multiple variations
"triggers": ["next", "nextjs", "next.js", "app router"]
Solution: Include common variations, abbreviations, and related terms.
Pitfall 2: MCP Server Wonโt Start
Problem: MCP server fails silently or crashes.
Debug Steps:
# Test server manually
cd mcp/servers/docs-server
node index.js
# Check for missing dependencies
npm ls
# Enable verbose logging
DEBUG=* node index.js
Pitfall 3: Hooks Block Execution
Problem: Slow hooks make Kiro feel laggy.
Solution: Keep hooks fast (<100ms). Use async operations for slow tasks.
// Bad: Blocking
const result = execSync('npm run lint');
// Good: Non-blocking
exec('npm run lint', (error, stdout) => {
if (error) console.warn('Lint issues found');
});
Pitfall 4: Steering Too Long
Problem: Steering files consume too much context.
Solution: Be concise. Use bullet points. Prioritize critical conventions.
// Bad: Verbose explanations
The App Router in Next.js 14 represents a paradigm shift in how we
think about routing in React applications. Unlike the Pages Router
which used a file-system based routing approach...
// Good: Concise rules
## App Router Rules
- Default to Server Components
- Add 'use client' only for interactivity
- Use loading.tsx for suspense boundaries
Extensions & Challenges
Extension 1: Multi-Framework Power
Create a power that supports multiple related frameworks:
{
"name": "react-ecosystem-power",
"triggers": ["react", "next", "remix", "gatsby"],
"mcp": {
"servers": [
{ "name": "react-docs", "activate": ["react"] },
{ "name": "nextjs-docs", "activate": ["next"] },
{ "name": "remix-docs", "activate": ["remix"] }
]
}
}
Extension 2: Team Power with Private Features
Create a power with enterprise features:
{
"name": "company-standards-power",
"private": true,
"authentication": "github-org",
"steering": [
"./steering/public-conventions.md",
"./steering/internal-patterns.md"
]
}
Extension 3: Power Composition
Create powers that extend other powers:
{
"name": "fullstack-power",
"extends": [
"https://github.com/kiro/nextjs-power",
"https://github.com/kiro/prisma-power"
],
"steering": ["./steering/fullstack-patterns.md"]
}
Challenge: Production-Grade Power
Build a power that:
- Has 100% test coverage
- Includes comprehensive documentation
- Supports multiple versions of the framework
- Has a changelog and semantic versioning
- Gets installed by >10 other developers
Real-World Connections
How Professionals Use This
At Vercel: Internal Kiro Powers bundle Next.js expertise, Vercel-specific deployment patterns, and integration with their toolchain.
At Consulting Firms: Powers encode client coding standards, ensuring all developers (human and AI) follow the same conventions.
In Open Source: Framework maintainers publish official Powers alongside their frameworks.
Industry Examples
- Kiro Powers Registry: Official powers from AWS and partners (Datadog, Figma, Stripe)
- Community Powers: Open-source powers for frameworks, libraries, and domains
- Enterprise Powers: Private powers encoding organizational standards
The Power Ecosystem
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ POWER ECOSYSTEM โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ Official Community Enterprise โ
โ Powers Powers Powers โ
โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โ AWS โ โ nextjs- โ โ acme-corpโ โ
โ โ Bedrock โ โ power โ โ standardsโ โ
โ โโโโโโโโโโโโค โโโโโโโโโโโโค โโโโโโโโโโโโค โ
โ โ Datadog โ โ prisma- โ โ internal โ โ
โ โ โ โ power โ โ patterns โ โ
โ โโโโโโโโโโโโค โโโโโโโโโโโโค โโโโโโโโโโโโค โ
โ โ Stripe โ โ graphql- โ โ security โ โ
โ โ โ โ power โ โ hooks โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โ
โ /powers add /powers add private registry โ
โ aws/bedrock user/nextjs company.kiro.dev โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Self-Assessment Checklist
Conceptual Understanding
- Can you explain what a Kiro Power is and its three components (MCP, steering, hooks)?
- Why do Powers use keyword-triggered activation instead of always loading?
- Whatโs the difference between steering files and MCP servers?
- How does the Power distribution model differ from traditional plugins?
Practical Skills
- Can you create a valid
power.jsonmanifest? - Can you implement a basic MCP server for a Power?
- Can you write effective steering files that fit in context?
- Can you create and test hooks for validation or generation?
Advanced Competency
- Can you design trigger keywords for maximum activation coverage?
- Can you test a Power locally before publishing?
- Can you version and release a Power on GitHub?
- Can you troubleshoot Power installation failures?
Mastery Indicators
- Youโve published a Power used by others
- You maintain multiple versions with changelogs
- Your Power has comprehensive tests
- You receive and incorporate community feedback
- Other developers extend or compose with your Power
Summary
Kiro Powers are the distribution mechanism for AI expertise. By bundling MCP servers, steering files, and hooks into portable packages, you can:
- Share your AI configurations across machines
- Distribute best practices to your team
- Contribute expertise to the community
- Build on the work of others
Master Powers, and you become a contributor to the AI development ecosystem.
Next Project: P13: Tangent Mode Explorer - Master context isolation for side conversations