Kiro Powers 实战:代码一改,AI 自动跑 Lint、补测试、更新文档

写完代码 → 手动跑 eslint → 手动跑测试 → 手动更新 README。这套流程每天重复几十次,每次都觉得"应该有人帮我干这些"。

Kiro Powers 就是那个"帮你干这些"的功能。你设定好规则,之后每次代码变更,AI 自动执行对应的任务——检查代码规范、跑单元测试、更新相关文档。不用你记着做,也不用等 CI 跑完再回来看。

Powers 是什么

一句话:事件驱动的 AI 自动化任务。

你定义触发条件(文件变更、保存、创建新文件等),配上要执行的动作(跑命令、AI 分析、生成内容),Kiro 在后台自动帮你执行。

和 Git Hooks 的区别:Git Hooks 在 commit/push 时触发,而 Powers 在你编辑过程中实时触发。你改了一个文件,还没 commit,Powers 就已经跑完了。

配置方式

在项目的 .kiro/powers/ 目录下创建配置文件:

# .kiro/powers/lint-on-save.yaml
name: Auto Lint
trigger:
  event: file_save
  pattern: "src/**/*.{ts,tsx}"
action:
  type: command
  command: "npx eslint --fix {{file}}"
  autoApply: true

这个 Power 的意思是:当你保存 src/ 下的任何 TypeScript 文件时,自动跑 eslint 并修复可修复的问题。

再来一个稍微复杂的:

# .kiro/powers/test-on-change.yaml
name: Auto Test
trigger:
  event: file_save
  pattern: "src/**/*.ts"
  exclude: "**/*.test.ts"
action:
  type: command
  command: "npx vitest run --reporter=verbose {{file.replace('.ts', '.test.ts')}}"
  onFailure:
    type: ai
    prompt: "测试失败了,分析错误原因并建议修复方案"

这个 Power:文件保存 → 跑对应的测试文件 → 如果测试挂了,AI 自动分析原因并给修复建议。

实用 Powers 配置清单

整理了我日常用的几个 Powers:

1. 保存时自动格式化 + Lint

name: Format & Lint
trigger:
  event: file_save
  pattern: "src/**/*.{ts,tsx,js,jsx}"
action:
  type: sequence
  steps:
    - command: "npx prettier --write {{file}}"
    - command: "npx eslint --fix {{file}}"

2. 新建文件时自动生成测试骨架

name: Generate Test Skeleton
trigger:
  event: file_create
  pattern: "src/**/*.ts"
  exclude: "**/*.test.ts"
action:
  type: ai
  prompt: |
    为 {{file}} 生成对应的测试文件 {{file.replace('.ts', '.test.ts')}}。
    要求:
    - 使用 vitest
    - 为每个导出函数生成至少 2 个测试用例
    - 包含正常路径和边界情况
    - 使用 describe/it 结构

3. 接口变更时自动更新 API 文档

name: Update API Docs
trigger:
  event: file_save
  pattern: "src/routes/**/*.ts"
action:
  type: ai
  prompt: |
    文件 {{file}} 有变更。检查 docs/api.md 是否需要更新:
    - 新增了接口?补充文档
    - 参数变了?更新参数说明
    - 返回值变了?更新响应示例
    只在确实有变更时才修改文档,没变不动。

4. 依赖更新时检查兼容性

name: Dependency Check
trigger:
  event: file_save
  pattern: "package.json"
action:
  type: ai
  prompt: |
    package.json 有变更。对比前后差异:
    - 有没有 major 版本升级?如果有,列出可能的 breaking changes
    - 有没有新增依赖和现有依赖功能重复?
    - 有没有已知安全漏洞的版本?

5. 提交前自动检查敏感信息

name: Secret Scanner
trigger:
  event: file_save
  pattern: "**/*"
  exclude: "node_modules/**"
action:
  type: ai
  prompt: |
    扫描 {{file}} 是否包含敏感信息:
    - API Key / Secret / Token
    - 硬编码的密码
    - 内部 IP 地址
    - 私钥内容
    如果发现,高亮标注并建议使用环境变量替代。

Powers vs Hooks 的区别

之前文章写过 Kiro Agent Hooks,这俩容易混:

Powers Hooks
触发时机 编辑过程中(保存、创建文件等) Agent 执行过程中(plan/apply/complete)
执行者 Kiro 后台自动 Kiro Agent
适合场景 重复性自动化(lint、测试、格式化) Agent 工作流约束(审查、规范检查)
需要 AI? 可选(command 或 ai) 通常需要

简单说:Powers 管你的日常编辑流程,Hooks 管 AI Agent 的工作流程。两者可以叠加使用。

性能考虑

Powers 跑在后台,如果配不好会拖慢编辑体验。几个注意点:

1. 控制触发频率

trigger:
  event: file_save
  debounce: 2000  # 2秒内多次保存只触发一次

2. 缩小文件匹配范围

别写 pattern: "**/*"(除非你真的需要全量扫描)。越精确的 pattern 越好。

3. 轻量命令优先

能用 eslint 单文件模式就别跑全项目扫描。{{file}} 变量指向当前变更的文件。

4. AI 类型的 Power 有 token 消耗

每次触发 AI 分析都会消耗 token。高频保存的文件(比如你正在反复调试的组件)建议用 command 类型或加 debounce。

团队共享

.kiro/powers/ 目录提交到 Git,团队成员 clone 下来自动生效。这意味着:

  • 新人入职不用配置 IDE 插件,Powers 自动运行
  • 全团队统一代码规范(不是靠约定,是靠自动化)
  • 有人改了规范,更新 Powers 配置,下次 pull 自动生效

比在 README 里写"请安装以下 VS Code 插件"靠谱得多。

和 CI/CD 的关系

Powers 不是替代 CI/CD 的。定位不同:

  • Powers:开发时即时反馈(秒级),帮你在 commit 前就发现问题
  • CI/CD:提交后的完整验证(分钟级),确保代码在所有环境下正确

理想情况是 Powers 帮你在本地就拦住 80% 的问题,CI 只处理剩下 20% 的集成和环境问题。推到 CI 才发现 lint 不过、测试挂了——这种等待是不必要的。

小结

Powers 的核心价值:把你记不住的、重复做的、觉得烦的事情自动化掉。

配置一次,之后每次保存文件就自动跑。Lint 结果不用等、测试结果不用等、文档更新不用记。编码体验从"写完代码→做一堆杂事"变成"只管写代码→AI 处理其余"。

Kiro Powers 文档:https://kiro.dev/docs/powers/


Kiro 由亚马逊云科技提供支持。Powers 在 IDE 和 CLI 版本中均可使用。

posted @ 2026-06-02 07:37  亚马逊云开发者  阅读(25)  评论(0)    收藏  举报