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:

  1. Understand Kiro Powers as the unit of distribution for AI expertise and capabilities
  2. Master the power structure including MCP servers, steering files, and hooks bundled together
  3. Learn keyword-triggered activation for dynamic capability loading
  4. Build and publish your own Power to GitHub for sharing
  5. 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:

  1. Framework Power (recommended for learning):
    • Next.js Power
    • Django Power
    • FastAPI Power
    • React Native Power
  2. 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:

  1. Has 100% test coverage
  2. Includes comprehensive documentation
  3. Supports multiple versions of the framework
  4. Has a changelog and semantic versioning
  5. 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.json manifest?
  • 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

  1. Youโ€™ve published a Power used by others
  2. You maintain multiple versions with changelogs
  3. Your Power has comprehensive tests
  4. You receive and incorporate community feedback
  5. 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