code-abyss 1.6.16 → 1.7.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.
Files changed (97) hide show
  1. package/README.md +8 -6
  2. package/bin/install.js +59 -163
  3. package/bin/lib/ccline.js +82 -0
  4. package/bin/lib/utils.js +61 -0
  5. package/package.json +5 -2
  6. package/skills/SKILL.md +24 -16
  7. package/skills/domains/ai/SKILL.md +2 -2
  8. package/skills/domains/ai/prompt-and-eval.md +279 -0
  9. package/skills/domains/architecture/SKILL.md +2 -3
  10. package/skills/domains/architecture/security-arch.md +87 -0
  11. package/skills/domains/data-engineering/SKILL.md +188 -26
  12. package/skills/domains/development/SKILL.md +1 -4
  13. package/skills/domains/devops/SKILL.md +3 -5
  14. package/skills/domains/devops/performance.md +63 -0
  15. package/skills/domains/devops/testing.md +97 -0
  16. package/skills/domains/frontend-design/SKILL.md +12 -3
  17. package/skills/domains/frontend-design/claymorphism/SKILL.md +117 -0
  18. package/skills/domains/frontend-design/claymorphism/references/tokens.css +52 -0
  19. package/skills/domains/frontend-design/engineering.md +287 -0
  20. package/skills/domains/frontend-design/glassmorphism/SKILL.md +138 -0
  21. package/skills/domains/frontend-design/glassmorphism/references/tokens.css +32 -0
  22. package/skills/domains/frontend-design/liquid-glass/SKILL.md +135 -0
  23. package/skills/domains/frontend-design/liquid-glass/references/tokens.css +81 -0
  24. package/skills/domains/frontend-design/neubrutalism/SKILL.md +141 -0
  25. package/skills/domains/frontend-design/neubrutalism/references/tokens.css +44 -0
  26. package/skills/domains/infrastructure/SKILL.md +174 -34
  27. package/skills/domains/mobile/SKILL.md +211 -21
  28. package/skills/domains/orchestration/SKILL.md +1 -0
  29. package/skills/domains/security/SKILL.md +4 -6
  30. package/skills/domains/security/blue-team.md +57 -0
  31. package/skills/domains/security/red-team.md +54 -0
  32. package/skills/domains/security/threat-intel.md +50 -0
  33. package/skills/orchestration/multi-agent/SKILL.md +195 -46
  34. package/skills/run_skill.js +139 -0
  35. package/skills/tools/gen-docs/SKILL.md +6 -4
  36. package/skills/tools/gen-docs/scripts/doc_generator.js +363 -0
  37. package/skills/tools/lib/shared.js +98 -0
  38. package/skills/tools/verify-change/SKILL.md +8 -6
  39. package/skills/tools/verify-change/scripts/change_analyzer.js +289 -0
  40. package/skills/tools/verify-module/SKILL.md +6 -4
  41. package/skills/tools/verify-module/scripts/module_scanner.js +171 -0
  42. package/skills/tools/verify-quality/SKILL.md +5 -3
  43. package/skills/tools/verify-quality/scripts/quality_checker.js +337 -0
  44. package/skills/tools/verify-security/SKILL.md +7 -5
  45. package/skills/tools/verify-security/scripts/security_scanner.js +283 -0
  46. package/skills/__pycache__/run_skill.cpython-312.pyc +0 -0
  47. package/skills/domains/COVERAGE_PLAN.md +0 -232
  48. package/skills/domains/ai/model-evaluation.md +0 -790
  49. package/skills/domains/ai/prompt-engineering.md +0 -703
  50. package/skills/domains/architecture/compliance.md +0 -299
  51. package/skills/domains/architecture/data-security.md +0 -184
  52. package/skills/domains/data-engineering/data-pipeline.md +0 -762
  53. package/skills/domains/data-engineering/data-quality.md +0 -894
  54. package/skills/domains/data-engineering/stream-processing.md +0 -791
  55. package/skills/domains/development/dart.md +0 -963
  56. package/skills/domains/development/kotlin.md +0 -834
  57. package/skills/domains/development/php.md +0 -659
  58. package/skills/domains/development/swift.md +0 -755
  59. package/skills/domains/devops/e2e-testing.md +0 -914
  60. package/skills/domains/devops/performance-testing.md +0 -734
  61. package/skills/domains/devops/testing-strategy.md +0 -667
  62. package/skills/domains/frontend-design/build-tools.md +0 -743
  63. package/skills/domains/frontend-design/performance.md +0 -734
  64. package/skills/domains/frontend-design/testing.md +0 -699
  65. package/skills/domains/infrastructure/gitops.md +0 -735
  66. package/skills/domains/infrastructure/iac.md +0 -855
  67. package/skills/domains/infrastructure/kubernetes.md +0 -1018
  68. package/skills/domains/mobile/android-dev.md +0 -979
  69. package/skills/domains/mobile/cross-platform.md +0 -795
  70. package/skills/domains/mobile/ios-dev.md +0 -931
  71. package/skills/domains/security/secrets-management.md +0 -834
  72. package/skills/domains/security/supply-chain.md +0 -931
  73. package/skills/domains/security/threat-modeling.md +0 -828
  74. package/skills/run_skill.py +0 -153
  75. package/skills/tests/README.md +0 -225
  76. package/skills/tests/SUMMARY.md +0 -362
  77. package/skills/tests/__init__.py +0 -3
  78. package/skills/tests/__pycache__/test_change_analyzer.cpython-312.pyc +0 -0
  79. package/skills/tests/__pycache__/test_doc_generator.cpython-312.pyc +0 -0
  80. package/skills/tests/__pycache__/test_module_scanner.cpython-312.pyc +0 -0
  81. package/skills/tests/__pycache__/test_quality_checker.cpython-312.pyc +0 -0
  82. package/skills/tests/__pycache__/test_security_scanner.cpython-312.pyc +0 -0
  83. package/skills/tests/test_change_analyzer.py +0 -558
  84. package/skills/tests/test_doc_generator.py +0 -538
  85. package/skills/tests/test_module_scanner.py +0 -376
  86. package/skills/tests/test_quality_checker.py +0 -516
  87. package/skills/tests/test_security_scanner.py +0 -426
  88. package/skills/tools/gen-docs/scripts/__pycache__/doc_generator.cpython-312.pyc +0 -0
  89. package/skills/tools/gen-docs/scripts/doc_generator.py +0 -520
  90. package/skills/tools/verify-change/scripts/__pycache__/change_analyzer.cpython-312.pyc +0 -0
  91. package/skills/tools/verify-change/scripts/change_analyzer.py +0 -529
  92. package/skills/tools/verify-module/scripts/__pycache__/module_scanner.cpython-312.pyc +0 -0
  93. package/skills/tools/verify-module/scripts/module_scanner.py +0 -321
  94. package/skills/tools/verify-quality/scripts/__pycache__/quality_checker.cpython-312.pyc +0 -0
  95. package/skills/tools/verify-quality/scripts/quality_checker.py +0 -481
  96. package/skills/tools/verify-security/scripts/__pycache__/security_scanner.cpython-312.pyc +0 -0
  97. package/skills/tools/verify-security/scripts/security_scanner.py +0 -374
