Skip to content

Commit a8c80a9

Browse files
committed
docs: 备忘录记录v14.4模板重构规划(明日执行)
- 记录全部5个平台模板的编码损坏现状(web 393个乱码字符) - 记录 web.md 含项目特定内容问题(财务报表/快速记账等) - 规划 v14.4:全部模板改写为英文+清除项目特定内容+基于干净v7重建 - web.md 当前版本为v12(含Lucide图标规则,但仍有编码损坏,明日重写)
1 parent e386200 commit a8c80a9

2 files changed

Lines changed: 81 additions & 2 deletions

File tree

extension/templates/platforms/web.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!-- TestPilot-Template-Version: 11 -->
1+
<!-- TestPilot-Template-Version: 12 -->
22
# Web 平台蓝本规则(platform = "web"�?
33

44
> 本文件定�?Web 应用(React/Vue/Angular/纯HTML)蓝本的完整规则�?
@@ -201,6 +201,24 @@ Tailwind 的小数工具类(如 `gap-0.5`、`translate-y-0.5`、`space-x-2.5`
201201
|---|---|
202202
| `form button` | 先读源码确认提交按钮的 type,若有 `type="submit"` 则用 `form button[type='submit']` |
203203
| `button:last-child` | 若提交按钮无 type,用文字内容组合:`.space-y-4 > button:last-of-type` 或建议开发者加 `data-testid` |
204+
205+
### 🚨 绝对禁止:用 React 组件名猜测 Lucide/图标 SVG 的 class(大小写陷阱)
206+
207+
**React 图标库(Lucide React、Heroicons、react-icons 等)渲染后的 SVG class 与组件名 `PascalCase` 完全不同!** AI 常看到 `<ArrowLeft />` 就写 `svg[class*='ArrowLeft']`,但 Lucide 渲染后实际 class 是全小写 kebab-case。
208+
209+
| React 写法 | ❌ 错误选择器(必然超时) | ✅ 正确选择器 |
210+
|---|---|---|
211+
| `<ArrowLeft />` | `svg[class*='ArrowLeft']` | `svg.lucide-arrow-left``button.p-2 svg` |
212+
| `<Plus />` | `svg[class*='Plus']` | `svg.lucide-plus` 或父按钮的 class |
213+
| `<Search />` | `svg[class*='Search']` | `svg.lucide-search` |
214+
| `<Trash2 />` | `svg[class*='Trash']` | `svg.lucide-trash-2` |
215+
216+
**Lucide class 命名规则**:组件名 `PascalCase` → 全小写 kebab-case 加前缀 `lucide-``ArrowLeft``lucide-arrow-left``Trash2``lucide-trash-2`
217+
218+
**更好的做法**:不要定位 svg 本身,而是**定位包裹 svg 的按钮**。如果按钮有 `title` 属性(如 `title="返回"`),用 `button[title='返回']`;如果没有 title,用按钮自身的 class。
219+
220+
> ⚠️ 读源码时还需确认:`title="xxx"` 只是 tooltip 属性,**不是页面可见文本**,不能用 `assert_text` 断言。应改用 `assert_visible: button[title='xxx']`
221+
204222
---
205223

206224
## 四、瞬�?UI 不可断言清单

开发备忘录.md

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,71 @@
11
# TestPilot AI 开发备忘录
22

3-
> 最后更新:2026-03-26(✅ v14.3 引擎稳定性修复 + 蓝本规则重构 v13→v15
3+
> 最后更新:2026-03-27(📋 v14.4 模板全面重构规划
44
> 项目结构详见 README.md,此处不重复。
55
66
---
77

8+
## 📋 v14.4 模板全面重构(2026-03-27 待执行)
9+
10+
### 核心问题
11+
12+
1. **文件编码损坏**:所有5个平台模板文件(web/android/ios/miniprogram/desktop)均有大量 U+FFFD 乱码字符(最早从 commit `0561cf9` v8 开始引入),中文在某些编辑/提交过程中被截断
13+
2. **模板含项目特定内容**:web.md 中出现 `财务报表``快速记账``凭证号``记账凭证``生活账本``account_book` 等只属于 account_book 项目的具体内容 —— 作为通用模板这是不允许的
14+
3. **中文提示词风险**:中文在 git/编辑器/终端各环节均可能产生编码问题,且 AI 模型对英文指令理解更精准
15+
16+
### 文件现状
17+
18+
| 文件 | 版本 | 行数 | 乱码字符数 | 项目特定内容 |
19+
|------|------|------|-----------|------------|
20+
| web.md | v12 | 508 | 393 | 财务报表、记账、account_book、快速记账、凭证、生活账本 |
21+
| android.md | v9 | 336 | 273 | 记账 |
22+
| ios.md | v9 | 283 | 222 | 记账 |
23+
| miniprogram.md | v9 | 284 | 251 | 记账 |
24+
| desktop.md | v9 | 260 | 195 | (待查) |
25+
26+
### 执行计划
27+
28+
#### 任务1:全部模板改为英文
29+
- 将 web.md / android.md / ios.md / miniprogram.md / desktop.md 全部重写为英文
30+
- **理由**
31+
- 彻底消除编码损坏风险(纯 ASCII + 基本 UTF-8 emoji 不会被截断)
32+
- AI 模型(GPT/Claude/Gemini 等)对英文指令的理解更精准、更稳定
33+
- 国际化友好,非中文用户也能使用
34+
- **注意**:示例中的选择器值(如 `button[title='Save']`)用英文通用示例,不要出现任何特定项目的内容
35+
36+
#### 任务2:清除项目特定内容
37+
- 所有示例改为通用化:
38+
- `财务报表``Financial Report``Dashboard`
39+
- `快速记账``Quick Add``Add Item`
40+
- `记账凭证``Create Record`
41+
- `凭证号``Record ID`
42+
- `生活账本``Personal Book`
43+
- `account_book``my-app``your-project`
44+
- 示例场景用通用业务:登录/注册、CRUD列表、表单提交、导航切换
45+
46+
#### 任务3:基于 git 干净版本重建
47+
- web.md 已有干净 v7 备份在 `d:\temp_web_clean.md`(commit `ffffb4d`,409行,0乱码)
48+
- 其他4个文件也需从 git 历史找到最后一个无乱码的版本作为基础
49+
- 在干净基础上叠加 v8-v12 的增量规则(选择器验证、Tailwind陷阱、Lucide图标规则等)
50+
51+
#### 任务4:同步检查 AGENTS.md 模板(内嵌在 rulesInjector.ts)
52+
- AGENTS.md 内容内嵌在 `extension/src/rulesInjector.ts` 的字符串中
53+
- 检查是否也有项目特定内容需清理
54+
- 考虑是否也改为英文(需评估:AGENTS.md 是给编程AI看的通用指令,英文更合适)
55+
56+
#### 任务5:重建 + 测试 + 发布
57+
-`create_file` 或 Python 脚本一次性写入每个正确的模板文件
58+
- 运行 `npx @vscode/vsce package` 构建新 VSIX
59+
- Git commit + push
60+
- 在 account_book 项目上测试:删除 `.testpilot/platforms/` 目录,让插件重新注入,验证英文模板正常工作
61+
62+
### 关键原则
63+
- **模板 = 通用规则 + 通用示例**,绝不允许出现任何特定项目的类名、字段名、业务术语
64+
- **英文优先**:模板文件、AGENTS.md、copilot-instructions.md 模板均改为英文
65+
- **版本号统一递增**:重构后所有模板版本号对齐
66+
67+
---
68+
869
## ✅ v14.3 引擎稳定性 + 规则架构重构(2026-03-26 晚)
970

1071
> ⚠️ 仍在测试中,部分修改可能需要进一步验证

0 commit comments

Comments
 (0)