2026 如何养好 Claude Code(二):插件生态深度实践

系列导航



开篇:从工具到生态的升级

上一篇我们聊了养好 Claude Code 的基础心法——配置、规范和习惯。但如果只停留在"用得好"的层面,你的 Claude 仍然是一个单机工具。

真正的进阶,是把 Claude Code 升级成一个智能协作平台

插件生态就是这道分水岭。通过 Memory 插件,Claude 获得了持久记忆;通过 Hookify,它学会了自我约束;通过 Planning with Files,它掌握了复杂任务管理。三者联动,你的 Claude 从"听话的助手"进化成"懂你的伙伴"。

本文将深入三大核心插件的实战配置,助你打造专属的 Claude Code 工作流。


配置层级:插件生效的基础

在深入插件之前,必须理解 Claude Code 的配置层级设计。这是所有配置生效的基础。

生活类比

配置层级就像公司的制度层级

  ┌─────────────────────────────────────────────────┐
  │  Local Settings(本机私有)                       │  ← 你的个人习惯
  │  "我习惯用深色主题"                                │     最高优先级
  ├─────────────────────────────────────────────────┤
  │  Project Settings(团队共享)                     │  ← 部门规范
  │  "我们项目用 2 空格缩进"                           │     覆盖个人习惯
  ├─────────────────────────────────────────────────┤
  │  User Settings(全局默认)                        │  ← 公司通用规定
  │  "全员使用 TypeScript"                           │     最底层,可被覆盖
  └─────────────────────────────────────────────────┘

合并规则(一句话记住)

  • 数组:合并并去重(大家的东西都要)
  • 非数组:高层级覆盖低层级(听直属领导的)
// 三个层级都配了插件
// User: ["memory", "hookify"]        ← 全局默认
// Project: ["planning-with-files"]   ← 项目加一个
// Local: ["memory"]                  ← 本机再加(去重)
// 最终生效:["memory", "hookify", "planning-with-files"]

配置放哪里?

配置类型 放哪一层 原因
通用插件(Memory、Hookify) User 所有项目都可用
项目专属 Skills Project 团队共享
API Key、密钥 Local 安全,不会提交

设计原理

为什么这样设计?

  1. 团队协作:Project 配置提交到 Git,团队成员自动获得一致的行为
  2. 个人偏好:User 配置保留个人习惯,不影响团队
  3. 安全隔离:Local 配置存储敏感信息(API Key),不会意外提交

最佳实践

配置类型 放在哪一层 原因
通用插件(Memory、Hookify) User 所有项目都可用
项目专属 Skills Project 团队共享,保持一致
API Key、密钥 Local 安全,不会提交
团队规范(代码风格、工作流) Project CLAUDE.md 新成员自动获得

Memory 插件:让 Claude 拥有持久记忆

生活类比

  • 没有 Memory:每次对话都像初次见面的陌生人,要重新介绍自己
  • 有了 Memory:Claude 记住了你的偏好,像老朋友一样了解你的习惯
  无Memory                           有Memory
  ┌──────────────┐                 ┌──────────────┐
  │  对话1        │                 │  对话1       │
  │  "我喜欢TS"   │                 │  "我喜欢TS"   │
  └──────────────┘                 └──────┬───────┘
         ↓                                ↓
  ┌──────────────┐                 ┌──────────────┐
  │  对话2        │                 │  对话2        │
  │  "你是谁?"    │                 │  "基于你的    │
  │  (忘记一切)    │                 │   TS偏好..." │
  └──────────────┘                 └──────────────┘

选型对比:Ensue vs Claude Mem

市面上的 Memory 插件不少,目前最成熟的两款是 Ensue Memory NetworkClaude Mem

工具地址

核心差异如下:

维度 Ensue Memory Network Claude Mem
存储方式 云端 API(跨设备同步) 本地文件(离线可用)
搜索能力 语义向量搜索 + 时间线 索引搜索 + 3层过滤
Token 优化 自动批量处理 3层工作流节省 87%
依赖 仅需 curl + jq 需要 Bun 运行时
体积 436 KB 3.8 MB
适用场景 多设备、长期知识积累 隐私敏感、离线环境

具体功能对比:

选型建议

  • 需要跨设备同步 + 语义搜索 → 选择 Ensue
  • 需要数据隐私 + 离线工作 → 选择 Claude Mem

核心特性速览

