钩子管理

概述

有效的钩子管理确保您的自动化工作流程在项目增长过程中保持有序、可维护和高效。Kiro 提供了完整的钩子管理界面,让您能够轻松控制所有自动化任务。

管理界面

访问钩子管理

通过 Kiro 面板中的代理钩子部分访问钩子管理功能:

  1. 打开 Kiro 侧边面板
  2. 导航到”代理钩子”选项卡
  3. 查看所有已配置的钩子列表
  4. 点击任意钩子进行详细管理

管理面板布局

钩子列表视图

  • 钩子名称 - 显示钩子的描述性名称
  • 状态指示器 - 显示启用/禁用状态
  • 触发器类型 - 显示钩子的触发条件
  • 快速操作按钮 - 启用/禁用和运行按钮

钩子详情视图

  • 配置编辑器 - 修改钩子设置
  • 执行历史 - 查看钩子运行记录
  • 性能指标 - 监控执行时间和成功率
  • 错误日志 - 诊断和调试信息

核心管理操作

1. 启用和禁用钩子

快速切换

方法一:列表视图快速切换

  • 在代理钩子面板中找到目标钩子
  • 点击钩子名称旁的眼睛图标
  • 立即启用或禁用钩子

方法二:详细视图切换

  • 选择钩子进入详情视图
  • 使用右上角的**“钩子启用”开关**
  • 更改立即生效

批量操作

# 批量禁用开发环境钩子
development_hooks:
  - auto_formatter: disabled
  - lint_checker: disabled
  - test_runner: disabled

# 批量启用生产环境钩子
production_hooks:
  - security_scanner: enabled
  - performance_monitor: enabled
  - backup_generator: enabled

2. 编辑钩子配置

修改基本设置

可随时更新钩子配置:

触发器设置

  • 更改触发条件(文件保存、Git 提交等)
  • 调整触发频率
  • 设置触发延迟

文件模式匹配

  • 修改目标文件类型
  • 调整目录范围
  • 精确化匹配规则

执行指令

  • 更新 AI 指令内容
  • 添加新的处理步骤
  • 优化指令表达

配置示例

name: "代码格式化器"
trigger: onSave
filePattern: "src/**/*.{js,ts,jsx,tsx}"
instructions: |
  1. 检查代码格式是否符合项目标准
  2. 自动修复 ESLint 错误
  3. 应用 Prettier 格式化
  4. 确保导入语句有序
description: "自动格式化 JavaScript/TypeScript 文件"
enabled: true

实时更新

  • 所有配置更改立即生效
  • 无需重启或重新加载
  • 下次触发时使用新配置

3. 删除钩子

删除步骤

  1. 在代理钩子面板中选择目标钩子
  2. 在钩子详情视图底部找到**“删除钩子”**按钮
  3. 点击删除按钮
  4. 确认删除操作

重要提醒

⚠️ 删除操作无法撤销

  • 删除前请确认钩子不再需要
  • 考虑先禁用钩子而非直接删除
  • 备份重要的钩子配置

安全删除最佳实践

# 删除前的检查清单
pre_deletion_checklist:
  - 确认钩子功能已被其他方式替代
  - 检查是否有其他钩子依赖此钩子
  - 备份钩子配置以备将来使用
  - 通知团队成员钩子将被删除

4. 手动触发钩子

快速运行

方法一:列表快速运行

  • 在钩子列表中找到目标钩子
  • 点击钩子名称旁的播放按钮 (▷)
  • 钩子立即执行

方法二:详情视图运行

  • 进入钩子详情视图
  • 点击右上角的**“开始钩子”**按钮
  • 监控执行过程和结果

手动触发场景

# 适合手动触发的钩子类型
manual_trigger_scenarios:
  documentation_generator:
    - 项目里程碑完成时
    - 重大功能发布前
    - 文档审查周期
  
  dependency_analyzer:
    - 每周安全检查
    - 依赖更新前评估
    - 许可证合规审查
  
  performance_profiler:
    - 性能基准测试
    - 发布前性能验证
    - 优化效果评估

高级管理功能

钩子组织

分类管理

# 按功能分类
categories:
  development:
    - code_formatter
    - lint_checker
    - test_runner
  
  security:
    - vulnerability_scanner
    - secret_detector
    - compliance_checker
  
  deployment:
    - build_optimizer
    - asset_minifier
    - deployment_validator

优先级设置

