7.4 KiB
标准格式导入 — 手动验证结果报告(8 种格式全量)
验证信息
| 项 | 值 |
|---|---|
| 验证日期 | 2026-09-06 |
| 验证功能 | 自定义规则导入——同一规则集的 8 种文件格式逐一导入 |
| 导入素材 | data/import-verification/02-standard-formats/team-coding-rules.*(8 个文件) |
| 导入结果 | data/import-verification/02-standard-formats/results/standard-rules-*.yaml(8 个文件,已全部移出激活目录归档) |
| 规则基准 | 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 | 读文本 → AI(freeform) | 是 |
| 3 | team-coding-rules.txt | 纯文本 | 读文本 → AI(freeform) | 是 |
| 4 | team-coding-rules.docx | Word | mammoth 提取 → AI(freeform) | 是 |
| 5 | team-coding-rules.pptx | PowerPoint | officeparser 提取 → AI(freeform) | 是 |
| 6 | team-coding-rules.xlsx | Excel 单表 | 表格 → Markdown → AI(spreadsheet) | 是 |
| 7 | team-coding-rules-multi-sheet.xlsx | Excel 5 表 | 逐表渲染合并 → AI(spreadsheet) | 是 |
| 8 | team-coding-rules-template.xlsx | Excel 模板 | 严格表头校验直读(仅去重走 AI) | 否 |
逐轮结果总表
| 轮 | 格式(规则名) | 检出条数 | severity | languages | id 与基准 | 去重标注 | 结论 |
|---|---|---|---|---|---|---|---|
| 1 | yaml(standard-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 的 languages,todo 规则的 excludeLanguages: [sql]),类型注解规则正确保留 [typescript]。
根因定位(2026-09-07,两步验证):
- 重测复现:同文件再次导入,留空模式与首测逐字段一致,而同期 id 照例漂移——排除 AI 随机性,锁定文件因素。归档:
results/standard-rules-pptx-retest.yaml。 - 提取文本比对:用与插件相同的 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-inheritance,critical) |
红色「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(转换器渲染层) - 设计 spec:
docs/superpowers/specs/2026-07-26-custom-rule-import-ux-design.md、docs/superpowers/specs/2026-07-30-export-template-design.md