Files
2026Technology-Competition/data/import-verification/03-irregular-content/result-report.md
T

95 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 不规则内容导入 — 手动验证结果报告(7 种格式全量)
## 验证信息
| 项 | 值 |
|---|---|
| 验证日期 | 2026-09-07 |
| 验证功能 | 自定义规则导入——不规则规则内容(重噪声嵌入)的 7 种文件格式逐一导入 |
| 导入素材 | `data/import-verification/03-irregular-content/team-coding-rules.*`7 个文件) |
| 导入结果 | `data/import-verification/03-irregular-content/results/irregular-*.yaml`(7 个文件,已全部移出激活目录归档) |
| 规则基准 | 与场景②相同的 12 条规则(id 亦相同),severity 基准 error×2 / warning×5 / info×5 |
| 噪声设计 | 项目背景、团队介绍(12 人分工)、会议纪要、部署流程、版本历史、反面/正面代码示例(硬编码密码 `Admin@123456`、eval 调用、三层循环等)、内部 wiki 链接、Checklist |
| 验证方式 | 在 Extension Development Host 中手动执行完整导入流程(含预览确认),每轮结果落盘核对后归档 |
## 素材矩阵
| # | 文件 | 格式 | 导入路径 | AI 内容转换 |
|---|---|---|---|---|
| 1 | team-coding-rules.yaml | YAML(噪声全在注释) | YamlConverter 直读 | 否 |
| 2 | team-coding-rules.md | Markdown(噪声为真实正文) | 读文本 → AI(freeform | 是 |
| 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 多表 | 逐表渲染合并 → AIspreadsheet | 是 |
(无 template 轮:模板路径为严格表头校验直读,不适配不规则内容场景。)
## 逐轮结果总表
| 轮 | 格式(规则名) | 检出条数 | severity | languages | id 与基准 | 去重标注 | 结论 |
|---|---|---|---|---|---|---|---|
| 1 | yamlirregular-yaml | 12/12 | ✅ 全对 | ✅ 全对 | 逐字节一致 | 预览阶段独立去重 | 通过 |
| 2 | md | 12/12 | ✅ 全对 | ✅ 全对 | 漂移(语义等价) | 3 exact,指向真实 | 通过 |
| 3 | txt | 12/12 | ✅ 全对 | ✅ 全对 | 漂移 | 3 exact,同构 | 通过 |
| 4 | docx | 12/12 | ✅ 全对 | ✅ 全对 | 漂移 | 3 exact,同构 | 通过 |
| 5 | pptx | 12/12 | ✅ 全对 | ✅ **全对(零丢失)** | 漂移 | 3 exact,同构 | 通过 |
| 6 | xlsx 单表 | 12/12 | ✅ 全对 | ✅ 全对 | **完全一致** | **2 exact + 1 overlap**(见发现 3 | 通过 |
| 7 | xlsx 多表 | 12/12 | ✅ 全对 | ✅ 全对 | **完全一致** | 3 exact,回归同构 | 通过 |
## 关键发现
### 1. 噪声过滤全场景零失守(本场景核心目标达成)
7 轮全部通过以下陷阱测试:
- 项目背景、团队介绍(12 人分工)、会议纪要(「决定在 async 函数中全面禁用同步 API」)、部署流程、版本历史(张三/李四/王五)、Checklist、内部 wiki 链接——**均未变成规则**
- **反面示例陷阱零触发**:代码示例中的 `"Admin@123456"``eval(request.body)``maxRetry = 3` 等错误示范未被生成为规则,也未污染规则语义
- **叙事与规则分离**:如「上周代码审查中发现前端模块有 eval() 调用」的叙事上下文被剥离,只提取规则本身
### 2. pptx 语言字段差异根因定案:源文件内容差异,AI 两轮行为均正确
| 证据 | languages 表现 |
|---|---|
| 场景② pptx | 留空 6 处(当时误判「降级/丢失」) |
| 旧散落结果 rules_ppt.yaml | 大面积留空 |
| 本场景 pptx(噪声更重、文件更大 45KB) | 零留空,8 处全对 |
| 场景② pptx 重测(2026-09-07) | 留空模式与首测逐字段复现 |
| **officeparser 提取文本比对(2026-09-07** | **02 源文件 950 字符中无任何「适用语言/排除语言」标注;03 源文件含成组「严重级别 \| 语言」标注及「排除语言:sql」** |
定性演进三版:格式缺陷(02 初稿)→ 高方差(03 初稿,被重测推翻)→ 提取层丢失(被提取比对推翻)→ **最终定案:源文件内容差异**。02 pptx 幻灯片只写了 severity`[error]/[warning]/[info]` 前缀)没写语言,03 pptx 两者都写了。AI 侧两轮行为均正确:源有的正确映射(含 excludeLanguages: [sql]),源无的按「严禁猜测,留空比猜测错误更安全」留空,语义可推的唯一一条(描述含「TypeScript 类型」)正确推断 [typescript]。**这 6 处留空从来不是「丢失」——源文件没有的数据不能叫丢失**。制作 pptx 规则素材时,如需语言限定必须在幻灯片中显式标注适用语言。
### 3. 去重判断方差实锤:同一规则跨轮在 exact 与 overlap 间摆动
- xlsx 单表轮:no-hardcoded-credentials 被判 **overlap**(保留生效)——与前 12 轮历史(exact)不同,且两条规则检测目标几乎重合、语言集合相同,exact 更贴切
- multisheet 轮:**回归 exact**(注释)
- 实际影响:overlap 判保留时该规则与 custom/no-hardcoded-secret 并存双报。定性为 AI 判断方差(与 galaxy 轮次波动同源),预览面板人工复核是设计内的必要补偿
- 附加证据:docx 轮魔法数字规则 id 为 `avoid-magic-numbers`(与既有规则 id 前缀完全不同),仍被精准标注为 custom/no-magic-numbers 的 exact——去重的语义性(与 id 无关)得到最直接验证
### 4. 表格类格式稳定性跨场景复现,multisheet 打出跨场景字节级一致
- xlsx 单表、multisheet 两轮的 9 条保留规则 id 再次全部与 yaml 基准一致(「结构化表格 → id 收敛」跨场景复现;自由文本四轮 id 依旧逐轮漂移)
- **multisheet 轮落盘文件与场景② multisheet 结果逐字节一致**fc 0 差异),且场景②内 multisheet ≡ xlsx 单表——推导链 `02-xlsx ≡ 02-multisheet ≡ 03-multisheet`:AI 从两份完全不同的源文档(15KB 标准多表 vs 24KB 重噪声多表)收敛到同一字节级输出,spreadsheet 链路稳定性拿到最强证据
### 5. id 漂移全景
自由文本格式(md/txt/docx/pptx)的 AI 生成 id 逐轮漂移(本轮新组合:`constant-naming``boolean-variable-prefix``require-explicit-types``no-todo-fixme-hack` 等),仅个别巧合重合(no-todo-comments、require-doc-comments 在 02/03 的 md 轮均出现)。含义相同的规则若以不同格式多次导入并存将双报——每轮归档移出激活目录即为规避此问题。
## 已知观察
- **xlsx 轮注释块尾部各多一行孤立 `#`**(外观残留,无功能影响)
- **去重方差的管理含义**exact/overlap 判定在边界案例上有摆动,重要场景导入后应在预览面板复核重复分组(与 guide.md 归档流程互补)
- 本场景 yaml 轮噪声全部藏在注释中,对解析器无挑战(真正考验由 md/txt/docx/pptx/xlsx 承担)
## 结论
**通过**。7 种格式全部成功导入 12 条规则基准:重噪声零膨胀、反面示例陷阱零触发、severity 零偏差。场景②的 pptx 疑问在本场景得到最终定案:语言字段差异源于源文件内容差异(02 源无语言标注、03 源有),AI 两轮行为均正确,不存在降级或丢失;表格类格式稳定性获得跨场景字节级一致的强证据。去重语义性(avoid-magic-numbers 案例)与判断方差(hardcoded-credentials exact/overlap 摆动)均有实测记录。
## 关联
- galaxy 素材验证报告:`data/import-verification/01-galaxy-nonstandard/result-report.md`(真实世界非标准格式场景)
- 标准格式验证报告:`data/import-verification/02-standard-formats/result-report.md`(8 种格式,含 pptx 降级原始记录)
- 自动化测试:`tests/excel-converter.test.ts`(转换器渲染层)
- 设计 spec`docs/superpowers/specs/2026-07-26-custom-rule-import-ux-design.md`