跳到主内容
Documentation

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 (元数据)
    • 定义 namedescriptionkeywords(决定何时激活)。
  • 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. 开发与发布流程

  1. 创建:按照结构建立文件夹和文件。
  2. 测试:在 Kiro 面板中选择 “Add power from Local Path” 进行本地测试。
  3. 分享:将代码推送到 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 从上到下依次包含三个部分:

  1. Frontmatter (元数据):定义触发关键词。
  2. Onboarding (入门):初次安装时的检查。
  3. 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。

原理解析

  1. 监听 (Keywords): 当你在对话框里输入:“我想做一个前后端分离的系统”或者“帮我写个前端页面”时,Kiro 会检测到 keywords 列表里的词汇。

  2. 激活 (Activation): Kiro 自动激活 frontend-standard 这个 Power。

  3. 指导 (Steering): AI 会读取 # Best Practices 下的内容。因为它被指示“必须严格遵守”,所以当它生成代码或回答建议时,就会直接基于 React/TS/Tailwind 来回答,而不会去问你“想用 Vue 还是 React?”。

进阶技巧

如果你有多个不同的栈(比如有时候写 Vue,有时候写 React),你可以:

  1. 创建两个 Power

    • 一个关键词设为 ["前端", "React项目"] -> 指定 React 栈。
    • 一个关键词设为 ["Vue项目"] -> 指定 Vue 栈。
    • 注意:如果关键词重叠(都叫“前端”),AI 可能会同时加载两个上下文,导致混淆,所以建议关键词做区分。
  2. 在一个 Power 里写条件逻辑: 你也可以在一个文件里写:

    如果用户明确提到 “后台管理系统”,推荐使用 Ant Design Pro。 如果用户提到 “C端落地页”,推荐使用 Next.js + Tailwind

这种“纯文档类”的 Power 非常适合用来做团队的开发规范守门员

返回顶部