@@ -0,0 +1,279 @@
1
+ ---
2
+ name: prompt-and-eval
3
+ description: Prompt 工程与模型评估。Prompt 模式(Zero-shot、Few-shot、CoT、ReAct、ToT)、模板设计、RAGAS、LLM-as-Judge、基准测试、A/B 测试、持续监控。当用户提到 Prompt 工程、Few-shot、CoT、模型评估、RAGAS、LLM-as-Judge、基准测试时使用。
4
+ ---
5
+
6
+ # Prompt 工程与模型评估
7
+
8
+ ## 一、Prompt 模式
9
+
10
+ ### 模式对比
11
+
12
+ | 模式 | 复杂度 | 准确性 | Token 消耗 | 适用场景 |
13
+ |------|--------|--------|------------|----------|
14
+ | Zero-shot | 低 | 中 | 低 | 简单任务、通用问题 |
15
+ | Few-shot | 中 | 高 | 中 | 格式化输出、分类 |
16
+ | CoT | 中 | 高 | 中 | 推理、数学、逻辑 |
17
+ | Self-Consistency | 高 | 极高 | 高 | 关键决策 |
18
+ | ToT | 极高 | 极高 | 极高 | 复杂规划 |
19
+ | ReAct | 高 | 高 | 高 | 工具调用、Agent |
20
+
21
+ ### Zero-shot
22
+
23
+ ```python
24
+ # 关键:清晰指令 + 角色设定 + 输出格式
25
+ prompt = """
26
+ 你是一位资深安全工程师。
27
+ 任务: 将以下文本分类为正面、负面或中性。
28
+ 输入: {text}
29
+ 输出格式: JSON {"sentiment": "...", "confidence": 0.0-1.0}
30
+ """
31
+ ```
32
+
33
+ ### Few-shot
34
+
35
+ ```python
36
+ # 关键:2-5 个高质量示例 + 语义相似度选择
37
+ prompt = """
38
+ 将评论分类:
39
+
40
+ 评论: 音质很棒,佩戴舒适。 → 正面
41
+ 评论: 电池续航太差。 → 负面
42
+ 评论: {new_review} →
43
+ """
44
+
45
+ # 动态示例选择(LangChain)
46
+ selector = SemanticSimilarityExampleSelector.from_examples(
47
+ examples, OpenAIEmbeddings(), Chroma, k=2
48
+ )
49
+ ```
50
+
51
+ ### Chain-of-Thought (CoT)
52
+
53
+ ```python
54
+ # Zero-shot CoT — 魔法咒语
55
+ prompt = f"问题: {question}\n\n让我们一步步思考:"
56
+
57
+ # Self-Consistency — 多路投票
58
+ answers = [extract_answer(llm.predict(prompt, temperature=0.7)) for _ in range(5)]
59
+ final = Counter(answers).most_common(1)[0][0]
60
+ ```
61
+
62
+ ### ReAct
63
+
64
+ ```python
65
+ # Thought → Action → Observation 循环
66
+ prompt = """
67
+ 工具: Search[query], Calculate[expr], Finish[answer]
68
+
69
+ Thought: 我需要查询埃菲尔铁塔高度
70
+ Action: Search[埃菲尔铁塔高度]
71
+ Observation: 330 米
72
+ Thought: 现在知道答案了
73
+ Action: Finish[330 米]
74
+ """
75
+ ```
76
+
77
+ ### Tree-of-Thoughts (ToT)
78
+
79
+ ```python
80
+ # 生成多条思路 → 评估打分 → Beam Search 选最优 → 递归扩展
81
+ class TreeOfThoughts:
82
+ def solve(self, problem):
83
+ thoughts = self._generate(problem, n=3)
84
+ scored = self._evaluate(problem, thoughts)
85
+ best = sorted(scored, key=lambda x: x[1], reverse=True)[:self.beam_width]
86
+ # 递归深入最佳路径
87
+ ```
88
+
89
+ ## 二、Prompt 设计技巧
90
+
91
+ ### 模板结构
92
+
93
+ ```python
94
+ messages = [
95
+ {"role": "system", "content": "角色 + 能力边界 + 输出约束"},
96
+ {"role": "user", "content": "### 指令\n{task}\n### 输入\n{input}\n### 输出格式\n{format}"},
97
+ ]
98
+ ```
99
+
100
+ ### 优化原则
101
+
102
+ | 原则 | 做 | 不做 |
103
+ |------|-----|------|
104
+ | 清晰性 | 具体、可执行、有约束 | 模糊指令 |
105
+ | 结构化 | 分隔符、编号、格式 | 大段文字 |
106
+ | 示例驱动 | 2-5 个高质量示例 | 无示例 |
107
+ | 分步指令 | 步骤 1/2/3 | 一句话包办 |
108
+ | 约束边界 | 说明要做和不做什么 | 无限制 |
109
+
110
+ ### 高级技巧
111
+
112
+ ```python
113
+ # 元提示 — 用 LLM 生成 Prompt
114
+ meta = "你是 Prompt 专家。为以下任务生成最优 Prompt: {task}"
115
+
116
+ # 自我批评 — 生成 → 批评 → 改进
117
+ answer = llm(question)
118
+ critique = llm(f"批评: {answer}")
119
+ improved = llm(f"基于批评改进: {critique}")
120
+ ```
121
+
122
+ ### Prompt 模板速查
123
+
124
+ ```yaml
125
+ 代码生成: "生成 {lang} 代码: {desc}。要求: 最佳实践 + 注释 + 异常处理"
126
+ 文本摘要: "总结为 {n} 字: {text}。保留关键信息,语言简洁"
127
+ 数据提取: "从文本提取 {fields},输出 JSON: {text}"
128
+ NL2SQL: "将自然语言转 SQL: {query}。表结构: {schema}"
129
+ ```
130
+
131
+ ## 三、模型评估
132
+
133
+ ### 评估维度
134
+
135
+ | 维度 | 指标 | 适用场景 |
136
+ |------|------|----------|
137
+ | 准确性 | Accuracy, F1, Precision, Recall | 分类、NER |
138
+ | 相关性 | Relevance, Context Precision | RAG、检索 |
139
+ | 忠实性 | Faithfulness, Hallucination Rate | 生成任务 |
140
+ | 效率 | Latency P95, Throughput, Cost/1K | 生产部署 |
141
+
142
+ ### RAGAS 框架
143
+
144
+ ```python
145
+ from ragas import evaluate
146
+ from ragas.metrics import faithfulness, answer_relevancy, context_precision, context_recall
147
+
148
+ dataset = Dataset.from_dict({
149
+ "question": questions,
150
+ "answer": answers,
151
+ "contexts": contexts,
152
+ "ground_truth": ground_truths,
153
+ })
154
+
155
+ result = evaluate(dataset, metrics=[
156
+ faithfulness, # 答案是否基于上下文(0-1)
157
+ answer_relevancy, # 答案与问题相关度(0-1)
158
+ context_precision, # 检索上下文中相关信息比例(0-1)
159
+ context_recall, # 上下文是否包含所需全部信息(0-1)
160
+ ])
161
+ ```
162
+
163
+ ### LLM-as-Judge
164
+
165
+ ```python
166
+ class LLMJudge:
167
+ def evaluate(self, question, answer, criteria):
168
+ prompt = f"""
169
+ 评估答案质量(1-5 分):
170
+ 问题: {question}
171
+ 答案: {answer}
172
+ 标准: {criteria}
173
+
174
+ 输出 JSON: {{"accuracy": N, "completeness": N, "clarity": N, "overall": N, "feedback": "..."}}
175
+ """
176
+ return json.loads(self.llm.predict(prompt))
177
+
178
+ # 成对比较 + ELO 排名
179
+ def pairwise(q, a, b):
180
+ # 返回 {"winner": "A"|"B", "confidence": 0-1}
181
+ ...
182
+ ```
183
+
184
+ ### 基准测试速查
185
+
186
+ | 基准 | 评估能力 | 核心指标 |
187
+ |------|----------|----------|
188
+ | MMLU | 多任务语言理解 | Accuracy |
189
+ | HumanEval | 代码生成 | Pass@k |
190
+ | GSM8K | 数学推理 | Accuracy (CoT) |
191
+ | 自定义 | 业务场景 | 加权评分 + 延迟 |
192
+
193
+ ### 检索指标
194
+
195
+ ```python
196
+ def evaluate_retrieval(retrieved, relevant, k=5):
197
+ precision_at_k = len(set(retrieved[:k]) & set(relevant)) / k
198
+ recall_at_k = len(set(retrieved[:k]) & set(relevant)) / len(relevant)
199
+ # MRR: 第一个相关文档的倒数排名
200
+ # NDCG: 归一化折损累积增益
201
+ return {"precision@k": precision_at_k, "recall@k": recall_at_k, "mrr": mrr, "ndcg": ndcg}
202
+ ```
203
+
204
+ ### 生成指标
205
+
206
+ ```python
207
+ # ROUGE: 摘要质量(rouge-1, rouge-2, rouge-l)
208
+ # BLEU: 翻译质量
209
+ from rouge import Rouge
210
+ rouge_scores = Rouge().get_scores(predictions, references, avg=True)
211
+ ```
212
+
213
+ ## 四、A/B 测试与监控
214
+
215
+ ### A/B 测试
216
+
217
+ ```python
218
+ class ABTest:
219
+ def __init__(self, variants): # [Variant(name, model, ratio)]
220
+ self.variants = variants
221
+
222
+ def get_variant(self, user_id):
223
+ # 一致性哈希分流
224
+ return self.variants[hash(user_id) % 100 < cumulative_ratio]
225
+
226
+ def check_significance(self, a_scores, b_scores, alpha=0.05):
227
+ t_stat, p_value = stats.ttest_ind(a_scores, b_scores)
228
+ cohens_d = (mean(a) - mean(b)) / pooled_std
229
+ return {"p_value": p_value, "significant": p_value < alpha, "effect": cohens_d}
230
+ ```
231
+
232
+ ### 持续监控
233
+
234
+ ```python
235
+ from prometheus_client import Counter, Histogram, Gauge
236
+
237
+ request_count = Counter('llm_requests_total', 'Total', ['model', 'status'])
238
+ latency = Histogram('llm_latency_seconds', 'Latency', ['model'])
239
+ quality = Gauge('llm_quality_score', 'Quality', ['model'])
240
+
241
+ # 异常检测: Z-score > 2.0 触发告警
242
+ class AnomalyDetector:
243
+ def check(self, value):
244
+ z = abs((value - mean(self.window)) / std(self.window))
245
+ return z > self.threshold
246
+ ```
247
+
248
+ ## 五、Checklist
249
+
250
+ ### Prompt 工程
251
+
252
+ - 清晰指令 + 角色设定 + 输出格式约束
253
+ - 复杂任务用 CoT / ReAct
254
+ - 关键决策用 Self-Consistency 多路投票
255
+ - 版本管理 Prompt,A/B 测试对比效果
256
+ - 迭代优化:测试 → 分析 → 改进
257
+
258
+ ### 模型评估
259
+
260
+ - 多维度评估:准确性 + 相关性 + 忠实性 + 效率
261
+ - RAG 用 RAGAS 四指标
262
+ - 自动评估 LLM-as-Judge + 定期人工抽检
263
+ - 标准基准(MMLU/HumanEval)+ 业务自定义基准
264
+ - 上线前 A/B 测试,上线后持续监控 + 异常告警
265
+ - 反馈闭环:收集用户反馈持续改进
266
+
267
+ ## 工具速查
268
+
269
+ | 工具 | 用途 |
270
+ |------|------|
271
+ | RAGAS | RAG 专用评估 |
272
+ | LangSmith | LLM 应用监控 |
273
+ | Phoenix | 可观测性平台 |
274
+ | LangChain | Prompt 模板管理 |
275
+ | Guidance | 结构化生成 |
276
+ | OpenAI Evals | 模型评估框架 |
277
+ | W&B | 实验追踪 |
278
+
279
+ ---
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: architecture
3
3
  description: 架构设计能力索引。API设计、安全架构、云原生、数据安全。当用户提到架构、设计、API、云原生时路由到此。
