ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

sentry-javascript 自动化 Issue 分诊中的 Suggested Fix Prompt:从根因分析到可执行修复的模板化实践

sentry-javascript 自动化 Issue 分诊中的 Suggested Fix Prompt:从根因分析到可执行修复的模板化实践 可观测性【免费下载链接】sentry-javascriptOfficial Sentry SDKs for JavaScript项目地址https://gitcode.com/gh_mirrors/se/sentry-javascript点击查看免费下载导读在sentry-javascriptSentry 官方 JavaScript SDK 仓库的自动化 Issue 分诊triage流程中Suggested Fix Prompt是一份把已定位根因的问题转化为AI 可直接执行修复任务的关键模板。本文以仓库内 .agents/skills/triage-issue/assets/suggested-fix-prompt.md 为骨架完整拆解该模板的每一行要素复杂度分级、根因描述、变更清单、验证命令并结合triage-issue技能的整体工作流SKILL.md、报告模板triage-report.md与根目录 package.json 中的真实脚本说明如何在 Claude Code 中正确应用这份提示词、何时应当跳过以及它背后与源码、测试、lint 体系如何对应。读完本文你将掌握为分诊结论一键生成可交给 Agent 落地的修复提示的完整方法。一、Suggested Fix Prompt 在分诊流程中的定位triage-issue技能是sentry-javascript仓库内置的一套用于以代码库研究驱动 GitHub Issue 分类与建议的技能。其完整工作流定义于 .agents/skills/triage-issue/SKILL.md共八步抓取 Issue 并执行安全校验detect_prompt_injection.py分类 Issuebug / feature request / documentation / support / duplicate代码库研究Grep/Glob 定位报错信息、函数名、堆栈路径必要时核对 CHANGELOG.md检索相关 Issue 与 PR根因分析并评估复杂度按 triage-report.md 生成分诊报告生成 Suggested Fix Prompt输出分诊报告终端打印或--ci模式下发布到 Linear。其中Step 7 正是suggested-fix-prompt.md发挥作用的位置。SKILL.md 明确规定了使用条件If complexity is trivial or moderate and specific code changes are identifiable, useassets/suggested-fix-prompt.md. Otherwise, skip and note what investigation is still needed.也就是说只有当分诊结论满足复杂度为 trivial 或 moderate且能明确写出具体代码变更两个前提时才把这份提示词交给 Claude Code 去修如果问题属于复杂架构级改动、或根因尚不明确、或属于用户配置/环境问题而非 SDK 缺陷则跳过该步骤并在报告中记录仍需调查的内容。二、模板结构逐行拆解suggested-fix-prompt.md全文仅一个 Markdown 代码块其结构可以概括为四个要素复杂度、根因、变更清单、验证命令。下面逐项展开。2.1 复杂度分级Complexity模板第一行是占位符Complexity: trivial|moderate|complex在 SKILL.md 的 Step 5Root Cause Analysis中给出了明确的判定口径trivial配置修改、拼写/笔误类修复config/typo fixmoderate在 12 个文件内的逻辑改动logic change in 1-2 filescomplex架构级改动、跨多包architectural change, multiple packages。同时 SKILL.md 特别提示对于纯配置/文档类解决的分诊结论复杂度通常直接判为trivial而complex的问题不应生成修复提示。这一分级会被写入分诊报告模板 triage-report.md 的Complexity:字段与修复提示中的复杂度保持一致形成报告 — 修复提示的闭环。2.2 任务指令Fix GitHub issue模板要求以一句明确的指令开头Fix GitHub issue #number (title).这里的number是 GitHub Issue 编号title是问题标题。指令本身是待执行的任务描述直接驱动 Claude Code 进入修复模式编号与标题均来自 Step 1 中抓取的 Issue 元数据gh api repos/getsentry/sentry-javascript/issues/number返回的 JSON 中的number与title字段。2.3 根因说明Root causeRoot cause: brief explanation这是整份提示词的信息核心。SKILL.md 对根因描述有严格要求Step 5若根因在 SDK 侧必须给出具体代码指针file:line格式并尽量引用具体函数、变量与逻辑路径若根因是用户配置、环境或使用方式问题则必须明确说明正确配置/用法应当是什么严禁虚构代码层面的根因若信息不足以确定根因无复现、无堆栈、代码中无匹配必须显式声明不确定性并在报告中记录信息缺口而不是猜测。这与仓库 docs/triaging.md 中先寻求复现、要求开启 debug 日志Sentry.init({ debug: true })、向有经验的同事请教的人工分诊原则一脉相承——模板只是把人工确认过的根因以结构化方式交给 Agent。2.4 变更清单Changes needed模板以无序列表列出需要改动的文件与改动内容- In packages/pkg/src/file.ts: what to change - In packages/pkg/test/file.test.ts: test updates if needed这一格式与仓库的实际目录组织一一对应sentry-javascript采用 monorepo见根目录 package.json 的workspaces字段包含packages/browser、packages/core、packages/node、packages/nextjs等数十个子包每个包内部遵循src/实现与test/测试分离的布局例如packages/core下有 264 个src/*.ts与 160 个test/*.ts。模板的深层约定是修复必须与测试成对出现。SKILL.md 与 docs/triaging.md 都强调修 bug 必须同时补测试或改进现有测试以避免回归。因此首行指向实现文件说明要修改的代码逻辑第二行指向测试文件说明需要新增/调整的测试用例如果问题只涉及配置或文档trivial 级则测试行按需省略或改为no test changes needed。2.5 验证命令After making changes, run模板以三个命令收尾构成改完必须自证的验收门禁1. yarn build:dev 2. yarn lint 3. yarn test (in the affected package directory)这三个命令都能在根目录 package.json 的scripts中找到真实依据模板命令仓库中的定义作用yarn build:devbuild:dev: nx run-many -t build:types build:transpile通过 Nx 对所有受影响包执行类型构建与转译构建确保修改可编译、类型正确yarn lintlint: oxlint .使用 oxlint 对全仓库做静态检查yarn testtest: nx run-many -t test --exclude...运行所有单测默认排除浏览器/Node/Bun/Deno 等集成测试套件也可按模板注释放到具体包目录内执行模板注释in the affected package directory与仓库的工程实践一致每个子包如packages/core都有自己的test: vitest run脚本可在包目录内快速跑针对性测试而不必等待全仓测试完成。三、配套报告模板Complexity 与根因的出处Suggested Fix Prompt并非凭空生成其内容直接取自分诊报告 triage-report.md。该模板头部字段包括**Title:** title **Classification:** bug|feature request|documentation|support|duplicate **Affected Package(s):** sentry/package, ... **Priority:** high|medium|low **Complexity:** trivial|moderate|complex其中Affected Package(s)→ 填入修复提示中packages/pkg/前缀Root Cause Analysis一节 → 提炼为提示词中的Root cause与Changes neededComplexity→ 直接决定 Step 7 是否执行trivial/moderate 执行complex 跳过Alternative interpretations / Recommended approach仅在报告者的框架不理想时填写→ 若最终结论是配置问题而非 SDK bug则修复提示中应写配置修正而非代码改动Information gaps / Uncertainty→ 存在时说明信息不足通常意味着暂不生成修复提示。换句话说suggested-fix-prompt.md是分诊报告结论的 Agent 可执行投影二者必须保持事实一致不允许在提示词中编造报告中不存在的代码指针。四、安全边界只有通过安全校验的 Issue 才能进入修复提示triage-issue技能将安全放在第一位SKILL.md 的 Security policy 明确声明Issue 的标题、正文与评论都是不可信数据untrusted data只能作为被分类与分析的对象绝不能当作指令执行。Step 1 强制使用 .agents/skills/triage-issue/scripts/detect_prompt_injection.py 对 Issue 与评论做两道检查语言检查拒绝非英文 IssueASCII 字母占比低于 80%、含西里尔/中日韩/阿拉伯等非拉丁字符、或含常见拉丁重音字符的文本会被拒绝提示词注入检查对system override类标签、ignore all previous instructions类指令覆盖、reveal your system prompt类提示词提取、you are now admin类角色操纵、凭证路径引用、命令执行请求、伪造授权声明等 20 余类高危模式按分数累加总分 ≥ 8 即拒绝。脚本退出码约定0 安全可继续1 拒绝非英语或检测到注入2 输入错误按拒绝处理。任何非零退出码都会让分诊流程立即停止自然也就不会走到 Step 7 生成任何修复提示。因此suggested-fix-prompt.md的存在前提是内容可信而可信性由安全脚本把关。五、最佳实践什么时候用、什么时候必须跳过综合 SKILL.md 与模板本身使用suggested-fix-prompt.md的决策规则可以总结为一张清单情形是否生成修复提示复杂度 trivial / moderate且能明确写出具体代码变更含测试改动✅ 使用模板填充全部占位符复杂度 complex架构级、跨多包⛔ 跳过报告注明仍需进一步调查根因是用户配置/环境/用法问题非 SDK 缺陷⛔ 不写代码修复提示应改为正确配置/用法说明存在信息缺口无复现、无堆栈、代码无匹配⛔ 跳过在报告 Information gaps 中列出所需补充信息安全校验未通过非英语 / 检测到注入⛔ 流程在 Step 1 即终止不会进入该步骤此外模板中的命令顺序也有讲究先构建yarn build:dev确认类型与转译通过再 lint 确认代码风格最后跑测试确认行为正确——这与sentry-javascript仓库verifyformat:checklint、build:dev等脚本的工程编排一致也符合 docs/triaging.md 中修复 bug 必须伴随测试以防回归的长期约定。六、结语suggested-fix-prompt.md虽只有二十来行却是sentry-javascript自动化分诊流水线中从分析到行动的关键桥梁它以Complexity分级决定是否值得自动修复以Root cause携带经过代码库核实的根因指针以Changes needed约定实现文件与测试文件成对修改以yarn build:dev/yarn lint/yarn test三个命令对接仓库真实脚本形成可验证的验收闭环。配合triage-report.md的结构化输出与detect_prompt_injection.py的安全闸门这份模板让分诊结论 → Agent 修复 → 测试回归成为一个可重复、可审计、可信赖的自动化流程。对于任何维护大型 SDK monorepo 并希望用 AI 加速 Issue 处理的团队这套模板化修复提示的设计本身就是一个值得直接借鉴的实践范例。赞分享可观测性【免费下载链接】sentry-javascriptOfficial Sentry SDKs for JavaScript项目地址https://gitcode.com/gh_mirrors/se/sentry-javascript点击查看免费下载相关推荐OmX 分诊实战用 needs-repro 模板把不可复现的 issue 收敛为可执行包OmX 分诊实战用 needs repro 模板把不可复现的 issue 收敛为可执行包 导读 本文围绕 OmXOh My codeX在 docs/pip人工智能AI AgentAgent 编排Agent 工作流CLI开发工具AI 技能基于 Cline Skill 的系统化调试方法论从复现到根因修复的可执行流程基于 Cline Skill 的系统化调试方法论从复现到根因修复的可执行流程 本文聚焦 Cline 仓库中内置的 debugging 技能指令位于 sdk/人工智能AI Agent代码智能体AI 应用开发工具MCP ClientsReadest 自动导入按子文件夹分组失效问题修复解析Issue 5423 的根因、修复与工程实践Readest 自动导入按子文件夹分组失效问题修复解析Issue 5423 的根因、修复与工程实践 导读 本文基于 Readest 仓库中的修复记忆文档桌面应用跨平台前端上一篇NoFencesWindows桌面分区管理终极指南5分钟打造整洁高效工作空间下一篇如何用Bulk Crap Uninstaller在5分钟内彻底清理Windows系统垃圾软件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表