Files
2026Technology-Competition/docs/superpowers/specs/2026-07-21-excel-ai-converter-design.md
T
范智鹏 effcf30802 feat: 适配器 i18n + Provider 动态注册 + SetupView 重构 + jars 资源
- 适配器 i18n 接入(eslint/pmd/sql-lint/stylelint)
- Provider 动态注册机制(registry.ts + providers.json + factory 重构)
- SetupView 全面重构(setupView.ts 新增 600+ 行)
- i18n 消息扩展(messages.ts +210 行)
- 规则导入流程优化(import-service / prompt-builder)
- 新增 PMD jars 依赖及测试用例
2026-07-28 22:57:15 +08:00

1.6 KiB
Raw Blame History

Excel AI 转换器设计

1. 背景

当前 ExcelConverter 通过固定列名(id、severity、description、message)解析 Excel 并程序化生成 YAML。非技术人员无法随意使用自己习惯的表头命名,体验受限。

2. 目标

去掉对固定列名的依赖,将 Excel 内容以 Markdown 表格形式喂给 AI,让 AI 理解任意表头结构并生成 YAML 规则。与 .md/.txt 的 AI 转换模式保持一致。

3. 设计

3.1 数据流

用户选择 .xlsx/.xls 文件
    ↓
ExcelConverter.convert()
    ├── XLSX.readFile → sheet_to_json
    ├── 行数据序列化为 Markdown 表格字符串
    ├── 调用 convertContentWithAI(content, context)  // 复用 import-service.ts
    └── AI 返回 YAML → 写入 yamlPath

3.2 变更范围

只改一个文件:src/rules/converters/excel-converter.ts

  • 删除:列名白名单校验(REQUIRED_FIELDS)、severity 合法值校验(VALID_SEVERITIES)、程序化 YAML 拼接逻辑
  • 新增:buildMarkdownTable(rows) 将 JSON 行转 Markdown 表格
  • 复用:convertContentWithAI() 做 AI 转换并写文件
  • 保留:XLSX.readFile 的 try/catch 错误处理

3.3 Markdown 表格格式示例

| id | severity | description | message | languages |
|----|----------|-------------|---------|-----------|
| rule-1 | warning | 禁止直接使用 console.log | 请使用 logger 代替 | javascript, typescript |

3.4 不涉及变更

  • setupView.tsExcelConverter 已注册、过滤器已含 xlsx/xls,无需改动
  • import-service.tsconvertContentWithAI 已存在,无需改动
  • 其他 converter:不受影响