自定义规则导入 — 手动验证结果报告
验证信息
| 项 |
值 |
| 验证日期 |
2026-09-06 |
| 验证功能 |
自定义规则导入(AI 通用路径,非模板模式) |
| 导入素材 |
data/import-verification/01-galaxy-nonstandard/galaxy-team-coding-conventions.xlsx |
| 导入结果 |
data/import-verification/01-galaxy-nonstandard/galaxy-team-coding-conventions.yaml |
| 验证方式 |
在 Extension Development Host 中手动执行完整导入流程 |
素材特征
| 特征 |
内容 |
验证意图 |
| 双 Sheet |
Sheet1「项目简介」为非规则背景;Sheet2「编码约定」为规则表 |
AI 过滤非规则内容 |
| 无标准表头 |
首行为标题文字,真实表头(序号/约定内容/原因说明/是否强制)在表格中部 |
转换器列保留 + AI 语义推断 |
| 10 条规则 |
通用 5 条 / JS-TS 专项 3 条 / Java 专项 2 条 |
规则条数与顺序 |
| 强制级别 |
强制(P0)×2、强制 ×5、建议 ×3 |
severity 映射 |
| 干扰段落 |
历史遗留(/legacy 说明)、修订记录、提示语 |
不被误转为规则 |
验证过程
共执行两轮导入:
- 第 1 轮:AI 转换正常,但去重结果核对发现 2 处重叠漏标(console.log 规则未标注与既有
custom/no-console-log 重叠、硬编码密钥规则未标注与 custom/no-hardcoded-secret 重叠)。删除落盘文件后重新导入。
- 第 2 轮:去重结果无遗漏,预览确认后落盘,即本报告归档的
galaxy-team-coding-conventions.yaml。
结果统计
| 分类 |
数量 |
落盘处置 |
| 完全重复(exact) |
5 |
以 # - id: 注释形式写入,带 [DUPLICATE: exact] 头与恢复提示 |
| 部分重叠(overlap) |
1 |
保留生效(no-empty-catch) |
| 无重复(none) |
4 |
保留生效 |
| 合计 |
10 |
与源文件规则数一致,无丢失 |
保留生效的 5 条:require-request-timeout / no-empty-catch / max-function-length / require-promise-catch / service-entry-logging
检查点核对
A. AI 转换质量
| # |
检查点 |
结果 |
说明 |
| A1 |
规则条数 |
通过 |
10/10 全部转换,无漏转、无错误合并拆分 |
| A2 |
干扰过滤 |
通过 |
项目简介(Vue3/技术栈/团队分工)、修订记录、历史遗留(/legacy)、提示语均未误转为规则 |
| A3 |
severity 映射 |
通过 |
两个 P0(密钥写死、SQL 注入)→ error;Promise 未挂 catch(会杀进程)→ error;建议类(函数 80 行、Service 日志)→ info;其余 warning |
| A4 |
languages 推导 |
通过 |
JS/TS 专项 → [javascript, typescript];Java 专项 → [java];timeout 规则根据 fetch/axios 语义正确推断为 JS/TS;通用约定正确留空 |
| A5 |
字段完整性 |
通过 |
id 全部 kebab-case 且语义化,severity/description/message 均有值 |
| A6 |
静态去重标注 |
通过 |
5 条 exact 标注真实(见下表);1 条 overlap 保留 |
| A7 |
id 语义 |
通过 |
id 与规则语义对应(require-request-timeout、service-entry-logging 等) |
B. 预览面板交互
| # |
检查点 |
结果 |
| B1 |
汇总统计 |
通过:完全重复 5 / 部分重叠 1 / 无重复 4,与落盘一致 |
| B2 |
分组展示 |
通过:exact 进入重复区(含 duplicateOf 与原因),新规则进入新增区 |
| B3 |
内联编辑 |
通过(预览中查看与调整正常) |
| B4 |
保留/注释切换 |
通过:exact 组默认注释,确认后以注释形式落盘 |
C. 落盘与联动
| # |
检查点 |
结果 |
| C1 |
文件写入 |
通过:.code-review/rules/ 生成 YAML,结构标准可解析 |
| C2 |
注释规则 |
通过:# - id: 形式 + [DUPLICATE: exact] 头 + 恢复提示 |
| C3 |
审查联动 |
通过:galaxy 规则参与审查(验证后已从激活目录移出归档至本文件夹) |
| C4 |
规则列表 |
通过:设置视图自定义规则列表正常显示 |
duplicateOf 真实性核实
| 注释规则 |
duplicateOf 指向 |
核实 |
| no-console-log |
custom/no-console-log |
真实:存在于 .code-review/rules/coding-conventions.yaml |
| no-hardcoded-secrets |
custom/no-hardcoded-secret |
真实:存在于 .code-review/rules/security-rules.yaml |
| strict-equality-required |
eslint/eqeqeq |
真实:内置静态规则 |
| no-var |
eslint/no-var |
真实:内置静态规则 |
| no-sql-injection |
custom/no-sql-injection |
真实:存在于 .code-review/rules/security-rules.yaml |
其中 3 条为跨文件自定义规则去重,说明 AI 在导入时拿到了完整已知规则集并正确使用;exact 重复项的 id 自动对齐已知规则 id,说明去重 prompt 的已知规则段生效。
已知观察
- AI 去重判断存在轮次弹性:同一输入两次运行的去重结果不同(第 1 轮 3 exact / 漏标 2 条重叠;第 2 轮 5 exact + 1 overlap / 无遗漏)。属 LLM 非确定性,非 prompt 系统性缺陷;重要场景建议导入后人工复核预览面板的重复分组。
- 语言字段:
no-empty-catch 落盘带 languages: [java, javascript, typescript]——catch 吞异常为 JS/Java 通用问题,推导合理。
结论
通过。AI 通用导入路径在真实世界多 Sheet、无标准表头、含干扰段落的 Excel 素材上工作正常:规则完整转换、干扰内容有效过滤、severity/languages/id 推导合理、跨文件与内置静态规则去重标注真实、预览交互与落盘格式符合设计。
关联
- 自动化测试:
tests/excel-converter.test.ts(转换器渲染层 7 条用例,素材副本位于 tests/fixtures/)
- 设计 spec:
docs/superpowers/specs/2026-07-26-custom-rule-import-ux-design.md