用途:在问题确认解决后,立即把排查过程与结论沉淀为可搜索的机构知识库,按症状类别归档,供未来会话复用。
主要能力:单文件架构,每个问题一个 markdown 文件,放在对应症状类别目录下,例如 docs/solutions/performance-issues/n-plus-one-briefs.md;文件使用 YAML frontmatter 保存元数据并支持检索。触发方式包括自动识别确认短语(如 that worked、it's fixed、working now、problem solved、that did it),或手动执行 /doc-fix 命令。仅记录非平凡问题:需要多次排查、调试耗时、解法不直观、对未来会话有价值;简单拼写错误、明显语法错误、立即纠正的琐碎修复则跳过。
使用方式:从对话历史提取模块名、症状(含确切错误信息)、失败的排查尝试、根因、解决方案、预防措施及环境细节(Rails 版本、阶段、操作系统、文件与行号)。若缺少关键上下文(模块名、确切错误、阶段或解决步骤),会先向用户询问并等待。随后在 docs/solutions/ 中搜索相似问题,例如 grep -r "exact error phrase" docs/solutions/ 或 ls docs/solutions/[category]/;若找到相似项,会给出新建并交叉引用、更新已有文档等选项并等待选择。文件名格式为 [sanitized-symptom]-[module]-[YYYYMMDD].md,需小写、空格转连字符、去特殊字符、长度小于 80 字符。YAML frontmatter 必须通过 schema.yaml 的枚举校验,校验失败会阻断流程。之后按 problem_type 映射类别,用 mkdir -p 创建目录,并依据 assets/resolution-template.md 写入文档。
适用场景:适合需要长期积累排错经验的开发工作流,尤其是同一类问题反复出现、解法不直观或属于基础性要求的情况。
限制:YAML 校验为阻断式,未通过不得继续;不得使用模糊描述、省略代码示例或交叉引用;关键上下文缺失时必须等待用户补充。文档中提到的后续增强(按日期范围搜索、按严重度过滤、标签搜索、指标统计、导出与导入社区方案)明确不在当前阶段范围内。