Skip to content

我的 Claude Code 改进清单(基于真实使用)

本页职责:你的整体毛病诊断 + 行动清单,也是核心数字(空转 33.7%、放行 185、追问 65 等)的唯一详述处——其它页引用这些数字都链回这里。

数据采集自本机 ~/.claude/(settings、13 个项目的会话记录、stats、各项目 CLAUDE.md/AGENTS.md),对照官方 best-practices 得出。快照日期:2026-05-30,Claude Code v2.1.158。数字会随使用变化,重看时按下方命令自查最新值。

想看你每一条消息的逐条点评(你怎么说→为什么不好→大佬怎么用→该怎么说,全部带真实证据):见 逐条处理(按项目)。全量真实统计:1046 条手写消息驱动 10,278 次调用,其中 352 条(33.7%)是 0 调用空转

你的真实用量快照

项目会话请求缓存命中输入(B tok)主模型
jiuxinshuzhi/qinghua-frontend7011,71997.3%2.57opus-4-7
jiuxinshuzhi/kejizhuantifuwu94,60087.1%1.91opus-4-8
mine/GEO123,53096.8%1.07opus-4-7
jiuxinshuzhi/shanke-student879196.2%0.12opus-4-7
jiuxinshuzhi/shanke156495.6%0.21opus-4-7
其余 8 个项目<300 各91–97%opus-4-7

三句话读懂自己:① 用量高度集中在 qinghua-frontend + kejizhuantifuwu + mine-GEO 三个项目;② 几乎清一色 Opus(仅最近 kejizhuantifuwu/workspace 切到 4.8);③ 缓存命中普遍 94–97% 很健康,kejizhuantifuwu 偏低(87%)是这几天大量重建文档所致。

全局配置:bypassPermissions + skipDangerousModePermissionPrompt + skipAutoPermissionPrompt(权限弹窗全跳过)、0 个自定义 hook、15 个插件(semgrep 关)、48 个个人技能、5 个 MCP(serena/context7/playwright/figma/chrome-devtools)、Anthropic 直连订阅。


你的真实操作习惯(13 项目 · 22,085 条消息实测)

这一节不是建议,是从你所有项目的会话记录里数出来的——你实际敲了什么、漏用了什么。每条都给了证据和"以后怎么改"。这是你最该看的部分。

