17 KiB
家谱 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. 新电脑启动时必须完整阅读
按以下顺序阅读,不要跳过:
AGENTS.mddocs/交接记录.md(本文件)docs/验收规划.mddocs/规划.md(用于项目范围和历史结构;其中旧验收数字不再有效)docs/design/视觉设计交接手册.md(用于截图、资产和审视方法;其中旧冻结状态不再有效)docs/design/视觉证据索引.mddocs/design/D1_安卓视觉规范与页面壳.mddocs/design/P00_页面结构与资产清单.mddesign-qa.md(历史内部 QA 证据不等于本轮用户验收)
阅读后先运行:
git status --short
必须保留全部已有未提交改动。不要因为文件是未跟踪状态就删除,也不要用旧提交覆盖当前工作区。
随后先向用户复述:53 条最终路由、53 页全部待审核、当前无冻结页、当前停在 A01、准备使用的技能、A01 的下一步。复述准确前不要继续修改页面。
3. 文档权威顺序
发生冲突时按以下顺序判断:
- 用户在当前对话中的最新明确决定。
docs/交接记录.md:真实停点、风险、下一步。docs/验收规划.md:53 页流程顺序、状态合同、视觉验收规则和勾选状态。- 实际代码、
pages.json和测试:当前实现事实。 docs/design/视觉证据索引.md:默认展示证据。docs/design/视觉设计交接手册.md、docs/规划.md:历史方法、范围和背景。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. 下一步严格执行顺序
第一步:恢复环境与确认文件完整
python --version
node --version
git status --short
项目没有可依赖的 package.json 启动脚本。使用 HBuilderX 启动 H5,确认:
http://localhost:5173/#/pages/auth/a01-entry
换机前用户需要自行把当前修改和未跟踪的最终资产加入 Git 并同步;GPT 不执行 Git 暂存、提交、推送或上传。特别确认本节列出的 A01 PNG 资产、测试、本文件和交接截图已被用户纳入 Git,否则换电脑后会缺图。
第二步:继续 A01,而不是切换页面
- 打开 A01 密码登录态,确认手机、锁、闭眼/睁眼图标在真实尺寸下清晰且风格统一。
- 打开短信登录态,使用当前生成的消息气泡三点图标;不要恢复锁、勾选或第三方临时 SVG。
- 对照当前选定方向检查整体层级:红色宗祠顶部、完整宣纸卷轴登录区、标题、Tab、输入区、主按钮、微信入口、注册与协议必须形成一个整体,不能只修局部 CSS。
- 优先修用户已指出的明显问题;每轮只处理一个可验证问题,避免盲目大改导致新的比例错误。
- 先完成浅色代表态,再补深色主题;两套主题必须在同一个 A01 验收项内提交。
- 内部检查 320×568、360×640、360×800、412×915;默认只向用户展示一张代表图。密码/短信、明/暗等复杂状态用一张联系表,不连续发送大量对比图。
- 用户明确确认 A01 通过后,才把
docs/验收规划.md中 A01 从[~]改为[x]并冻结;否则保持[~],明确返工时改[!]。
第三步:A01 通过后按真实用户流程继续
严格按 docs/验收规划.md 的 53 页表推进:
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 调试实例:
$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'
确认调试页:
Invoke-RestMethod 'http://127.0.0.1:9222/json/list' | ConvertTo-Json -Depth 3
A01 短信态截图示例:
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.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
页面准备提交用户审核时,还需完成:
- 受影响的 PowerShell 契约测试。
- 适用的运行时 smoke。
- 真实路由截图并人工查看,不只确认文件生成。
- 四档尺寸内部复核。
- 浅色、深色与跟随系统入口复核。
git diff --check。- 用户明确确认。
任何一项没有执行,都必须明确写“未验证”,不得使用“已完成、已修好、已通过”。CRLF 警告本身不等于失败;真正的空白错误或非零退出码才算失败。
11. 换机前用户需要自行确认的 Git 文件
GPT 不操作 Git。用户切换电脑前应自行确认以下内容已纳入版本控制并同步:
pages.jsonpages/auth/a01-entry.vue- A02 删除记录及相关路由/测试收敛文件
tests/a01-a02-ui-contract.ps1tests/a02-route-removal-contract.ps1docs/验收规划.mddocs/交接记录.mddocs/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 或重建仓库规避。