当前位置: 首页 > news >正文

Kiro Hook 实战指南:保存文件自动 lint、commit 自动测试,6 个场景配置详解

Kiro 除了 Specs(规格驱动开发),还有一个实用功能叫 Hook——类似 Git Hook 的概念,但触发范围更广:文件保存、终端命令、Agent 动作都能触发自定义脚本。

说白了就是:定义"当X发生时,自动做Y"的规则。

今天用几个实际场景演示怎么配。

Hook 是什么

Hook 是 Kiro 的事件驱动自动化机制。你在 .kiro/hooks/ 目录下写配置文件,定义触发条件和执行动作。

.kiro/
├── hooks/
│   ├── on-save-lint.toml
│   ├── on-commit-test.toml
│   └── on-create-doc.toml
└── specs/└── ...

场景 1:保存 Python 文件时自动跑 Ruff

每次保存 .py 文件,自动格式化 + lint:

# .kiro/hooks/on-save-lint.toml
[trigger]
event = "file.save"
pattern = "**/*.py"[action]
type = "shell"
command = "ruff format {file} && ruff check --fix {file}"
on_failure = "notify"  # 失败时在编辑器底部提示,不阻塞

这样省了手动跑 ruff format 的步骤。{file} 是 Kiro 自动替换的变量,指向当前保存的文件路径。

场景 2:Commit 前自动跑单元测试

# .kiro/hooks/on-commit-test.toml
[trigger]
event = "git.pre-commit"[action]
type = "shell"
command = "pytest tests/unit/ -x --timeout=30"
on_failure = "block"  # 测试不过就阻止 commit[action.env]
PYTHONPATH = "src"

关键是 on_failure = "block" —— 测试红了就不让提交。和 husky + lint-staged 是一个思路,但 Kiro 原生支持,不需要额外装包。

场景 3:新建文件时自动生成文档骨架

# .kiro/hooks/on-create-doc.toml
[trigger]
event = "file.create"
pattern = "src/handlers/*.py"[action]
type = "agent"
prompt = """
为新建的 handler 文件 {file} 生成文档注释:
1. 模块级 docstring(说明这个 handler 做什么)
2. 每个公开函数的 docstring(参数、返回值、异常)
3. 如果有 AWS 服务调用,标注需要的 IAM 权限遵循 Google Python Style 的 docstring 格式。
"""

注意 type = "agent" —— 这个 hook 不是跑 shell 命令,而是让 Kiro Agent 执行一段 prompt。适合需要理解代码上下文的任务。

场景 4:CDK 部署前检查安全规则

# .kiro/hooks/on-deploy-check.toml
[trigger]
event = "terminal.command"
pattern = "cdk deploy*"[action]
type = "shell"
command = """
echo "Running security checks before deploy..."
cdk synth --quiet
cfn-nag-scan --input-path cdk.out/*.template.json
"""
on_failure = "block"[action.timeout]
seconds = 120

每次你在终端敲 cdk deploy,Kiro 先拦截,跑一遍 cfn-nag 安全扫描。有安全问题就阻止部署。

场景 5:API 文件变更时同步更新 OpenAPI Spec

# .kiro/hooks/on-api-change.toml
[trigger]
event = "file.save"
pattern = "src/routes/**/*.ts"[action]
type = "agent"
prompt = """
文件 {file} 被修改了。请检查其中的路由定义是否和 docs/openapi.yaml 一致。如果发现不一致:
1. 更新 openapi.yaml 中对应的路径定义
2. 保持 description、parameters、response schema 准确
3. 不要修改其他未变更的路径只更新有差异的部分,不要重写整个文件。
"""

场景 6:组合多个动作

# .kiro/hooks/on-pr-ready.toml
[trigger]
event = "git.push"
branch = "feature/*"[[action]]
type = "shell"
command = "pytest tests/ --cov=src --cov-report=term-missing"
on_failure = "notify"[[action]]
type = "shell"
command = "ruff check src/ --output-format=github"
on_failure = "notify"[[action]]
type = "agent"
prompt = """
检查最近的 git diff,生成一份简短的 PR description:
- 改了什么(一句话总结)
- 影响范围
- 需要 reviewer 关注的点输出为 Markdown 格式,保存到 .github/pr-description.md
"""

Push 到 feature 分支时,自动跑测试 + lint + 生成 PR 描述。三个动作串行执行。

Hook 变量

Kiro Hook 支持的内置变量:

