开始审核样式

This commit is contained in:
rain
2026-07-15 17:23:19 +08:00
parent 241a7af54c
commit 0dec90ffdd
46 changed files with 999 additions and 964 deletions
+267 -35
View File
@@ -1,48 +1,280 @@
# 家谱 APP 交接记录
# 家谱 APP 换机交接记录
> 更新日期2026-07-15
> 这是更换电脑或交给新 GPT 的唯一快速入口。详细操作见 [视觉设计交接手册](design/视觉设计交接手册.md),页面审核状态以 [总规划](规划.md) 为准
> 最后更新:2026-07-15
> 用途:更换电脑、重新打开 Codex/GPT 的唯一接管入口
> 当前阶段:只做页面样式与视觉流程验收;不对接接口,不做功能验收。
> 当前工作页:A01 登录页,尚未通过用户验收。
## 1. 当前准确停点
## 1. 接管后先复述的准确停点
- `pages.json` 当前登记 **54 条最终路由**;重复状态已经收敛到同一页面,例如 G02→G01、G04→G03、G07→G06、T02→T01
- 当前有 **7 个已验收**页面:A01、A02、A04、A05、A06、G01、G03。除非用户提出明确调整,不得改变这些页面已经验收的可见效果
- 其余 **47 个待审核候选**已经完成页面实现、H5 运行截图和内部视觉审视,统一在 `docs/规划.md` 标记为 `[~]`。候选不等于用户验收,只有用户明确通过后才能改为 `[x]`;要求返工时改为 `[!]`
- 下一步是按 `docs/规划.md` 逐页视觉审核,不再批量新增页面。接口资料只用于理解功能、字段和状态位置;本阶段不对接接口
- H5 Chrome 截图是候选审计证据,最终 Android/HBuilderX 真机或模拟器复核仍需在视觉审核后完成
- `pages.json` 当前实际注册 **53 条最终路由**
- A02 已删除并合入 A01;不存在需要保留的 A02 兼容入口
- `docs/验收规划.md` 当前统计为:**53 个待审核、0 个已验收、0 个返工标记**
- 历史上曾标记通过的 A01、A02、A04、A05、A06、G01、G03 只保留为历史视觉证据,**本轮全部重新审核**
- 当前没有任何页面处于视觉冻结状态;只有用户在本轮明确说“通过”后,对应页面才能改为 `[x]` 并冻结
- 当前停在 **A01 登录页视觉返工**。用户认为整页与选定设计稿仍有明显差距,A01 不得写成“完成”或“通过”。
- 最新完成的局部修正是:闭眼图标保留中心瞳孔;短信验证码输入图标改为自生成的“消息气泡 + 三点”,不再复用锁、勾选或临时第三方 SVG。
- 下一步不是跳去 G05,也不是批量改其他页面;应先继续完成 A01 的真实运行截图审视、修正和用户确认。
## 2. 新 GPT 启动顺序
如果其他文档仍写“54 条路由、7 个已验收或冻结”,那是旧阶段记录。当前状态和验收数量以本文件、实际 `pages.json``docs/验收规划.md` 为准。
1. 全程使用中文。先完整阅读 `AGENTS.md`、本文件、`docs/规划.md``docs/design/视觉设计交接手册.md``docs/design/D1_安卓视觉规范与页面壳.md``docs/design/P00_页面结构与资产清单.md``design-qa.md`
2. 运行 `git status --short`,识别并保留全部未提交改动。不要把旧提交状态当成当前工作区状态。
3. 先向用户简洁复述:54 条路由、7 个已验收、47 个待审核,以及准备审核的具体页面;在用户给出页面反馈前不要盲目重做。
4. 审核时先看 [视觉证据索引](design/视觉证据索引.md) 的默认代表图;发现具体问题后再展开多尺寸、before/after 或历史废稿。
## 2. 新电脑启动时必须完整阅读
## 3. 必须调用的能力
按以下顺序阅读,不要跳过:
新 GPT 必须实际具备并按触发条件调用:
1. `AGENTS.md`
2. `docs/交接记录.md`(本文件)
3. `docs/验收规划.md`
4. `docs/规划.md`(用于项目范围和历史结构;其中旧验收数字不再有效)
5. `docs/design/视觉设计交接手册.md`(用于截图、资产和审视方法;其中旧冻结状态不再有效)
6. `docs/design/视觉证据索引.md`
7. `docs/design/D1_安卓视觉规范与页面壳.md`
8. `docs/design/P00_页面结构与资产清单.md`
9. `design-qa.md`(历史内部 QA 证据不等于本轮用户验收)
- `product-design:index`:开始设计、审视或评价页面时先调用,用于选择正确的产品设计工作流。
- `product-design:audit`:必须基于真实运行截图审视页面,不能只看源码判断好不好看。
- `imagegen`:仅在缺少完整位图视觉资产时调用。完整按钮、卡片、边框和装饰面必须使用独立位图,不能用 CSS 伪造。
- `superpowers:test-driven-development`:修改页面行为、路由或可审计视觉结构前,先写或更新最小契约测试并确认 RED。
- `superpowers:systematic-debugging`:测试、截图、路由或构建出现异常时,先复现并定位根因再修改。
- `superpowers:verification-before-completion`:宣称完成前,运行受影响测试、真实截图复核和 `git diff --check`
阅读后先运行:
能力缺失时应先安装或启用同等能力,不得假装已经完成视觉审计、位图生成或验证。
```powershell
git status --short
```
## 4. 视觉审核降噪规则
必须保留全部已有未提交改动。不要因为文件是未跟踪状态就删除,也不要用旧提交覆盖当前工作区。
- 默认每页只看一张 360×800 代表截图
- 同页有多个关键状态时,优先看一张状态联系表,不连续展示多张相似截图。
- 412×915、小屏、多尺寸和前后对比图仅在发现比例问题、回归问题或用户要求时展开。
- 历史废稿和 before/after 证据不删除,但只保留在 `docs/design/视觉证据索引.md` 的历史审计区。
- 审核结论记录在 `docs/规划.md`;不要因为内部测试或 Product Design 审视通过就替用户勾选。
随后先向用户复述:53 条最终路由、53 页全部待审核、当前无冻结页、当前停在 A01、准备使用的技能、A01 的下一步。复述准确前不要继续修改页面
## 5. 禁止事项与完成验证
## 3. 文档权威顺序
- 不使用 worktree 或多代理。
- 不执行 `git add`、commit、push、上传、reset、checkout,也不覆盖用户现有文件。
- 不擅自对接接口、修改接口契约、打 Android 包或把截图放入 `static/assets/` 当运行资源
- 只修改用户当前反馈涉及的页面和对应测试、截图、设计记录;不要顺手重构冻结页或相邻模块
- 完成一次页面返工前,至少运行对应契约测试、运行时 smoke、真实路由截图复核和 `git diff --check`;无法执行的检查必须明确说明
发生冲突时按以下顺序判断:
1. 用户在当前对话中的最新明确决定
2. `docs/交接记录.md`:真实停点、风险、下一步
3. `docs/验收规划.md`:53 页流程顺序、状态合同、视觉验收规则和勾选状态
4. 实际代码、`pages.json` 和测试:当前实现事实。
5. `docs/design/视觉证据索引.md`:默认展示证据。
6. `docs/design/视觉设计交接手册.md``docs/规划.md`:历史方法、范围和背景。
7. `design-qa.md`:历史内部审视记录。
内部测试、旧 QA 的 `passed`、旧截图或 GPT 自己的判断都不能替代用户本轮确认。
## 4. 当前 A01 的真实状态
### 4.1 已确定的页面合同
- APP 没有游客模式,启动入口是 A01。
- A01 同页包含密码登录、短信验证码登录、微信登录、注册、忘记密码和协议入口。
- 首次默认密码登录;后续只恢复用户上次选择的密码/短信方式,不保存密码。
- 登录在本地字段与协议校验通过后才显示行为验证弹层。
- 未勾选协议时使用页内高亮、错误文案和轻微震动,不使用原生 Toast 或原生确认框。
- 320×568 下核心入口必须同屏可见,不依赖纵向滚动。
- 微信登录保留入口,真实登录留到功能阶段。
- 行为验证当前只审核弹层外观状态;真实 TAC、`validToken` 和接口续接留到功能阶段。
### 4.2 当前代码与关键资产
- 页面:`pages/auth/a01-entry.vue`
- 路由:`pages/auth/a01-entry`
- 契约测试:`tests/a01-a02-ui-contract.ps1`
- 页面头部:`static/assets/modules/auth/opaque/a01-login-header-v1.png`
- 精确头部叠层:`static/assets/modules/auth/opaque/a01-login-header-exact-v2.png`
- 卷轴框:`static/assets/modules/auth/transparent/a01-login-scroll-frame-v1.png`
- 标题分隔:`static/assets/modules/auth/opaque/a01-title-divider-v2.png`
- 手机图标:`static/assets/modules/auth/transparent/a01-icon-phone-v1.png`
- 密码图标:`static/assets/modules/auth/transparent/a01-icon-lock-v1.png`
- 睁眼图标:`static/assets/modules/auth/transparent/a01-icon-eye-open-v1.png`
- 闭眼图标:`static/assets/modules/auth/transparent/a01-icon-eye-closed-pupil-v2.png`
- 短信验证码图标:`static/assets/modules/auth/transparent/a01-icon-sms-code-v2.png`
- 最新可跨电脑查看的代表图:`docs/design/screens/handoff/2026-07-15/A01-current-sms-generated-412x915.png`
`static/assets/modules/auth/transparent/a01-icon-sms-code-v1.svg``a01-icon-verification-v1.png` 等未引用候选仍可能存在于工作区。当前不要顺手清理;页面样式全部完成后再单独做文档与资产清理。
### 4.3 最新验证事实
- `tests/a01-a02-ui-contract.ps1` 已要求页面引用 `a01-icon-sms-code-v2.png`,并禁止回退到勾选图标和临时 SVG。
- 最新真实运行截图已确认短信验证码行显示棕色消息气泡三点图标。
- A01 整页仍缺少本轮用户最终确认;深色主题、四档尺寸完整复核和 Android 真机复核均不能写成已通过。
- 旧的 `A01-password-icons-412x915.png` 实际仍是短信 Tab 且使用旧临时图标,不能当密码态证据。
## 5. 下一步严格执行顺序
### 第一步:恢复环境与确认文件完整
```powershell
python --version
node --version
git status --short
```
项目没有可依赖的 `package.json` 启动脚本。使用 HBuilderX 启动 H5,确认:
```text
http://localhost:5173/#/pages/auth/a01-entry
```
换机前用户需要自行把当前修改和未跟踪的最终资产加入 Git 并同步;GPT 不执行 Git 暂存、提交、推送或上传。特别确认本节列出的 A01 PNG 资产、测试、本文件和交接截图已被用户纳入 Git,否则换电脑后会缺图。
### 第二步:继续 A01,而不是切换页面
1. 打开 A01 密码登录态,确认手机、锁、闭眼/睁眼图标在真实尺寸下清晰且风格统一。
2. 打开短信登录态,使用当前生成的消息气泡三点图标;不要恢复锁、勾选或第三方临时 SVG。
3. 对照当前选定方向检查整体层级:红色宗祠顶部、完整宣纸卷轴登录区、标题、Tab、输入区、主按钮、微信入口、注册与协议必须形成一个整体,不能只修局部 CSS。
4. 优先修用户已指出的明显问题;每轮只处理一个可验证问题,避免盲目大改导致新的比例错误。
5. 先完成浅色代表态,再补深色主题;两套主题必须在同一个 A01 验收项内提交。
6. 内部检查 320×568、360×640、360×800、412×915;默认只向用户展示一张代表图。密码/短信、明/暗等复杂状态用一张联系表,不连续发送大量对比图。
7. 用户明确确认 A01 通过后,才把 `docs/验收规划.md` 中 A01 从 `[~]` 改为 `[x]` 并冻结;否则保持 `[~]`,明确返工时改 `[!]`
### 第三步:A01 通过后按真实用户流程继续
严格按 `docs/验收规划.md` 的 53 页表推进:
```text
A01 登录
→ A04 注册
→ A05 重置密码
→ A06 阻断登录状态
→ G01 我的家谱
→ G06 搜索/邀请码加入
→ G08 加入申请
→ G09 我的申请
→ G03 创建家谱/录入始祖
→ G05 家谱总览
→ 后续管理、世系、家族内容、档案、消息和个人中心
```
真实入口优先。开发者直达路由只用于排错,不能冒充流程可达证据。不同用户身份、空态、加载、失败、权限、审核中、被拒绝、已退出/移除等状态必须在同一页面验收项下覆盖。
## 6. 必须使用的技能与触发时机
每次调用技能前在中文进度消息中告诉用户“正在用什么、为什么”。
| 技能 | 必须使用的场景 | 本项目的正确做法 |
| --- | --- | --- |
| `product-design:index` | 开始设计、审视、复刻或评价页面时 | 先选择正确的产品设计流程,不能把任务当成普通 CSS 调整 |
| `product-design:audit` | 审核已运行页面或完整用户流程时 | 必须先获取真实运行截图,再根据截图报告层级、可用性、适配和无障碍问题 |
| `product-design:ideate` | 没有明确视觉真源,需要探索多个设计方向时 | 给可比较的视觉方案,用户选定后再实施;不在代码里盲试方向 |
| `product-design:image-to-code` | 已有选定截图、效果稿或设计图,需要一比一落地时 | 以选定图为视觉真源,做响应式还原,再用真实截图比对 |
| `imagegen` | 缺少完整位图视觉资产时 | 只生成缺失资产;参考现有页面风格,验证尺寸、Alpha、边缘和缩小后的清晰度后再接入 |
| `superpowers:brainstorming` | 新模块、复杂交互、用户流程或视觉方向尚未明确时 | 先把目标、状态、身份、错误路径和验收标准问清楚 |
| `superpowers:writing-plans` | 多步骤页面或模块准备实施时 | 写成可勾选、可验证的小步骤;本项目禁止加入提交 Git 的步骤 |
| `superpowers:test-driven-development` | 修改页面行为、路由、状态合同或可审计结构前 | 先改最小契约测试并看到 RED,再做最小实现至 GREEN |
| `superpowers:systematic-debugging` | 截图、构建、路由、样式、测试或热更新异常时 | 先稳定复现并定位根因;不能靠删测试、乱改 rpx/px 或堆覆盖样式掩盖问题 |
| `superpowers:verification-before-completion` | 任何“完成、修好、通过”表述前 | 重新运行受影响测试、真实截图复核和 `git diff --check`;没有证据就只能报告未验证 |
截图审视时必须调用 Product Design 审核流程;只有看源码不能判断页面是否好看。图像生成只用于缺失的完整位图资产,已有可用资产不重复生成。
## 7. 截图与视觉证据规则
先启动独立 Chrome 调试实例:
```powershell
$chrome = "$env:ProgramFiles\Google\Chrome\Application\chrome.exe"
Start-Process -FilePath $chrome -WindowStyle Hidden -ArgumentList `
'--remote-debugging-port=9222', `
"--user-data-dir=$env:TEMP\jiapu-chrome-debug", `
'http://localhost:5173/#/pages/auth/a01-entry'
```
确认调试页:
```powershell
Invoke-RestMethod 'http://127.0.0.1:9222/json/list' | ConvertTo-Json -Depth 3
```
A01 短信态截图示例:
```powershell
node scripts/capture-chrome-page.js `
'http://localhost:5173/#/pages/auth/a01-entry' `
'#app' `
'docs/design/screens/runtime/<日期>/A01-sms-412x915.png' `
412 915 sms-tab
```
- 新截图先放 `docs/design/screens/runtime/<日期>/`;该目录默认不进入 Git。
- 用户确认需要跨电脑保留时,只复制一张代表图或一张联系表到 `docs/design/screens/handoff/<日期>/` 并更新索引。
- 不把运行截图放进 `static/assets/` 当页面资源。
- 默认每页展示一张代表图;复杂状态展示一张联系表。
- 历史 before/after、多尺寸和废稿只在定位问题时从视觉证据索引展开。
- H5 Chrome 截图是候选证据,不能替代最终 Android/HBuilderX 真机或模拟器复核。
## 8. 页面样式验收的全局底线
- 不是简单改 CSS;必须同时考虑用户流程、身份、错误操作、状态反馈、弹窗、加载、空态、主题、适配和性能。
- 所有提示、确认、结果、底部选择和加载效果使用项目自定义组件;禁止直接展示原生 `uni.showToast``uni.showModal``uni.showLoading``uni.showActionSheet`
- 主题必须提供“浅色、深色、跟随系统”三个选项;深色主题沿用同一国风体系,不使用系统自动反色。
- 列表接近底部时使用项目自定义“正在展开更多……”视觉;失败保留已加载内容并允许重试;结束显示“已阅至末尾”。
- 兼容 320×568、360×640、360×800、412×915、系统字体放大、状态栏、安全区、软键盘和返回手势。
- 动画只使用 `transform``opacity` 等低成本属性;避免大面积高频重绘、同步阻塞、重复图片解码和无边界监听。
- 代码必须精准、可读、方便修改;禁止压缩代码、复制堆叠样式、无意义抽象和难以解释的补丁。
- 关键状态、兼容处理和非显然逻辑写中文注释;不要给一眼能看懂的代码堆无用注释。
- 接口文档只用于理解功能、字段和状态位置;当前禁止接接口或伪造接口已通过。
## 9. 禁止事项
- 不使用 worktree。
- 不使用多代理或子代理。
- 不执行 `git add``git commit``git push`、上传、`git reset``git checkout`
- 不删除、覆盖或清理用户已有未提交改动。
- 不因“整理代码”顺手修改当前验收项以外的页面。
- 不对接接口,不修改接口合同,不打 Android 包。
- 不用原生 UniApp 弹窗、Toast、Loading 或 ActionSheet 作为最终视觉。
- 不用 CSS 伪造本应是完整位图的卷轴、牌匾、按钮、卡片或装饰面。
- 不把直接路由打开当作用户流程已经可达。
- 不把内部测试、GPT 审视、旧 QA 或 H5 截图写成用户已经验收。
- 不连续展示大量相似截图。
- 不在页面样式验收完成前集中清理 `docs/``scripts/``tmp/``tests/` 或未引用候选资产。
## 10. 每轮完成前验证
先跑当前页面的聚焦验证。A01 当前最小集合:
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File tests/a01-a02-ui-contract.ps1
node scripts/capture-chrome-page.js `
'http://localhost:5173/#/pages/auth/a01-entry' `
'#app' `
'docs/design/screens/runtime/<日期>/A01-sms-412x915.png' `
412 915 sms-tab
git diff --check
```
页面准备提交用户审核时,还需完成:
1. 受影响的 PowerShell 契约测试。
2. 适用的运行时 smoke。
3. 真实路由截图并人工查看,不只确认文件生成。
4. 四档尺寸内部复核。
5. 浅色、深色与跟随系统入口复核。
6. `git diff --check`
7. 用户明确确认。
任何一项没有执行,都必须明确写“未验证”,不得使用“已完成、已修好、已通过”。CRLF 警告本身不等于失败;真正的空白错误或非零退出码才算失败。
## 11. 换机前用户需要自行确认的 Git 文件
GPT 不操作 Git。用户切换电脑前应自行确认以下内容已纳入版本控制并同步:
- `pages.json`
- `pages/auth/a01-entry.vue`
- A02 删除记录及相关路由/测试收敛文件
- `tests/a01-a02-ui-contract.ps1`
- `tests/a02-route-removal-contract.ps1`
- `docs/验收规划.md`
- `docs/交接记录.md`
- `docs/design/screens/handoff/2026-07-15/A01-current-sms-generated-412x915.png`
- A01 当前页面实际引用的全部新增 PNG 资产
- `static/vendor/tac/`(后续行为验证功能阶段需要)
`docs/design/screens/runtime/``tmp/` 和本机 Chrome 调试目录不能作为换机后的唯一资料来源。最终运行资产必须在 `static/assets/`,长期代表证据必须在 `docs/design/screens/handoff/`,决策与下一步必须写进本文件或 `docs/验收规划.md`
## 12. 仓库体积与本地缓存规则
2026-07-15 已完成一次安全瘦身:项目总占用从约 1.03GB 降到约 232.76MB`tmp/` 从 922.89MB 降到 22.18MB。被清理的是 7 组可再生成的 `tmp/chrome-qa-*` 无头 Chrome 用户目录,没有删除源码、最终资产、代表证据或 ImageGen 源稿。
- `.git` 当前约 101.64MB`git fsck --full` 退出码为 0,只有可忽略的 dangling tree/blob,没有对象损坏报告。
- 当前受版本控制的最大单文件约 2.91MB,不存在单文件 100MB 上传阻断。
- 本轮需要用户纳入 Git 的新增规划、A01 资产、TAC 和代表图合计约 4.73MB。
- `.gitignore` 已忽略 `/tmp/``/unpackage/``/node_modules/``/docs/design/screens/runtime/``/.superpowers/` 和临时 G01 审计图。
- 后续启动截图 Chrome 时,`--user-data-dir` 必须放在 `$env:TEMP`,禁止再把 Chrome 用户目录放进项目 `tmp/`
- `tmp/` 只允许保存短期诊断图和 ImageGen 中间源,最终资产必须进入 `static/assets/`,换机代表证据必须进入 `docs/design/screens/handoff/`
- 不要执行 `git add .` 后盲目提交;用户应先用 `git status --short --ignored` 确认缓存目录仍为 `!!` 忽略状态。
- 当前不重写 Git 历史、不执行 `git gc`、不删除 `.git` 内的孤立索引;若远端仍拒绝推送,应保留完整错误信息,再按远端限制单独排查,不能用 reset 或重建仓库规避。