恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

SkiaSharp Issue-Repro 复现结论判定指南:8 种 conclusion 值的选择逻辑与证据要求

  • 首页
  • 资讯中心
  • /
  • SkiaSharp Issue-Repro 复现结论判定指南:8 种 conclusion 值的选择逻辑与证据要求

相关资讯

Looking Glass IDD 配置指南:模式列表、默认刷新率、渲染偏好与共享内存约束详解 2026/10/12 4:54:01
结论标题 + 结构化证据:用 Kun PPT 工具链打造专业级管理汇报演示文稿 2026/10/12 4:54:01
Rust闭包捕获与内存管理:长期运行程序的避坑指南 2026/10/12 4:54:01

最新资讯

删掉 App 也删不掉的痕迹:Loupe 演示 Keychain 如何跨重装记住你的安装次数
日榜速报才过两天,中文教程就来了:vibe-wise 正在被中文圈盯上
争议风暴眼:启动快 12 倍、运行慢 7.5 倍,scriptc 究竟是神器还是实验室玩具?
openJiuwen agent-core 的 DashscopeEmbedding:基于阿里云 DashScope 的多模态嵌入实践指南
PentAGI 伦理与合规:负责任使用AI进行渗透测试的完整指南
R语言判别分析:统计推断视角下的组间差异建模与可解释分类

今日推荐

Debian新手入门:从部署到日常操作的完整指南
MongoDB复制集扩缩容实战:从rs.add到选主事故复盘
条形码目标检测数据集实战:从YOLOv8训练到部署

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

SkiaSharp Issue-Repro 复现结论判定指南:8 种 conclusion 值的选择逻辑与证据要求

