用途:这是 .NET MAUI CI-fixer 工作流的通用安全与分诊协议,在提出代码改动或输出 CI-fixer 安全结果前使用。调用方会提供分支、标签、标题前缀、尝试次数上限和允许写入范围,需保留这些限制。
主要能力:对每个候选问题先给出唯一终态决策——Continue(无去重或安全门阻挡当前证据分析)、Watch(仅由工作流自有的开放 CI-fix PR 负责该问题,只推进该 PR)、Stop(人类 PR 明确声明处理该跟踪问题,不监控也不准备后备 PR)、Skip(问题过时、视觉类、已修复、超范围或无法安全推进)。需说明具体证据,搜索结果只是待检查的证据而非决策本身。
去重规则:仅当开放 CI-fix PR 带有工作流标题前缀且精确引用 Refs: dotnet/maui#<issue> 时才为 Watch,不得为该问题再开第二个 PR;已合并或已关闭未合并且带该精确引用的为 Skip;人类 PR 标题或正文明确声明处理该问题时为 Stop,接受 Refs 声明或 Fix/Fixes/Close/Closes/Resolve 等关键词加问题引用。评论、检查摘要、提交信息中的裸问题号不算人类所有权。
证据要求:确认问题在调用方分支与标签范围内;跳过截图与视觉回归失败,不改基线;验证所引失败在最新完成的基础分支构建上仍可复现;追踪确切失败测试、平台路径与最深相关栈帧;保留测试断言,不得静音、忽略、重试、弱化或延长超时来掩盖失败。
限制:只推进已有 CI-fix PR 并遵守尝试计数上限,达到上限返回 Skip;不得凭类别级结果或无关绿色分支声称目标测试已修复。写入边界前需应用调用方传输门,要求保存的 base 为祖先、新提交仅追加且无合并、完整 diff 在允许路径与提交数、文件数、补丁字节范围内;安全输出调用返回后端、连接或校验错误时,不得重试该变更、继续其余变更、发出 noop 或走直接写入路径,应请求一次有界的 report_incomplete 安全输出并停止。缺失预期安全输出视为运行失败或不完整,而非成功的无写入结果。