Files
jiapuapp/docs/交接记录.md
T
2026-07-15 17:23:33 +08:00

17 KiB
Raw Blame History

家谱 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.jsondocs/验收规划.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 证据不等于本轮用户验收)

阅读后先运行:

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/视觉设计交接手册.mddocs/规划.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.svga01-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,而不是切换页面

  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 页表推进:

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.showToastuni.showModaluni.showLoadinguni.showActionSheet
  • 主题必须提供“浅色、深色、跟随系统”三个选项;深色主题沿用同一国风体系,不使用系统自动反色。
  • 列表接近底部时使用项目自定义“正在展开更多……”视觉;失败保留已加载内容并允许重试;结束显示“已阅至末尾”。
  • 兼容 320×568、360×640、360×800、412×915、系统字体放大、状态栏、安全区、软键盘和返回手势。
  • 动画只使用 transformopacity 等低成本属性;避免大面积高频重绘、同步阻塞、重复图片解码和无边界监听。
  • 代码必须精准、可读、方便修改;禁止压缩代码、复制堆叠样式、无意义抽象和难以解释的补丁。
  • 关键状态、兼容处理和非显然逻辑写中文注释;不要给一眼能看懂的代码堆无用注释。
  • 接口文档只用于理解功能、字段和状态位置;当前禁止接接口或伪造接口已通过。

9. 禁止事项

  • 不使用 worktree。
  • 不使用多代理或子代理。
  • 不执行 git addgit commitgit push、上传、git resetgit 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

页面准备提交用户审核时,还需完成:

  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.76MBtmp/ 从 922.89MB 降到 22.18MB。被清理的是 7 组可再生成的 tmp/chrome-qa-* 无头 Chrome 用户目录,没有删除源码、最终资产、代表证据或 ImageGen 源稿。

  • .git 当前约 101.64MBgit 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 或重建仓库规避。