发布时间:2026/10/12 4:54:01
SkiaSharp Issue-Repro 复现结论判定指南:8 种 conclusion 值的选择逻辑与证据要求 图形学图像处理跨平台【免费下载链接】SkiaSharpSkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Googles Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.项目地址https://gitcode.com/gh_mirrors/sk/SkiaSharp点击查看免费下载导读本文是 SkiaSharp 仓库中issue-repro技能三步 Issue Pipeline 的第二步负责对 bug 与增强请求做系统性复现的核心决策参考。它解决一个关键问题完成一次复现尝试后到底该在结构化 JSON 里写哪个conclusion值。读完本文你将掌握事实判断 vs 编辑判断的边界、八种结论值的适用场景与强制性证据要求以及assessment、blockers、notes、scope等配套字段的填法最终产出一份能通过 schema 校验、可直接交给维护者与下游issue-fix技能使用的复现结果。一、核心原则复现是事实判断不是编辑判断conclusion-guide.md开篇就给出整个判定体系的第一性原理——Reproduction is FACTUAL, not editorial复现是事实性的不是编辑性的。复现者的职责被严格限定在一个问题上报告的行为是否真的发生。问题类型由谁决定报告的行为是否发生了事实性Factual你复现者该行为是否是缺陷编辑性Editorial维护者是否应该修复编辑性Editorial维护者这条原则在仓库中被反复强化。在 SKILL.md 的 Key Rules 第 1 条中明确写着Stop at did it reproduce停在是否复现根因分析是issue-fix技能的职责anti-patterns.md 第 8 条也警告Editorial judgment in conclusion如果报告的行为发生了它就是reproduced——即使它按设计就是如此。两个官方示例可以帮你在下结论前快速校准Bug 示例报告者称 SKMatrix.MakeIdentity() 在 v3.0 中报 CS0117。你实际尝试后确实得到 CS0117结论就是reproduced。你个人认为这是一个有意的 API 重命名——请写进notes绝不写进 conclusion。增强请求示例报告者称 SKDrawingArea 没有滚轮事件处理器。你 grep 源码后确认确实没有滚轮处理结论就是confirmed。你的观点放进assessment和notes。判断口诀conclusion 只回答是否发生/是否属实一切是不是缺陷、该不该修、是不是故意的看法都属于 editorial归assessment/notes。二、决策流程图从问题类型到结论的完整路径conclusion-guide.md提供了一个可逐节点遍历的决策树它把问题先按类型bug / 非 bug分流再按行为是否出现 / 声明是否属实收敛到结论What TYPE of issue is this? ├─ Bug (type/bug) │ └─ Did the REPORTED BEHAVIOR occur? │ ├─ Yes, observed what reporter described → reproduced │ │ (crash, exception, wrong output, missing output — all are reproduced) │ ├─ No, behavior differs from report → not-reproduced │ ├─ Couldnt run at all │ │ ├─ Missing platform/OS? → needs-platform │ │ ├─ Missing hardware? → needs-hardware │ │ └─ Missing info/assets? → partial or inconclusive │ └─ Some aspects matched, some didnt → partial │ ├─ Enhancement / Feature Request / Documentation (non-bug) │ └─ Is the reporters claim TRUE? │ ├─ Yes, claim verified (feature IS missing, docs ARE wrong) → confirmed │ ├─ No, claim not verified (feature exists, docs are correct) → not-confirmed │ ├─ Couldnt verify │ │ ├─ Missing platform/OS? → needs-platform │ │ ├─ Missing hardware? → needs-hardware │ │ └─ Insufficient info? → partial or inconclusive │ └─ Some aspects verified, some not → partial │ └─ Question → typically does NOT flow through repro在仓库中这条分支逻辑的前置工作由 bug-categories.md 承担复现者需要先按分类信号确定问题归属C# API Bug、Native Loading、Rendering、Platform-Specific、Build/Deployment、Memory/Disposal、Enhancement、Platform Parity Gap、Documentation Issue再进入上述流程。需要注意两点Question 类问题咨询/讨论一般不进入复现流程它们没有可验证的行为或声明。Platform Parity Gap平台一致性缺口属于 bug 而非 enhancement跨平台 API 在部分平台失效是已存在 API 的契约被破坏即使调查方式与 enhancement 类似先 grep 共享代码、再找正常平台实现、再确认故障平台缺失结论也应走reproduced而不是confirmed。三、八种 conclusion 值详解conclusion的可选值由 repro-schema.json 中的conclusionValue枚举严格限定reproduced、not-reproduced、confirmed、not-confirmed、needs-platform、needs-hardware、partial、inconclusive。其中前四个是确定性结论schema 强制要求附带output后四个是受阻结论schema 强制要求附带blockers[]。3.1reproduced—— 报告的行为被观察到了定义报告的行为确实发生。这是纯事实陈述覆盖所有表现形态崩溃、异常、错误/不完整输出、视觉渲染错误、性能回退——只要你看到了报告者描述的现象这就是正确结论。强制证据要求≥1 个result: failure或result: wrong-output的复现步骤必须提供primaryError描述观察到的内容错误消息、异常、错误返回值、视觉缺陷。典型示例SKMatrix.MapRect returns normalized rect instead of preserving orientationBuild fails with CS0117 as reported (intentional breaking change in v3.0)Breaking Change 场景Image decoded but colors are inverted — process exits 0 but pixels are incorrectWrong Output 场景⚠️ 最重要的红线Working as Designed 仍然是reproduced。如果用户报告了一个破坏性变更错误如 CS0117而你验证了用户是对的确实报 CS0117结论必须是reproduced绝不能降级为not-reproduced。正确做法是用notes说明这是有意的报告者MakeIdentity() 给我 CS0117 错误你观察到的CS0117 错误结论reproducednotes按报告复现。注意该 API 在 v3.0 中被有意重命名——参见迁移指南。这可能属于 working-as-designed。从 schema 层面看reproduced的约束是硬性的repro-schema.json 中allOf规定当conclusion reproduced时reproductionSteps必须contains一个result为failure或wrong-output的步骤。校验脚本 validate-repro.py 在运行时也会按此分支检查。示例见 repro-examples.md 的 Example 1SKMatrix.MapRect 归一化问题基于 #2997步骤 3 打印出Output: SKRect(-2, 0, 0, 1)与期望不符步骤标记为result: failure从而合法地支撑reproduced结论。该 API 的绑定实现位于 SKMatrix.csMapRect通过SkiaApi.sk_matrix_map_rect调用原生层。3.2not-reproduced—— 报告的行为没有被观察到定义报告的行为没有发生所有步骤的执行结果与报告描述不同。强制证据要求≥1 个result: success的复现步骤必须描述实际观察到了什么——证明你真的尝试过。常见原因已在当前版本修复、环境差异、报告者缺少复现细节。重要提醒这不代表 bug 不存在只意味着在当前环境中观察不到。务必记录你测试了什么让人能判断这次复现尝试是否有效。⚠️ 这不是 它不是 bug 的选项如果报告的行为确实发生了你看到了同样的错误/崩溃/输出即使你认为该行为是有意的也必须用reproduced。not-reproduced字面意思是行为根本没发生。Schema 约束与之呼应not-reproduced要求reproductionSteps必须包含至少一个success步骤且不得包含任何failure/wrong-output步骤。这也带来一个实操细节见 schema-cheatsheet.md如果某个 setup 步骤失败后重试成功只记录最终成功的那次否则校验会失败。3.3confirmed—— 报告者的非 bug 声明被证实定义报告者的非 bug 声明被验证为正确。仅用于enhancements、feature requests、documentation 问题绝不用于 bug。它意味着你调查后确认报告者是对的功能确实缺失、文档确实有误、API 缺口确实存在。强制证据要求≥1 个证明声明为真的步骤例如尝试使用缺失 API 的项目编译失败、grep 找不到匹配实现、文档确实过时版本测试是必须的像 bug 一样跨版本测试——某个功能可能在某版本存在、另一版本不存在。versionResults需按版本填充confirmed/not-confirmedscope 是必须的根据调查推导——所有平台视图都有缺口 →universal仅某平台有缺口 →platform-specific/{platform}。对步骤结果无约束步骤可以全部是successgrep 成功执行但确认了缺失也可以包含failure尝试使用缺失 API → 编译错误。两种都有效。示例Confirmed: SKDrawingArea has no wheel event handler — grep found no WheelEvent in GTK view implementation功能缺失Confirmed: SKPaint.FilterQuality docs reference removed API — XML docs still mention obsolete enum文档过时⚠️ 红线绝不用confirmed处理 bug。如果观察到报告的错误行为用reproduced。confirmed只用于验证非 bug 声明。schema 中confirmed/not-confirmed额外要求output、versionResults、scope三个字段全部存在。repro-examples.md 的 Example 3Add wheel/scroll event support to GTK3 SKDrawingArea基于 #3540是标准范本步骤 2 grep GTK3 目录无ScrollEvent|WheelEvent|WheelChanged匹配success步骤 3 在共享基础设施中确认SKTouchAction.WheelChanged枚举存在步骤 4 对比发现 Blazor/WPF/WinForms 均已实现而 GTK3 没有两个版本都confirmedscope设为platform-specific/linuxassessment设为feature-request——每个字段都服务于下游修复的定位效率。3.4not-confirmed—— 报告者的非 bug 声明未被证实定义报告者的非 bug 声明未被验证。用于 enhancements、feature requests、documentation 问题中当报告者的声明不成立时功能确实存在、文档是正确的、API是可用的。强制证据要求≥1 个证明声明为假的调查步骤例如在源码中找到了该 API、文档是准确的。示例Not confirmed: SKDrawingArea does have a wheel event handler — found in SKDrawingAreaBase.OnScrollEvent()Not confirmed: SKPaint.FilterQuality docs were updated in v3.0 — current docs are accurate3.5needs-platform—— 缺少所需平台/操作系统因为所需平台或 OS 不可用而无法复现。强制证据要求说明需要哪个平台以及为什么。下结论前的强制动作如果问题是 Linux 专属先尝试 Docker--platform linux/amd64或linux/arm64。只有 Docker 帮不上忙时才下needs-platform结论例如需要 Windows GUI、iOS 真机、Android 设备。参考 platform-docker-linux.md 的完整模式。也适用的情况需要原生重编译复现模式下禁止 native rebuild只能dotnet cake --targetexternals-download。示例Bug reported on Windows with WPF/DirectX backend — Docker cannot run Windows GUI appsReproducing requires building native libs with a modified C API — not possible in repro modeIssue requires iOS device for Metal rendering — Docker cannot simulate iOS3.6needs-hardware—— 缺少特定硬件因为需要特定硬件而无法复现。强制证据要求说明需要什么硬件。与needs-platform的区别平台是可用的但缺少的是特定硬件。示例Requires Metal on Apple Silicon GPU — current env has no GPU accessBug only manifests on iOS device (not simulator)Requires Android device with specific Vulkan driver version3.7partial—— 部分复现/部分验证问题的一部分被复现或验证了其余部分不能。强制证据要求说明哪些被复现了哪些仍未验证必须填充blockers[]给出复现不完整的具体原因。使用时机你确认了问题的一部分但在其余部分碰壁。示例Crash reproduced on simple case but reporters specific font file is unavailable for full verification3.8inconclusive—— 无法判定无法确定 bug 是否存在结果模棱两可或信息不足。强制证据要求说明尝试了什么、为什么结果模棱两可。常见原因issue 描述过于模糊、复现代码不完整、行为是间歇性的。这是最后手段Last resort任何其他结论都优先于它。能部分复现就用partial尝试过且全部通过就用not-reproduced。小结四个确定性结论reproduced/not-reproduced/confirmed/not-confirmed都要求附带output含actionability、actions、proposedResponse其中reproduced额外要求reproProjectconfirmed/not-confirmed额外要求scope四个受阻结论都要求blockers[]至少一项。完整对照表见 schema-cheatsheet.md 的Conditionally Required by Conclusion。四、支持字段assessment、blockers[]、notes 的使用规范conclusion承载事实assessment、blockers[]、notes承载解释与上下文。三者配合才能产出一份事实干净、信息完整的复现 JSON。4.1assessment可选—— 结构化的编辑判断这是对你认为正在发生什么的结构化、编辑性分类用于在不污染事实性conclusion的前提下增加细微差别。常见配对Conclusion Assessment含义reproducedworking-as-designedBug 行为存在但是有意的reproducedbreaking-changeBug 是有意的 API 变更confirmedfeature-request功能确实缺失confirmeddocs-gap文档确实错误/缺失not-confirmeduser-error报告者误解了现有 API推荐取值与 repro-schema.json 的assessment枚举一致unknown、likely-bug、working-as-designed、breaking-change、docs-gap、user-error、feature-requestissue 是 enhancement 而非 bug功能尚不存在。示例#3279 风格conclusion reproducedassessment breaking-changenotes解释重命名/迁移指引。示例enhancementconclusion confirmedassessment feature-requestnotes Confirmed: GTK3 SKDrawingArea has no wheel event handler. The feature requested in this issue does not exist yet.4.2blockers[]—— 可操作的受阻原因清单列出复现不完整的具体原因每条都应可执行——人类读者读后能确切知道缺什么。好的 blockersRequires Windows — current environment is macOSReporters input file (corrupted.png) not attached to issueNeeds native rebuild to test C API change — forbidden in repro modeIntermittent: passed 10/10 runs but reporter says it fails ~20% of the time坏的 blockersCouldnt reproduce—— 太模糊不可操作Need more info—— 要说明具体需要什么信息版本/兼容性类 blocker 必须引用具体证据Blocker 类型必需证据版本 X 不能用nupkg TFM 列表显示无可兼容目标或实际的构建/运行错误没有原生二进制nupkgruntimes/列表显示缺失 RID且确认 Rosetta 不可行平台不可用在可用平台上尝试过并注明具体限制反模式Version 1.60.1 is too old for .NET 8是纯猜测。在声称受阻之前先花 30 秒检查 nupkg。这条在 anti-patterns.md 第 10 条Pre-emptive version assumptions中同样被点名。4.3notes—— 给人看的自由文本总结写 1–3 句话覆盖你做了什么方法你观察到了什么结果任何注意事项或后续调查建议。编辑性观察放这里。如果你认为该行为是有意的 / working-as-designed是文档问题而非代码 bug是发布说明中已公告的破坏性变更是用户错误或误解……请把这些判断放进notes而不是conclusion。结论是事实的notes 是解释的。示例Reproduced: CS0117 errors occur when using SKMatrix.MakeIdentity() in v3.0. However, this appears to be an intentional API rename (now SKMatrix.Identity property) — see migration guide. Suggest closing as by-design with documentation pointer.五、置信度与人工审核在notes中标注以下情形——它们表示复现结果可能需要人工跟进结论是partial或inconclusive——必须说明原因结论是not-reproduced但 issue 有多个其他用户的确认复现环境与报告者环境差异显著产生了视觉输出但正确性存在主观性例如字体渲染差异bug 是间歇性的你的少量运行可能没有触发它。高置信度结论不太需要复核reproduced且有清晰、无歧义的证据needs-platform或needs-hardware且有明显的平台不匹配not-reproduced且你与报告者环境高度接近。存疑时记录不确定性一个谨慎的结论好过一个过度自信的结论。六、scope 推导跨平台验证后的影响范围字段复现流程的 Phase 3D 是条件性跨平台验证。完成后需要设置输出 JSON 中的scope字段。scope的值由跨平台结果推导跨平台结果scope值≥2 个平台复现universal仅主平台复现备选平台未复现platform-specific/{platform}如platform-specific/wasm主平台未复现备选平台复现platform-specific/{alt-platform}Phase 3D 跳过纯 API bug、超时等unknown只测了一个平台无 3Dunknownscope 的平台名macos、linux、windows、wasm、ios、android。scope字段给下游的 fix 技能一个立即的定位信号——先看哪个平台实现。schema 对该字段的取值有正则约束^(universal|unknown|platform-specific/(macos|linux|windows|wasm|ios|android))$。如果scope为unknown务必在notes中记录原因。对于confirmed/not-confirmed结论scope从调查中推导所有平台视图都有缺口 →universal仅某平台视图有缺口 →platform-specific/{platform}且为 schema 必填。实践参照Example 2WASM/Blazor 崩溃基于 #3422展示了完整闭环——主平台 wasm-blazor 复现、备选平台 host macOS 控制台未复现因此scope: platform-specific/wasm同时用feedback.corrections[]纠正了 triage 阶段SkiaSharp 不支持 .NET 10的错误结论。七、结论与校验闭环conclusion 如何驱动整条流水线conclusion不是孤立的 JSON 字段它是仓库 Issue Pipeline 的流转信号。根据 documentation/dev/issue-pipeline.mdreproduced→ 进入issue-fix根因、修复、回归测试confirmedassessment: feature-request→ 进入api-add-review技能confirmedassessment: docs-gap→ 进入api-docs技能not-reproduced/inconclusive→ 一般不应启动 fix而是更新 triage 动作请求更多信息 / 关闭 / 记录not-confirmed→ 关闭或请求更多信息功能已存在或文档正确。选择conclusion后产出 JSON 必须通过校验器门禁validate-repro.py及对应的 validate-repro.ps1按结论分支检查配套字段——reproduced要求存在failure/wrong-output步骤not-reproduced要求全success步骤受阻结论要求非空blockersconfirmed/not-confirmed要求versionResults与scope。校验脚本打印 ✅ 后才能通过persist-repro.ps1持久化到output/ai/复现才算完成。给复现者的一句话总结先回答报告的行为/声明是否成立这个事实问题按决策树选结论再用assessment表达你的判断用blockers说明受阻原因用notes记录方法与观察最后确保结论所需的配套字段齐备并通过校验。整个过程只做是否复现这一件事——修复与定性交给下游的维护者与 fix 技能。进一步阅读仓库内路径技能主流程与 Phase 1–6SKILL.mdJSON 完整 schema枚举与条件约束repro-schema.json字段速查与常见错误schema-cheatsheet.md复现反模式清单anti-patterns.md问题分类与策略bug-categories.md三种结论的完整 JSON 示例repro-examples.md流水线上下游衔接documentation/dev/issue-pipeline.md赞分享图形学图像处理跨平台【免费下载链接】SkiaSharpSkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Googles Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.项目地址https://gitcode.com/gh_mirrors/sk/SkiaSharp点击查看免费下载相关推荐SkiaSharp Issue 系统性复现指南基于 issue-repro Skill 的六阶段流水线与结构化 JSON 交付SkiaSharp Issue 系统性复现指南基于 issue repro Skill 的六阶段流水线与结构化 JSON 交付 本文是 SkiaSharp 仓图形学图像处理跨平台yazi条件判断复杂逻辑与短路求值的实现yazi条件判断复杂逻辑与短路求值的实现 痛点传统终端文件管理器的条件判断局限 在日常文件管理操作中我们经常需要根据复杂的条件组合来执行不同的操作。比如开发工具CLITiXL 数值逻辑运算符完全指南Lib.numbers.float.logic 的七个 Float 判断与选择节点TiXL 数值逻辑运算符完全指南Lib.numbers.float.logic 的七个 Float 判断与选择节点 实时图形合成realtime motio音视频图形学桌面应用上一篇esp-iot-solution XZ 解压工具组件指南基于 XZ Embedded 的嵌入式解压实战下一篇Node.js v12.19.1LTS安全版发布全解析CVE-2020-8277 修复、全平台下载与 SHASUMS 校验指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号