Files
2026Technology-Competition/data/import-verification/02-standard-formats/result-report.md
T

7.4 KiB
Raw Blame History

标准格式导入 — 手动验证结果报告(8 种格式全量)

验证信息

验证日期 2026-09-06
验证功能 自定义规则导入——同一规则集的 8 种文件格式逐一导入
导入素材 data/import-verification/02-standard-formats/team-coding-rules.*8 个文件)
导入结果 data/import-verification/02-standard-formats/results/standard-rules-*.yaml8 个文件,已全部移出激活目录归档)
规则基准 12 条规则(安全 3 + 命名 2 + 性能 2 + 风格 2 + 团队约定 3),severity 基准 error×2 / warning×5 / info×5
验证方式 在 Extension Development Host 中手动执行完整导入流程(含预览确认),每轮结果落盘核对后归档

素材矩阵

# 文件 格式 导入路径 AI 内容转换
1 team-coding-rules.yaml YAML YamlConverter 直读
2 team-coding-rules.md Markdown 读文本 → AIfreeform
3 team-coding-rules.txt 纯文本 读文本 → AIfreeform
4 team-coding-rules.docx Word mammoth 提取 → AIfreeform
5 team-coding-rules.pptx PowerPoint officeparser 提取 → AIfreeform
6 team-coding-rules.xlsx Excel 单表 表格 → Markdown → AIspreadsheet
7 team-coding-rules-multi-sheet.xlsx Excel 5 表 逐表渲染合并 → AIspreadsheet
8 team-coding-rules-template.xlsx Excel 模板 严格表头校验直读(仅去重走 AI

逐轮结果总表

格式(规则名) 检出条数 severity languages id 与基准 去重标注 结论
1 yamlstandard-rules-yaml 12/12 全对 全对 逐字节一致 直读不去重,预览阶段独立去重 通过
2 md 12/12 全对 全对 6 处不同(语义等价) 3 exact,指向真实 通过
3 txt 12/12 全对 全对 6 处不同 3 exact,同构 通过
4 docx 12/12 全对 全对 5 处不同 3 exact,同构 通过
5 pptx 12/12 全对 ⚠️ 丢 6 处 6 处不同 3 exact,同构 通过(有降级)
6 xlsx 单表 12/12 全对 全对 完全一致 3 exact,同构 通过
7 xlsx 5 表 12/12 全对 全对 完全一致 3 exact,同构 通过
8 template 13 有效 + 3 错误行 + 1 空行 全对 全对(列直读) 完全一致 4 exact(多 1 条 no-console-log 附加行) 通过

关键发现

1. pptx 无语言字段:根因定位为源文件本身不含语言标注,AI 行为正确(非降级)

表现:5 处 languages + 1 处 excludeLanguages 留空(constant-case / boolean-prefix / nested-loops / sync-in-async / throw-context 的 languagestodo 规则的 excludeLanguages: [sql]),类型注解规则正确保留 [typescript]。

根因定位(2026-09-07,两步验证)

  1. 重测复现:同文件再次导入,留空模式与首测逐字段一致,而同期 id 照例漂移——排除 AI 随机性,锁定文件因素。归档:results/standard-rules-pptx-retest.yaml
  2. 提取文本比对:用与插件相同的 officeparser 调用链提取该 pptx,全文 950 字符中不含任何「适用语言/排除语言」标注severity 有 [error]/[warning]/[info] 前缀标注,语言没有)——幻灯片源内容本身就没写语言信息。

最终定性:源文件没有的数据不存在「丢失」。AI 行为完全正确——描述含语义线索的规则正确推断(如「显式标注 TypeScript 类型」→ [typescript]),无线索的规则按「严禁猜测,留空比猜测错误更安全」留空。对照场景③ pptx(幻灯片含「严重级别 | 语言」成组标注)AI 全部正确映射,进一步证明 AI 侧无缺陷。制作 pptx 规则素材时,如需语言限定必须在幻灯片中显式标注适用语言

2. 表格类格式 id 收敛到与基准完全一致

xlsx 单表、multi-sheet、template 三轮的 id 与 yaml 基准完全一致;而 md/txt/docx/pptx 四轮 AI 生成的 id 每轮都不同(语义等价,如 require-constant-case ↔ constant-screaming-snake-case ↔ boolean-naming-prefix 波动)。结构化表格让 AI 的 id 生成收敛到规范命名。multi-sheet 轮落盘文件与 xlsx 单表轮逐字节一致(fc 二进制比对 0 差异),证明多表拆分 + 合并链路对 AI 转换零干扰。

3. 模板路径严格校验精准命中

模板文件自带 4 行校验测试数据(设计见其「填写说明」Sheet),校验器全部精准捕获且无误报:

测试行 校验表现
缺 id 行 生成占位 ID rule-14 + 黄色提示「占位 ID:请修改为有意义的标识」
非法 severity 行(no-deep-inheritancecritical 红色「severity 非法: 'critical'」,下拉框置空待修
空 description/message 行(empty-desc-rule 双红框标记两个字段
空行 静默跳过(17 行 → 检出 16 条)

确认导入时未修复的错误行被丢弃,不静默混入(本次验证选择直接确认;修复后添加的工作流另行演示)。

4. 去重标注跨格式高度稳定

除 yaml 直读外,7 轮去重结果完全同构:no-hardcoded-credentials → custom/no-hardcoded-secret、no-eval(-usage) → eslint/no-eval、no-magic-numbers → custom/no-magic-numbers,全部 exact 且指向经核实真实存在(security-rules.yaml / coding-conventions.yaml / 内置静态规则)。模板轮附加行 no-console-log 额外命中 custom/no-console-log 为第 4 条 exact,验证模板路径去重正常。

已知观察

  • AI 生成 id 跨格式不保证一致:自由文本格式(md/txt/docx/pptx)每轮 id 均有波动。含义相同的规则若以不同格式多次导入并共存于激活目录,将因 id 不同而双报——建议同一规则集只保留一种格式的导入结果(本验证每轮归档移出即为此目的)。
  • 模板路径注释块元数据形态:注释块内 duplicateLevel 行未逐条写入(exact 信息由注释头 [DUPLICATE: exact] 承载),与通用路径的块内元数据略有差异,功能等价。
  • 验证弹性对照:galaxy 素材验证中曾出现去重轮次波动(第 1 轮漏标 2 条、第 2 轮无遗漏);本套标准格式素材因规则语义清晰、边界分明,7 轮 AI 去重结果零波动,说明输入质量是 AI 稳定性的重要变量。

结论

通过。8 种格式全部成功导入 12 条规则基准:条数零丢失、severity 零偏差、去重标注跨格式稳定且指向真实。pptx 轮 languages 留空经两步验证(重测复现 + 提取文本比对)定位为源文件本身不含语言标注,AI 行为正确非缺陷;制作 pptx 素材时如需语言限定须在幻灯片中显式标注。yaml / xlsx / template 三种结构化格式表现最优(id 与基准完全一致)。

关联

  • galaxy 素材验证报告:data/import-verification/01-galaxy-nonstandard/result-report.md(真实世界非标准格式场景)
  • 自动化测试:tests/excel-converter.test.ts(转换器渲染层)
  • 设计 specdocs/superpowers/specs/2026-07-26-custom-rule-import-ux-design.mddocs/superpowers/specs/2026-07-30-export-template-design.md