变量 含义 可用事件
{file} 触发文件的完整路径 file.save, file.create
{filename} 文件名(不含路径) file.save, file.create
{dir} 文件所在目录 file.save, file.create
{branch} 当前 Git 分支 git.*
{commit_msg} Commit 消息 git.pre-commit, git.post-commit
{command} 触发的终端命令 terminal.command
{workspace} 项目根目录 所有事件

和 Git Hooks / Husky 的区别

维度 Git Hooks / Husky Kiro Hooks
触发范围 只有 Git 事件 文件/Git/终端/Agent 动作
配置方式 shell 脚本 TOML 声明式
AI 集成 type = "agent" 原生支持
跨平台 shell 兼容性问题 Kiro 统一处理
团队共享 .husky/ 目录 .kiro/hooks/ 目录(同样可 git track)
调试 echo 打印 Kiro 日志面板

实战建议

  1. 从 lint 开始 —— on-save-lint 是风险低、收益高的 hook
  2. Agent hook 要限制范围 —— prompt 里明确"只改 XXX,不动其他",防止 Agent 改太多
  3. timeout 要设 —— 特别是跑测试的 hook,别让它卡住你的工作流
  4. on_failure 分场景 —— lint 用 notify(不阻塞),测试用 block(必须过)
  5. 不要过度自动化 —— 如果一个 hook 经常让你手动跳过(--no-verify),说明它设计得不对

和 Specs 配合使用

Hook + Spec 的组合:

  • Spec 定义"做什么"
  • Hook 保证"做的过程中不出错"

比如 Spec 里定义了 API 格式规范,Hook 在每次文件保存时自动检查是否符合 Spec 中的约束。两者互补。

Kiro 下载:https://aws.amazon.com/cn/campaigns/kiro/
Kiro Hooks 文档:https://kiro.dev/docs/hooks/

http://www.jsqmd.com/news/1037904/

相关文章:

  • 2026年6月三轮小吃车厂家推荐指南 - 多才菠萝
  • 2023年AI工程化落地实战:从RAG、小样本CV到可控生成的硬核经验
  • Python+pytest+Playwright:从Web自动化测试到RPA的工程化实践
  • 2026年6月四轮餐车厂家推荐指南 - 多才菠萝
  • 2026年IP隔离浏览器推荐选型:静态动态双模式,适配不同运营需求 - 资讯纵览
  • TensorFlow 2.x实战:CRNN+CTC端到端文本识别落地指南
  • 高效双语翻译扩展KISS Translator:10个实用配置技巧提升邮件阅读体验
  • 2026上海黄金回收盘点:本地6家门店哪家评分高? - 奢侈品回收评测
  • 2026接线端子厂家排行:深度解析参考 - 资讯纵览
  • 重庆美国留学培训哪家强?资质存证筛选正规中介 - 秋山寄远
  • 洛雪音乐音源完整指南:5分钟搭建免费高品质音乐库的终极方案
  • 梅陇首饰定制哪家价格透明?无隐形消费放心选 - 云溪自乐
  • AutoCAD字体自动管理终极指南:如何彻底告别“字体缺失“困扰
  • 温州全屋智能装修靠谱公司排行:实力品牌与场景适配 - 资讯纵览
  • 国内头部集装箱拖车代理公司综合实力排行盘点 - 起跑123
  • jgrasp:可视化编程利器,Java学习与调试的独特工具
  • 深度学习实战入门:72小时跑通端到端图像分类项目
  • 从零构建三维世界:COLMAP实战安装与场景重建全攻略
  • 2026东莞闲置黄金变现攻略|同城上门回收,报价公道透明 - 奢侈品回收测评
  • 2026上海黄金回收实地评测:收的顶当面验货,现场结算不拖延 - 奢侈品回收评测
  • 别踩雷!重庆CPA考生择校优先实地验证办学场地 - 云溪自乐
  • 军用航空电池:技术要求、应用场景及定制化解决方案【浩博电池】 - 锂电池大全
  • 飞机备用电池是什么?飞机备用电池类型、功能及应用解析【浩博电池】 - 锂电池大全
  • JMeter全流程压测实战:从脚本设计到瓶颈定位的完整避坑指南
  • EASY-HWID-SPOOFER:Windows内核级硬件信息伪装技术深度解析
  • 个人跨省寄快递怎么便宜?2026长途寄件最划算攻略 - 快递物流资讯
  • LEPA架构:解决遥感图像几何等变性的创新方法
  • pandas多维聚合实战:生产级分组与时间窗口计算
  • 每日热门skill:huashu-design:17000 Star 的AI设计神器,打字就能出交付级作品
  • 卖黄金如何守住最高价?2026 杭州反套路回收攻略,杜绝缺秤、压纯度、乱扣费 - 奢侈品回收评测