4
+ license: MIT
4
5
  ---
5
6
 
6
7
  # 🏗 阵法秘典 · 架构设计能力中枢
@@ -11,12 +12,10 @@ description: 架构设计能力索引。API设计、安全架构、云原生、
11
12
  | Skill | 定位 | 核心能力 |
12
13
  |-------|------|----------|
13
14
  | [api-design](api-design.md) | API 设计 | RESTful、GraphQL、OpenAPI |
14
- | [security-arch](security-arch.md) | 安全架构 | 零信任、IAM、威胁建模 |
15
+ | [security-arch](security-arch.md) | 安全架构 | 零信任、IAM、威胁建模、数据安全、合规审计 |
15
16
  | [cloud-native](cloud-native.md) | 云原生 | 容器、K8s、Serverless |
16
- | [data-security](data-security.md) | 数据安全 | 加密、隐私、合规 |
17
17
  | [message-queue](message-queue.md) | 消息队列 | Kafka、RabbitMQ、事件驱动 |
18
18
  | [caching](caching.md) | 缓存策略 | Redis、CDN、缓存一致性 |
19
- | [compliance](compliance.md) | 合规审计 | GDPR、SOC2、审计日志 |
20
19
 
21
20
  ## 架构原则
22
21
 
@@ -208,3 +208,90 @@ E - Elevation of Privilege (权限提升):
208
208
  - [ ] WAF
