@tinkcarlos/skillora 0.2.0
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/.claude/skills/.temp-skill-index.md +245 -0
- package/.claude/skills/SKILL.md +264 -0
- package/.claude/skills/api-scaffolding/SKILL.md +431 -0
- package/.claude/skills/api-scaffolding/agents/backend-architect.md +282 -0
- package/.claude/skills/api-scaffolding/agents/django-pro.md +144 -0
- package/.claude/skills/api-scaffolding/agents/fastapi-pro.md +156 -0
- package/.claude/skills/api-scaffolding/agents/graphql-architect.md +146 -0
- package/.claude/skills/api-scaffolding/skills/fastapi-templates/SKILL.md +171 -0
- package/.claude/skills/api-testing-observability/SKILL.md +583 -0
- package/.claude/skills/api-testing-observability/agents/api-documenter.md +146 -0
- package/.claude/skills/api-testing-observability/commands/api-mock.md +1320 -0
- package/.claude/skills/brainstorming/SKILL.md +283 -0
- package/.claude/skills/bug-fixing/SKILL.md +382 -0
- package/.claude/skills/bug-fixing/references/backend-guide.md +132 -0
- package/.claude/skills/bug-fixing/references/bug-guide.md +354 -0
- package/.claude/skills/bug-fixing/references/bug-record-template.md +134 -0
- package/.claude/skills/bug-fixing/references/bug-records.md +88 -0
- package/.claude/skills/bug-fixing/references/code-review-gate.md +81 -0
- package/.claude/skills/bug-fixing/references/common-bugs.md +140 -0
- package/.claude/skills/bug-fixing/references/complete-workflow.md +361 -0
- package/.claude/skills/bug-fixing/references/config-driven-fixes.md +136 -0
- package/.claude/skills/bug-fixing/references/context-isolation-protocol.md +268 -0
- package/.claude/skills/bug-fixing/references/cross-surface-regression.md +120 -0
- package/.claude/skills/bug-fixing/references/database-investigation.md +129 -0
- package/.claude/skills/bug-fixing/references/dependency-and-integrity-protocol.md +369 -0
- package/.claude/skills/bug-fixing/references/fix-completeness-checklist.md +239 -0
- package/.claude/skills/bug-fixing/references/frontend-guide.md +219 -0
- package/.claude/skills/bug-fixing/references/fullstack-joint-guide.md +123 -0
- package/.claude/skills/bug-fixing/references/functional-breakage.md +117 -0
- package/.claude/skills/bug-fixing/references/ide-lint-errors-guide.md +176 -0
- package/.claude/skills/bug-fixing/references/impact-analysis.md +511 -0
- package/.claude/skills/bug-fixing/references/investigation-checklist.md +263 -0
- package/.claude/skills/bug-fixing/references/knowledge-extraction-guide.md +531 -0
- package/.claude/skills/bug-fixing/references/knowledge-workflow.md +212 -0
- package/.claude/skills/bug-fixing/references/post-edit-quality-gate.md +30 -0
- package/.claude/skills/bug-fixing/references/python-env-and-testing.md +126 -0
- package/.claude/skills/bug-fixing/references/rca-guide.md +428 -0
- package/.claude/skills/bug-fixing/references/similar-bug-patterns.md +113 -0
- package/.claude/skills/bug-fixing/references/skill-delegation-guide.md +350 -0
- package/.claude/skills/bug-fixing/references/skill-orchestration.md +155 -0
- package/.claude/skills/bug-fixing/references/testing-strategy.md +350 -0
- package/.claude/skills/bug-fixing/references/tooling-build-scripts.md +162 -0
- package/.claude/skills/bug-fixing/references/user-input-validation.md +77 -0
- package/.claude/skills/bug-fixing/references/ux-patterns.md +158 -0
- package/.claude/skills/bug-fixing/references/windows-terminal-hygiene.md +106 -0
- package/.claude/skills/bug-fixing/references/zero-regression-matrix.md +239 -0
- package/.claude/skills/bug-fixing/references/zero-risk-protocol.md +102 -0
- package/.claude/skills/bug-fixing/scripts/format_code.py +611 -0
- package/.claude/skills/bug-fixing/scripts/generate_report_template.py +74 -0
- package/.claude/skills/bug-fixing/scripts/lint_check.py +816 -0
- package/.claude/skills/bug-fixing/scripts/requirements.txt +36 -0
- package/.claude/skills/cicd-pipeline/SKILL.md +300 -0
- package/.claude/skills/code-review/SKILL.md +535 -0
- package/.claude/skills/code-review/references/anti-pattern-scan.md +102 -0
- package/.claude/skills/code-review/references/automated-analysis.md +456 -0
- package/.claude/skills/code-review/references/backend-common-issues.md +589 -0
- package/.claude/skills/code-review/references/backend-expert-guide.md +415 -0
- package/.claude/skills/code-review/references/backend-review.md +868 -0
- package/.claude/skills/code-review/references/batch-processing-strategy.md +198 -0
- package/.claude/skills/code-review/references/call-chain-analysis-protocol.md +166 -0
- package/.claude/skills/code-review/references/common-patterns.md +321 -0
- package/.claude/skills/code-review/references/configuration-review.md +425 -0
- package/.claude/skills/code-review/references/control-flow-completeness.md +114 -0
- package/.claude/skills/code-review/references/database-review.md +298 -0
- package/.claude/skills/code-review/references/dependency-and-integrity-protocol.md +313 -0
- package/.claude/skills/code-review/references/external-standards.md +51 -0
- package/.claude/skills/code-review/references/feature-review.md +329 -0
- package/.claude/skills/code-review/references/file-review-template.md +326 -0
- package/.claude/skills/code-review/references/frontend-advanced.md +654 -0
- package/.claude/skills/code-review/references/frontend-common-issues.md +482 -0
- package/.claude/skills/code-review/references/frontend-expert-guide.md +342 -0
- package/.claude/skills/code-review/references/frontend-review.md +783 -0
- package/.claude/skills/code-review/references/fullstack-consistency.md +418 -0
- package/.claude/skills/code-review/references/fullstack-review.md +477 -0
- package/.claude/skills/code-review/references/functional-completeness.md +386 -0
- package/.claude/skills/code-review/references/hidden-bugs-detection.md +473 -0
- package/.claude/skills/code-review/references/ide-lint-errors-guide.md +173 -0
- package/.claude/skills/code-review/references/infrastructure-review.md +453 -0
- package/.claude/skills/code-review/references/iteration-review.md +264 -0
- package/.claude/skills/code-review/references/job-review.md +335 -0
- package/.claude/skills/code-review/references/layered-checklist-protocol.md +157 -0
- package/.claude/skills/code-review/references/logic-completeness.md +535 -0
- package/.claude/skills/code-review/references/mandatory-checklist.md +288 -0
- package/.claude/skills/code-review/references/multi-language-guide.md +800 -0
- package/.claude/skills/code-review/references/new-project-review.md +226 -0
- package/.claude/skills/code-review/references/non-code-files-review.md +451 -0
- package/.claude/skills/code-review/references/overlooked-issues.md +657 -0
- package/.claude/skills/code-review/references/platform-specific-review.md +195 -0
- package/.claude/skills/code-review/references/precision-analysis-protocol.md +260 -0
- package/.claude/skills/code-review/references/python-patterns.md +494 -0
- package/.claude/skills/code-review/references/rca-techniques.md +362 -0
- package/.claude/skills/code-review/references/report-template.md +430 -0
- package/.claude/skills/code-review/references/resource-limits-and-degradation.md +137 -0
- package/.claude/skills/code-review/references/review-dimensions.md +311 -0
- package/.claude/skills/code-review/references/review-guide.md +202 -0
- package/.claude/skills/code-review/references/review-knowledge-workflow.md +257 -0
- package/.claude/skills/code-review/references/review-progress-tracker-protocol.md +172 -0
- package/.claude/skills/code-review/references/review-record-template.md +195 -0
- package/.claude/skills/code-review/references/skill-orchestration.md +143 -0
- package/.claude/skills/code-review/references/ui-ux-review.md +470 -0
- package/.claude/skills/containerization/SKILL.md +313 -0
- package/.claude/skills/database-migrations/agents/database-admin.md +142 -0
- package/.claude/skills/database-migrations/agents/database-optimizer.md +144 -0
- package/.claude/skills/database-migrations/commands/migration-observability.md +408 -0
- package/.claude/skills/database-migrations/commands/sql-migrations.md +492 -0
- package/.claude/skills/finishing-a-development-branch/SKILL.md +319 -0
- package/.claude/skills/frontend-design/LICENSE.txt +177 -0
- package/.claude/skills/frontend-design/SKILL.md +587 -0
- package/.claude/skills/frontend-design/references/color-consistency.md +487 -0
- package/.claude/skills/frontend-design/references/color-palettes-full.md +657 -0
- package/.claude/skills/frontend-design/references/design-system-generator.md +285 -0
- package/.claude/skills/frontend-design/references/font-pairings-full.md +705 -0
- package/.claude/skills/frontend-design/references/industry-anti-patterns.md +281 -0
- package/.claude/skills/frontend-design/references/layout-anti-patterns.md +582 -0
- package/.claude/skills/frontend-design/references/motion-patterns.md +659 -0
- package/.claude/skills/frontend-design/references/pre-delivery-checklist.md +153 -0
- package/.claude/skills/frontend-design/references/responsive-design.md +555 -0
- package/.claude/skills/frontend-design/references/style-modification-rules.md +335 -0
- package/.claude/skills/frontend-design/references/ui-styles-full.md +383 -0
- package/.claude/skills/frontend-design/references/ui-styles-rating.md +191 -0
- package/.claude/skills/frontend-design/references/ux-guidelines.md +640 -0
- package/.claude/skills/fullstack-developer/SKILL.md +512 -0
- package/.claude/skills/fullstack-developer/references/api-contract-guide.md +312 -0
- package/.claude/skills/fullstack-developer/references/api-response-patterns.md +223 -0
- package/.claude/skills/fullstack-developer/references/async-patterns.md +220 -0
- package/.claude/skills/fullstack-developer/references/bug-prevention.md +914 -0
- package/.claude/skills/fullstack-developer/references/code-quality-checklist.md +271 -0
- package/.claude/skills/fullstack-developer/references/complete-development-workflow.md +278 -0
- package/.claude/skills/fullstack-developer/references/context-isolation-protocol.md +256 -0
- package/.claude/skills/fullstack-developer/references/database-migration.md +331 -0
- package/.claude/skills/fullstack-developer/references/dependency-and-integrity-protocol.md +390 -0
- package/.claude/skills/fullstack-developer/references/development-phases.md +333 -0
- package/.claude/skills/fullstack-developer/references/expert-guide.md +214 -0
- package/.claude/skills/fullstack-developer/references/file-import-patterns.md +114 -0
- package/.claude/skills/fullstack-developer/references/graceful-degradation-patterns.md +78 -0
- package/.claude/skills/fullstack-developer/references/ide-lint-errors-guide.md +183 -0
- package/.claude/skills/fullstack-developer/references/integration-testing.md +301 -0
- package/.claude/skills/fullstack-developer/references/mock-api-patterns.md +307 -0
- package/.claude/skills/fullstack-developer/references/phase-gate-template.md +249 -0
- package/.claude/skills/fullstack-developer/references/post-edit-quality-gate.md +30 -0
- package/.claude/skills/fullstack-developer/references/python-engineering.md +79 -0
- package/.claude/skills/fullstack-developer/references/skill-orchestration.md +214 -0
- package/.claude/skills/fullstack-developer/references/skill-router-table.md +304 -0
- package/.claude/skills/fullstack-developer/references/state-sync.md +217 -0
- package/.claude/skills/fullstack-developer/references/ui-testing-checklist.md +292 -0
- package/.claude/skills/fullstack-developer/scripts/format_code.py +611 -0
- package/.claude/skills/fullstack-developer/scripts/lint_check.py +816 -0
- package/.claude/skills/fullstack-developer/scripts/requirements.txt +36 -0
- package/.claude/skills/performance-optimization/SKILL.md +250 -0
- package/.claude/skills/product-requirements/SKILL.md +357 -0
- package/.claude/skills/product-requirements/references/acceptance-criteria.md +335 -0
- package/.claude/skills/product-requirements/references/answer-first-questioning-protocol.md +299 -0
- package/.claude/skills/product-requirements/references/competitive-analysis-guide.md +183 -0
- package/.claude/skills/product-requirements/references/document-accuracy-protocol.md +253 -0
- package/.claude/skills/product-requirements/references/document-management-protocol.md +278 -0
- package/.claude/skills/product-requirements/references/external-standards.md +62 -0
- package/.claude/skills/product-requirements/references/feature-spec-template.md +359 -0
- package/.claude/skills/product-requirements/references/knowledge-acquisition-protocol.md +251 -0
- package/.claude/skills/product-requirements/references/plan-execution-protocol.md +334 -0
- package/.claude/skills/product-requirements/references/plan-generation-protocol.md +264 -0
- package/.claude/skills/product-requirements/references/prioritization-frameworks.md +80 -0
- package/.claude/skills/product-requirements/references/requirement-decomposition-protocol.md +291 -0
- package/.claude/skills/product-requirements/references/user-story-examples.md +297 -0
- package/.claude/skills/product-requirements/references/workflow-templates.md +266 -0
- package/.claude/skills/react-best-practices/SKILL.md +198 -0
- package/.claude/skills/react-best-practices/references/advanced-patterns.md +94 -0
- package/.claude/skills/react-best-practices/references/bundle-optimization.md +182 -0
- package/.claude/skills/react-best-practices/references/client-data-fetching.md +112 -0
- package/.claude/skills/react-best-practices/references/complete-guide.md +2249 -0
- package/.claude/skills/react-best-practices/references/eliminating-waterfalls.md +169 -0
- package/.claude/skills/react-best-practices/references/javascript-performance.md +256 -0
- package/.claude/skills/react-best-practices/references/rendering-performance.md +230 -0
- package/.claude/skills/react-best-practices/references/rerender-optimization.md +214 -0
- package/.claude/skills/react-best-practices/references/server-performance.md +182 -0
- package/.claude/skills/security-audit/SKILL.md +226 -0
- package/.claude/skills/shared-references/advanced-debugging-techniques.md +186 -0
- package/.claude/skills/shared-references/code-quality-checklist.md +218 -0
- package/.claude/skills/shared-references/code-review-efficiency-guide.md +125 -0
- package/.claude/skills/shared-references/mcp-dependency-compatibility-protocol.md +276 -0
- package/.claude/skills/shared-references/skill-call-graph.md +230 -0
- package/.claude/skills/shared-references/skill-orchestration-protocol.md +281 -0
- package/.claude/skills/shared-references/subagent-dispatch-templates.md +199 -0
- package/.claude/skills/skill-expert-skills/LICENSE.txt +204 -0
- package/.claude/skills/skill-expert-skills/QUICK_NAVIGATION.md +374 -0
- package/.claude/skills/skill-expert-skills/SKILL.md +247 -0
- package/.claude/skills/skill-expert-skills/docs/_index.md +91 -0
- package/.claude/skills/skill-expert-skills/references/deep-research-methodology.md +389 -0
- package/.claude/skills/skill-expert-skills/references/docs-generation-workflow.md +398 -0
- package/.claude/skills/skill-expert-skills/references/domain-expertise-protocol.md +343 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/_index.md +54 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/backend-expertise.md +517 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/bug-fixing-expertise.md +363 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/code-review-expertise.md +392 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/frontend-expertise.md +410 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge-template.md +503 -0
- package/.claude/skills/skill-expert-skills/references/examples.md +782 -0
- package/.claude/skills/skill-expert-skills/references/integration-examples.md +655 -0
- package/.claude/skills/skill-expert-skills/references/knowledge-validation-checklist.md +246 -0
- package/.claude/skills/skill-expert-skills/references/latest-knowledge-acquisition.md +461 -0
- package/.claude/skills/skill-expert-skills/references/mcp-tools-guide.md +439 -0
- package/.claude/skills/skill-expert-skills/references/official-best-practices.md +616 -0
- package/.claude/skills/skill-expert-skills/references/patterns.md +218 -0
- package/.claude/skills/skill-expert-skills/references/plugin-skills-guide.md +432 -0
- package/.claude/skills/skill-expert-skills/references/requirement-elicitation-protocol.md +290 -0
- package/.claude/skills/skill-expert-skills/references/skill-creator-SKILL.md +353 -0
- package/.claude/skills/skill-expert-skills/references/skill-templates.md +583 -0
- package/.claude/skills/skill-expert-skills/references/skills-knowledge-base.md +561 -0
- package/.claude/skills/skill-expert-skills/references/tools-guide.md +379 -0
- package/.claude/skills/skill-expert-skills/references/troubleshooting.md +378 -0
- package/.claude/skills/skill-expert-skills/references/universality-guide.md +205 -0
- package/.claude/skills/skill-expert-skills/references/writing-style-guide.md +466 -0
- package/.claude/skills/skill-expert-skills/scripts/__pycache__/quick_validate.cpython-313.pyc +0 -0
- package/.claude/skills/skill-expert-skills/scripts/__pycache__/universal_validate.cpython-313.pyc +0 -0
- package/.claude/skills/skill-expert-skills/scripts/analyze_trigger.py +425 -0
- package/.claude/skills/skill-expert-skills/scripts/diff_with_official.py +188 -0
- package/.claude/skills/skill-expert-skills/scripts/init_skill.py +349 -0
- package/.claude/skills/skill-expert-skills/scripts/package_skill.py +156 -0
- package/.claude/skills/skill-expert-skills/scripts/quick_validate.py +493 -0
- package/.claude/skills/skill-expert-skills/scripts/requirements.txt +2 -0
- package/.claude/skills/skill-expert-skills/scripts/universal_validate.py +182 -0
- package/.claude/skills/skill-expert-skills/scripts/upgrade_skill.py +431 -0
- package/.claude/skills/subagent-driven-development/SKILL.md +268 -0
- package/.claude/skills/test-driven-development/SKILL.md +246 -0
- package/.claude/skills/test-driven-development/references/testing-anti-patterns.md +192 -0
- package/.claude/skills/using-git-worktrees/SKILL.md +266 -0
- package/.claude/skills/using-skillstack/SKILL.md +127 -0
- package/.claude/skills/vercel-deploy/SKILL.md +166 -0
- package/.claude/skills/vercel-deploy/scripts/deploy.sh +249 -0
- package/.claude/skills/verification-before-completion/SKILL.md +305 -0
- package/.claude/skills/writing-plans/SKILL.md +259 -0
- package/README.md +69 -0
- package/bin/cli.js +468 -0
- package/lib/init.js +333 -0
- package/package.json +29 -0
|
@@ -0,0 +1,531 @@
|
|
|
1
|
+
# Knowledge Extraction Guide (知识提取指南)
|
|
2
|
+
|
|
3
|
+
> 将每次 Bug 修复的经验转化为可复用的知识,持续丰富 bug-guide.md。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 为什么需要知识提取?
|
|
8
|
+
|
|
9
|
+
### 问题:重复踩坑
|
|
10
|
+
|
|
11
|
+
| 场景 | 后果 |
|
|
12
|
+
|------|------|
|
|
13
|
+
| 相同类型 Bug 反复出现 | 浪费时间重复调查 |
|
|
14
|
+
| 修复经验只在个人记忆中 | 知识无法传承 |
|
|
15
|
+
| 没有标准化的修复模式 | 每次都从零开始 |
|
|
16
|
+
|
|
17
|
+
### 解决方案:知识沉淀循环
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Bug 修复
|
|
21
|
+
↓
|
|
22
|
+
模式抽象
|
|
23
|
+
↓
|
|
24
|
+
更新 bug-guide.md
|
|
25
|
+
↓
|
|
26
|
+
下次修复前查询
|
|
27
|
+
↓
|
|
28
|
+
快速应用已知方案
|
|
29
|
+
↓
|
|
30
|
+
更快修复,更少踩坑
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Phase -1: 知识查询 (修复前)
|
|
36
|
+
|
|
37
|
+
### 强制查询流程
|
|
38
|
+
|
|
39
|
+
**每次开始修复 Bug 前,必须执行:**
|
|
40
|
+
|
|
41
|
+
```markdown
|
|
42
|
+
## 📚 Phase -1: 知识库查询
|
|
43
|
+
|
|
44
|
+
### Step 1: 提取搜索关键词
|
|
45
|
+
从用户报告中提取:
|
|
46
|
+
- 症状关键词: [如: 页面崩溃, 数据不同步, API 超时]
|
|
47
|
+
- 错误类型: [如: TypeError, 500 错误, 渲染异常]
|
|
48
|
+
- 技术栈: [如: React, FastAPI, PostgreSQL]
|
|
49
|
+
|
|
50
|
+
### Step 2: 搜索 bug-guide.md
|
|
51
|
+
在以下位置搜索:
|
|
52
|
+
1. Common Bug Pattern Library (各 Category 表格)
|
|
53
|
+
2. High-Frequency Root Causes
|
|
54
|
+
3. Universal Verification Checklist
|
|
55
|
+
|
|
56
|
+
### Step 3: 记录匹配结果
|
|
57
|
+
| 匹配度 | 模式 | 相关性 |
|
|
58
|
+
|--------|------|--------|
|
|
59
|
+
| 🟢 高 | [Category X: Pattern Name] | [为什么匹配] |
|
|
60
|
+
| 🟡 中 | [Category Y: Pattern Name] | [部分相关] |
|
|
61
|
+
|
|
62
|
+
### Step 4: 决策
|
|
63
|
+
- [ ] 🟢 高匹配: 直接应用已知方案
|
|
64
|
+
- [ ] 🟡 中匹配: 参考策略,但需验证
|
|
65
|
+
- [ ] 🔴 无匹配: 新模式,完整调查 + Phase 6 沉淀
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 匹配决策矩阵
|
|
69
|
+
|
|
70
|
+
| 匹配度 | 定义 | 处理方式 |
|
|
71
|
+
|--------|------|---------|
|
|
72
|
+
| 🟢 **高匹配** | 症状、根因、技术栈都匹配 | 直接应用修复策略,可跳过 RCA |
|
|
73
|
+
| 🟡 **中匹配** | 症状相似,但细节不同 | 参考策略,但需验证假设 |
|
|
74
|
+
| 🔴 **无匹配** | 找不到相关模式 | 完整调查,修复后必须更新知识库 |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Phase 6: 知识提取 (修复后)
|
|
79
|
+
|
|
80
|
+
### 6.1 提取触发条件
|
|
81
|
+
|
|
82
|
+
**以下情况必须执行知识提取:**
|
|
83
|
+
|
|
84
|
+
| 条件 | 必须提取 |
|
|
85
|
+
|------|---------|
|
|
86
|
+
| Phase -1 无匹配 | ✅ 必须 (新模式) |
|
|
87
|
+
| 修复策略与已知模式不同 | ✅ 必须 (补充/修正) |
|
|
88
|
+
| 发现新的检测方法 | ✅ 必须 (增强) |
|
|
89
|
+
| P0/P1 严重 Bug | ✅ 必须 (重要经验) |
|
|
90
|
+
| 简单 Bug + 已有模式覆盖 | ⚪ 可选 |
|
|
91
|
+
|
|
92
|
+
### 6.2 模式抽象流程
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
具体 Bug
|
|
96
|
+
↓
|
|
97
|
+
┌──────────────────────────────────────────────────────┐
|
|
98
|
+
│ Step 1: 识别模式类别 │
|
|
99
|
+
│ ─────────────────────────────────────────────────────│
|
|
100
|
+
│ 这个 Bug 属于哪个已有类别? │
|
|
101
|
+
│ - Category 1: Input Handling Bugs │
|
|
102
|
+
│ - Category 2: Status/State Bugs │
|
|
103
|
+
│ - Category 3: API Integration Bugs │
|
|
104
|
+
│ - Category 4: Data Flow Bugs │
|
|
105
|
+
│ - Category 5: Configuration Bugs │
|
|
106
|
+
│ - Category 6: Platform-Specific Bugs │
|
|
107
|
+
│ - ... │
|
|
108
|
+
│ │
|
|
109
|
+
│ 如果不属于任何类别 → 创建新 Category │
|
|
110
|
+
└──────────────────────────────────────────────────────┘
|
|
111
|
+
↓
|
|
112
|
+
┌──────────────────────────────────────────────────────┐
|
|
113
|
+
│ Step 2: 通用化描述 │
|
|
114
|
+
│ ─────────────────────────────────────────────────────│
|
|
115
|
+
│ 将项目特定细节抽象为通用语言: │
|
|
116
|
+
│ │
|
|
117
|
+
│ 项目特定: │
|
|
118
|
+
│ "UserService.login() 返回 null 但前端显示成功" │
|
|
119
|
+
│ │
|
|
120
|
+
│ 通用化: │
|
|
121
|
+
│ "Service 返回 null/空值但调用方未检查" │
|
|
122
|
+
└──────────────────────────────────────────────────────┘
|
|
123
|
+
↓
|
|
124
|
+
┌──────────────────────────────────────────────────────┐
|
|
125
|
+
│ Step 3: 提取可复用元素 │
|
|
126
|
+
│ ─────────────────────────────────────────────────────│
|
|
127
|
+
│ - 模式名称: [简短、可搜索] │
|
|
128
|
+
│ - 典型症状: [用户会怎么描述] │
|
|
129
|
+
│ - 检测方法: [如何发现这类 Bug] │
|
|
130
|
+
│ - 修复策略: [通用的解决方法] │
|
|
131
|
+
└──────────────────────────────────────────────────────┘
|
|
132
|
+
↓
|
|
133
|
+
┌──────────────────────────────────────────────────────┐
|
|
134
|
+
│ Step 4: 格式化为表格行 │
|
|
135
|
+
│ ─────────────────────────────────────────────────────│
|
|
136
|
+
│ | Pattern | Typical Symptom | Detection | Fix | │
|
|
137
|
+
│ |---------|-----------------|-----------|-----| │
|
|
138
|
+
│ | [名称] | [症状] | [检测] | [修复] | │
|
|
139
|
+
└──────────────────────────────────────────────────────┘
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### 6.3 通用化规则
|
|
143
|
+
|
|
144
|
+
| 项目特定 | 通用化 |
|
|
145
|
+
|---------|--------|
|
|
146
|
+
| `UserService.login()` | Service 方法 |
|
|
147
|
+
| `React useState` | 前端状态管理 |
|
|
148
|
+
| `FastAPI endpoint` | 后端 API 接口 |
|
|
149
|
+
| `/api/v1/users` | API 端点 |
|
|
150
|
+
| `PostgreSQL query` | 数据库查询 |
|
|
151
|
+
| 具体错误消息 | 错误类型 (TypeError, 500, etc.) |
|
|
152
|
+
|
|
153
|
+
### 6.4 提取模板
|
|
154
|
+
|
|
155
|
+
```markdown
|
|
156
|
+
## 📝 Phase 6: 知识提取
|
|
157
|
+
|
|
158
|
+
### Bug 信息
|
|
159
|
+
- **Bug ID**: BUG-XXX
|
|
160
|
+
- **日期**: YYYY-MM-DD
|
|
161
|
+
- **严重程度**: P0/P1/P2
|
|
162
|
+
- **技术栈**: [React, FastAPI, PostgreSQL]
|
|
163
|
+
|
|
164
|
+
### 原始问题
|
|
165
|
+
- **症状**: [用户报告的问题]
|
|
166
|
+
- **根因**: [识别的根本原因]
|
|
167
|
+
- **修复**: [采用的修复方法]
|
|
168
|
+
|
|
169
|
+
### 模式抽象
|
|
170
|
+
|
|
171
|
+
#### 类别归属
|
|
172
|
+
- **类别**: [现有类别名 / NEW: 新类别名]
|
|
173
|
+
- **理由**: [为什么属于这个类别]
|
|
174
|
+
|
|
175
|
+
#### 通用化描述
|
|
176
|
+
| 维度 | 项目特定 | 通用化 |
|
|
177
|
+
|------|---------|--------|
|
|
178
|
+
| 症状 | [具体描述] | [通用描述] |
|
|
179
|
+
| 检测 | [具体方法] | [通用方法] |
|
|
180
|
+
| 修复 | [具体方案] | [通用策略] |
|
|
181
|
+
|
|
182
|
+
#### 生成的表格行
|
|
183
|
+
```
|
|
184
|
+
| [模式名] | [典型症状] | [检测方法] | [修复策略] |
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### 关键词覆盖
|
|
188
|
+
确保以下关键词可以找到这个模式:
|
|
189
|
+
- [ ] [关键词1]
|
|
190
|
+
- [ ] [关键词2]
|
|
191
|
+
- [ ] [关键词3]
|
|
192
|
+
|
|
193
|
+
### bug-guide.md 更新
|
|
194
|
+
- **添加位置**: Category X 表格
|
|
195
|
+
- **添加内容**: [上面生成的表格行]
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## bug-guide.md 更新规范
|
|
201
|
+
|
|
202
|
+
### 添加到已有类别
|
|
203
|
+
|
|
204
|
+
如果 Bug 属于已有类别,在对应表格末尾添加新行:
|
|
205
|
+
|
|
206
|
+
```markdown
|
|
207
|
+
### Category 2: Status/State Bugs
|
|
208
|
+
|
|
209
|
+
| Pattern | Typical Symptom | Detection | Fix Strategy |
|
|
210
|
+
|---------|-----------------|-----------|--------------|
|
|
211
|
+
| **Status mismatch** | UI says success but operation failed | Check both HTTP and business status | Parse full response body |
|
|
212
|
+
| **Stale state** | Shows outdated data after updates | Check state invalidation | Refresh state after mutations |
|
|
213
|
+
| **NEW PATTERN** | [症状] | [检测] | [修复] | ← 新增行
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### 创建新类别
|
|
217
|
+
|
|
218
|
+
如果 Bug 不属于任何已有类别:
|
|
219
|
+
|
|
220
|
+
```markdown
|
|
221
|
+
### Category N: [新类别名] (NEW)
|
|
222
|
+
|
|
223
|
+
[简短描述这类 Bug 的共同特征]
|
|
224
|
+
|
|
225
|
+
| Pattern | Typical Symptom | Detection | Fix Strategy |
|
|
226
|
+
|---------|-----------------|-----------|--------------|
|
|
227
|
+
| **[模式名]** | [症状] | [检测] | [修复] |
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### 更新高频根因列表
|
|
231
|
+
|
|
232
|
+
如果这个根因值得加入 Top 13:
|
|
233
|
+
|
|
234
|
+
```markdown
|
|
235
|
+
## High-Frequency Root Causes (Top 14) ← 更新数字
|
|
236
|
+
|
|
237
|
+
...
|
|
238
|
+
14. **[新根因]**: [描述] ← 新增
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## 知识质量标准
|
|
244
|
+
|
|
245
|
+
### 4 个必须满足的标准
|
|
246
|
+
|
|
247
|
+
| 标准 | 检查问题 | 不通过示例 | 通过示例 |
|
|
248
|
+
|------|---------|-----------|---------|
|
|
249
|
+
| **通用性** | 换个项目能理解吗? | "UserService 的 login 方法" | "Service 方法返回值" |
|
|
250
|
+
| **可操作性** | 能直接按步骤执行吗? | "检查代码" | "grep 'return null' 搜索空返回" |
|
|
251
|
+
| **可搜索性** | 用不同关键词能找到吗? | 只有一个关键词 | 包含多个同义词 |
|
|
252
|
+
| **完整性** | 缺少关键信息吗? | 只有症状没有修复 | 症状+检测+修复都有 |
|
|
253
|
+
|
|
254
|
+
### 质量检查清单
|
|
255
|
+
|
|
256
|
+
```markdown
|
|
257
|
+
## 知识质量检查
|
|
258
|
+
|
|
259
|
+
### 通用性
|
|
260
|
+
- [ ] 没有项目特定的类名/方法名
|
|
261
|
+
- [ ] 技术栈无关或明确标注
|
|
262
|
+
- [ ] 其他开发者能理解
|
|
263
|
+
|
|
264
|
+
### 可操作性
|
|
265
|
+
- [ ] 检测方法具体可执行
|
|
266
|
+
- [ ] 修复策略有明确步骤
|
|
267
|
+
- [ ] 不需要额外解释就能操作
|
|
268
|
+
|
|
269
|
+
### 可搜索性
|
|
270
|
+
- [ ] 症状描述包含常见表达
|
|
271
|
+
- [ ] 覆盖可能的同义词
|
|
272
|
+
- [ ] 关键词测试: 用 3 种不同表达搜索都能找到
|
|
273
|
+
|
|
274
|
+
### 完整性
|
|
275
|
+
- [ ] 有典型症状
|
|
276
|
+
- [ ] 有检测方法
|
|
277
|
+
- [ ] 有修复策略
|
|
278
|
+
- [ ] 4 列都填写
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## 知识验证
|
|
284
|
+
|
|
285
|
+
### 搜索测试
|
|
286
|
+
|
|
287
|
+
更新 bug-guide.md 后,验证知识可被找到:
|
|
288
|
+
|
|
289
|
+
```markdown
|
|
290
|
+
## 搜索测试
|
|
291
|
+
|
|
292
|
+
用以下关键词搜索,验证能找到新添加的模式:
|
|
293
|
+
|
|
294
|
+
| 搜索词 | 能找到? |
|
|
295
|
+
|--------|--------|
|
|
296
|
+
| [用户可能用的描述1] | ✅/❌ |
|
|
297
|
+
| [用户可能用的描述2] | ✅/❌ |
|
|
298
|
+
| [错误类型关键词] | ✅/❌ |
|
|
299
|
+
|
|
300
|
+
如果 ❌,需要调整模式描述或添加同义词。
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### 复用测试
|
|
304
|
+
|
|
305
|
+
假设遇到类似 Bug,验证知识有用:
|
|
306
|
+
|
|
307
|
+
```markdown
|
|
308
|
+
## 复用测试
|
|
309
|
+
|
|
310
|
+
假设场景: [描述一个类似的假设 Bug]
|
|
311
|
+
|
|
312
|
+
能通过 bug-guide.md 找到解决方案吗?
|
|
313
|
+
- [ ] 能找到相关模式
|
|
314
|
+
- [ ] 模式描述能帮助理解问题
|
|
315
|
+
- [ ] 修复策略能指导解决
|
|
316
|
+
|
|
317
|
+
如果任何一项 ❌,需要补充信息。
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## 常见问题
|
|
323
|
+
|
|
324
|
+
### Q1: 所有 Bug 都要提取吗?
|
|
325
|
+
|
|
326
|
+
**A**: 不是。只有以下情况需要:
|
|
327
|
+
- Phase -1 无匹配的新模式
|
|
328
|
+
- P0/P1 严重 Bug
|
|
329
|
+
- 发现新的检测/修复方法
|
|
330
|
+
|
|
331
|
+
简单、已有模式覆盖的 Bug 可以跳过。
|
|
332
|
+
|
|
333
|
+
### Q2: 模式太具体怎么办?
|
|
334
|
+
|
|
335
|
+
**A**: 逐步通用化:
|
|
336
|
+
|
|
337
|
+
```
|
|
338
|
+
太具体: "React useState 在 useEffect 中更新后组件不刷新"
|
|
339
|
+
↓
|
|
340
|
+
第一层: "状态更新后组件不刷新"
|
|
341
|
+
↓
|
|
342
|
+
第二层: "状态更新未触发预期的 UI 更新"
|
|
343
|
+
↓
|
|
344
|
+
最终: "Stale state" (已有模式)
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### Q3: 不确定属于哪个类别?
|
|
348
|
+
|
|
349
|
+
**A**: 问自己:
|
|
350
|
+
1. 问题出在输入处理? → Category 1
|
|
351
|
+
2. 问题出在状态管理? → Category 2
|
|
352
|
+
3. 问题出在 API 调用? → Category 3
|
|
353
|
+
4. 问题出在数据流转? → Category 4
|
|
354
|
+
5. 问题出在配置? → Category 5
|
|
355
|
+
6. 问题是平台特定? → Category 6
|
|
356
|
+
7. 以上都不是? → 创建新 Category
|
|
357
|
+
|
|
358
|
+
### Q4: 怎么确保知识被使用?
|
|
359
|
+
|
|
360
|
+
**A**: Phase -1 强制查询机制确保每次修复前都会查询 bug-guide.md。
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## 检查清单
|
|
365
|
+
|
|
366
|
+
### Phase -1 (修复前)
|
|
367
|
+
- [ ] 提取搜索关键词
|
|
368
|
+
- [ ] 搜索 bug-guide.md
|
|
369
|
+
- [ ] 记录匹配结果
|
|
370
|
+
- [ ] 决定修复策略
|
|
371
|
+
|
|
372
|
+
### Phase 6 (修复后)
|
|
373
|
+
- [ ] 判断是否需要提取
|
|
374
|
+
- [ ] 识别模式类别
|
|
375
|
+
- [ ] 通用化描述
|
|
376
|
+
- [ ] 生成表格行
|
|
377
|
+
- [ ] 更新 bug-guide.md
|
|
378
|
+
- [ ] 质量检查
|
|
379
|
+
- [ ] 搜索测试
|
|
380
|
+
|
|
381
|
+
### 持续改进
|
|
382
|
+
- [ ] 定期审查 bug-guide.md
|
|
383
|
+
- [ ] 合并重复模式
|
|
384
|
+
- [ ] 更新过时内容
|
|
385
|
+
- [ ] 补充缺失检测/修复方法
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## 🔴 Debugging Journal (个人调试日志)
|
|
390
|
+
|
|
391
|
+
**记录个人调试经验,加速未来问题解决。**
|
|
392
|
+
|
|
393
|
+
### 为什么需要调试日志?
|
|
394
|
+
|
|
395
|
+
| 好处 | 说明 |
|
|
396
|
+
|------|------|
|
|
397
|
+
| **加速定位** | 遇到类似问题时快速回忆解决方案 |
|
|
398
|
+
| **发现模式** | 识别自己常犯的错误类型 |
|
|
399
|
+
| **时间追踪** | 了解哪类 Bug 耗时最多 |
|
|
400
|
+
| **技能提升** | 通过复盘持续改进调试能力 |
|
|
401
|
+
|
|
402
|
+
### 调试日志模板
|
|
403
|
+
|
|
404
|
+
```markdown
|
|
405
|
+
## Debugging Journal Entry
|
|
406
|
+
|
|
407
|
+
**Date**: YYYY-MM-DD
|
|
408
|
+
**Bug**: [简短描述]
|
|
409
|
+
**Time to Fix**: [耗时]
|
|
410
|
+
**Difficulty**: Easy / Medium / Hard
|
|
411
|
+
|
|
412
|
+
### Symptoms
|
|
413
|
+
[用户报告的问题]
|
|
414
|
+
|
|
415
|
+
### Root Cause
|
|
416
|
+
[根本原因]
|
|
417
|
+
|
|
418
|
+
### Solution
|
|
419
|
+
[解决方案]
|
|
420
|
+
|
|
421
|
+
### What Worked
|
|
422
|
+
- [有效的调试方法]
|
|
423
|
+
|
|
424
|
+
### What Didn't Work
|
|
425
|
+
- [尝试过但无效的方法]
|
|
426
|
+
|
|
427
|
+
### Lesson Learned
|
|
428
|
+
[下次遇到类似问题的经验]
|
|
429
|
+
|
|
430
|
+
### Tags
|
|
431
|
+
#[category] #[technology] #[pattern]
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### 调试日志示例
|
|
435
|
+
|
|
436
|
+
```markdown
|
|
437
|
+
## Debugging Journal Entry
|
|
438
|
+
|
|
439
|
+
**Date**: 2025-01-19
|
|
440
|
+
**Bug**: API 返回 500 但前端显示成功
|
|
441
|
+
**Time to Fix**: 2 hours
|
|
442
|
+
**Difficulty**: Medium
|
|
443
|
+
|
|
444
|
+
### Symptoms
|
|
445
|
+
用户点击保存后显示"保存成功",但数据实际未保存
|
|
446
|
+
|
|
447
|
+
### Root Cause
|
|
448
|
+
前端只检查了 HTTP 状态码 200,没有检查响应体中的 business code
|
|
449
|
+
|
|
450
|
+
### Solution
|
|
451
|
+
添加 business code 检查: `if (response.code !== 0) throw new Error()`
|
|
452
|
+
|
|
453
|
+
### What Worked
|
|
454
|
+
- 查看 Network 面板发现响应体有 code: -1
|
|
455
|
+
- 对比成功/失败请求的响应差异
|
|
456
|
+
|
|
457
|
+
### What Didn't Work
|
|
458
|
+
- 最初以为是后端问题,浪费了 30 分钟
|
|
459
|
+
|
|
460
|
+
### Lesson Learned
|
|
461
|
+
API 响应要同时检查 HTTP 状态码和业务状态码
|
|
462
|
+
|
|
463
|
+
### Tags
|
|
464
|
+
#api #status-check #frontend
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
### 定期复盘
|
|
468
|
+
|
|
469
|
+
**每周/每月复盘调试日志:**
|
|
470
|
+
|
|
471
|
+
1. **统计耗时最多的 Bug 类型** → 重点学习
|
|
472
|
+
2. **识别重复出现的模式** → 添加到 bug-guide.md
|
|
473
|
+
3. **分析无效尝试** → 避免下次重复
|
|
474
|
+
|
|
475
|
+
---
|
|
476
|
+
|
|
477
|
+
## 🔴 Proactive Bug Prevention (主动 Bug 预防)
|
|
478
|
+
|
|
479
|
+
**不只是修 Bug,更要预防 Bug!**
|
|
480
|
+
|
|
481
|
+
### 预防技术概览
|
|
482
|
+
|
|
483
|
+
| 技术 | 工具 | 目的 |
|
|
484
|
+
|------|------|------|
|
|
485
|
+
| **Fuzz Testing** | AFL, libFuzzer | 发现边界条件 Bug |
|
|
486
|
+
| **Chaos Engineering** | Chaos Monkey, Gremlin | 测试系统韧性 |
|
|
487
|
+
| **Load Testing** | k6, Locust | 发现性能 Bug |
|
|
488
|
+
| **Contract Testing** | Pact | 发现 API 集成 Bug |
|
|
489
|
+
|
|
490
|
+
### Fuzz Testing (模糊测试)
|
|
491
|
+
|
|
492
|
+
**用随机输入发现边界条件 Bug:**
|
|
493
|
+
|
|
494
|
+
```bash
|
|
495
|
+
# JavaScript (使用 fast-check)
|
|
496
|
+
npm install fast-check
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
```javascript
|
|
500
|
+
import fc from 'fast-check';
|
|
501
|
+
|
|
502
|
+
// 测试函数对任意输入都不崩溃
|
|
503
|
+
fc.assert(
|
|
504
|
+
fc.property(fc.string(), (input) => {
|
|
505
|
+
const result = myFunction(input);
|
|
506
|
+
return result !== undefined;
|
|
507
|
+
})
|
|
508
|
+
);
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
### Chaos Engineering (混沌工程)
|
|
512
|
+
|
|
513
|
+
**主动注入故障,测试系统韧性:**
|
|
514
|
+
|
|
515
|
+
| 故障类型 | 测试目的 |
|
|
516
|
+
|----------|----------|
|
|
517
|
+
| 网络延迟 | 超时处理是否正确 |
|
|
518
|
+
| 服务宕机 | 降级策略是否生效 |
|
|
519
|
+
| 磁盘满 | 错误处理是否优雅 |
|
|
520
|
+
| CPU 过载 | 性能降级是否平滑 |
|
|
521
|
+
|
|
522
|
+
> 研究表明:68% 使用混沌工程的组织减少了 20% 以上的生产事故 (Gremlin 2023)
|
|
523
|
+
|
|
524
|
+
### 何时使用预防技术
|
|
525
|
+
|
|
526
|
+
| 场景 | 推荐技术 |
|
|
527
|
+
|------|----------|
|
|
528
|
+
| 发布前 | Fuzz Testing + Load Testing |
|
|
529
|
+
| 重大变更后 | Contract Testing |
|
|
530
|
+
| 生产环境 | Chaos Engineering (谨慎) |
|
|
531
|
+
| 持续集成 | 所有自动化测试 |
|