Samples
按复杂度级别组织的实用钩子示例 - 从初学者到高级模式
如何使用这些示例
初学者示例
1. 项目类型检测
#!/usr/bin/env bash
# 项目类型检测钩子
#
# 概述:在任务开始时自动检测项目类型,并将相关的
# 编码标准和最佳实践注入到 AI 上下文中。这有助于 Cline 理解
# 你的项目结构并从一开始应用适当的约定。
#
# 演示:基本的钩子输入/输出、文件系统检查、条件逻辑,
# 以及引导 AI 行为的上下文注入。
input=$(cat)
# 读取基本 JSON 结构并检测项目类型
context=""
# 检查不同的项目指示器
if [[ -f "package.json" ]]; then
if grep -q "react" package.json; then
context="PROJECT_TYPE: 检测到 React 应用程序。遵循基于组件的架构并使用函数组件。"
elif grep -q "express" package.json; then
context="PROJECT_TYPE: 检测到 Express.js API。遵循 RESTful 模式和适当的中间件结构。"
else
context="PROJECT_TYPE: 检测到 Node.js 项目。使用适当的 npm 脚本和依赖管理。"
fi
elif [[ -f "requirements.txt" ]] || [[ -f "pyproject.toml" ]]; then
context="PROJECT_TYPE: 检测到 Python 项目。遵循 PEP 8 标准并使用虚拟环境。"
elif [[ -f "Cargo.toml" ]]; then
context="PROJECT_TYPE: 检测到 Rust 项目。遵循 Rust 约定并使用适当的错误处理。"
elif [[ -f "go.mod" ]]; then
context="PROJECT_TYPE: 检测到 Go 项目。遵循 Go 约定并使用适当的包结构。"
fi
# 返回上下文以引导 Cline 的行为
if [[ -n "$context" ]]; then
jq -n --arg ctx "$context" '{"cancel": false, "contextModification": $ctx}'
else
echo '{"cancel": false}'
fi2. 文件扩展名验证器
3. 基本性能监控器
中级示例
4. 使用 Linting 进行代码质量检查
5. 安全扫描器
6. Git 工作流助手
高级示例
7. 综合任务生命周期管理器
8. 智能用户输入增强器
9. 多服务集成中心
使用提示
运行多个钩子
环境配置
测试你的钩子
Last updated