Files
ai-proj-helper/hooks
John Qiu e5805cbb51 feat: P1-10/12/13/14 风险扫描 + 粒度判断 + Issue 集成 + PRD 校验 (REQ-20260416-0017)
P1-10: pm-risk skill — 三维度风险扫描
  需求层: 停滞/草稿滞留/开发无提交/测试超期/批准未开发
  代码层: 未合并分支/频繁修复文件/提交频率下降
  流程层: 跳过评审/PR 无 review/测试门禁跳过/直接推 main
  三级风险: 🔴 严重 / 🟡 警告 / 🔵 提示

P1-12: req-prd 需求粒度 AI 判断
  创建前启发式检查:标题过宽建议拆分、过窄建议合并或改 task
  粒度参考表 + 已有需求扩展决策表 + 前后端拆分规则

P1-13: dev-commit issue 集成规范
  分支名 -iN 后缀传递 issue 编号
  commit message 自动追加 closes #N

P1-14: hooks/validate-prd.sh — PRD 章节校验
  PostToolUse hook 自动检查 10 个必需章节
  缺失时给出明确提示

marketplace: 48 → 49 plugins (新增 pm-risk-plugin)
2026-04-19 13:33:26 +09:30
..

Claude Code Hooks

本目录包含 ai-proj-helper 体系的 Claude Code 钩子脚本。

REQ-20260416-0017 P0 批 — 源自 devflow-claude 借鉴

脚本清单

脚本 事件 作用
session-context.sh SessionStart 从分支名解析 REQ-ID注入需求上下文到会话
pre-tool-confirm.sh PreToolUse (Bash) 拦截生产发布、force push、docker 生产容器、reset --hard 等危险操作

安装(用户级,一次即可)

方式 1编辑 ~/.claude/settings.json

{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "/Users/donglinlai/coding/qiudl/ai-proj-helper/hooks/session-context.sh",
            "timeout": 10
          }
        ]
      }
    ],
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "/Users/donglinlai/coding/qiudl/ai-proj-helper/hooks/pre-tool-confirm.sh",
            "timeout": 30
          }
        ]
      }
    ]
  }
}

方式 2一键安装脚本

bash /Users/donglinlai/coding/qiudl/ai-proj-helper/hooks/install.sh

验证

SessionStart hook

  1. 切到一个带 REQ-ID 的分支:git checkout feat/REQ-20260416-0017-xxx
  2. 打开新的 Claude Code 会话
  3. 会话开头应看到 # 需求上下文SessionStart Hook

PreToolUse hook

让 AI 尝试执行这些命令中的任一条,应弹出原生确认对话框:

  • git push origin main
  • git push --force
  • tea pr merge --base main
  • docker rm ai_postgres_prod
  • git reset --hard

依赖

  • bash (macOS / Linux 默认)
  • jq (PreToolUse hook 需要,brew install jq)
  • python3 (SessionStart hook 解析 JSON)
  • curl (SessionStart hook 调 MCP API)

自定义

修改 MCP API 地址

在项目根目录创建 .ai-proj-env

export AI_PROJ_API_BASE="https://api.ai-proj.example.com"
export AI_PROJ_MCP_KEY="your-mcp-api-key"

或设置全局环境变量。

拦截更多命令

编辑 pre-tool-confirm.sh,在 REASON 赋值的 elif 链中增加规则。

设计原则

  1. 快速失败退出:不处理的命令立即 exit 0,不影响性能
  2. 非侵入性:网络/依赖缺失时静默退出,不阻塞正常工作流
  3. 可复现hook 脚本跟随仓库分发,方便团队一致部署