# 执行优先级配置
execution_priority:
  high:
    - security_scanner
    - critical_error_handler
  
  medium:
    - code_formatter
    - documentation_generator
  
  low:
    - performance_logger
    - usage_tracker

条件执行

环境特定钩子

# 环境条件配置
environment_conditions:
  development:
    enabled_hooks:
      - auto_formatter
      - test_runner
      - debug_logger
  
  production:
    enabled_hooks:
      - security_scanner
      - performance_monitor
      - error_reporter
    disabled_hooks:
      - debug_logger
      - experimental_features

分支特定配置

# Git 分支条件
branch_conditions:
  main:
    strict_mode: true
    required_hooks:
      - security_scanner
      - test_suite
      - documentation_checker
  
  develop:
    strict_mode: false
    optional_hooks:
      - code_formatter
      - lint_checker
  
  feature/*:
    experimental: true
    allowed_hooks:
      - all

监控和分析

执行历史

# 钩子执行记录
execution_history:
  hook_name: "auto_formatter"
  executions:
    - timestamp: "2025-07-21T10:30:00Z"
      duration: "1.2s"
      status: "success"
      files_processed: 5
    
    - timestamp: "2025-07-21T11:15:00Z"
      duration: "0.8s"
      status: "success"
      files_processed: 2

性能指标

# 性能监控数据
performance_metrics:
  average_execution_time: "1.1s"
  success_rate: "98.5%"
  total_executions: 1247
  failed_executions: 18
  most_common_failure: "timeout"

错误跟踪

# 错误日志示例
error_tracking:
  recent_errors:
    - timestamp: "2025-07-21T09:45:00Z"
      error_type: "FileNotFound"
      message: "Target file src/utils.js not found"
      resolution: "File was deleted, hook updated"
    
    - timestamp: "2025-07-21T08:30:00Z"
      error_type: "SyntaxError"
      message: "Invalid JSON in config file"
      resolution: "Config file corrected"

团队协作管理

共享钩子配置

版本控制集成

# .kiro/hooks.yml - 项目钩子配置
shared_hooks:
  team_standards:
    code_formatter:
      trigger: onSave
      filePattern: "**/*.{js,ts}"
      instructions: "Apply team coding standards"
    
    commit_validator:
      trigger: preCommit
      instructions: "Validate commit message format"

团队模板

# 团队钩子模板
team_templates:
  frontend_developer:
    - react_component_validator
    - css_linter
    - accessibility_checker
  
  backend_developer:
    - api_validator
    - database_migration_checker
    - security_scanner
  
  devops_engineer:
    - deployment_validator
    - infrastructure_checker
    - monitoring_setup

权限管理

角色基础权限

# 钩子权限配置
permissions:
  admin:
    - create_hooks
    - delete_hooks
    - modify_all_hooks
    - manage_team_hooks
  
  developer:
    - create_personal_hooks
    - modify_own_hooks
    - use_team_hooks
  
  reviewer:
    - view_hooks
    - run_validation_hooks
    - view_execution_history

最佳实践

组织策略

命名约定

# 清晰的钩子命名
naming_conventions:
  format: "{category}_{action}_{target}"
  examples:
    - "security_scan_secrets"
    - "format_code_javascript"
    - "test_run_unit"
    - "docs_generate_api"

描述规范

# 描述性文档
documentation_standards:
  required_fields:
    - purpose: "钩子的主要功能"
    - trigger_conditions: "何时触发"
    - expected_outcomes: "预期结果"
    - dependencies: "依赖的工具或文件"
    - maintenance_notes: "维护说明"

性能优化

执行效率

  • 使用精确的文件模式避免不必要的触发
  • 优化指令内容减少处理时间
  • 定期清理不再使用的钩子
  • 监控钩子执行时间和资源使用

资源管理

# 资源使用优化
resource_optimization:
  concurrent_execution_limit: 3
  timeout_settings:
    default: 30s
    heavy_operations: 300s
  
  memory_management:
    max_memory_per_hook: "512MB"
    cleanup_interval: "1h"

维护流程

定期审查

  • 每周: 检查钩子执行状态和错误日志
  • 每月: 评估钩子效果和性能指标
  • 每季度: 更新钩子配置适应项目变化
  • 每年: 全面审查钩子架构和策略

更新策略

# 钩子更新流程
update_workflow:
  1. 备份当前配置
  2. 在测试环境验证更改
  3. 逐步部署到生产环境
  4. 监控更改效果
  5. 必要时回滚更改

页面最后更新:2025年7月21日