209
209
  ```
210
210
 
211
+ ## 数据安全
212
+
213
+ ### 数据分类
214
+ | 级别 | 类型 | 保护措施 | 示例 |
215
+ |------|------|----------|------|
216
+ | 公开 | Public | 无特殊要求 | 产品文档 |
217
+ | 内部 | Internal | 访问控制 | 内部Wiki |
218
+ | 机密 | Confidential | 加密+审计 | 客户数据 |
219
+ | 受限 | Restricted | 加密+审计+MFA | 密钥、PII |
220
+
221
+ ### 加密要求
222
+ ```yaml
223
+ 传输加密:
224
+ - TLS 1.2+(禁用 1.0/1.1)
225
+ - 推荐: TLS_AES_256_GCM_SHA384 / TLS_CHACHA20_POLY1305_SHA256
226
+ - HSTS + 证书管理
227
+
228
+ 存储加密:
229
+ - AES-256-GCM(对称)+ 密钥与数据分离(KMS/Vault)+ 定期轮换
230
+
231
+ 密码存储:
232
+ - bcrypt (rounds>=12) 或 argon2,禁止 MD5/SHA1
233
+ ```
234
+
235
+ ### 隐私保护
236
+ ```yaml
237
+ 数据脱敏: 姓名(张**) / 手机(138****1234) / 邮箱(z***@x.com)
238
+ 数据最小化: 只收集必要数据 / 限制保留期限 / 定期清理 / 匿名化
239
+ 生命周期: 创建(分类)→存储(加密)→使用(审计)→共享(脱敏)→归档(压缩)→销毁(安全删除)
240
+ ```
241
+
242
+ ### 数据安全检查清单
243
+ ```yaml
244
+ - [ ] 数据资产清单 + 敏感数据识别 + 数据流映射
245
+ - [ ] 传输加密 + 存储加密 + 访问控制 + 数据脱敏
246
+ - [ ] 访问日志 + 异常检测 + DLP
247
+ ```
248
+
249
+ ## 合规审计
250
+
251
+ ### 合规框架速查
252
+ | 框架 | 适用范围 | 核心要求 | 处罚 |
253
+ |------|----------|----------|------|
254
+ | GDPR | 欧盟用户数据 | 数据保护、用户权利 | 营收4%或2000万欧 |
255
+ | SOC 2 | SaaS/云服务 | 安全、可用、机密、隐私 | 失去客户信任 |
256
+ | HIPAA | 医疗健康数据 | PHI保护 | $50K-$1.5M/次 |
257
+ | PCI DSS | 支付卡数据 | 持卡人数据保护 | $5K-$100K/月 |
258
+
259
+ ### GDPR 用户权利 (DSAR)
260
+ | 权利 | API | SLA |
261
+ |------|-----|-----|
262
+ | 访问权 | `GET /users/{id}/data-export` | 30天 |
263
+ | 删除权 | `DELETE /users/{id}/data` | 30天 |
264
+ | 可携带权 | `GET /users/{id}/data-export?format=json` | 30天 |
265
+ | 限制处理 | `POST /users/{id}/restrict` | 72小时 |
266
+
267
+ ### SOC 2 关键控制
268
+ ```yaml
269
+ 访问控制: MFA强制 + RBAC + 最小权限 + 季度审查 + 离职即撤权
270
+ 变更管理: PR审查 + 分环境部署 + 审批流程 + 回滚方案
271
+ 监控告警: 安全事件监控 + 异常登录检测 + 数据访问审计
272
+ 事件响应: IR计划文档化 + 定期演练 + 72小时通知 + 事后复盘
273
+ ```
274
+
275
+ ### 审计日志要求
276
+ ```yaml
277
+ 必须审计: 登录/MFA/密码变更 | 权限/角色变更 | 敏感数据访问/导出/删除 | 配置/部署变更
278
+ 存储: 不可篡改(WORM) + 加密 + 异地备份
279
+ 保留: 安全事件>=1年 / 访问日志>=90天 / 变更>=3年 / 合规审计>=7年
280
+ ```
281
+
282
+ ### 合规即代码 (OPA)
283
+ ```rego
284
+ deny[msg] {
285
+ input.resource_type == "aws_s3_bucket"
286
+ input.resource.acl == "public-read"
287
+ msg := sprintf("S3 %s must not be public", [input.resource.name])
288
+ }
289
+ ```
290
+
291
+ ### 合规检查清单
292
+ ```yaml
293
+ GDPR: 隐私政策 + 同意管理 + DSAR(30天) + 加密 + 保留策略 + 泄露通知(72h)
294
+ SOC2: 访问控制+MFA + 变更管理 + IR计划 + 漏洞管理 + 安全培训
295
+ 审计: 日志覆盖关键操作 + 不可篡改 + 保留期限合规
296
+ ```
297
+
@@ -1,43 +1,205 @@
1
1
  ---
2
2
  name: data-engineering
3
3
  description: 数据工程。Airflow、Dagster、Kafka Streams、Flink、dbt、数据管道、流处理、数据质量。当用户提到数据管道、ETL、流处理、数据质量时路由到此。
4
+ license: MIT
4
5
  ---
5
6
 
6
- # 🏗️ 数据工程域 · Data Engineering
7
+ # 数据工程域 · Data Engineering
7
8
 
8
9
  ## 域概览
9
10
 
10
11
  数据工程域涵盖数据管道编排、流式处理、数据质量保障三大核心领域。
11
12
 
12
- ## 秘典索引
13
+ ```
14
+ 数据管道层 流处理层 质量保障层
15
+ ├── Airflow (调度编排) ├── Kafka Streams ├── Great Expectations
16
+ ├── Dagster (资产管理) ├── Flink ├── dbt
17
+ └── Prefect (现代工作流) └── Spark Streaming └── Soda Core
18
+ ```
19
+
20
+ ---
21
+
22
+ ## 数据管道编排
23
+
24
+ ### 框架对比
25
+
26
+ | 特性 | Airflow | Dagster | Prefect |
27
+ |------|---------|---------|---------|
28
+ | 核心模型 | DAG + Task | Asset + Op | Flow + Task |
29
+ | 学习曲线 | 陡峭 | 中等 | 平缓 |
30
+ | 资产管理 | 无 | 原生支持 | 无 |
31
+ | 动态任务 | 支持 | 支持 | 支持 |
32
+ | 本地开发 | 复杂 | 简单 | 简单 |
33
+ | 社区生态 | 最大 | 成长中 | 成长中 |
34
+
35
+ ### Airflow 核心模式
36
+
37
+ - DAG 定义:`with DAG(dag_id, schedule, default_args) as dag`
38
+ - TaskFlow API:`@task` 装饰器,自动 XCom 传递
39
+ - 动态任务:`@task` + `.expand()` 实现 dynamic task mapping
40
+ - Operators:PythonOperator / BashOperator / SQL / HTTP / S3
41
+ - Sensors:FileSensor / HttpSensor / ExternalTaskSensor
42
+ - 重试策略:`retries=3, retry_delay=timedelta(minutes=5), retry_exponential_backoff=True`
43
+ - 失败回调:`on_failure_callback` 发送告警
44
+ - SLA 监控:`sla=timedelta(hours=2)` + `sla_miss_callback`
45
+
46
+ ### Dagster 核心模式
47
+
48
+ - Asset 定义:`@asset(group_name, deps)` 声明数据资产
49
+ - MaterializeResult:返回元数据(行数、预览等)
50
+ - Resources:`ConfigurableResource` 管理外部连接
51
+ - Jobs:`define_asset_job(selection=AssetSelection.groups(...))`
52
+ - Schedules:`ScheduleDefinition(job, cron_schedule)`
53
+ - Sensors:`@sensor(job)` 监听外部事件触发
54
+ - Partitions:`DailyPartitionsDefinition` 按日分区
55
+ - Asset Checks:`@asset_check` 验证数据新鲜度/质量
56
+
57
+ ### Prefect 核心模式
58
+
59
+ - Flow/Task:`@flow` + `@task(retries=3, cache_key_fn=task_input_hash)`
60
+ - 并发:`ConcurrentTaskRunner` + `task.map(items)`
61
+ - Deployments:`Deployment.build_from_flow(schedule=CronSchedule(...))`
62
+ - Blocks:`Secret` / `JSON` 管理配置和密钥
63
+
64
+ ### 调度策略 Checklist
65
+
66
+ - [ ] Cron 表达式正确(`0 2 * * *` 日批 / `*/15 * * * *` 实时)
67
+ - [ ] 事件驱动:文件到达 / S3 / API 触发
68
+ - [ ] 跨 DAG 依赖:ExternalTaskSensor / Asset deps
69
+ - [ ] 幂等性:UPSERT / 分区覆盖写入
70
+ - [ ] 增量处理:`WHERE updated_at > last_run`
71
+ - [ ] 数据血缘:Dagster 原生 / Airflow Lineage / dbt ref()
72
+
73
+ ---
74
+
75
+ ## 流式处理
76
+
77
+ ### 框架对比
78
+
79
+ | 特性 | Kafka Streams | Flink | Spark Streaming |
80
+ |------|---------------|-------|-----------------|
81
+ | 部署模式 | 嵌入式(JVM) | 独立集群 | 独立集群 |
82
+ | 状态管理 | RocksDB | 内存/RocksDB | 内存 |
83
+ | Exactly-Once | 支持 | 支持 | 支持 |
84
+ | 窗口类型 | 丰富 | 最丰富 | 基础 |
85
+ | 学习曲线 | 平缓 | 陡峭 | 中等 |
86
+ | Python API | kafka-python | PyFlink | PySpark |
87
+
88
+ ### Kafka Streams 核心模式
89
+
90
+ - 拓扑构建:`StreamsBuilder` → `stream()` → `filter/map/flatMap` → `to()`
91
+ - 聚合:`groupByKey().count()` / `.aggregate()` / `.reduce()`
92
+ - Join:Stream-Stream(时间窗口)/ Stream-Table / Table-Table
93
+ - 状态存储:`Stores.persistentKeyValueStore` + Transformer
94
+ - Exactly-Once:`PROCESSING_GUARANTEE_CONFIG = EXACTLY_ONCE_V2`
95
+ - 性能调优:`NUM_STREAM_THREADS=4` / `CACHE_MAX_BYTES_BUFFERING` / RocksDB 配置
13
96
 
14
- | 秘典 | 覆盖范围 | 触发词 |
15
- |------|----------|--------|
16
- | [data-pipeline.md](./data-pipeline.md) | Airflow/Dagster/Prefect/调度编排 | 数据管道、Airflow、Dagster、Prefect、ETL、数据编排 |
17
- | [stream-processing.md](./stream-processing.md) | Kafka Streams/Flink/实时处理 | 流处理、Kafka Streams、Flink、实时处理、流式计算 |
18
- | [data-quality.md](./data-quality.md) | Great Expectations/dbt/数据验证 | 数据质量、Great Expectations、dbt、数据验证、数据测试 |
97
+ ### Flink 核心模式
19
98
 
20
- ## 技术栈
99
+ - DataStream API:`env.addSource()` → `filter/map` → `addSink()`
100
+ - 窗口类型:
101
+ - 滚动窗口 `TumblingProcessingTimeWindows.of(Time.minutes(5))`
102
+ - 滑动窗口 `SlidingProcessingTimeWindows.of(size, slide)`
103
+ - 会话窗口 `ProcessingTimeSessionWindows.withGap(gap)`
104
+ - 全局窗口 `GlobalWindows.create()` + 自定义 Trigger
105
+ - 窗口聚合:`aggregate(AggregateFunction, WindowFunction)` 增量+全窗口
106
+ - ProcessFunction:低级 API,访问时间戳、注册定时器
107
+ - 状态管理:ValueState / ListState / MapState + TTL 清理
108
+ - Checkpoint:`env.enableCheckpointing(60000)` + EXACTLY_ONCE
109
+ - Savepoint:`flink run -s /path/to/savepoint`
110
+ - 时间语义:Event Time + Watermark(`forBoundedOutOfOrderness`)
111
+ - 延迟数据:`allowedLateness()` + `sideOutputLateData()`
112
+ - 数据倾斜:添加随机前缀打散 key
113
+
114
+ ### 流处理 Checklist
115
+
116
+ - [ ] 选择时间语义:Event Time vs Processing Time
117
+ - [ ] Watermark 策略:乱序容忍度设置
118
+ - [ ] 窗口类型匹配业务场景
119
+ - [ ] 状态 TTL 防止无限增长
120
+ - [ ] Checkpoint 间隔和超时配置
121
+ - [ ] Exactly-Once 语义端到端保证
122
+ - [ ] 背压监控和处理
123
+ - [ ] 并行度调优
124
+
125
+ ---
126
+
127
+ ## 数据质量
128
+
129
+ ### 质量维度
21
130
 
22
131
  ```
