bobo-ai-cli 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +216 -0
- package/dist/agent.d.ts +9 -0
- package/dist/agent.js +144 -0
- package/dist/agent.js.map +1 -0
- package/dist/config.d.ts +15 -0
- package/dist/config.js +76 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +366 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge-commands.d.ts +2 -0
- package/dist/knowledge-commands.js +40 -0
- package/dist/knowledge-commands.js.map +1 -0
- package/dist/knowledge.d.ts +17 -0
- package/dist/knowledge.js +112 -0
- package/dist/knowledge.js.map +1 -0
- package/dist/memory.d.ts +17 -0
- package/dist/memory.js +215 -0
- package/dist/memory.js.map +1 -0
- package/dist/planner.d.ts +22 -0
- package/dist/planner.js +130 -0
- package/dist/planner.js.map +1 -0
- package/dist/project.d.ts +25 -0
- package/dist/project.js +117 -0
- package/dist/project.js.map +1 -0
- package/dist/rules-commands.d.ts +2 -0
- package/dist/rules-commands.js +51 -0
- package/dist/rules-commands.js.map +1 -0
- package/dist/skills.d.ts +28 -0
- package/dist/skills.js +349 -0
- package/dist/skills.js.map +1 -0
- package/dist/structured/loader.d.ts +19 -0
- package/dist/structured/loader.js +147 -0
- package/dist/structured/loader.js.map +1 -0
- package/dist/structured/paths.d.ts +2 -0
- package/dist/structured/paths.js +14 -0
- package/dist/structured/paths.js.map +1 -0
- package/dist/structured/project-scaffold.d.ts +7 -0
- package/dist/structured/project-scaffold.js +60 -0
- package/dist/structured/project-scaffold.js.map +1 -0
- package/dist/structured/render-markdown.d.ts +37 -0
- package/dist/structured/render-markdown.js +47 -0
- package/dist/structured/render-markdown.js.map +1 -0
- package/dist/structured/render-table.d.ts +1 -0
- package/dist/structured/render-table.js +15 -0
- package/dist/structured/render-table.js.map +1 -0
- package/dist/structured/search.d.ts +10 -0
- package/dist/structured/search.js +104 -0
- package/dist/structured/search.js.map +1 -0
- package/dist/structured/skill-runner.d.ts +15 -0
- package/dist/structured/skill-runner.js +60 -0
- package/dist/structured/skill-runner.js.map +1 -0
- package/dist/structured/types.d.ts +212 -0
- package/dist/structured/types.js +97 -0
- package/dist/structured/types.js.map +1 -0
- package/dist/structured-skills-commands.d.ts +3 -0
- package/dist/structured-skills-commands.js +126 -0
- package/dist/structured-skills-commands.js.map +1 -0
- package/dist/structured-template-commands.d.ts +2 -0
- package/dist/structured-template-commands.js +34 -0
- package/dist/structured-template-commands.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.js +450 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/ui.d.ts +19 -0
- package/dist/ui.js +72 -0
- package/dist/ui.js.map +1 -0
- package/dist/web.d.ts +4 -0
- package/dist/web.js +124 -0
- package/dist/web.js.map +1 -0
- package/knowledge/advanced-patterns.md +70 -0
- package/knowledge/agent-directives.md +74 -0
- package/knowledge/dream.md +36 -0
- package/knowledge/engineering.md +46 -0
- package/knowledge/error-catalog.md +33 -0
- package/knowledge/index.json +170 -0
- package/knowledge/memory/cache-optimization-and-skill-integration.md +102 -0
- package/knowledge/memory/engineering-patterns.md +134 -0
- package/knowledge/memory/feedback_root_structure.md +16 -0
- package/knowledge/memory/project-contexts.md +69 -0
- package/knowledge/memory/tools-and-services.md +85 -0
- package/knowledge/rules/agents.md +62 -0
- package/knowledge/rules/blocking-rules.md +323 -0
- package/knowledge/rules/cache-management.md +379 -0
- package/knowledge/rules/capability-evolution.md +132 -0
- package/knowledge/rules/coding.md +126 -0
- package/knowledge/rules/engineering-workflows.md +225 -0
- package/knowledge/rules/evomap-content-guidelines.md +354 -0
- package/knowledge/rules/evomap-guide.md +224 -0
- package/knowledge/rules/git.md +31 -0
- package/knowledge/rules/hooks.md +106 -0
- package/knowledge/rules/performance.md +101 -0
- package/knowledge/rules/remotion-auto-production.md +1120 -0
- package/knowledge/rules/security.md +46 -0
- package/knowledge/rules/testing.md +32 -0
- package/knowledge/rules/work-mode.md +208 -0
- package/knowledge/rules.md +62 -0
- package/knowledge/skills/Skill_Seekers.md +1722 -0
- package/knowledge/skills/ab-test-setup.md +557 -0
- package/knowledge/skills/agent-sdk-dev.md +238 -0
- package/knowledge/skills/agent-tools.md +136 -0
- package/knowledge/skills/analytics-tracking.md +597 -0
- package/knowledge/skills/artifacts-builder.md +89 -0
- package/knowledge/skills/asana.md +13 -0
- package/knowledge/skills/backend-expert.md +97 -0
- package/knowledge/skills/brand-voice.md +481 -0
- package/knowledge/skills/browser-use.md +419 -0
- package/knowledge/skills/cache-optimization-skill.md +179 -0
- package/knowledge/skills/canvas-design.md +147 -0
- package/knowledge/skills/citation-validator.md +203 -0
- package/knowledge/skills/clangd-lsp.md +52 -0
- package/knowledge/skills/code-review-expert.md +85 -0
- package/knowledge/skills/code-review.md +280 -0
- package/knowledge/skills/code-simplifier.md +13 -0
- package/knowledge/skills/commit-commands.md +258 -0
- package/knowledge/skills/competitor-alternatives.md +795 -0
- package/knowledge/skills/content-atomizer.md +910 -0
- package/knowledge/skills/content-research-writer.md +605 -0
- package/knowledge/skills/context-optimization-suite.md +162 -0
- package/knowledge/skills/context7.md +13 -0
- package/knowledge/skills/copy-editing.md +494 -0
- package/knowledge/skills/copywriting.md +510 -0
- package/knowledge/skills/csharp-lsp.md +40 -0
- package/knowledge/skills/decision-making-framework.md +154 -0
- package/knowledge/skills/developer-growth-analysis.md +335 -0
- package/knowledge/skills/direct-response-copy.md +2336 -0
- package/knowledge/skills/docker-expert.md +229 -0
- package/knowledge/skills/document-skills.md +13 -0
- package/knowledge/skills/documentation-expert.md +126 -0
- package/knowledge/skills/email-sequence.md +1061 -0
- package/knowledge/skills/email-sequences.md +910 -0
- package/knowledge/skills/example-plugin.md +72 -0
- package/knowledge/skills/explanatory-output-style.md +82 -0
- package/knowledge/skills/feature-dev.md +458 -0
- package/knowledge/skills/file-organizer.md +466 -0
- package/knowledge/skills/firebase.disabled.md +13 -0
- package/knowledge/skills/form-cro.md +488 -0
- package/knowledge/skills/free-tool-strategy.md +636 -0
- package/knowledge/skills/frontend-design-offical.md +55 -0
- package/knowledge/skills/frontend-design.md +41 -0
- package/knowledge/skills/frontend-expert.md +93 -0
- package/knowledge/skills/github.md +13 -0
- package/knowledge/skills/gitlab.md +13 -0
- package/knowledge/skills/gopls-lsp.md +32 -0
- package/knowledge/skills/got-controller.md +218 -0
- package/knowledge/skills/greptile.md +72 -0
- package/knowledge/skills/hookify.md +376 -0
- package/knowledge/skills/image-editor.md +189 -0
- package/knowledge/skills/image-enhancer.md +109 -0
- package/knowledge/skills/jdtls-lsp.md +49 -0
- package/knowledge/skills/json-canvas.md +654 -0
- package/knowledge/skills/keyword-research.md +559 -0
- package/knowledge/skills/kotlin-lsp.md +28 -0
- package/knowledge/skills/laravel-boost.md +13 -0
- package/knowledge/skills/launch-strategy.md +394 -0
- package/knowledge/skills/lead-magnet.md +393 -0
- package/knowledge/skills/learning-output-style.md +106 -0
- package/knowledge/skills/linear.md +13 -0
- package/knowledge/skills/lua-lsp.md +47 -0
- package/knowledge/skills/marketing-ideas.md +720 -0
- package/knowledge/skills/marketing-psychology.md +534 -0
- package/knowledge/skills/mcp-builder.md +369 -0
- package/knowledge/skills/meeting-insights-analyzer.md +347 -0
- package/knowledge/skills/memory-evolution-system.md +172 -0
- package/knowledge/skills/multi-lens-thinking.md +407 -0
- package/knowledge/skills/nano-banana-pro.md +116 -0
- package/knowledge/skills/newsletter.md +736 -0
- package/knowledge/skills/notebooklm.md +296 -0
- package/knowledge/skills/obsidian-bases.md +634 -0
- package/knowledge/skills/obsidian-markdown.md +651 -0
- package/knowledge/skills/onboarding-cro.md +494 -0
- package/knowledge/skills/orchestrator.md +681 -0
- package/knowledge/skills/page-cro.md +379 -0
- package/knowledge/skills/paid-ads.md +624 -0
- package/knowledge/skills/paywall-upgrade-cro.md +651 -0
- package/knowledge/skills/php-lsp.md +36 -0
- package/knowledge/skills/planning-with-files.md +193 -0
- package/knowledge/skills/playwright.md +13 -0
- package/knowledge/skills/plugin-dev.md +434 -0
- package/knowledge/skills/popup-cro.md +520 -0
- package/knowledge/skills/positioning-angles.md +330 -0
- package/knowledge/skills/pr-review-toolkit.md +359 -0
- package/knowledge/skills/pricing-strategy.md +777 -0
- package/knowledge/skills/programmatic-seo.md +714 -0
- package/knowledge/skills/pyright-lsp.md +43 -0
- package/knowledge/skills/quality-assurance-framework.md +168 -0
- package/knowledge/skills/question-refiner.md +160 -0
- package/knowledge/skills/ralph-loop.md +205 -0
- package/knowledge/skills/refactoring-expert.md +103 -0
- package/knowledge/skills/referral-program.md +668 -0
- package/knowledge/skills/research-executor.md +164 -0
- package/knowledge/skills/review-with-security.md +12 -0
- package/knowledge/skills/rust-analyzer-lsp.md +50 -0
- package/knowledge/skills/schema-markup.md +647 -0
- package/knowledge/skills/security-audit-expert.md +124 -0
- package/knowledge/skills/security-expert.md +140 -0
- package/knowledge/skills/security-guidance.md +13 -0
- package/knowledge/skills/seedance-prompt.md +139 -0
- package/knowledge/skills/self-evolution.md +1160 -0
- package/knowledge/skills/seo-audit.md +432 -0
- package/knowledge/skills/seo-content.md +787 -0
- package/knowledge/skills/serena.md +13 -0
- package/knowledge/skills/signup-flow-cro.md +409 -0
- package/knowledge/skills/skill-creator.md +220 -0
- package/knowledge/skills/skill-manager.md +226 -0
- package/knowledge/skills/skill-share.md +98 -0
- package/knowledge/skills/slack.md +13 -0
- package/knowledge/skills/social-content.md +878 -0
- package/knowledge/skills/spec-flow-skill.md +124 -0
- package/knowledge/skills/stripe.md +13 -0
- package/knowledge/skills/supabase.md +13 -0
- package/knowledge/skills/swift-lsp.md +40 -0
- package/knowledge/skills/synthesizer.md +236 -0
- package/knowledge/skills/template-skill.md +16 -0
- package/knowledge/skills/testing-expert.md +99 -0
- package/knowledge/skills/theme-factory.md +72 -0
- package/knowledge/skills/tiktok-research.md +208 -0
- package/knowledge/skills/typescript-lsp.md +36 -0
- package/knowledge/skills/ui-ux-pro-max.md +247 -0
- package/knowledge/skills/verify.md +15 -0
- package/knowledge/skills/visual-prompt-engineer.md +102 -0
- package/knowledge/skills/webapp-testing.md +111 -0
- package/knowledge/skills/wide-research.md +191 -0
- package/knowledge/system.md +93 -0
- package/knowledge/task-router.md +37 -0
- package/knowledge/verification.md +38 -0
- package/knowledge/workflows/3d-viz.md +47 -0
- package/knowledge/workflows/data-pipeline.md +47 -0
- package/knowledge/workflows/db-migration.md +51 -0
- package/knowledge/workflows/feature-dev.md +41 -0
- package/knowledge/workflows/tdd-flow.md +52 -0
- package/knowledge/workflows/ui-verify.md +51 -0
- package/package.json +60 -0
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "blocking-rules"
|
|
3
|
+
title: "致命阻塞规则"
|
|
4
|
+
category: "core"
|
|
5
|
+
tags: ["致命阻塞规则", "🚨 唯一允许提问的4种情况", "✅ 不应该问的问题(自行决策)", "🤔 判断标准", "📝 决策优先级", "💡 示例对比", "🎯 总结"]
|
|
6
|
+
source: "E:/Bobo's Coding cache/.claude/rules/core/blocking-rules.md"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 致命阻塞规则
|
|
10
|
+
|
|
11
|
+
> **原则**: 只在这4种情况下提问,其他情况自行决策
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 🚨 唯一允许提问的4种情况
|
|
16
|
+
|
|
17
|
+
### 1️⃣ 缺少关键凭证
|
|
18
|
+
|
|
19
|
+
**定义**: 必须的敏感信息,无法猜测或推断
|
|
20
|
+
|
|
21
|
+
**示例**:
|
|
22
|
+
|
|
23
|
+
- ❌ 数据库密码
|
|
24
|
+
- ❌ API key
|
|
25
|
+
- ❌ 私钥文件路径
|
|
26
|
+
- ❌ 服务器 IP 地址
|
|
27
|
+
|
|
28
|
+
**如何提问**:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
需要 [具体信息] 才能继续:
|
|
32
|
+
- [信息名称]
|
|
33
|
+
- 用途:[为什么需要]
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
### 2️⃣ 多个对立方案
|
|
39
|
+
|
|
40
|
+
**定义**: 2+ 个方案完全对立,无法从代码库或上下文判断
|
|
41
|
+
|
|
42
|
+
**示例**:
|
|
43
|
+
|
|
44
|
+
- ❌ 使用 REST 还是 GraphQL?(架构级决策)
|
|
45
|
+
- ❌ 数据存 MySQL 还是 PostgreSQL?(技术选型)
|
|
46
|
+
- ❌ 用户认证用 OAuth 还是 JWT?(安全策略)
|
|
47
|
+
|
|
48
|
+
**不是对立的**:
|
|
49
|
+
|
|
50
|
+
- ✅ 函数命名风格(看代码库现有风格)
|
|
51
|
+
- ✅ 文件组织方式(看项目结构)
|
|
52
|
+
- ✅ UI 颜色选择(看设计规范或自行选择)
|
|
53
|
+
|
|
54
|
+
**如何提问**:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
有2个对立方案,需要决策:
|
|
58
|
+
|
|
59
|
+
方案A: [描述]
|
|
60
|
+
优点: [...]
|
|
61
|
+
缺点: [...]
|
|
62
|
+
|
|
63
|
+
方案B: [描述]
|
|
64
|
+
优点: [...]
|
|
65
|
+
缺点: [...]
|
|
66
|
+
|
|
67
|
+
推荐: [方案X],因为 [理由]
|
|
68
|
+
|
|
69
|
+
是否继续?
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
### 3️⃣ 需求本质矛盾
|
|
75
|
+
|
|
76
|
+
**定义**: 用户的多个要求之间逻辑冲突
|
|
77
|
+
|
|
78
|
+
**示例**:
|
|
79
|
+
|
|
80
|
+
- ❌ "要快速开发,但每行代码都要完美"
|
|
81
|
+
- ❌ "要最大安全性,但不要验证用户输入"
|
|
82
|
+
- ❌ "要实时同步,但不能用 WebSocket"
|
|
83
|
+
|
|
84
|
+
**如何提问**:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
发现需求矛盾:
|
|
88
|
+
|
|
89
|
+
要求A: [描述]
|
|
90
|
+
要求B: [描述]
|
|
91
|
+
|
|
92
|
+
这两者冲突,因为 [原因]
|
|
93
|
+
|
|
94
|
+
可能的折中方案:
|
|
95
|
+
- [方案1]
|
|
96
|
+
- [方案2]
|
|
97
|
+
|
|
98
|
+
请明确优先级。
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### 4️⃣ 不可逆高风险
|
|
104
|
+
|
|
105
|
+
**定义**: 一旦执行无法撤销,且后果严重
|
|
106
|
+
|
|
107
|
+
**示例**:
|
|
108
|
+
|
|
109
|
+
- ❌ 删除生产数据库表
|
|
110
|
+
- ❌ 强制推送到 main 分支(覆盖历史)
|
|
111
|
+
- ❌ 删除整个代码目录
|
|
112
|
+
- ❌ 撤销已发布的版本
|
|
113
|
+
|
|
114
|
+
**如何提问**:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
⚠️ 高风险操作警告
|
|
118
|
+
|
|
119
|
+
操作: [具体动作]
|
|
120
|
+
风险: [可能后果]
|
|
121
|
+
不可逆: [无法撤销的原因]
|
|
122
|
+
|
|
123
|
+
是否确认执行?
|
|
124
|
+
|
|
125
|
+
建议: [更安全的替代方案,如果有]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## ✅ 不应该问的问题(自行决策)
|
|
131
|
+
|
|
132
|
+
### 文件命名
|
|
133
|
+
|
|
134
|
+
**不要问**:
|
|
135
|
+
|
|
136
|
+
- "文件应该叫什么名字?"
|
|
137
|
+
- "放在哪个目录?"
|
|
138
|
+
|
|
139
|
+
**自行决策**:
|
|
140
|
+
|
|
141
|
+
- 遵循项目现有命名规范
|
|
142
|
+
- 如无规范,使用常见约定
|
|
143
|
+
- 例如: `user-service.ts`, `UserController.java`
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
### 代码风格
|
|
148
|
+
|
|
149
|
+
**不要问**:
|
|
150
|
+
|
|
151
|
+
- "用单引号还是双引号?"
|
|
152
|
+
- "缩进用 2 空格还是 4 空格?"
|
|
153
|
+
- "要不要加分号?"
|
|
154
|
+
|
|
155
|
+
**自行决策**:
|
|
156
|
+
|
|
157
|
+
- 检查项目中现有代码风格
|
|
158
|
+
- 遵循语言社区标准
|
|
159
|
+
- 例如: Python → PEP 8, JavaScript → Prettier
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
### 依赖版本
|
|
164
|
+
|
|
165
|
+
**不要问**:
|
|
166
|
+
|
|
167
|
+
- "应该用哪个版本的库?"
|
|
168
|
+
- "要不要升级这个依赖?"
|
|
169
|
+
|
|
170
|
+
**自行决策**:
|
|
171
|
+
|
|
172
|
+
- 使用项目现有依赖的版本
|
|
173
|
+
- 新依赖选择最新稳定版
|
|
174
|
+
- 如有兼容性问题,选择兼容版本
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
### 测试策略
|
|
179
|
+
|
|
180
|
+
**不要问**:
|
|
181
|
+
|
|
182
|
+
- "需要写单元测试吗?"
|
|
183
|
+
- "测试覆盖率要多少?"
|
|
184
|
+
|
|
185
|
+
**自行决策**:
|
|
186
|
+
|
|
187
|
+
- 遵循 `rules/domain/testing.md`
|
|
188
|
+
- 默认要求: 80% 覆盖率
|
|
189
|
+
- 关键路径必须测试
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
### UI 细节
|
|
194
|
+
|
|
195
|
+
**不要问**:
|
|
196
|
+
|
|
197
|
+
- "按钮用什么颜色?"
|
|
198
|
+
- "字体多大?"
|
|
199
|
+
- "间距多少?"
|
|
200
|
+
|
|
201
|
+
**自行决策**:
|
|
202
|
+
|
|
203
|
+
- 遵循设计规范(如果有)
|
|
204
|
+
- 无规范时使用常见标准
|
|
205
|
+
- 例如: 主按钮蓝色, 字体 16px, 间距 8px 倍数
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## 🤔 判断标准
|
|
210
|
+
|
|
211
|
+
### 提问前问自己:
|
|
212
|
+
|
|
213
|
+
1. **能从代码库推断吗?**
|
|
214
|
+
→ 能 → 不要问
|
|
215
|
+
|
|
216
|
+
2. **有明确的最佳实践吗?**
|
|
217
|
+
→ 有 → 不要问
|
|
218
|
+
|
|
219
|
+
3. **是个人偏好问题吗?**
|
|
220
|
+
→ 是 → 不要问(自行选择)
|
|
221
|
+
|
|
222
|
+
4. **符合 4 种致命阻塞吗?**
|
|
223
|
+
→ 否 → 不要问
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## 📝 决策优先级
|
|
228
|
+
|
|
229
|
+
遇到需要决策的情况:
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
1. 项目现有规范
|
|
233
|
+
↓ (如果没有)
|
|
234
|
+
2. 相关最佳实践
|
|
235
|
+
↓ (如果没有)
|
|
236
|
+
3. 语言/框架约定
|
|
237
|
+
↓ (如果没有)
|
|
238
|
+
4. 常见行业标准
|
|
239
|
+
↓ (如果没有)
|
|
240
|
+
5. 合理的默认选择
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 💡 示例对比
|
|
246
|
+
|
|
247
|
+
### ❌ 不好的提问
|
|
248
|
+
|
|
249
|
+
**场景**: 用户要求 "写一个用户登录 API"
|
|
250
|
+
|
|
251
|
+
**不要这样**:
|
|
252
|
+
|
|
253
|
+
```
|
|
254
|
+
问题1: 应该用什么数据库?
|
|
255
|
+
问题2: 密码加密用什么算法?
|
|
256
|
+
问题3: Token 过期时间设置多久?
|
|
257
|
+
问题4: 错误提示用中文还是英文?
|
|
258
|
+
问题5: API 路径是 /login 还是 /auth?
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### ✅ 正确的做法
|
|
262
|
+
|
|
263
|
+
**直接实现**:
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
数据库: 用项目现有的(检查配置文件)
|
|
267
|
+
加密: bcrypt(行业标准)
|
|
268
|
+
Token 过期: 24小时(常见默认值)
|
|
269
|
+
错误提示: 跟项目其他 API 保持一致
|
|
270
|
+
API 路径: /auth/login(RESTful 约定)
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
**展示计划让用户确认** → 执行
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
### ✅ 合理的提问
|
|
278
|
+
|
|
279
|
+
**场景**: 用户要求 "清理所有测试数据"
|
|
280
|
+
|
|
281
|
+
**这样提问**:
|
|
282
|
+
|
|
283
|
+
```
|
|
284
|
+
⚠️ 高风险操作警告
|
|
285
|
+
|
|
286
|
+
操作: 删除数据库中所有 test_* 开头的记录
|
|
287
|
+
风险: 如果有生产数据也以 test_ 开头,会被误删
|
|
288
|
+
不可逆: 删除后无法恢复
|
|
289
|
+
|
|
290
|
+
是否确认执行?
|
|
291
|
+
|
|
292
|
+
建议: 先备份数据库,或者先 SELECT 确认要删除的记录
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## 🎯 总结
|
|
298
|
+
|
|
299
|
+
**工作原则**:
|
|
300
|
+
|
|
301
|
+
```
|
|
302
|
+
自行决策 > 展示计划确认 > 提问
|
|
303
|
+
|
|
304
|
+
提问是最后的手段,只用于 4 种致命阻塞。
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
**好的工作模式**:
|
|
308
|
+
|
|
309
|
+
- 快速规划 → 展示 → 确认 → 执行
|
|
310
|
+
- 95% 的问题都能自行决策
|
|
311
|
+
- 5% 的真正阻塞才提问
|
|
312
|
+
|
|
313
|
+
**不好的工作模式**:
|
|
314
|
+
|
|
315
|
+
- 遇到任何小事都问
|
|
316
|
+
- 让用户做所有决策
|
|
317
|
+
- 浪费时间在不重要的细节上
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
**版本**: v1.0
|
|
322
|
+
**来源**: CLAUDE.md v4.2 核心原则
|
|
323
|
+
**状态**: Active
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "cache-management"
|
|
3
|
+
title: "Cache Management & Token Optimization"
|
|
4
|
+
category: "domain"
|
|
5
|
+
tags: ["🔥 token 燃烧根本原因", "✅ 解决方案矩阵", "🎯 优先级规则", "📊 监控和验证", "每个会话开始时运行", "输出示例", "周期性审计", "🔧 集成到工作流", "1. 检查 cc-cache-fix 是否安装", "2. 运行缓存预热"]
|
|
6
|
+
source: "E:/Bobo's Coding cache/.claude/rules/domain/cache-management.md"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Cache Management & Token Optimization
|
|
10
|
+
|
|
11
|
+
> **版本**: v1.0 (2026-04-01)
|
|
12
|
+
> **来源**: cc-cache-fix 集成 + Claude Code 缓存分析
|
|
13
|
+
> **目标**: 减少 60-70% token 燃烧,提升缓存命中率
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 🔥 Token 燃烧根本原因
|
|
18
|
+
|
|
19
|
+
### 问题1: Prompt Cache 利用率极低
|
|
20
|
+
- **症状**: `cacheCreationInputTokens` = 0, `cacheReadInputTokens` << total input
|
|
21
|
+
- **原因**: Delta 附件丢失、Hash 不稳定、TTL 过短
|
|
22
|
+
- **影响**: 每次对话重新计算,浪费 70% tokens
|
|
23
|
+
|
|
24
|
+
### 问题2: 会话恢复缓存丢失
|
|
25
|
+
- **症状**: 恢复会话后,缓存完全失效
|
|
26
|
+
- **原因**: `deferred_tools_delta` 和 `mcp_instructions_delta` 未持久化
|
|
27
|
+
- **影响**: 长期项目中每次恢复都是冷启动
|
|
28
|
+
|
|
29
|
+
### 问题3: Hash 不稳定
|
|
30
|
+
- **症状**: 相同内容不同 turn 的缓存键不同
|
|
31
|
+
- **原因**: 注入的元数据(时间戳、ID)影响 hash
|
|
32
|
+
- **影响**: 缓存失效率 40-50%
|
|
33
|
+
|
|
34
|
+
### 问题4: TTL 过短
|
|
35
|
+
- **症状**: 5分钟后缓存过期,需要重新计算
|
|
36
|
+
- **原因**: Claude Code 默认 TTL 设置
|
|
37
|
+
- **影响**: 中等长度会话(>5分钟)缓存无效
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## ✅ 解决方案矩阵
|
|
42
|
+
|
|
43
|
+
### 方案A: 使用 cc-cache-fix(快速修复)
|
|
44
|
+
|
|
45
|
+
**安装**:
|
|
46
|
+
```bash
|
|
47
|
+
git clone https://github.com/Rangizingo/cc-cache-fix.git
|
|
48
|
+
cd cc-cache-fix
|
|
49
|
+
./install.sh
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**使用**:
|
|
53
|
+
```bash
|
|
54
|
+
claude-patched # 替代 claude 命令
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**效果**:
|
|
58
|
+
- ✅ 补丁1: 会话恢复缓存保留 → +30% 缓存命中
|
|
59
|
+
- ✅ 补丁2: Hash 稳定性 → +20% 缓存命中
|
|
60
|
+
- ✅ 补丁3: TTL 1小时 → +15% 缓存命中
|
|
61
|
+
- **总计**: ~60% token 节省(相对基准)
|
|
62
|
+
|
|
63
|
+
**验证**:
|
|
64
|
+
```bash
|
|
65
|
+
python test_cache.py # 检查缓存健康度
|
|
66
|
+
python usage_audit.py # 审计读取效率
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### 方案B: Context 压缩(根本优化)
|
|
72
|
+
|
|
73
|
+
**触发条件**: 任何会话开始时
|
|
74
|
+
|
|
75
|
+
**执行步骤**:
|
|
76
|
+
|
|
77
|
+
1. **加载必需文档**(按需加载,不全量)
|
|
78
|
+
```
|
|
79
|
+
Layer 0: CLAUDE.md (5KB) + 核心规则 (15KB)
|
|
80
|
+
Layer 1: Task Router (3KB)
|
|
81
|
+
Layer 2: 相关能力文档 (15-30KB)
|
|
82
|
+
Layer 3: 具体案例 (按需)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
2. **压缩 CLAUDE.md**
|
|
86
|
+
- 删除重复内容
|
|
87
|
+
- 提取关键规则到 `rules/domain/`
|
|
88
|
+
- 保留索引,不保留详细内容
|
|
89
|
+
|
|
90
|
+
3. **分离项目级规则**
|
|
91
|
+
- 全局规则: `~/.claude/rules/`
|
|
92
|
+
- 项目规则: `.claude/rules/`
|
|
93
|
+
- 不混合加载
|
|
94
|
+
|
|
95
|
+
4. **使用 Context Manager**
|
|
96
|
+
- 自动识别任务类型
|
|
97
|
+
- 按需加载相关文档
|
|
98
|
+
- 保持 context 清洁
|
|
99
|
+
|
|
100
|
+
**效果**: 减少 40-50% 初始 context 大小
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
### 方案C: 会话分割(长任务优化)
|
|
105
|
+
|
|
106
|
+
**触发条件**: 任务预计 >1小时
|
|
107
|
+
|
|
108
|
+
**执行步骤**:
|
|
109
|
+
|
|
110
|
+
1. **分割策略**
|
|
111
|
+
```
|
|
112
|
+
长任务 (>1小时)
|
|
113
|
+
↓
|
|
114
|
+
分成 3-5 个短会话 (15-20分钟)
|
|
115
|
+
↓
|
|
116
|
+
每个会话独立缓存
|
|
117
|
+
↓
|
|
118
|
+
总 token 节省 30-40%
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
2. **会话间数据传递**
|
|
122
|
+
- 使用 `task_plan.md` 保存进度
|
|
123
|
+
- 使用 `notes.md` 保存发现
|
|
124
|
+
- 下一个会话加载这两个文件
|
|
125
|
+
|
|
126
|
+
3. **缓存预热**
|
|
127
|
+
- 会话开始时加载前一个会话的关键上下文
|
|
128
|
+
- 避免重复计算
|
|
129
|
+
|
|
130
|
+
**效果**: 长任务 token 节省 30-40%
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### 方案D: 缓存预热(会话开始优化)
|
|
135
|
+
|
|
136
|
+
**执行时机**: 每个会话开始
|
|
137
|
+
|
|
138
|
+
**步骤**:
|
|
139
|
+
|
|
140
|
+
1. **加载常用上下文**
|
|
141
|
+
```typescript
|
|
142
|
+
// 会话开始时自动加载
|
|
143
|
+
const warmupContext = [
|
|
144
|
+
'CLAUDE.md', // 核心规则
|
|
145
|
+
'rules/core/', // 核心规则
|
|
146
|
+
'memory/MEMORY.md', // 持久化记忆
|
|
147
|
+
'task_plan.md', // 当前任务计划
|
|
148
|
+
];
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
2. **预计算常见操作**
|
|
152
|
+
- 加载项目结构
|
|
153
|
+
- 初始化工具链
|
|
154
|
+
- 预加载常用代码片段
|
|
155
|
+
|
|
156
|
+
3. **缓存验证**
|
|
157
|
+
```bash
|
|
158
|
+
# 会话开始时运行
|
|
159
|
+
python usage_audit.py --check-warmup
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**效果**: 会话启动时间 -50%, 首次操作 token -30%
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## 🎯 优先级规则
|
|
167
|
+
|
|
168
|
+
### 立即应用(所有会话)
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
1. 使用 claude-patched(cc-cache-fix)
|
|
172
|
+
↓
|
|
173
|
+
2. 按需加载 context(不全量)
|
|
174
|
+
↓
|
|
175
|
+
3. 会话开始时缓存预热
|
|
176
|
+
↓
|
|
177
|
+
4. 长任务自动分割
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 按任务类型应用
|
|
181
|
+
|
|
182
|
+
| 任务类型 | 推荐方案 | 预期节省 |
|
|
183
|
+
|---------|---------|---------|
|
|
184
|
+
| 简单任务 (<15分钟) | A + B | 40-50% |
|
|
185
|
+
| 中等任务 (15-60分钟) | A + B + D | 50-60% |
|
|
186
|
+
| 长任务 (>1小时) | A + B + C + D | 60-70% |
|
|
187
|
+
| 复杂多文件 | A + B + D + 分割 | 60-70% |
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 📊 监控和验证
|
|
192
|
+
|
|
193
|
+
### 缓存健康检查
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
# 每个会话开始时运行
|
|
197
|
+
python cc-cache-fix/test_cache.py
|
|
198
|
+
|
|
199
|
+
# 输出示例
|
|
200
|
+
✅ Attachment persistence: PASS
|
|
201
|
+
✅ Hash stability: PASS
|
|
202
|
+
✅ TTL extension: PASS (1h)
|
|
203
|
+
📊 Cache hit rate: 78%
|
|
204
|
+
💾 Token saved: 2,340 / 3,200 (73%)
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### 使用审计
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# 周期性审计
|
|
211
|
+
python cc-cache-fix/usage_audit.py
|
|
212
|
+
|
|
213
|
+
# 输出示例
|
|
214
|
+
Session: 2026-04-01 10:00
|
|
215
|
+
├─ Total input tokens: 3,200
|
|
216
|
+
├─ Cache read tokens: 2,340 (73%)
|
|
217
|
+
├─ Cache creation tokens: 860 (27%)
|
|
218
|
+
├─ Efficiency: 73% ✅
|
|
219
|
+
└─ Recommendation: Maintain current strategy
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### 告警阈值
|
|
223
|
+
|
|
224
|
+
| 指标 | 正常 | 警告 | 严重 |
|
|
225
|
+
|------|------|------|------|
|
|
226
|
+
| Cache hit rate | >70% | 50-70% | <50% |
|
|
227
|
+
| Token efficiency | >65% | 45-65% | <45% |
|
|
228
|
+
| TTL utilization | >80% | 60-80% | <60% |
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## 🔧 集成到工作流
|
|
233
|
+
|
|
234
|
+
### 会话开始 Hook
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
# ~/.claude/hooks/session-start-cache-warmup.sh
|
|
238
|
+
|
|
239
|
+
#!/bin/bash
|
|
240
|
+
|
|
241
|
+
# 1. 检查 cc-cache-fix 是否安装
|
|
242
|
+
if ! command -v claude-patched &> /dev/null; then
|
|
243
|
+
echo "⚠️ cc-cache-fix not installed. Install with:"
|
|
244
|
+
echo " git clone https://github.com/Rangizingo/cc-cache-fix.git && cd cc-cache-fix && ./install.sh"
|
|
245
|
+
fi
|
|
246
|
+
|
|
247
|
+
# 2. 运行缓存预热
|
|
248
|
+
python cc-cache-fix/test_cache.py --warmup
|
|
249
|
+
|
|
250
|
+
# 3. 加载持久化记忆
|
|
251
|
+
if [ -f "~/.claude/projects/e--bobo-s-coding-cache/memory/MEMORY.md" ]; then
|
|
252
|
+
echo "✅ Memory loaded"
|
|
253
|
+
fi
|
|
254
|
+
|
|
255
|
+
# 4. 检查 context 大小
|
|
256
|
+
CONTEXT_SIZE=$(wc -c < "CLAUDE.md")
|
|
257
|
+
if [ $CONTEXT_SIZE -gt 50000 ]; then
|
|
258
|
+
echo "⚠️ CLAUDE.md too large ($CONTEXT_SIZE bytes). Consider splitting."
|
|
259
|
+
fi
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### 任务执行 Hook
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
# ~/.claude/hooks/task-execution-cache-monitor.sh
|
|
266
|
+
|
|
267
|
+
#!/bin/bash
|
|
268
|
+
|
|
269
|
+
# 监控任务执行期间的缓存效率
|
|
270
|
+
python cc-cache-fix/usage_audit.py --monitor --interval 5m
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## 📝 最佳实践清单
|
|
276
|
+
|
|
277
|
+
### 每个会话
|
|
278
|
+
|
|
279
|
+
- [ ] 使用 `claude-patched` 而非 `claude`
|
|
280
|
+
- [ ] 会话开始时运行 `test_cache.py --warmup`
|
|
281
|
+
- [ ] 加载 `memory/MEMORY.md`
|
|
282
|
+
- [ ] 检查 CLAUDE.md 大小 (<50KB)
|
|
283
|
+
|
|
284
|
+
### 每个任务
|
|
285
|
+
|
|
286
|
+
- [ ] 预估任务时长
|
|
287
|
+
- [ ] 如果 >1小时,分割成多个会话
|
|
288
|
+
- [ ] 使用 `task_plan.md` 保存进度
|
|
289
|
+
- [ ] 使用 `notes.md` 保存发现
|
|
290
|
+
|
|
291
|
+
### 每周
|
|
292
|
+
|
|
293
|
+
- [ ] 运行 `usage_audit.py` 审计
|
|
294
|
+
- [ ] 检查缓存命中率趋势
|
|
295
|
+
- [ ] 优化低效会话
|
|
296
|
+
- [ ] 更新 CLAUDE.md(删除过期内容)
|
|
297
|
+
|
|
298
|
+
### 每月
|
|
299
|
+
|
|
300
|
+
- [ ] 审视 context 结构
|
|
301
|
+
- [ ] 合并重复规则
|
|
302
|
+
- [ ] 更新技能索引
|
|
303
|
+
- [ ] 评估 token 节省效果
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## 🚀 快速开始
|
|
308
|
+
|
|
309
|
+
### 1分钟快速设置
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
# 1. 安装 cc-cache-fix
|
|
313
|
+
git clone https://github.com/Rangizingo/cc-cache-fix.git
|
|
314
|
+
cd cc-cache-fix
|
|
315
|
+
./install.sh
|
|
316
|
+
|
|
317
|
+
# 2. 验证安装
|
|
318
|
+
claude-patched --version
|
|
319
|
+
|
|
320
|
+
# 3. 测试缓存
|
|
321
|
+
python test_cache.py
|
|
322
|
+
|
|
323
|
+
# 4. 从现在开始使用 claude-patched
|
|
324
|
+
alias claude=claude-patched
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### 验证效果
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
# 运行两个相同的会话,对比 token 使用
|
|
331
|
+
|
|
332
|
+
# 会话1(冷启动)
|
|
333
|
+
claude-patched
|
|
334
|
+
# 输入相同的任务
|
|
335
|
+
# 记录 input tokens
|
|
336
|
+
|
|
337
|
+
# 会话2(热启动)
|
|
338
|
+
claude-patched
|
|
339
|
+
# 输入相同的任务
|
|
340
|
+
# 记录 input tokens
|
|
341
|
+
|
|
342
|
+
# 对比:会话2 应该节省 40-60% tokens
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## ⚠️ 已知限制
|
|
348
|
+
|
|
349
|
+
### cc-cache-fix 的限制
|
|
350
|
+
|
|
351
|
+
- ✅ 解决 Delta 附件丢失
|
|
352
|
+
- ✅ 解决 Hash 不稳定
|
|
353
|
+
- ✅ 解决 TTL 过短
|
|
354
|
+
- ❌ 不能解决 Prompt Cache 设计缺陷
|
|
355
|
+
- ❌ 不能解决 MCP 指令重复加载
|
|
356
|
+
- ❌ 不能解决跨会话缓存共享
|
|
357
|
+
|
|
358
|
+
### 需要手动优化的
|
|
359
|
+
|
|
360
|
+
- Context 压缩(按需加载)
|
|
361
|
+
- 会话分割(长任务)
|
|
362
|
+
- 缓存预热(会话开始)
|
|
363
|
+
- 规则去重(定期维护)
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## 📚 相关文档
|
|
368
|
+
|
|
369
|
+
- `performance.md` - 模型选择和性能优化
|
|
370
|
+
- `engineering-workflows.md` - 工程化工作流
|
|
371
|
+
- `context-budget-analyzer` - Context 预算分析工具
|
|
372
|
+
- `context-compressor` - Context 压缩工具
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
**版本**: v1.0
|
|
377
|
+
**创建**: 2026-04-01
|
|
378
|
+
**状态**: Active
|
|
379
|
+
**下一步**: 集成到 performance.md 和 engineering-workflows.md
|