插件 独特功能
Ensue discover_memories 语义搜索、Research Agent 自主研究、Hypergraph 知识图谱可视化
Claude Mem 34 种多语言模式、/do 子代理编排、/make-plan 阶段式计划生成

Ensue Memory Network 配置实战

# Step 1: 安装插件
/plugin marketplace add https://github.com/mutable-state-inc/ensue-skill
/plugin install ensue-memory

# Step 2: 配置环境变量(放在 Local 层级!)
# ~/.claude/settings.local.json
{
  "env": {
    "ENSUE_API_KEY": "your-api-key-here"
  }
}

# Step 3: 重启 Claude Code

核心命名空间设计

preferences/          # 用户偏好
  coding/             # 代码风格、模式
  communication/      # 交互方式

projects/             # 项目知识
  acme/               # 具体项目
    architecture/     # 架构决策
    conventions/      # 项目规范

research/             # 研究积累
  gpu-inference/      # 领域知识

使用示例

# 存储偏好
"remember 我偏好的技术栈是 React + PostgreSQL"

# 跨会话检索(7天后)
"基于我的技术偏好,推荐最佳实践"
# Ensue 自动检索历史偏好并应用

Claude Mem 3层工作流

graph LR
    A[Step 1: search] -->|获取索引 + IDs| B[Step 2: timeline]
    B -->|获取上下文| C[Step 3: get_observations]
    C -->|仅获取过滤后的详情| D[完整信息]

Token 节省原理:先搜索索引(50-100 tokens/result),再获取上下文,最后只拉取需要的完整详情。相比传统全量返回,节省 87% Token

实战:跨会话技术决策复用

场景:你在 Session A 做了技术选型决策,3 天后 Session B 需要基于同一决策继续开发。Memory 让决策跨越会话边界。

痛点:没有 Memory 时,每次新会话都要重新解释"为什么选 A 不选 B",Claude 可能给出不一致的建议。

sequenceDiagram
    participant U as 用户
    participant C as Claude Code
    participant M as Memory

    rect rgb(240, 248, 255)
        Note over U,M: Session A(3月15日):技术选型
        U->>C: 认证系统用什么方案?
        C->>M: search("auth decisions")
        M-->>C: 无历史记录
        C->>U: 建议 JWT + refresh token(理由:无状态、可扩展)
        U->>C: 确认,记住这个决策
        C->>M: store("auth: 选用 JWT + refresh token,弃用 Session")
    end

    rect rgb(255, 248, 240)
        Note over U,M: Session B(3月18日):继续开发
        U->>C: 帮我实现 token 刷新逻辑
        C->>M: search("auth decisions")
        M-->>C: 找到:auth: JWT + refresh token
        C->>U: 基于之前选定的 JWT 方案,实现 refresh token 逻辑...
        Note over C: 自动遵循 Session A 的决策,无需重新讨论
    end

    rect rgb(240, 255, 240)
        Note over U,M: Session C(3月25日):新人提问
        U->>C: 为什么用 JWT 而不是 Session?
        C->>M: search("auth decisions")
        M-->>C: 找到:弃用 Session 的决策记录
        C->>U: 因为3月15日的选型决策:JWT 无状态、可扩展...
    end

操作流程

Step 1 — 存储决策(Session A)

# 方式1:显式存储(推荐)
"remember 本项目认证方案:JWT + refresh token,弃用 Session-based,\
原因:无状态、水平扩展友好、团队熟悉度高"

# 方式2:Ensue 命名空间存储(结构化)
"存储到 preferences/auth:选择 JWT,access_token 有效期 15min,\
refresh_token 有效期 7d,使用 bcrypt 哈希密码"

Step 2 — 跨会话复用(Session B)

# 新会话中,Claude 自动检索相关记忆
"帮我实现 token 刷新逻辑"

# Claude 自动执行:
# 1. search("auth" 或 "token") → 找到 Session A 的决策
# 2. 基于 JWT + refresh token 方案实现
# 3. 参数与 Session A 一致(15min / 7d)

Step 3 — 决策回溯(Session C)

# 新同事提问,Claude 能给出与历史一致的回答
"为什么不用 Session?"
# Claude 检索到历史决策记录,给出一致的理由

关键技巧