你的真实行为(证据)这说明以后这样做(具体动作)
context7 调用 = 0 次(22,085 条里一次没用)你装了"查最新文档"的工具,却从没用——查 Vue3 / SpringBlade / 任何库的 API 全靠模型记忆,可能是过时或编的凡涉及第三方库/框架写法,开口就带「用 context7 查Vue 3 的 X / SpringBlade 4.7 的 Y」。这是你提升准确率最快的一步
Read 整文件 2,098 次,serena 仅 15 次,Grep 0 次你几乎全靠"读整个文件"找代码(qinghua-frontend 读了 1,244 次、serena 才 15;kejizhuantifuwu 读 423 次、serena 0找"某函数/类在哪定义、被谁调用"时说「用 serena 找 xxx 的定义和引用」。又快又省上下文,命中率也高——这是你省 token、提速最大的杠杆
plan mode 只用过 3 次你是负责人、爱"看方案再拍板",又在做鉴权/路由这种架构活,但几乎从不先出计划就直接让它改多文件/架构任务前先 Shift+Tab 进 plan,或 /model opusplan:先看它列"改哪些文件+方案",你批了再动手。少返工
Bash 4,324 次(最高)+ 全局 bypassPermissions + 0 hook你大量跑 shell(构建/git/脚本),又全跳过权限、没有任何硬闸给红线命令加 PreToolUse hook(见下方 2)。Bash 用得越多,这道闸越值
几乎全程 Opus(13 项目主模型都是 opus)日常前端小改也在用最贵最慢的模型日常改 /model sonnet,架构 /model opusplan,subagent 配 haiku(见下方 3)
用得好 :chrome-devtools 126 次、subagent(Agent/Task) 211 次、figma 27、playwright 30你已经会用浏览器调试 + 委派 subagent + 设计稿保持;把同样的"用对工具"习惯迁移到 serena/context7 上

一句话总览:你在"动手"上很猛(Bash/Read/Edit 几千次),但在"用对的工具找信息"上几乎空白(context7=0、serena≈0、plan=3)。把这三个习惯补上,后面会明显更快、更准、更少返工。


你 vs 大佬:同一件事的不同说法(逐句对照)

左边是你真实输入过的原话(从会话记录里捞的),右边是 Anthropic 团队/官方 best-practices 的做法。差距不在"会不会用",而在给不给上下文、给不给验证、先不先规划。依据:Best practicesHow Anthropic teams use Claude Code

1. 模糊的审美抱怨 → 给参照物 + 喂设计稿

  • 你说过:「你现在这个还是太 AI 化了,一点商业规范标准都没有,是没用组件库吗」「能做得更高级、眼前一亮一些吗」
  • 大佬会:先给"长什么样"的锚,再提要求——「参考这张截图/这个产品 URL 的视觉规范重做:用 ant-design-vue 组件库、主色 #1677ff、8px 栅格;改完截图和原图对比」。Product Design 团队直接把 Figma 稿喂给 Claude 让它写+测+迭代。
  • 差在哪:你有 design-assets/…fig 源稿 + figma MCP,却用形容词("高级""不 AI 化")让它猜。形容词无法验证,给图/给组件库/给色值才能。

2. 宽泛的"这是什么项目" → 当资深工程师提问、限定范围和工具

  • 你说过:「这是什么项目」
  • 大佬会:「你是本仓库资深工程师。用 serena/Explore 给我:架构总览、关键目录、blade-auth→blade-system 的调用流——别读整文件。」官方把"像问资深工程师那样问 Claude"列为最佳上手方式;Product Eng 团队把 Claude 当"任何编程任务的第一站"、让它先定位文件。
  • 差在哪:你给了一个无范围、无工具、无角色的宽问题,它只能泛泛答;加"角色+范围+用 serena"立刻具体。

3. 超短放任"可以/继续"(你 30%)→ 要么自动循环、要么早纠偏

  • 你说过:「可以」「继续」「go on」(≤15 字占 30%)
  • 大佬会两种都行,但都不是被动"继续"——① 原型探索:开 auto-accept(Shift+Tab)+ 明确"写代码→跑测试→迭代到通过"的自动循环;② 关键逻辑:同步盯着,跑偏立刻 Esc 打断纠正。前提是给它一个能自己判停的验证(测试/pnpm type-check/截图)。
  • 差在哪:你的"继续"既没给方向也没给验证,等于让它蒙着头跑。

4. 把执行甩给 codex → 让 Claude 自己跑"实现→自验→提交"闭环

  • 你说过:「直接给出提示词,我会让 codex 修复和部署」「我会让 codex 执行,你直接给出命令」
  • 大佬会:让 Claude Code 自己完成 agentic loop——它能跑 mvn compilepnpm type-check、playwright 自验,再提交。Security 团队就是"引导 TDD + 定期 check in"拿到可靠可测代码。
  • 差在哪:只让它"出提示词"= 只用了它一半(规划),丢了它最强的自验证循环。(若你是因为 codex 在 Mac、部署在别处的环境隔离需要,那保留无妨;若只是习惯,建议让 Claude Code 自己闭环。)

5. 空泛的"仔细审查" → 给范围 + 验收标准

  • 你说过:「再帮我仔细审查确保没有任何问题了」「这个文件对我们有用吗仔细审查代码」
  • 大佬会:「用 /code-review 审这次 diff 找正确性 bug;再用 silent-failure-hunter 查吞异常;只报影响正确性/鉴权的,别过度工程」。官方的对抗式 review 强调只看 diff + 验收标准、聚焦正确性
  • 差在哪:"确保没问题"没标准、没范围,它不知道查多深、按什么算"有问题"。

6. 事后才纠正(你 5%)→ 开头就 @文件给上下文

  • 你说过:「不对,我是 design-assets/pencil/科技专题服务系统.fig 这个才是 figma 源码」(它找错了你才纠正)
  • 大佬会:第一句就 @design-assets/pencil/科技专题服务系统.fig 把文件钉死。你只有 8% 的 prompt 带 @文件
  • 差在哪:事后纠正浪费一整轮、还把错误上下文留在会话里拉低后续质量。官方:prompt 里直接指明文件、用 @ 引用。

把这 6 条变成肌肉记忆,比改任何配置都管用:给锚(图/文件/URL)、给验证(测试/截图)、先规划(plan)、要纠正趁早(Esc)


拆解你的一次真实会话:「历史会话切换没反应」

这是你在 qinghua-frontend真实跑过的一次 bug 修复(12 轮,会话 62a70fec)。逐轮看你怎么用的、哪步本可以更好——这是把上面的对照落到你自己一次完整经历上。

真实逐轮(精简)

  1. 你:「历史会话切换总是没反应,有这个问题吗,先帮我定位一下」→ Claude 自动调起 systematic-debugging 技能
  2. Claude(一个巨大回合):git log + 大量 grep + 把 ResearchRadar.vue 读了 5 遍、上百条 bash、serena 0 次;写回归测试、跑 vitest/vue-tsc/eslint、更新 MEMORY
  3. 你:「继续吧」
  4. 你:「我知道了,是不是因为在调用生成推荐问题的接口,推荐问题出来之后就能切了」← 真正的根因
  5. 你:「最优方案是什么」→ 改 ResearchRadar.vue + 测试 6–9. 你:「别的智能体有这个问题吗」「似乎还是不行」「还是不行」「还是不行」 10–12. 你:「还是不行,仔细审查代码」「再帮我确定一下」「别的智能体有没有同样问题,全修了吗,破坏别的功能没,边界都考虑了吗」

你做得好的(已是大佬级,保持)

  • 第1轮说"先定位"而不是"直接改"——根因优先;Claude 还自动用了你装的 systematic-debugging 技能。
  • 全程 TDD:先写 regression 测试再改,每改一次 vitest + vue-tsc + eslint 自验,还把结论写进 MEMORY——这正是 Security 团队的"TDD + 定期 check in"。

4 个"这一轮本可以"(按影响排序)

  1. 根因你第4轮才说,本该是第1句。你其实早就观察到"要等推荐问题生成完才能切"——但第1轮只说"没反应",害得 Claude 在第2轮盲目读了 ResearchRadar.vue 5 遍、跑上百条命令去逼近。
  • 大佬版第1句:「ResearchRadar 历史会话切换在'推荐问题生成中'时点不动、要等接口返回才行。先复现确认,再定位是哪个 running/busy 状态卡住」。把观察+复现一次给够,整个第2轮的盲探都省了。
  1. 第2轮靠 grep+Read(同一文件读 5 遍、serena=0)。→ 「用 serena找 ResearchRadar 里控制 running/busy/allowOpenWhileBusy 的符号和所有引用」一步定位,省一半 token、也不会读重复。
  2. 第7–9轮「还是不行」连说 3 次、不给新信息、也没回退。→ 失败 2 次就该停:/rewind 回到改之前,给更尖的复现——「切换时 console 报错没?busy 何时变 false?先让 Claude 加一行日志打印 busy 状态再复现」。光说"还是不行"它只能继续猜,越猜上下文越脏。
  3. 没用 plan、第12轮才想起"别的智能体"。这 bug 横跨 ResearchRadar/KnowledgeQA 等多个智能体页面 → 一开始就 Shift+Tab 让它先列"哪些智能体受影响 + 统一改法 + 逐个验证",而不是修完一个、最后才回头问"别人有没有同样问题"。

一句话

你这次的工程纪律(TDD + 每步自验)已经是大佬级;真正拖慢你的是开局信息密度(把"推荐问题生成中才卡"这种关键观察、和文件、一次给够)和纠偏方式(失败就 /rewind 重描述,别陷进"还是不行"循环)。

自检脚本(重看时挑一个最近会话照样扒一遍,看自己改了没):

bash
ls -t ~/.claude/projects/<>/*.jsonl | head -5 # 找最近会话,按上面的维度回看:第1句给够信息没?serena 用了没?失败时 rewind 了没?

场景速查:这种情况该用什么(最实用)

你装的好工具大多没用在刀刃上。下面按你真实的活给"直接这么做"。核心一句:能让 Claude 自己验证的(type-check/编译/截图)一定让它验;查资料用 context7 别信记忆;找代码用 serena 别 grep 整仓。

前端(kj-frontend / qinghua-frontend)

你遇到的情形直接这么做
在大组件/工具里找某函数、它在哪被调用「用 serenauseAuth 的定义和所有引用」(find_symbol / find_referencing_symbols)——别读整文件再 grep
改完 Vue/TS 想确认没崩让它跑 pnpm type-check(vue-tsc 0 error);动了 vite.config/main.ts 再 pnpm dev 看启动
改完登录页/某页面想"真的看一眼"pnpm dev(:8000),「用 playwright打开 http://localhost:8000 登录页、填表、截图」自验
把 Figma 稿做成页面「用 figma读 get_design_context + 截图,再实现」;新组件可配 frontend-design
页面卡 / LCP 慢 / 内存涨chrome-devtools/debug-optimize-lcp/memory-leak-debugging
查 Vue3 script setup / Pinia / 某库最新写法「用 context7查 Vue 3 的 X」——别信模型记忆(它可能过时)
模型日常前端改 → Sonnet(快、省)

SpringBlade 后端(鉴权 / 路由 / 联调)

你遇到的情形直接这么做
找某 Controller/Service/实体及调用链serena符号检索(比 grep 准、省上下文)
改完确认能编译/起得来mvn -pl <模块> compile;严重改动 spring-boot:run(先起 Nacos+Redis+DB)
查 SpringBlade 4.7 / Spring Boot 3.2 配置context7查官方文档
鉴权打通 / 路由重构(架构活)plan mode(Shift+Tab)或 opusplan 列方案+要改哪些文件,你拍板再写
写鉴权代码防漏洞security-guidance(边写边自审),或写完 /security-review
登录 500、联调出错/investigate(先根因再改,不瞎试)

排错 / 评审 / 质量

情形用什么
报错/行为不对、要找根因/investigate 或 superpowers:systematic-debugging(根因优先)
怀疑"吞异常/静默失败"pr-review-toolkit 的 silent-failure-hunter
卡住 / 想要第二意见/codex(让 OpenAI 模型对一下)或 superpowers:brainstorming
写完功能自查 bug/code-review(本地审 diff);更深 /code-review ultra(云端多 agent,Pro/Max 含 3 次免费)
要多专业视角审pr-review-toolkit subagents(code-reviewer / type-design-analyzer / pr-test-analyzer …)
全面测一个页面并修/qa(测+改+复验);只报告不改 /qa-only
重构后想简化(不找 bug)/simplify 或 code-simplifier
安全审计/cso/security-review

重构 / 迁移 / 批量(Umi→Vue3 这种)

情形用什么
一处大改拆成很多独立单元、各开 PR/batch(5–30 个 worktree 隔离 subagent 并行)
全库审计 / 几百文件迁移 / 要交叉验证dynamic workflow:/deep-research,或 prompt 里带 workflow 关键词
跨多文件协调改一个会话一次性给整组改动;先把 plan 写成 md 落盘(长会话会被 compact 冲掉)

查资料 / 设计 / 文档

情形用什么
查任何第三方库/框架最新 APIcontext7(你装了,务必用,别让它凭记忆编 API)
上网查 / 抓页面数据/browse/scrape
设计稿 → 代码figmaMCP
方案/文档导出 PDF/make-pdf
docs/ 文档整改(你这个项目)注意 docs/scripts/*.py 依赖 ROOT 推算、*.bak-* 保留——这些在 docs/AGENTS.md 里(先把它 @import 进来,见下)

想方案 / 提交 / 日常会话

情形用什么
新功能没想好怎么做plan mode 或 superpowers:brainstorming;想大点 /office-hours
提交代码/commit;连推带开 PR /commit-push-pr
一周回顾/retro
会话变长/变慢/context 看占用 → /compact 只保留 X(带焦点压缩)
切不相关任务/clear(旧会话还能 /resume
改坏了想撤双击 Esc/rewind(注意 Bash 的 rm/mv 不被检查点追踪)
挂后台去忙别的claude --bg "..." / claude agents
同时改前端+后端各开 claude --worktree <名>,文件不打架
简单活提速省钱 / 难架构/model sonnet / /model opusplan

一条贯穿全场景的反模式:别让 Claude Read 整个大文件再 grep——你装了 serena,符号级检索又准又省;这也正是你 AGENTS.md 里"用 Explore 不要 grep 全仓库"的升级版。


完整操作流示范:打通 blade-auth(照着做)

把上面的"场景速查"组合成一个真实任务的完整路径,用你真实的端口/接口/模块名。每步标了【模式/模型】和【用什么】。这条流刻意把你现在缺的 context7 / serena / plan三个习惯全用上。

第 1 步 · 先确认环境起得来(你这步一直没验证过)

【模式】default 【用】Bash

  • 你 AGENTS.md 记了中间件,但"本地启动验证状态:暂未确认"。先确认依赖在:
text
确认本机这些起没起:Nacos 127.0.0.1:8848、Redis :3379。
没起就告诉我启动命令——别自己改任何配置。
  • 起服务:mvn -pl blade-auth spring-boot:run(确保 Nacos/Redis/DB 先就绪);网关按需 mvn -pl blade-gateway spring-boot:run
  • 改启动/Nacos/端口配置前先问你(你的红线)。

第 2 步 · 先查文档、先摸代码(别让它凭记忆写鉴权)

【模式】plan(Shift+Tab)或 /model opusplan 【用】context7 + serena

  • 查官方最新写法(你从没用过 context7,这步最该补):
text
用 context7 查 SpringBlade 4.7 的 token/鉴权配置,以及 Spring Boot 3.2 的安全写法
  • 用 serena 摸清现有鉴权链,别读整仓:
text
用 serena 在 blade-auth 找 /blade-auth/token 的 Controller,
以及校验 Blade-Auth: Bearer 和 Tenant-Id 的过滤器/拦截器,列出定义和调用链

第 3 步 · 让它出计划,你拍板

【模式】plan 【模型】Opus

text
目标:打通登录鉴权全链路——
POST /blade-auth/token (grantType=password&tenantId=000000&account=..&password=..) 拿 token,
之后请求带 Blade-Auth: Bearer <token> + Tenant-Id: 000000 经网关到 blade-system 能通过。
先别改代码:列出要改哪些文件、前端 src/services/blade-auth 怎么对接、风险点、怎么验证。
  • 看它的计划(Ctrl+G 可在编辑器里改),满意再批准(plan 批准后自动切执行)。

第 4 步 · 实现(后端 → 前端)

【模式】default / acceptEdits 【模型】执行切 Sonnet(opusplan 自动切)

  • 后端:按计划改 blade-auth 与网关对 Tenant-Id 的透传。
  • 前端:在 src/services/blade-auth/ 写登录请求、存 token、请求拦截器自动加 Authorization + Tenant-Id(dev :8000 的 proxy /api/* → Gateway 15800)。

第 5 步 · 验证(让它自己证明通了,别口说"好了")

【用】Bash + curl + playwright

  • 后端编译:mvn -pl blade-auth compile;必要时 spring-boot:run 看启动。
  • 直接打 token 接口,让 Claude 解读返回、拿 token 再打一个受保护接口确认 200:
bash
curl -s "http://127.0.0.1:15800/blade-auth/token?grantType=password&tenantId=000000&account=admin&password=admin" -H "Tenant-Id: 000000"
  • 前端真验:起 pnpm dev,「用 playwright 打开 http://localhost:8000 登录页,输账号密码提交、截图,确认进了首页、且网络请求带上了 token」。
  • 类型:pnpm type-check(vue-tsc 0 error)。

第 6 步 · 安全审查(鉴权代码必做)

【用】security-guidance 或 /security-review

text
/security-review

鉴权重点查:token 有没有被打进日志、Tenant-Id 能不能被前端伪造绕过(串户)、密码有没有明文、错误信息有没有泄露。建议这阶段顺手 /plugin install security-guidance@claude-plugins-official 边写边审。

第 7 步 · 提交

【用】commit-commands

text
/commit-push-pr

你把 git push 列为红线——所以这步正好会触发你该配的 PreToolUse hook(见 2):hook 拦一下、你确认了再推。这就是那道闸的用处。

一眼回顾这条流用了什么

opusplan/plan(少返工)→ context7(查准,别编 API)→ serena(定位省 token)→ Sonnet 执行(省钱)→ curl + playwright + mvn(自验)→ /security-review(鉴权必做)→ commit hook(红线兜底)。你现在缺的 context7 / serena / plan 三个习惯,这条流全用上了——下次做"路由重构""新建 blade-kj- 微服务"照这个骨架套。*


1 · AGENTS.md 没被 Claude 读到(6 个项目的系统性问题)

事实:Claude Code 只读 CLAUDE.md,不读 AGENTS.md。你以下项目的 AGENTS.md 内容基本进不了上下文:

项目情况
jiuxinshuzhi/kejizhuantifuwu4 层 CLAUDE.md 均无 @AGENTS.md(520 行 AGENTS.md 大半看不到)
jiuxinshuzhi/shanke、mine/GEO、mine/sanzhixiongzuhao、obsidian有 CLAUDE.md 但没 @import
mine/二手交易平台只有 AGENTS.md、连 CLAUDE.md 都没有 → 全看不到

副作用:kejizhuantifuwu 还在 CLAUDE.md 手抄了一份端口/登录接口/Tenant-Id = 两份真相,迟早漂移。

官方做法(memory / best-practices 节):CLAUDE.md 顶部 @AGENTS.md 导入,两边读同一份、不重复。

改法

  • 每个有 AGENTS.md 的项目,在 CLAUDE.md 顶部加一行:
markdown
@AGENTS.md
  • mine/二手交易平台:新建 CLAUDE.md,内容就一行 @AGENTS.md(或 ln -s AGENTS.md CLAUDE.md)。
  • 然后把 CLAUDE.md 里和 AGENTS.md 重复的事实删掉,只留"Claude Code 特有"的部分 → 单一真相源。

收益最大、风险最低的一改。改完 /memory + /context 能看到 AGENTS.md 真进了上下文。


2 · bypassPermissions + 零 hooks = 你写的红线全是摆设

事实:你全局跳过所有权限弹窗,且没有任何 hook。但 kejizhuantifuwu 的 CLAUDE.md 列了一串"必须先确认":git push / rm -rf / git reset --hard / git push --force / pnpm uninstall / 改 AGENTS.md / 改 SpringBlade 启动配置。

问题:bypass 下这些只是建议、拦不住——Claude 可以不问就 git push --force 或改 Nacos 端口。意图(写了红线)和配置(全跳过)矛盾。

官方做法:只有 PreToolUse hook(exit 2)能硬拦,且 bypass 下仍生效。

改法:建脚本 ~/.claude/hooks/guard-redlines.sh

bash
#!/usr/bin/env bash
cmd=$(jq -r '.tool_input.command // empty')
for p in 'git push' 'git reset --hard' 'git push.*--force' 'rm -rf' 'pnpm uninstall' 'npm uninstall' 'mvn dependency:purge'; do
 if echo "$cmd" | grep -Eq "$p"; then
 echo " 红线命令被 hook 拦截:$cmd(按 CLAUDE.md 需先人工确认)" >&2
 exit 2
 fi
done
exit 0

chmod +x 后,在项目 .claude/settings.json 挂上:

json
{
 "hooks": {
 "PreToolUse": [
 { "matcher": "Bash", "hooks": [ { "type": "command", "command": "~/.claude/hooks/guard-redlines.sh" } ] }
 ]
 }
}

或者(更省心的替代):高危活改用 /sandbox(OS 级隔离)兜底,bypass + sandbox 是更安全的组合。


3 · 全项目几乎只用 Opus —— 成本/速度都有空间

事实:13 个项目主模型几乎全是 Opus。官方建议:Sonnet 干大多数编码、Opus 留给难架构、subagent 用 Haiku

改法

  • 日常前端改/重构(qinghua-frontend、kj-frontend)→ /model sonnet,更快更省。
  • 架构决策(SpringBlade 鉴权打通、路由重构)→ 用 opusplan:plan 模式 Opus 想清楚、执行切 Sonnet 干活——正好契合你"先看方案再拍板",还省钱。
text
/model opusplan
  • subagent 配 model: haiku(你重度用 pr-review-toolkit subagent,这里省最多)。
  • 你已在 4.8(kejizhuantifuwu),其它项目可统一切到 Opus 4.8 或 default

4 · plan mode 没用起来(你最该用的人)

你是负责人、爱"看方案再拍板",当前阶段又是跨多文件的架构改造——这正是官方强推 plan mode 的场景(Explore → Plan → Implement → Commit)。但 bypass 下 Claude 默认直接动手。

改法:这类活先 Shift+Tab 进 plan 模式(或用上面的 opusplan),让它先列"要改哪些文件 + 方案",你批了再实现。


5 · 你在做鉴权,却关了安全检查

事实semgrep 插件关着,也没装 security-guidance。当前阶段恰是 SpringBlade 鉴权——最该查注入/越权/凭据处理的时候。

改法

text
/plugin install security-guidance@claude-plugins-official
/reload-plugins

它在 Claude 写代码时自动自审常见漏洞并当场修;对鉴权改造性价比很高。或重新启用 semgrep


6 · 小优化

现状建议
并行联调常前端+后端同时改claude --worktree <名> 各开隔离会话,不互相覆盖文件
stale 配置.claude/settings.local.jsonenabledMcpjsonServers:["linear"] 但没 .mcp.json 定义删掉这条,或补 .mcp.json 接上 linear
缓存命中kejizhuantifuwu 87%(全局 97%)切任务时 /compact;别频繁改靠前的稳定内容(改一字、其后全重算)
技能/插件噪音48 技能 + 15 插件偶尔 /context 看占用;用不到的 /plugin 关掉
Opus 4.8仅部分项目统一切新版本,享受更好推理

做得好的(别改)

  • kj-frontend 有 pnpm type-check(vue-tsc 0 error)、SpringBlade 有 mvn -pl … compile —— 给了 Claude 可自查的验证手段,正是官方第一实践。
  • pnpm 绝对路径、增量编译、不全量 install/不 pnpm up —— 环境约定到位。
  • 缓存命中长期 94–97%、用 serena 语义检索代替整文件 grep —— 上下文管理意识好。

行动清单(按优先级勾选)

  • [ ] 给 6 个项目的 CLAUDE.md 加 @AGENTS.md 并去重(mine/二手交易平台 先建 CLAUDE.md)
  • [ ] guard-redlines.sh PreToolUse hook,挂到常用项目的 .claude/settings.json
  • [ ] 架构类任务改用 opusplan + plan mode;日常编码切 Sonnet;subagent 用 Haiku
  • [ ] 鉴权阶段启用 security-guidance(或开 semgrep)
  • [ ] 并行联调用 --worktree;清理 stale 的 linear MCP 配置
  • [ ] 偶尔 /context/usage 自查;切任务 /compact

怎么自查最新数据(重看本页时跑)

bash
# 各项目用量 + 缓存命中
node -e 'const fs=require("fs"),p=require("path"),r=require("os").homedir()+"/.claude/projects";for(const d of fs.readdirSync(r)){const dir=p.join(r,d);if(!fs.statSync(dir).isDirectory())continue;let rd=0,cr=0,ip=0,n=0;for(const f of fs.readdirSync(dir)){if(!f.endsWith(".jsonl"))continue;for(const l of fs.readFileSync(p.join(dir,f),"utf8").split("\n")){if(!l.trim())continue;let o;try{o=JSON.parse(l)}catch{continue}const u=o?.message?.usage;if(o.type!=="assistant"||!u)continue;n++;rd+=u.cache_read_input_tokens||0;cr+=u.cache_creation_input_tokens||0;ip+=u.input_tokens||0}}const t=rd+cr+ip;if(n)console.log(d.slice(-30),n,"req",(rd*100/t).toFixed(1)+"% hit")}'

# 哪些项目 AGENTS.md 没被 @import
for d in $(find ~/aZhe_project -maxdepth 3 -name AGENTS.md | xargs -n1 dirname); do grep -ql "@AGENTS" "$d/CLAUDE.md" 2>/dev/null || echo "未导入: $d"; done

# 全局累计统计
cat ~/.claude/stats-cache.json | jq '.modelUsage'

全功能细节见左侧各章节;本页是"对你"的浓缩行动版。