{
  "slug": "claude-code-skills-hooks",
  "url": "https://kelewrites.com/posts/claude-code-skills-hooks/",
  "title": "25% → 90%：别让 Skills 吃灰，把 Claude Code 当流水线来工程化",
  "subtitle": "Hooks 是纪律、Skills 是知识、Commands 是流程、Agents 是分工——四件套协同才能把激活率从 25% 抬到 90%",
  "summary": "Skills 写了一堆却只有 25% 的激活率，根因不是模型不聪明，而是缺一套强制评估的制度。本文复盘抓蛙师在一个企业级项目里跑通的 Claude Code 工程化方案——用 Hooks 做强制评估、用 Skills 做知识沉淀、用 Commands 做流程编排、用 Subagents 做专业分工，把激活率从 25% 拉到 90%。这是入门指南之后的工程化下半场。",
  "date": "2025-12-23",
  "updated": "",
  "tags": [
    "AI",
    "Agent",
    "工程方法"
  ],
  "series": "",
  "source": {
    "title": "25% → 90%！别让 Skills 吃灰：Hooks + Commands + Agents 协同激活 AI 全部能力：Claude Code 工程化实践",
    "url": "https://www.bilibili.com/video/BV1rnBKB2EME/"
  },
  "ai": {
    "summary": "Skills 写了一堆却只有 25% 的激活率，根因不是模型不聪明，而是缺一套强制评估的制度。本文复盘抓蛙师在一个企业级项目里跑通的 Claude Code 工程化方案——用 Hooks 做强制评估、用 Skills 做知识沉淀、用 Commands 做流程编排、用 Subagents 做专业分工，把激活率从 25% 拉到 90%。这是入门指南之后的工程化下半场。",
    "takeaways": [
      "Skills 写了一堆却只有 25% 的激活率，根因不是模型不聪明，而是缺一套强制评估的制度。本文复盘抓蛙师在一个企业级项目里跑通的 Claude Code 工程化方案——用 Hooks 做强制评估、用 Skills 做知识沉淀、用 Commands 做流程编排、用 Subagents 做专业分工，把激活率从 25% 拉到 90%。这是入门指南之后的工程化下半场。",
      "一、根因：不是模型不聪明，是制度缺位",
      "二、四件套：Hooks 是纪律，Skills 是知识，Commands 是流程，Agents 是分工",
      "三、落地：四个生命周期钩子串起完整闭环"
    ],
    "audience": [
      "正在做 AI Agent / 工程实践的工程师",
      "关心工程落地与系统设计的人"
    ],
    "quote": "一句话总结：Skills 写了不调用，不是模型蠢，是少了制度——用 Hooks 当纪律、Skills 当知识、Commands 当流程、Agents 当分工，四件套协同才能把激活率从 25% 抬到 90%。",
    "questions": [
      "这篇文章的核心结论是什么？",
      "根因：不是模型不聪明，是制度缺位是什么意思？",
      "四件套：Hooks 是纪律，Skills 是知识，Commands 是流程，Agents 是分工是什么意思？",
      "落地：四个生命周期钩子串起完整闭环到底讲了什么？"
    ],
    "citation": {
      "title": "25% → 90%：别让 Skills 吃灰，把 Claude Code 当流水线来工程化",
      "conclusion": "Skills 写了一堆却只有 25% 的激活率，根因不是模型不聪明，而是缺一套强制评估的制度。本文复盘抓蛙师在一个企业级项目里跑通的 Claude Code 工程化方案——用 Hooks 做强制评估、用 Skills 做知识沉淀、用 Commands 做流程编排、用 Subagents 做专业分工，把激活率从 25% 拉到 90%。这是入门指南之后的工程化下半场。",
      "points": [
        "一、根因：不是模型不聪明，是制度缺位",
        "二、四件套：Hooks 是纪律，Skills 是知识，Commands 是流程，Agents 是分工",
        "三、落地：四个生命周期钩子串起完整闭环"
      ],
      "quote": "一句话总结：Skills 写了不调用，不是模型蠢，是少了制度——用 Hooks 当纪律、Skills 当知识、Commands 当流程、Agents 当分工，四件套协同才能把激活率从 25% 抬到 90%。",
      "url": "https://kelewrites.com/posts/claude-code-skills-hooks/",
      "attribution": "kele · Article Share"
    }
  },
  "headings": [
    {
      "depth": 2,
      "text": "开场"
    },
    {
      "depth": 2,
      "text": "金字塔总览"
    },
    {
      "depth": 2,
      "text": "一、根因：不是模型不聪明，是制度缺位"
    },
    {
      "depth": 3,
      "text": "1.1 25% 这个数字怎么来的"
    },
    {
      "depth": 3,
      "text": "1.2 默认工作流的漏洞"
    },
    {
      "depth": 3,
      "text": "1.3 这是「能力」问题，还是「制度」问题"
    },
    {
      "depth": 2,
      "text": "二、四件套：Hooks 是纪律，Skills 是知识，Commands 是流程，Agents 是分工"
    },
    {
      "depth": 3,
      "text": "2.1 Hooks：纪律，把「可选参考」变成「必经之路」"
    },
    {
      "depth": 3,
      "text": "2.2 Skills：知识，把项目规范固化成岗位手册"
    },
    {
      "depth": 3,
      "text": "2.3 Commands：流程，把「最佳实践」编排成一键执行"
    },
    {
      "depth": 3,
      "text": "2.4 Subagents：分工，让独立子任务交给专业代理"
    },
    {
      "depth": 3,
      "text": "2.5 四件套的协作关系"
    },
    {
      "depth": 2,
      "text": "三、落地：四个生命周期钩子串起完整闭环"
    },
    {
      "depth": 3,
      "text": "3.1 SessionStart：开工先看项目状态"
    },
    {
      "depth": 3,
      "text": "3.2 UserPromptSubmit：强制技能评估（核心）"
    },
    {
      "depth": 3,
      "text": "3.3 PreToolUse：安全防护层"
    },
    {
      "depth": 3,
      "text": "3.4 Stop：收尾反馈与下一步建议"
    },
    {
      "depth": 3,
      "text": "3.5 四钩子的协同时序"
    },
    {
      "depth": 3,
      "text": "3.6 落地这套体系需要哪些文件"
    },
    {
      "depth": 2,
      "text": "一页速览"
    },
    {
      "depth": 2,
      "text": "一句话收束"
    }
  ],
  "text": "> **一句话总结**：Skills 写了不调用，不是模型蠢，是少了制度——用 **Hooks 当纪律、Skills 当知识、Commands 当流程、Agents 当分工**，四件套协同才能把激活率从 25% 抬到 90%。\n\n---\n\n## 开场\n\n你给 Claude Code 配了二十几个 Skills、写了五百页的项目规范，叮嘱它「四层架构必须用、`@RequestParam` 禁止出现」，结果它转头就给你来一个三层架构 + `@RequestParam`。你怀疑是模型变笨了，其实不是。\n\n抓蛙师在一个企业级项目里做过统计：**没有任何干预的情况下，AI 主动调用项目 Skills 的概率只有大约 25%**。也就是说，你精心写的项目规范，有 75% 的概率被它当成「可选参考」直接跳过。这就像你给员工发了本 500 页的开发手册，他从来不翻，全凭经验写代码——不是没能力，是没制度。\n\n问题的本质：默认的 Claude Code 工作流是「用户提问 → AI 直接回答」，Skills 只是可选挂件，调不调用全看模型「看起来需不需要」。而模型对「需不需要」的判断标准，从来不是「项目规范要求我必须这样做」。\n\n那么，怎么把 25% 抬到 90%？\n\n答案是一句话：**给 AI 套上一套四件套制度——Hooks 是纪律（强制评估）、Skills 是知识（岗位手册）、Commands 是流程（最佳实践编排）、Subagents 是分工（专业子任务）**。下面分三层展开。\n\n---\n\n## 金字塔总览\n\n---\n\n## 一、根因：不是模型不聪明，是制度缺位\n\n### 1.1 25% 这个数字怎么来的\n\n抓蛙师团队在 RuoYi-Plus-UniApp 项目上做过几周的实测统计：**在没有任何干预的情况下，AI 对项目 Skills 的主动调用率只有 25% 左右**。换句话说，你写了二十几个技能，绝大多数时间都在吃灰。\n\n更难受的不是「不用」，而是「视而不见」：你显式告诉它四层架构，它给你三层；你强调禁用 `@RequestParam`，它下一秒就来一个。这不是 AI 不够聪明，是它**患上了选择性失忆症**。\n\n### 1.2 默认工作流的漏洞\n\n打开默认的 Claude Code，工作流是这样的：\n\n| 阶段 | 默认行为 | 漏洞 |\n\n| 用户提问 | 直接进入回答 | Skills 没被强制检索 |\n| AI 思考 | 凭模型直觉判断 | 判断标准是「看起来需不需要」 |\n| Skills 调用 | 可选参考 | 项目规范沦为「装饰品」 |\n| 输出 | 凭训练经验生成 | 与项目规范脱节 |\n\n漏洞在于：**Skills 的地位是\"可选参考\"，不是\"必经之路\"**。模型在做判断时，对比的是「我的训练经验」和「这个项目的特殊规范」，前者总是更省力。\n\n### 1.3 这是「能力」问题，还是「制度」问题\n\n新员工聪明、能干、学过的东西多——但如果你不给他规章制度、不发岗位手册，他就只会按自己的理解乱来。AI 一模一样。\n\n> **金句**：AI 的能力从来不缺，缺的是把能力激发出来的制度。\n\n把根因看清楚，解决方案的方向就明了了：**不是再多写几条 Skills，而是在 Skills 之上加一层「强制评估」的纪律**。这正是 Hooks 该出场的地方。\n\n---\n\n## 二、四件套：Hooks 是纪律，Skills 是知识，Commands 是流程，Agents 是分工\n\n这套体系的核心洞察：四件套各管一段，**单独用都跛脚，串起来才能形成闭环**。下面逐个拆开。\n\n### 2.1 Hooks：纪律，把「可选参考」变成「必经之路」\n\nHooks 是钩子——挂在 Claude Code 生命周期的关键节点上，事件一触发就强制执行一段你定义的逻辑。它不是「建议 AI 怎么做」，而是「在 AI 开口之前先替它做完」。\n\n核心钩子是 `skill-force-eval.js`，挂在 `UserPromptSubmit` 事件上——**用户每次提交问题，钩子先跑**。它干三件事：\n**评估**：扫一遍可选的 Skills 列表，逐个判断「这个问题需不需要这项技能」。\n**激活**：把命中的 Skills 强制加载到上下文。\n**作答**：技能就位之后，AI 才开始动手实现。\n\n对比一下效果就明白了：\n\n| 阶段 | 优化前 | 优化后 |\n\n| 用户提问 | 直接生成代码 | 先输出技能评估清单 |\n| Skills | 偶尔自发调用 | 命中即强制激活 |\n| 输出 | 凭训练经验 | 基于项目规范 |\n| 激活率 | ~25% | **90%+** |\n\n为什么不是 100%？因为团队留了一个**逃生通道**：当用户输入斜杠命令（如 `/dev`、`/crud`），钩子会跳过评估、直接交给命令的预设流程——既保住常规问答的激活率，又不干扰命令的执行效率。\n\n### 2.2 Skills：知识，把项目规范固化成岗位手册\n\nHooks 解决了「会去翻手册」，但手册本身写得好不好是另一码事。抓蛙师团队设计了 **26 个专业 Skills**，覆盖六大领域：\n\n| 领域 | 代表 Skills |\n\n| 后端 | `crud-development`、`database-ops`、`controller-design` |\n| 前端 | `vue-component`、`element-plus-usage` |\n| 移动端 | `uniapp-page`、`h5-best-practice` |\n| 业务集成 | `payment-integration`、`wechat-mp` |\n| 质量 | `code-review`、`security-scan` |\n| 工程 | `brainstorm`、`architecture-design`、`tech-decision` |\n\n每个 Skill 都是一份针对该场景的「岗位手册」——四层架构怎么分、命名怎么起、哪些 API 禁用、模板怎么套。AI 一旦命中并激活，会**先把这份手册读一遍再动手**，生成的代码自然贴合项目风格。\n\n### 2.3 Commands：流程，把「最佳实践」编排成一键执行\n\nSkills 解决「知识储备」，Commands 解决「流程编排」。常用斜杠命令：\n\n| 命令 | 干什么 | 内嵌流程 |\n\n| `/dev` | 智能开发一个新功能 | 需求澄清 → 技术设计 → 数据库设计 → 后端 → 前端 → 测试 → 文档 |\n| `/crud` | 从一张数据库表生成四层架构 | 表结构读取 → DTO/Entity → Mapper → Service → Controller |\n| `/check` | 全站代码规范检查 | 规范扫描 → 风险分级 → 报告输出 |\n| `/todo` | 加待办事项 | 写入项目状态文件 |\n\nCommands 的价值不在「一键」，在「编排」——它把团队沉淀的最佳实践固化成可重复执行的步骤，新人也能按部就班跑出一致的产物。\n\n### 2.4 Subagents：分工，让独立子任务交给专业代理\n\n有些任务是相对独立的（代码审查、进度盘点），放在主对话里反而会污染上下文。这时候派给 Subagent，让它在隔离环境里跑完、把结果带回来就行。\n\n抓蛙师团队配了两个常用代理：**自动代码审查代理**和**项目进度管理代理**。当你说「帮我审一下刚写的代码」，主对话不会自己撸袖子去对照规范，而是调起子代理——子代理只关心代码变更、逐项检查、生成审查报告，主对话保持清爽。\n\n### 2.5 四件套的协作关系\n\n| 角色 | 比喻 | 解决的问题 |\n\n| **Hooks** | 纪律 | 在关键节点强制做正确的事 |\n| **Skills** | 知识 | 项目规范的固化与可学习 |\n| **Commands** | 流程 | 最佳实践的可重复编排 |\n| **Subagents** | 分工 | 独立子任务的专业隔离 |\n\n> **金句**：单用 Skills 只有 25% 激活率；四件套串起来，才有 90%。\n\n---\n\n## 三、落地：四个生命周期钩子串起完整闭环\n\n光有 `skill-force-eval` 还不够——AI 工作有完整的生命周期，每段都需要对应的钩子。团队最终配了四个：\n\n### 3.1 SessionStart：开工先看项目状态\n**触发时机**：每次启动 Claude Code 会话\n**干什么**：把项目当前状态、未完成 TODO、最近的提交摘要先拉到上下文\n**价值**：让 AI 一上来就知道「这个项目现在长什么样、上次干到哪儿」\n\n### 3.2 UserPromptSubmit：强制技能评估（核心）\n**触发时机**：用户每次提交问题\n**干什么**：扫描 Skills 库 → 命中即激活 → 加载完才允许 AI 作答\n**逃生通道**：检测到斜杠命令（如 `/dev`）则跳过评估、走命令流程\n\n### 3.3 PreToolUse：安全防护层\n**触发时机**：AI 即将执行 Bash 命令或写文件之前\n**干什么**：拦截危险操作——`rm -rf`、`drop database`、敏感数据表的写操作等\n**价值**：再也不用担心 AI 在「免授权模式」下把项目改坏\n\n### 3.4 Stop：收尾反馈与下一步建议\n**触发时机**：AI 回答完成\n**干什么**：播放完成音效 → 分析本次代码变更类型 → 智能推荐下一步操作 → 清理临时文件（比如 Windows 下误生成的 `nul` 文件）\n**价值**：把「完成」变成「闭环」，每一轮都有明确的下一步\n\n### 3.5 四钩子的协同时序\n\n### 3.6 落地这套体系需要哪些文件\n\n最小可用清单：\n\n| 文件 | 作用 |\n\n| `.claude/settings.json` | 钩子、权限、MCP 配置入口 |\n| `.claude/hooks/*.js` | 四个生命周期钩子的实现 |\n| `.claude/skills/*` | 26 个专业 Skills 目录 |\n| `.claude/commands/*` | 斜杠命令定义 |\n| `.claude/agents/*` | 子代理配置 |\n| `CLAUDE.md` | 项目根上下文 |\n\n把这些文件准备好，新成员克隆下来就能直接获得「90% 激活率」的工程化体验——**知识不再口口相传，全部固化在仓库里**。\n\n> **金句**：好的 AI 工程化，是让规范跟代码一起进 Git，让 AI 加载就能复用。\n\n---\n\n## 一页速览\n\n| 层级 | 内容 | 一句话核心 |\n\n| **核心结论** | 25% → 90% 不靠模型升级 | 靠四件套协同的制度化激活 |\n| **主论点一** | 根因 | Skills 是「可选参考」，AI 凭直觉判断，75% 被忽略 |\n| 1.1 | 数据 | 实测主动调用率约 25% |\n| 1.2 | 漏洞 | 默认工作流缺一道强制评估 |\n| 1.3 | 定性 | 不是能力问题，是制度问题 |\n| **主论点二** | 四件套 | 各管一段，串成闭环 |\n| 2.1 | Hooks | 纪律——把可选变必经 |\n| 2.2 | Skills | 知识——项目规范固化 |\n| 2.3 | Commands | 流程——最佳实践一键编排 |\n| 2.4 | Subagents | 分工——独立子任务隔离 |\n| 2.5 | 协作 | 单独都跛脚，串起来才闭环 |\n| **主论点三** | 四个生命周期钩子 | 覆盖开工到收尾的完整链路 |\n| 3.1 | SessionStart | 开工先看项目状态 |\n| 3.2 | UserPromptSubmit | 强制技能评估（核心） |\n| 3.3 | PreToolUse | 安全防护层 |\n| 3.4 | Stop | 收尾反馈 + 下一步 |\n| 3.5 | 时序 | 状态 → 评估 → 执行 → 拦截 → 收尾 |\n| 3.6 | 文件 | settings/hooks/skills/commands/agents + CLAUDE.md |\n\n---\n\n## 一句话收束\n\n> **AI 的能力需要制度来激发——Hooks 是纪律，Skills 是知识，Commands 是流程，Agents 是分工，缺一件都跑不到 90%。**"
}
