# 家谱 APP 换机交接记录 > 最后更新:2026-07-15 > 用途:更换电脑、重新打开 Codex/GPT 后的唯一接管入口。 > 当前阶段:只做页面样式与视觉流程验收;不对接接口,不做功能验收。 > 当前工作页:A01 登录页,尚未通过用户验收。 ## 1. 接管后先复述的准确停点 - `pages.json` 当前实际注册 **53 条最终路由**。 - A02 已删除并合入 A01;不存在需要保留的 A02 兼容入口。 - `docs/验收规划.md` 当前统计为:**53 个待审核、0 个已验收、0 个返工标记**。 - 历史上曾标记通过的 A01、A02、A04、A05、A06、G01、G03 只保留为历史视觉证据,**本轮全部重新审核**。 - 当前没有任何页面处于视觉冻结状态;只有用户在本轮明确说“通过”后,对应页面才能改为 `[x]` 并冻结。 - 当前停在 **A01 登录页视觉返工**。用户认为整页与选定设计稿仍有明显差距,A01 不得写成“完成”或“通过”。 - 最新完成的局部修正是:闭眼图标保留中心瞳孔;短信验证码输入图标改为自生成的“消息气泡 + 三点”,不再复用锁、勾选或临时第三方 SVG。 - 下一步不是跳去 G05,也不是批量改其他页面;应先继续完成 A01 的真实运行截图审视、修正和用户确认。 如果其他文档仍写“54 条路由、7 个已验收或冻结”,那是旧阶段记录。当前状态和验收数量以本文件、实际 `pages.json`、`docs/验收规划.md` 为准。 ## 2. 新电脑启动时必须完整阅读 按以下顺序阅读,不要跳过: 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 证据不等于本轮用户验收) 阅读后先运行: ```powershell git status --short ``` 必须保留全部已有未提交改动。不要因为文件是未跟踪状态就删除,也不要用旧提交覆盖当前工作区。 随后先向用户复述:53 条最终路由、53 页全部待审核、当前无冻结页、当前停在 A01、准备使用的技能、A01 的下一步。复述准确前不要继续修改页面。 ## 3. 文档权威顺序 发生冲突时按以下顺序判断: 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 或重建仓库规避。