23
- 数据管道层
24
- ├── Airflow (调度编排)
25
- ├── Dagster (资产管理)
26
- └── Prefect (现代工作流)
27
-
28
- 流处理层
29
- ├── Kafka Streams (轻量级)
30
- ├── Flink (分布式流处理)
31
- └── Spark Streaming (批流一体)
32
-
33
- 质量保障层
34
- ├── Great Expectations (数据验证)
35
- ├── dbt (数据转换测试)
36
- └── Soda (数据可观测性)
132
+ 完整性(非空) → 准确性(范围) → 一致性(关联) → 及时性(新鲜度) → 有效性(格式)
37
133
  ```
38
134
 
39
- ## 使用指南
135
+ ### 工具对比
136
+
137
+ | 工具 | 优势 | 适用场景 |
138
+ |------|------|----------|
139
+ | Great Expectations | 丰富 Expectations、Data Docs | Python 生态、复杂验证 |
140
+ | dbt | SQL 原生、血缘追踪 | 数据仓库、转换测试 |
141
+ | Soda Core | 简洁 YAML 配置 | 快速验证、CI/CD |
142
+
143
+ ### Great Expectations 核心模式
144
+
145
+ - Data Context:`gx.get_context()` → 添加数据源 → 构建批次
146
+ - 常用 Expectations:
147
+ - `expect_table_row_count_to_be_between(min, max)`
148
+ - `expect_column_values_to_not_be_null(column)`
149
+ - `expect_column_values_to_be_unique(column)`
150
+ - `expect_column_values_to_be_between(column, min, max)`
151
+ - `expect_column_values_to_be_in_set(column, value_set)`
152
+ - `expect_column_values_to_match_regex(column, regex)`
153
+ - Checkpoints:批量运行验证 + 生成 Data Docs
154
+ - 自定义 Expectation:继承 `ColumnMapExpectation`
155
+
156
+ ### dbt 测试核心模式
157
+
158
+ - Schema 测试:`unique` / `not_null` / `accepted_values` / `relationships`
159
+ - Generic 测试:`{% test name(model, column_name, params) %}`
160
+ - Singular 测试:`tests/` 目录下自定义 SQL,返回行 = 失败
161
+ - dbt_expectations 包:`expect_column_mean_to_be_between` / `expect_row_values_to_have_recent_data`
162
+ - 执行:`dbt test` / `dbt test --select model` / `dbt test --store-failures`
163
+ - 血缘:`{{ ref('model') }}` + `{{ source('schema', 'table') }}` → `dbt docs generate`
164
+
165
+ ### Soda Core 核心模式
166
+
167
+ ```yaml
168
+ checks for table_name:
169
+ - row_count > 100
170
+ - missing_count(column) = 0
171
+ - duplicate_count(column) = 0
172
+ - invalid_count(column) = 0:
173
+ valid format: email
174
+ - freshness(timestamp_col) < 1d
175
+ ```
176
+
177
+ ### 数据质量 Checklist
178
+
179
+ - [ ] 分层验证:源数据 → 转换后 → 目标数据
180
+ - [ ] 完整性:必需列非空、无空字符串
181
+ - [ ] 准确性:数值范围、格式正则、逻辑一致
182
+ - [ ] 一致性:跨表主键匹配、值一致
183
+ - [ ] 及时性:数据新鲜度 < 阈值
184
+ - [ ] 唯一性:主键/业务键无重复
185
+ - [ ] 质量指标:完整性/唯一性/有效性加权评分
186
+ - [ ] 告警:指标低于阈值自动通知(Slack/Email/PagerDuty)
187
+ - [ ] 持续监控:定时执行质量检查
188
+
189
+ ---
190
+
191
+ ## 最佳实践
192
+
193
+ | 实践 | 说明 |
194
+ |------|------|
195
+ | 幂等性设计 | UPSERT / 分区覆盖,重跑不产生副作用 |
196
+ | 增量处理 | 基于时间戳/CDC 增量提取,减少全量扫描 |
197
+ | 数据血缘 | dbt ref() / Dagster Asset deps 追踪上下游 |
198
+ | 分层验证 | 源→转换→目标每层都验证 |
199
+ | 监控告警 | 管道 SLA + 质量指标 + 延迟告警 |
200
+ | 状态管理 | 流处理状态 TTL + Checkpoint + Savepoint |
201
+ | 容错设计 | 重试策略 + 死信队列 + 回滚方案 |
202
+
203
+ ## 触发词
40
204
 
41
- 1. **数据管道开发** → 查阅 data-pipeline.md
42
- 2. **实时流处理** → 查阅 stream-processing.md
43
- 3. **数据质量保障** → 查阅 data-quality.md
205
+ 数据管道、Airflow、Dagster、Prefect、ETL、流处理、Kafka Streams、Flink、数据质量、Great Expectations、dbt、数据验证、数据血缘
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: development
3
3
  description: 开发语言能力索引。Python、Go、Rust、TypeScript、Java、C++、Shell。当用户提到编程、开发、代码、语言时路由到此。
4
+ license: MIT
4
5
  ---
5
6
 
6
7
  # 符箓秘典 · 开发语言能力中枢
@@ -16,10 +17,6 @@ description: 开发语言能力索引。Python、Go、Rust、TypeScript、Java
16
17
  | [java](java.md) | Java | 企业级、Spring、微服务 |
17
18
  | [cpp](cpp.md) | C/C++ | 系统底层、性能优化 |
18
19
  | [shell](shell.md) | Bash | 脚本自动化、系统管理 |
19
- | [php](php.md) | PHP | Laravel、Symfony、Web开发 |
20
- | [swift](swift.md) | Swift | SwiftUI、iOS开发、Combine |
21
- | [kotlin](kotlin.md) | Kotlin | Jetpack Compose、Android开发 |
22
- | [dart](dart.md) | Dart | Flutter、跨平台开发 |
23
20
 
24
21
  ## 语言选型指南
25
22
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: devops
3
3
  description: DevOps 能力索引。Git、测试、DevSecOps、数据库。当用户提到 DevOps、CI/CD、Git、测试时路由到此。
4
+ license: MIT
4
5
  ---
5
6
 
6
7
  # 🔧 炼器秘典 · DevOps 能力中枢
@@ -11,13 +12,10 @@ description: DevOps 能力索引。Git、测试、DevSecOps、数据库。当用
11
12
  | Skill | 定位 | 核心能力 |
12
13
  |-------|------|----------|
13
14
  | [git-workflow](git-workflow.md) | 版本控制 | Git、分支策略、PR |
14
- | [testing](testing.md) | 软件测试 | 单元测试、集成测试、TDD |
15
- | [testing-strategy](testing-strategy.md) | 测试策略 | 测试金字塔、测试左移、契约测试 |
16
- | [e2e-testing](e2e-testing.md) | E2E测试 | Playwright、Cypress、可视化回归 |
17
- | [performance-testing](performance-testing.md) | 性能测试 | k6、JMeter、负载测试、压力测试 |
15
+ | [testing](testing.md) | 软件测试 | 单元测试、集成测试、TDD、测试策略、E2E测试 |
18
16
  | [devsecops](devsecops.md) | 安全开发 | CI/CD安全、供应链安全 |
19
17
  | [database](database.md) | 数据库 | SQL、NoSQL、优化 |
20
- | [performance](performance.md) | 性能优化 | Profiling、火焰图、基准测试 |
18
+ | [performance](performance.md) | 性能优化 | Profiling、火焰图、基准测试、负载测试、性能测试 |
21
19
  | [observability](observability.md) | 可观测性 | 日志、指标、追踪、SLO |
22
20
  | [cost-optimization](cost-optimization.md) | 成本优化 | FinOps、右尺寸、Spot、伸缩 |
23
21