kiro-powers.md
2025/12/16预计阅读 8 分钟
我创建的powers
优雅的前端设计: power-frontend-design
1.如何创建powers
这份文档是关于 如何创建 Kiro Powers 的开发者指南。Kiro Powers 是 Kiro 的扩展包,用于将第三方工具(如 Supabase, Stripe 等)、工作流和最佳实践集成到 Kiro 中。
以下是文档的核心要点总结:
1. 什么是 Power?
- 定义:Power 将工具、上下文和工作流封装成 Kiro 可以按需激活的格式。
- 触发机制:通过在
POWER.md中定义 Keywords(关键词)。当用户在对话中提到相关关键词(如 “database”)时,Kiro 会自动加载该 Power 的工具和文档。
2. 核心文件结构
一个标准的 Power 目录包含以下内容:
POWER.md(必须):核心配置文件。mcp.json(可选):用于配置 MCP (Model Context Protocol) 服务器,集成外部工具。steering/(可选):存放具体工作流指导文件的文件夹。
3. POWER.md 详解
该文件由两部分组成:
- Frontmatter (元数据):
- 定义
name、description和keywords(决定何时激活)。
- 定义
- Instructions (指令):
- Onboarding (入门):首次激活时运行。用于验证环境(如检查 Docker 是否安装)、安装 CLI 或创建自动化 Hooks。
- Steering (指导):定义 AI 如何使用该工具的最佳实践。
4. Steering(指导)的两种模式
为了管理上下文窗口,文档提出了两种编写指导的策略:
- 简单模式:所有最佳实践直接写在
POWER.md中。适用于简单工具。 - 高级模式(推荐用于复杂工具):
- 在
POWER.md中定义映射关系(例如:做“设置数据库”任务时加载database-setup.md)。 - 在
steering/文件夹中创建多个独立的 Markdown 文件。 - 优势:避免一次性加载过多上下文,AI 仅加载当前任务所需的信息。
- 在
5. 集成 MCP 工具 (mcp.json)
- 用于配置工具服务器(如 Supabase Local)。
- 支持设置环境变量(如 API Key)。
- Kiro 会自动处理命名空间以避免冲突。
6. 开发与发布流程
- 创建:按照结构建立文件夹和文件。
- 测试:在 Kiro 面板中选择 “Add power from Local Path” 进行本地测试。
- 分享:将代码推送到 GitHub 公开仓库。其他用户可以通过仓库 URL 安装。
总结示例结构
一个功能完整的 Power 看起来是这样的:
power-supabase/
├── POWER.md # 元数据、关键词、Onboarding 脚本、工作流映射
├── mcp.json # MCP 工具配置
└── steering/ # 具体任务指南
├── database-setup.md
└── auth-patterns.md
2.简单模式
根据文档描述,简单模式 (Simple approach) 的核心特点是:不需要创建 steering/ 文件夹,所有的指导原则(Best Practices)直接写在 POWER.md 文件中。
这种模式适合逻辑简单、不需要根据不同任务切换上下文的工具。
以下是简单模式的具体格式结构:
1. 文件目录结构
非常干净,通常只有一个核心文件(如果有工具集成,再加一个 mcp.json):
power-your-tool/
├── POWER.md # 核心文件:包含元数据、安装步骤、以及所有的使用指导
└── mcp.json # (可选) 如果需要集成 MCP 工具则添加
2. POWER.md 的内容格式
在简单模式下,POWER.md 从上到下依次包含三个部分:
- Frontmatter (元数据):定义触发关键词。
- Onboarding (入门):初次安装时的检查。
- Guidance/Steering (指导):直接接在后面写,告诉 AI 如何使用这个工具。
📄 POWER.md 模板示例
---
name: "simple-tool"
displayName: "My Simple Tool"
description: "A tool for doing basic things"
keywords: ["keyword1", "keyword2"]
---
# Onboarding
<!-- 第一部分:安装和检查(用户初次使用时运行) -->
## Step 1: Check Installation
- Verify CLI is installed: `my-tool --version`
## Step 2: Add Hooks
...
<!-- 分隔线:以下是简单模式特有的部分 -->
<!-- 不引用外部文件,直接在这里写最佳实践 -->
# Best Practices
<!-- 第二部分:指导 AI 如何工作(Steering) -->
## Code Style
- Always use camelCase for variables.
- Keep functions under 20 lines.
## How to use the API
When the user asks to fetch data, use this pattern:
`
const data = await client.fetch('endpoint');
`
## Common Workflows
- If user wants to reset, run: `my-tool reset`
- If user wants to deploy, check config first.
总结
简单模式就是:把“元数据”、“安装检查”和“使用说明书”全部塞进一个 POWER.md 文件里。
适用场景:
- 工具比较简单,规则不多。
- 是一个纯文档类型的 Power(比如“React 组件写规范”)。
- 不需要根据用户是在“写代码”还是在“部署”来切换不同的指令集。
3.示例
可以的,完全可以实现。
你可以创建一个 简单模式 (Simple approach) 的 Power,利用 keywords 监听你的中文关键词,然后在 POWER.md 的指导部分(Best Practices)强制要求 AI 使用你指定的技术栈。
下面是一个具体的实现示例。
实现步骤
你需要创建一个文件夹(例如 power-my-frontend-stack),并在其中创建一个 POWER.md 文件。
POWER.md 文件内容示例
假设你想强制规定:只要提到前端,就必须用 React + TypeScript + Tailwind CSS。
---
name: "frontend-standard"
displayName: "前端技术栈规范"
description: "当前后端分离或开发前端时,强制使用标准技术栈"
# 1. 在这里定义触发关键词,支持中文
keywords: ["前端", "前后端分离", "frontend", "页面开发", "ui"]
---
# Onboarding
<!-- 如果不需要安装工具,这里可以留空或写个简单的说明 -->
此 Power 用于规范前端技术选型,无须安装额外工具。
# Best Practices
## 🚨 核心技术栈强制要求 (Tech Stack Enforcement)
**当用户提到“前端”或“前后端分离”时,你必须严格遵守以下技术选型,不要推荐其他方案:**
1. **核心框架**: 必须使用 **Next.js (App Router)** + **React**。
2. **编程语言**: 必须使用 **TypeScript**,严禁使用纯 JavaScript。
3. **样式方案**: 必须使用 **Tailwind CSS**。不要使用 CSS Modules 或 Styled Components。
4. **状态管理**: 优先使用 **Zustand**,只有在极端复杂场景下才考虑 Redux。
5. **数据请求**: 使用 **TanStack Query (React Query)**。
## 代码风格
- 组件必须是函数式组件 (Functional Components)。
- 所有的 Props 必须定义 Interface。
原理解析
-
监听 (Keywords): 当你在对话框里输入:“我想做一个前后端分离的系统”或者“帮我写个前端页面”时,Kiro 会检测到
keywords列表里的词汇。 -
激活 (Activation): Kiro 自动激活
frontend-standard这个 Power。 -
指导 (Steering): AI 会读取
# Best Practices下的内容。因为它被指示“必须严格遵守”,所以当它生成代码或回答建议时,就会直接基于 React/TS/Tailwind 来回答,而不会去问你“想用 Vue 还是 React?”。
进阶技巧
如果你有多个不同的栈(比如有时候写 Vue,有时候写 React),你可以:
-
创建两个 Power:
- 一个关键词设为
["前端", "React项目"]-> 指定 React 栈。 - 一个关键词设为
["Vue项目"]-> 指定 Vue 栈。 - 注意:如果关键词重叠(都叫“前端”),AI 可能会同时加载两个上下文,导致混淆,所以建议关键词做区分。
- 一个关键词设为
-
在一个 Power 里写条件逻辑: 你也可以在一个文件里写:
如果用户明确提到 “后台管理系统”,推荐使用 Ant Design Pro。 如果用户提到 “C端落地页”,推荐使用 Next.js + Tailwind。
这种“纯文档类”的 Power 非常适合用来做团队的开发规范守门员。