一键导入
incident-triage
从日志/现象定位 RAG 解析与召回链路故障,按「定位阶段 → 区分配置漂移还是数据不一致 → 给修复 + 重置/回滚动作」的路径收敛,输出可执行结论。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
从日志/现象定位 RAG 解析与召回链路故障,按「定位阶段 → 区分配置漂移还是数据不一致 → 给修复 + 重置/回滚动作」的路径收敛,输出可执行结论。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
契约治理三件套的「值层」。核对同一个物理契约值(MQ topic/group、OSS bucket、消息字段名/别名、内部 HTTP 路径等)在 .env/.env.example/代码生效点/Java 对端多处是否逐字相等,找出配置漂移与死值,防止消息收不到/文件取不到。本 skill 只比对「同一个值在多处是否一致」,不判断结构/语义是否破坏对端(那是结构层,转 contract-guard),也不改文档。
指导 LLM 如何使用 toLink-Rag 项目的 MQ 消息中台进行消息收发、定义新消息类型以及处理多厂商适配逻辑。
当用户认为当前模块代码实现完毕,且当前分支应为 dev,需要从 dev 基于当前修改创建规范分支、提交并发起合并到 dev 的 GitHub PR 时使用;也用于发布收口,即直接创建 dev -> master 的 release PR,不新建 release 分支。适用于“从 dev 新建分支”“把当前修改提 PR”“实现完成创建 feature/refactor 分支并 PR”“发布新版本”“dev 合并 master”等交付收口场景。本 skill 是交付链终点,并在建分支/提 PR 前执行收口门槛:测试未过、契约文档失同步、acceptance 未提升者拒绝收口。
当用户要求把需求、功能、技术方案、架构改造、故障复盘、项目治理实践或实现过程写成博客/技术文章时必须使用;尤其适用于“写一篇博客”“生成技术博客”“把这个需求写成文章”“根据这个功能写博客”“把项目实现讲清楚”等请求。使用时要基于用户给出的需求和 toLink-Rag 当前仓库的真实代码、文档、契约、配置与测试证据完成分析,默认输出 Markdown 到 `.specs/blog/《博客名称》.md`。文章须采用「少量
把项目里已有的内部组件(如 MQ 中台、解析 pipeline、缓存层、对象存储)抽象成一份「项目自有 skill」,让 AI 每次接入都自动复用该组件的架构边界与约定。读组件真实代码,提炼「架构定位 / 职责边界 / 已落地清单 / 扩展点 / 红线」五要素,按统一原型生成 SKILL.md,登记到 .ai/skills/README.md 注册表并跑校验。
当用户要提 issue、登记 bug、记录新需求时使用;自动识别所属项目,生成结构化 issue 内容,先在 Linear 建主记录、再在 GitHub 建镜像,并双向回链。用户说"提个 issue""记一下这个 bug""把这个需求登记一下""同步到 Linear 和 GitHub""别再依赖 Linear 自动同步"时都应触发,即使没有明确说出"Linear"或"GitHub"。
| name | incident-triage |
| description | 从日志/现象定位 RAG 解析与召回链路故障,按「定位阶段 → 区分配置漂移还是数据不一致 → 给修复 + 重置/回滚动作」的路径收敛,输出可执行结论。 |
| when_to_use | 当用户贴日志/报错、反映文件卡在解析中、Py 收不到解析请求、Qdrant/ES 报错、召回为空、MQ 不消费、状态机不流转等故障并要求排查时激活。触发示例:'为什么 py 没收到解析请求'、'解析一直失败'、'这个报错什么问题'、'文件卡在解析中'、'召回不到结果'、'帮我看下日志'。若用户是要新功能实现转 implementation-execution;要写迁移修数据转 alembic-migration。 |
把本项目高频故障的排查路径标准化:先定位链路阶段,再判断根因属于"配置漂移"还是 "数据不一致/状态机",最后给出可执行修复 + 必要的数据重置/回滚。避免只看表层报错就乱改。
前端点击解析 → Java 建 parse task + 发 Kafka(PARSE_TASK_TOPIC)
→ Py MQ consumer(handle_parse_task) → ParseTaskPipeline.execute
→ 6 stage: cleaning → chunking → vectorizing(dense/Qdrant)
→ pretokenize → es_indexing(ES) → sparse_vectorizing(Qdrant named sparse)
→ 终态只写 DB(document_parse_pipeline),前端轮询 Java 查询读取
(parse_result 回传 MQ 已下线,LINK-166)
src/core/mq/consumers/parse_task_consumer.py(topic/group 实际订阅值)src/core/pipeline/parse_task/stages/(失败 stage 的业务逻辑)src/config.py + .env(实际生效配置,注意 .env ≠ .env.example)docs/internals/parse_task_pipeline.md / vectorization.md / mq.mdkb_bucket_<id>)、ES、MySQL(kb_document_chunk 等)MQ_NAME,不读 .env 的 PARSE_TASK_TOPIC)。--list / 看堆积,确认消息进了哪个 topic。failed_stage,读对应 stage 代码与 document_parse_pipeline 记录。PARSE_ENGINE_FAILED: 不支持的格式 → 文件类型/解析后端配置。SPARSE_VECTORIZING_FAILED: 404 No point with id → MySQL↔Qdrant 不一致
(见 C)。kb_document_chunk.dense_vector_status=SUCCESS 但 Qdrant 无对应 point ⇒ 不一致。status=SUCCESS 跳过不再写 point,sparse stage update_vectors 命中 404。dense_vector_status/sparse_vector_status 为 PENDING
(lifecycle_status='ACTIVE',不要动 es_status),再重新解析。document_parse_pipeline.pipeline_status 与各 stage 状态位、document_parsed_log。.env 后提醒重启服务生效。