agentsclimarketplace

Writing pitfall archive

Skill wanghong5233/agent-engineering-kit/cursor/.cursor/skills/writing-pitfall-archive

Write or refactor a pitfall archive (recurring failures → invariants; Google SRE blameless multi-incident form). Use when editing `*DEPLOYMENT*`/`*MANUAL*`/`*RUNBOOK*`/`*PITFALL*`/`*坑*`/`*手册*` under `docs/`, or user asks 沉淀部署经验/踩坑/故障复盘/去AI味/不再犯同样错误. Do NOT use for single postmortems.From its SKILL.md

Install
npx -y skills add wanghong5233/agent-engineering-kit --skill writing-pitfall-archive

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

6.3 KB, ~2.4k tokens by cl100k_base, as published. Nobody here has run it

Writing Pitfall Archive

一句话准则

档案只为一件事:让同一类故障不再发生第二次。任何不服务于这个目的的内容都是噪音。

与 Runbook / Postmortem 的边界

文档范围时态位置
Postmortem单一事件过去式git commit / private/
Runbook高频流程命令式<repo>/scripts/ 即是
Pitfall Archive多次故障沉淀现在时:规则是什么docs/*MANUAL*.md

关键差异:Postmortem 是事件级临时产物;Pitfall Archive 是"项目级不变量库",永远活的、持续演进。详见 references/design-rationale.md

硬性禁止(命中即删)

反模式判断特征归宿
命令序列 / 一步步操作连续 cd / docker compose / ssh 等 5 行以上代码块shell 脚本 (<repo>/scripts/)
教程口吻"首先 / 接下来 / 然后 / 最后"改为坑点条目
架构图 / 整体图mermaid 整体 graph架构文档(writing-architecture-docs
单次事件的完整记录"2026-05-09 14:32 我登录服务器看到 ..."git log / private/
决策辩证过程"考虑了 A 方案,又考虑 B,最后选 C"git commit / private/
安抚性语言"不用担心 / 这是正常的 / 后续会解决"
重复表达同一不变量在 4 节复述§X.Y 引用
复制粘贴报错堆栈完整 traceback 30 行留关键 3 行作 Evidence
通用 SRE 知识"Docker 镜像分层原理 / Linux OOM 机制"
AI 安慰话"通常来说 / 一般建议 / 值得注意的是"改成信号、后果、动作
口号式不变量"保证系统稳定"改成可违反、可检测、可追责的约束

必要章节结构

每节缺哪一块不强求,出现即必须是这种形态

§1 硬性约束(Hard Constraints)

不变量清单,每条 1-2 句、含违反后果

1.2 资源紧张时不能并发 — 不能"旧容器 + build"同跑;不能并行 build 多服务;重型构建链(如含 LaTeX / GPU / 大模型权重)永远不能在受限节点上完整 build

格式:**编号 + 一句话约束** — 量化范围 + 违反后果不解释 why(why 进 §4 坑点条目)。

§2 路径与命名约定

环境路径、容器命名、域名、卷挂载的事实表:

值(示例)备注
代码 checkout/opt/apps/<project>部署主机统一前缀
容器命名<project>_<service>api / worker / db

§3 业务关键 env(多环境必须对齐)

变量名 + 典型值 + 漂移后果不写完整 .env 内容(那是 .env.<env>.example 的职责)。

§4 坑点档案(核心)

每条用五段式:Symptom / Evidence / Root Cause / Solution / Invariant。

条目命名:§4.N [日期] 坑点一句话总结,按时间倒序排列。

完整反例 → 正例对照见 references/examples.md

§5 关键工具脚本

脚本触发条件产物
<repo>/scripts/<name>.sh触发条件描述产物路径或副作用

不写脚本内部实现,只写"什么时候用 / 产生什么"。

§6 信号判别表

症状 → 坑点条目编号的快速查表:

症状
CPU 95%+、SSH banner timeout§4.<N>
本地能跑、生产/远端不能跑§4.<N>

§7 演进规则

触发行为
同一现象出现第 2 次新增 §4.N 条目
同一类约束被违反 ≥ 3 次升级到 §1
同类问题在 ≥ 2 个项目里都出现上抽象到 engineering-playbook,pitfall 条目 Invariant 段引用 playbook §NN
不变量被新架构推翻~~strikethrough~~ 保留 1 版本,下次清理
工具脚本失效§5 删条 + 脚本归档 private/archived/
季度回顾检查 §4 中 6 个月未触发的条目,归档 docs/archived/

两层引用方向(严格单向):

方向是否允许理由
pitfall → playbook"上抽象到 playbook §08" 提醒未来复用
playbook → 本仓库 pitfall破坏 playbook 跨项目可移植性
playbook ↔ playbook内部反向链接形成网状结构

写作微观规范

  • 现在时陈述:❌"曾经出现过 X" → ✅"在 X 条件下会出现 Y"
  • 量化优先:❌"CPU 很高" → ✅"CPU 95%+ 持续 30s"
  • 证据原始化:日志/容器状态/监控数值原文引用
  • 内部交叉引用用 §X.Y,不用"上文 / 前面"
  • 中文正文 + 英文代码 / 日志 / 路径
  • 编号一旦发布永不变(外部 grep §4.3 可能依赖),新增只往后追加
  • 句子以事实开头,不以评价开头:✅"CPU 95%+ 持续 30s",❌"这是一个严重问题"
  • 禁止"总结一下 / 经验告诉我们",直接写 Invariant

自检(提交前必过)

  • 这一段是"现在的规则"还是"过去的故事"?后者 → 删 / 移 private/
  • 能用表格 / 五段式代替吗?能就替
  • 命令序列超过 5 行?→ 抽脚本,正文留链接
  • 出现"首先 / 接下来 / 然后"教程口吻?→ 改写
  • §1 / §4 / §6 互相引用闭环?(信号查到坑点,坑点上溯约束)
  • 编号无与历史版本冲突?(git blame 验证)
  • 含敏感信息(真实 IP / hostname / API key / 内部域名)?→ 删
  • 每个 Invariant 是否能被一次 grep、监控或 review 检查发现违反?不能→重写
  • 是否有 AI 式安全套话("通常 / 建议 / 尽量")?→ 改成硬约束或触发条件

链路

  • 设计依据与业界对照:references/design-rationale.md
  • 反例 → 正例完整对照:references/examples.md
  • 跨项目工程经验(上抽象层):writing-engineering-playbook
  • 项目对外名片:writing-readme
  • 项目架构文档:writing-architecture-docs

What ships with it: 2 files

5.8 KB alongside SKILL.md

references/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.