技巧 做法 效果
命名空间隔离 项目/领域 分(如 auth/payment/ 避免不同项目记忆混淆
决策必须显式存储 关键决策用 remember 存储 不依赖 Claude 的"自动记忆"
记录弃用原因 不仅记"选了什么",还记"弃了什么、为什么" 避免后续重复讨论已否决的方案
定期清理 过时决策用 delete_memory 移除 避免旧决策干扰新方案
会议纪要入库 团队会议后,将决策批量写入 Memory 团队共识自动成为 Claude 的参考

Hookify 插件:为 Claude 装上"刹车系统"

先理解:什么是 Hook?

Hook(钩子)是 Claude Code 在会话的关键节点自动触发的拦截机制。

工作原理:当特定事件发生时,Claude Code 会把事件上下文(JSON 格式)传给钩子处理程序。处理程序检查输入、执行逻辑,然后决定放行还是拦截。

触发频率:有些事件每会话只触发一次(如 SessionStart),有些会在代理循环中反复触发(如 PreToolUse)。

下图为 hook 在 session 会话中的生命周期流程图:

具体各节点含义如下表

事件 触发时机
SessionStart 会话开始或恢复时
UserPromptSubmit 当你提交提示时,在 Claude 处理它之前
PreToolUse 在工具调用执行之前。可以阻止它。
PermissionRequest 当出现权限对话框时
PostToolUse 工具调用成功后
PostToolUseFailure 工具调用失败后
Notification 当 Claude Code 发送通知时
SubagentStart 当生成子代理时
SubagentStop 当子代理人完成
Stop 当Claude回答完毕
TeammateIdle 当一名Agent团队成员即将进入空闲状态时
TaskCompleted 当一项任务被标记为已完成时
InstructionsLoaded 当 CLAUDE.md 或其他.claude/rules/*.md文件加载到上下文中时触发。在会话开始时以及会话期间延迟加载文件时触发。
ConfigChange 当会话期间配置文件发生更改时
WorktreeCreate --worktree当通过 git create-worktree git create-worktree 创建工作树时,isolation: "worktree"会替换默认的 Git 行为。
WorktreeRemove 当工作树被移除时,无论是在会话退出时还是在子代理完成时。
PreCompact 上下文压缩之前
PostCompact 上下文压缩完成后
Elicitation 当 MCP 服务器在工具调用期间请求用户输入时
ElicitationResult 用户响应 MCP 请求后,在响应发送回服务器之前。
SessionEnd 会话终止时

从 Hook 到 Hookify:降低使用门槛

Hook 是 Claude Code 的原生机制,功能强大但有门槛——你需要编写 Shell 脚本或 JSON 配置来定义规则。

这就好比:你想装一个门禁系统,但得自己接线、写控制程序。

Hookify 应运而生——它把复杂的 Hook 逻辑封装起来,让你用 Markdown + YAML 就能定义规则,无需写代码。

回到上面的比喻:Hookify 就像买了一个成品门禁,你只需要填几张配置卡(规则文件),刷一下就能用。

一句话总结:Hook 是底层能力,Hookify 是易用工具。你不需要懂 Hook 的原理,只要会用 Hookify 就够了。

Hookify:用 Markdown 写规则,不用写代码

GitHub: claude-code-plugins/hookify

生活类比

  • Hookify 就像公司门口的保安
  • 你要进大楼?保安检查你的证件
  • 你要执行危险命令?Hookify 拦下来问一句:“你确定吗?”
  用户操作 → Hookify 检查 → 结果
     │            │          │
     │      ┌─────┴─────┐    │
     │      │           │    │
     │   匹配规则?   不匹配   │
     │      │           │    │
     │   ┌──┴──┐        │    │
     │ block warn       │    │
     │   │    │         │    │
     ↓   ↓    ↓         ↓    ↓
  [阻止] [警告] [警告] [放行] [放行]

Hookify 把复杂的钩子逻辑封装成 Markdown + YAML 格式,让你无需写代码就能定义行为规则。

配置层级与 Hookify

Hookify 钩子文件同样遵循三层架构

层级 路径 用途
User ~/.claude/hooks/*.md 全局通用规则(危险命令拦截)
Project <project>/.claude/hooks/*.md 项目专属规则(敏感文件保护)
Local <project>/.claude/hooks.local/*.md 本地临时规则(调试用)

合并规则:所有层级的钩子都会生效,按层级顺序检查。

核心概念

---
name: rule-name
enabled: true
event: bash|file|stop|prompt
pattern: regex-pattern
action: warn|block
---

警告/阻止消息内容

5 大场景钩子配置

1. 危险命令拦截(block)- User 层级

# ~/.claude/hooks/block-dangerous-rm.md
---
name: block-dangerous-rm
enabled: true
event: bash
pattern: rm\s+-rf\s+.*(/|~)
action: block
---

检测到危险的 rm -rf 命令!

该命令可能删除整个目录或用户主目录,已被阻止。

**替代方案**:
- 使用 `rm -ri` 进行交互式删除
- 先用 `ls` 确认目录内容

2. 硬编码密钥防护(block)- Project 层级

# <project>/.claude/hooks/block-hardcoded-secrets.md
---
name: block-hardcoded-secrets
enabled: true
event: file
conditions:
  - field: new_text
    operator: regex_match
    pattern: (API_KEY|SECRET|TOKEN|PASSWORD)\s*[=:]\s*["'][A-Za-z0-9_\-]{16,}
action: block
---

检测到硬编码的敏感信息!

**安全风险**: 密钥可能被提交到版本控制

**正确做法**: 使用环境变量

3. 调试代码警告(warn)- Project 层级

# <project>/.claude/hooks/warn-console-log.md
---
name: warn-console-log
enabled: true
event: file
conditions:
  - field: file_path
    operator: regex_match
    pattern: \.(ts|js|tsx|jsx)$
  - field: new_text
    operator: regex_match
    pattern: console\.(log|debug|info)\(
action: warn
---

检测到 console.log 调试代码

提交前记得删除调试语句。

4. 强制推送拦截(block)- User 层级

# ~/.claude/hooks/block-force-push.md
---
name: block-force-push
enabled: true
event: bash
pattern: git\s+push\s+.*(-f|--force)
action: block
---

强制推送已被阻止!

使用 `git push --force-with-lease` 更安全。

5. 完成前测试验证(block)- 按需启用

# <project>/.claude/hooks/require-tests.md
---
name: require-tests
enabled: false  # 按需启用
event: stop
conditions:
  - field: transcript
    operator: not_contains
    pattern: npm test|pytest|cargo test
action: block
---

未检测到测试运行!

停止前请运行测试验证更改。

事件类型速查

事件 触发时机 典型场景
bash Bash 命令执行 危险命令、权限操作
file 文件编辑操作 敏感文件、调试代码
stop Claude 想停止时 完成验证、测试检查
prompt 用户提交提示时 意图验证、确认操作

Planning with Files:Manus 风格的持久化规划

GitHub: OthmanAdi/planning-with-files

这据说是 Meta 以 20 亿美元收购 Manus 背后的工作流模式。

生活类比

  • 没有 Planning:Claude 像没有笔记本的学生,做到哪忘到哪
  • 有了 Planning:Claude 像有项目管理办公室的团队,进度一目了然
  传统方式                         Planning方式
  ┌──────────────┐                 ┌──────────────┐
  │  任务在脑子里  │                 │  task_plan   │
  │  容易忘记     │                 │  ✓ 已完成    │
  │  难以追溯     │                 │  ○ 待办      │
  └──────────────┘                 └──────────────┘
         ↓                                ↓
  会话结束 → 全部丢失             会话中断 → 从复选框继续

核心思想:文件系统即记忆

安装

/plugin marketplace add OthmanAdi/planning-with-files
/plugin install planning-with-files@planning-with-files

# 使用
/plan

三文件结构

+===============================================================+
|                      .planning-work/                          |
+===============================================================+
|                                                               |
|   +-------------------+       +-------------------+           |
|   |   task_plan.md    |       |   findings.md     |           |
|   +-------------------+       +-------------------+           |
|   | 任务计划           |       | 研究发现           |           |
|   | + 进度复选框       |       | + 知识积累         |           |
|   +-------------------+       +-------------------+           |
|                                                               |
|   +-------------------+                                       |
|   |   progress.md     |                                       |
|   +-------------------+                                       |
|   | 会话日志           |                                       |
|   | + 测试结果         |                                       |
|   +-------------------+                                       |
|                                                               |
+===============================================================+

task_plan.md - 任务计划

# 构建用户认证系统

## 阶段 1: 设计
- [x] 分析需求文档
- [x] 设计数据模型
- [ ] 定义 API 端点

## 阶段 2: 实现
- [ ] 实现认证逻辑
- [ ] 添加密码加密
- [ ] 编写单元测试

## 错误日志
- [2026-03-15] bcrypt 版本冲突 → 升级到 5.1.0

findings.md - 研究发现

# 研究发现

## 技术决策
- **加密库**: bcrypt(成熟、安全)
- **Token**: JWT + refresh token
- **存储**: Redis 缓存 session

## 最佳实践
- 密码强度校验使用 zod schema
- 登录失败限流:5次/分钟

progress.md - 会话日志

# 会话日志

## Session 1: 2026-03-15 14:30
### 完成
- 项目初始化
- Prisma schema 设计

### 测试
- 密码加密测试: 通过
- Token 生成测试: 待运行

核心规则

  1. 创建计划优先 — 永远不要在没有 task_plan.md 的情况下开始
  2. 2-Action 规则 — 每 2 次操作后保存发现到 findings.md
  3. 记录所有错误 — 避免重复踩坑
  4. 会话恢复 — 中断后从复选框继续

适用场景

适合 不适合
多步骤任务(3+ 步) 简单问答
研究分析任务 单文件编辑
长期项目追踪 快速查找

插件组合拳:Memory + Hookify + Planning 联动

联动场景:构建生产级 API

graph TB
    A[用户: 构建支付 API] --> B[Planning: 创建 task_plan.md]
    B --> C[Memory: 检索历史支付系统设计]
    C --> D[Hookify: 拦截硬编码密钥]
    D --> E[实现阶段]
    E --> F[Hookify: 验证测试运行]
    F --> G[Planning: 更新进度复选框]
    G --> H[Memory: 存储架构决策]

实战配置

1. Memory 负责知识积累

# 存储项目偏好
"remember 本项目使用 Stripe 支付,货币单位为分"

# 后续会话自动检索
"基于之前的支付方案,添加退款功能"

2. Hookify 负责安全门禁

# 支付相关敏感文件保护
---
name: protect-payment-files
enabled: true
event: file
conditions:
  - field: file_path
    operator: regex_match
    pattern: (payment|stripe|checkout)
  - field: new_text
    operator: regex_match
    pattern: (secret|key|token)\s*=
action: block
---

3. Planning 负责进度追踪

# task_plan.md
## 阶段 1: 支付集成
- [x] Stripe SDK 安装
- [x] 支付意图创建
- [ ] Webhook 处理
- [ ] 退款逻辑

## 阶段 2: 测试
- [ ] 单元测试
- [ ] 集成测试

协同效果

插件 职责 价值
Memory 知识持久化 跨会话复用架构决策
Hookify 安全门禁 阻止敏感信息泄露
Planning 进度追踪 确保任务完整性

实战案例 1:从零构建订阅管理 API

场景:用 Claude Code 从零开发一个"用户订阅管理 API"(Express + Prisma + Stripe),全程三插件联动。

graph LR
    subgraph "5 阶段流程"
        A[1.项目初始化] --> B[2.核心开发]
        B --> C[3.安全加固]
        C --> D[4.测试验证]
        D --> E[5.收尾归档]
    end

    subgraph "插件介入时机"
        M[Memory]
        H[Hookify]
        P[Planning]
    end

    A -.-> P
    A -.-> M
    B -.-> P
    B -.-> H
    C -.-> H
    D -.-> P
    D -.-> H
    E -.-> P
    E -.-> M

阶段 1:项目初始化

# 用户指令
"帮我从零搭建一个订阅管理 API,用 Express + Prisma + Stripe"

# Planning 自动介入:创建任务计划
# → .planning-work/task_plan.md 自动生成

Planning 生成的 task_plan.md

# 订阅管理 API 开发计划

## 阶段 1: 基础搭建
- [ ] 初始化 Express 项目
- [ ] 配置 Prisma + PostgreSQL
- [ ] 设计订阅数据模型

## 阶段 2: 核心功能
- [ ] 实现订阅 CRUD
- [ ] 集成 Stripe 支付
- [ ] 实现 Webhook 处理

## 阶段 3: 安全与测试
- [ ] 添加认证中间件
- [ ] 编写单元测试
- [ ] 编写集成测试

## 阶段 4: 收尾
- [ ] API 文档
- [ ] 环境变量配置说明

Memory 同时介入——如果之前存储过项目偏好:

# Memory 自动检索到历史决策
"检测到历史偏好:TypeScript + 2空格缩进 + Biome 格式化"
# → 自动应用,无需重新配置

阶段 2:核心开发

Hookify 在开发过程中自动执行安全检查:

# Claude 尝试写入支付模块
# Hookify 规则 protect-payment-files 自动触发:

# 场景 A:正常代码 → 放行
Claude 写入: const session = await stripe.checkout.sessions.create(...)
→ Hookify: 通过,未检测到敏感信息

# 场景 B:硬编码密钥 → 拦截
Claude 写入: const stripe = require('stripe')('sk_live_xxx...')
→ Hookify: BLOCKED! 检测到硬编码密钥
→ 自动重定向到使用环境变量: process.env.STRIPE_SECRET_KEY

每完成一个功能模块,Planning 自动更新进度:

## 阶段 2: 核心功能
- [x] 实现订阅 CRUD           # ← 刚完成
- [ ] 集成 Stripe 支付         # ← 进行中
- [ ] 实现 Webhook 处理

Memory 存储关键决策到 findings.md

# 研究发现

## 架构决策
- **Stripe 集成方式**: Checkout Session(推荐)而非 Charges API
- **货币单位**: 所有金额以"分"存储,避免浮点精度问题
- **Webhook 签名**: 必须验证 Stripe-Signature 头

阶段 3:安全加固

Hookify 在此阶段发挥最大价值:

# .claude/hooks/protect-env-files.md
---
name: protect-env-files
enabled: true
event: file
conditions:
  - field: file_path
    operator: regex_match
    pattern: \.env($|\.)
  - field: new_text
    operator: regex_match
    pattern: (SECRET|KEY|TOKEN|PASSWORD)
action: block
---

不允许将包含敏感信息的 .env 文件提交到版本控制。
请使用 .env.example 作为模板,实际值通过环境变量注入。

阶段 4:测试验证

Hookify 的 stop 事件确保测试不会遗漏:

# .claude/hooks/require-tests.md
---
name: require-tests
enabled: true
event: stop
conditions:
  - field: transcript
    operator: not_contains
    pattern: npm test|jest|vitest
action: block
---

完成前请运行测试验证更改!

Planning 同步更新测试进度:

## 阶段 3: 安全与测试
- [x] 添加认证中间件
- [x] 编写单元测试 (12/12 通过)
- [ ] 编写集成测试              # ← 最后一步

阶段 5:收尾归档

# Planning: 标记所有任务完成
# Memory: 存储项目知识供未来复用

"remember 订阅管理 API 项目:Express + Prisma + Stripe,\
数据库用 PostgreSQL,所有金额以分为单位,\
Webhook 必须验证签名"

三个文件的最终状态:

.planning-work/
├── task_plan.md     # 全部 ✓(7/7 任务完成)
├── findings.md      # 12 条技术决策记录
└── progress.md      # 3 个 Session 日志

实战案例 2:5人团队协作配置方案

场景:5人团队使用 Claude Code 开发同一项目,如何确保行为一致?

核心原则团队共享的放 Project 层,个人偏好的放 User 层,敏感信息放 Local 层。

配置分层总览

配置项 放哪层 谁维护 Git 提交
项目规范(技术栈、架构) ./CLAUDE.md Tech Lead
Hookify 安全规则 .claude/hooks/ 安全负责人
Planning 模板 .claude/skills/ 全员
个人语言偏好 ~/.claude/CLAUDE.md 个人
个人 Memory Ensue / Claude Mem 个人
API Key .claude/settings.local.json 个人 否(gitignore)

团队共享 Hookify 规则

.claude/hooks/
├── block-hardcoded-secrets.md    # 密钥防护(全员生效)
├── block-dangerous-rm.md         # 防误删(全员生效)
├── warn-console-log.md           # 调试代码提醒
└── protect-payment-files.md      # 支付模块保护

新成员 Onboarding 清单

## 新成员 Claude Code 配置清单

### 必做(5分钟)
1. clone 项目后运行 `claude`,确认自动加载 CLAUDE.md
2. 检查 Hookify 规则生效:`/hookify list`
3. 配置 API Key 到 `.claude/settings.local.json`

### 推荐做
4. 配置 Memory 插件(Ensue 或 Claude Mem)
5. 在 `~/.claude/CLAUDE.md` 设置个人偏好
6. 阅读 `.planning-work/findings.md` 了解项目已有决策

协作注意事项

问题 原因 解决方案
新人行为不一致 未加载项目级配置 确认 .claude/hooks/ 已提交到 Git
Hookify 误报频繁 正则规则过于宽泛 调整 pattern 精度,block 改 warn
Memory 跨人共享 Memory 是个人知识库 重要的决策写在 findings.md 提交共享
Planning 文件冲突 多人同时修改 task_plan.md 约定一人主维护,或分文件管理
settings.local.json 泄露 忘记 gitignore 确保 .gitignore 包含 .claude/settings.local.json

补充:/loop 与 Ralph Loop:定时任务与自我迭代

在程序开发中,while 循环是一个很重要的工具,它允许我们重复执行相同的代码块,直到满足特定条件为止。在AI开发中,它同样是一个很重要的工具,不断迭代直到条件收敛。

这是我最喜欢的一部分:让 Claude Code 能够"自己跑起来"。
Claude Code 支持两种循环机制,用于定时任务和自我迭代。

/loop:定时任务调度

2026年3月,Claude Code 新增了 /loop 命令,支持在会话内调度重复任务。
基本用法

# 每5分钟检查一次PR状态
/loop 5m 检查我的PR是否有新的评论
# 每小时监控服务健康状态
/loop 1h 检查生产环境服务是否正常

与 OpenClaw cron 的区别

维度 OpenClaw cron Claude Code /loop
运行环境 独立后台进程 会话内运行
持续时间 无限制(7x24) 最多 3 天
硬件要求 需要持续运行的服务器 任意开发机
状态保持 跨会话持久化 会话内有效
适用场景
  • PR/Issue 状态监控(几小时内完成)
  • 服务健康检查(短期监控)
  • 自动化测试轮询(等待 CI 完成)

Ralph Loop:自我迭代循环

GitHub: anthropics/ralph-loop

Ralph Loop 是一种通过 Bash 脚本实现的自我迭代机制,让 Claude Code 能够持续改进自己。
工作原理

# Ralph Loop 本质上是一个 Bash 循环
while true; do
    # 向 Claude 喂入提示词文件
    # Claude 执行任务并更新提示词
    # 循环继续,带着上一次的"记忆"
done

核心思路:创建一个自引用反馈循环

  1. 提示词在每次迭代中保持
  2. Claude 的输出可以影响下一次迭代的输入
  3. 实现渐进式改进
    典型应用
  • 自动优化代码质量(每轮发现并修复一个问题)
  • 持续重构(逐步改进架构)
  • 文档完善(迭代补充缺失内容)
    注意事项
  • 需要设置停止条件(如最大迭代次数、目标达成判断)
  • 关注 Token 消耗(每轮都会消耗配额)
  • 建议配合 Hookify 插件(防止失控操作)

小结:插件选型决策树

需要跨会话记忆?
├─ 是 → 需要 Memory 插件
│   ├─ 多设备同步? → Ensue Memory Network
│   └─ 隐私优先? → Claude Mem
│
├─ 需要行为约束?
│   ├─ 是 → Hookify
│   └─ 配置规则:危险命令 block + 敏感操作 warn
│
└─ 需要复杂任务管理?
    ├─ 是 → Planning with Files
    └─ 创建 task_plan.md + findings.md + progress.md

三插件协同口诀

  • Memory 存知识,Hookify 守底线,Planning 追进度
  • 联动使用,Claude Code 从工具变平台

进阶预告

下一篇《框架选型指南》将深入:

  • SuperClaude vs Superpowers 设计理念对比
  • 功能覆盖与学习曲线分析
  • 选型决策树
  • 组合使用最佳实践

思考题

看完这一篇,有兴趣可以试着回答这些问题,看看你的理解程度:

  • 配置层级的合并规则是什么?如果 User 和 Project 都配置了 enabledPlugins,最终会生效哪些插件?

  • Memory 插件的 Ensue 和 Claude Mem 两个方案,核心差异是什么?你会如何选择?

  • Hookify 的 block 和 warn 有什么区别?举一个应该用 block 的场景和一个应该用 warn 的场景。

  • Planning with Files 的三个文件分别负责什么?为什么需要三个文件而不是一个?

  • 如果你的团队有 5 个人,各自有不同的 Claude Code 配置偏好,如何设计配置层级才能保证团队行为一致?


相关资源

2 个赞

hookify这个设计太好了,解决了以前这个hook调半天不触发的尴尬:sweat_smile:

自迭代循环看着很兴奋,但感觉小白用户+穷哥们得谨慎 :drooling_face:

@10011488078 claudecode 就是自迭代的,很多工具也是遵循这个方向设计出来的