41 KiB
家谱 APP 换机交接记录
最后更新:2026-07-20 用途:更换电脑、重新打开 Codex/GPT 后的唯一接管入口。 当前阶段:只做页面样式与视觉流程验收;不对接接口,不做功能验收。 当前施工停点:六个模块基准 G01、T07、F01、R01、N01、M01,以及 T01、G03、F09 和 F10 已由用户明确通过并进入当前 H5 视觉冻结。T08、F05、F06 仍按已记录的局部通过范围保持
[~] ⚠。F08 的正常、空相册、照片预览和相册失效四种 H5 视觉状态已由用户确认合适,但因真实入口、跳转、接口和 Android 未完成继续保持[~] ⚠。F10 已成为专属视频待开放状态页,用户明确通过 412×915 候选;按钮真实返回 F01,静态合同、运行时跳转和四档响应式 smoke 通过,但 F01 真实入口、视频接口、列表/失败数据态和 Android 不在本次结论内。下一步审核 R02;其余页面保持原标记。最新事实与换机提示见docs/夜间批量收敛交接_2026-07-20.md。
0. 2026-07-20 最新接管覆盖说明
本节覆盖下方仍保留的 2026-07-19 历史停点;不要再从 G01 正常态重新开始。
- 活动路由仍为 52 条,A02 已合并,A06 仍封存保留。
- 用户已明确通过 6 个模块基准、T01、G03、F09 及 F10:G01、G03、T01、T07、F01、F09、F10、R01、N01、M01。
docs/验收规划.md应统计为 10 个[x]、42 个[~]。 - T01 已完成固定左侧代际栏返工,并在唯一 Chrome 项目页完成正常、加载、阅读提示、空、失败、节点选中及四档 H5 审核;用户已明确通过,现为
[x]并冻结。状态联系表为docs/design/screens/runtime/2026-07-20/T01-state-contact-sheet.png,响应式联系表为同目录T01-responsive-contact-sheet.png。 - G03 已在 320×568 完成正常、创建必填、重复家谱提醒、创建失败、录入首代和首代必填审核,并补齐其余三档正常态;用户已明确通过,现为
[x]并冻结。状态联系表为docs/design/screens/runtime/2026-07-20/G03-sample-320x568-contact-sheet.png,响应式联系表为同目录G03-responsive-contact-sheet.png。 - T08 已由用户通过 320×568 隐私、离世纪念和无权限三个直达视觉状态,联系表为
docs/design/screens/runtime/2026-07-20/T08-direct-states-320x568-contact-sheet.png;由于 T03 没有真实入口且其余三档未验,必须继续保持[~] ⚠。 - F/R/N/M 的 28 个普通任务页已统一到模块母版并删除重复编号介绍块;F02、T03—T06、T08、G03、G08—G12 已收敛旧跨模块不透明面板引用。
- 5173 服务运行,52 个页面和 2 个共享组件的 Vite 转换为 54/54;当夜 Chrome 未开放 9222,因禁止新开第二个浏览器/标签页,没有生成虚假的 CDP、截图或四档响应式通过结论。
- 后续经用户许可重启并开放 9222;复核时 5173 返回 HTTP 200,9222 仅有 1 个项目页面。该后续事实只支撑 T01 的 H5 证据,不得扩写为 Android 或其他页面已完成。
- 旧资产命名审计与历史截图数量上限仍是已知失败项;用户明确要求保留全部现有资产、截图、母版和候选,不得通过删除文件或放宽阈值处理。
- 新会话先完整阅读
docs/夜间批量收敛交接_2026-07-20.md,再复核当前工作区和浏览器状态。
1. 接管后先复述的准确停点
-
2026-07-19 新会话审批停点已单独记录在
docs/新会话审批交接_2026-07-19.md:G01 正常列表态已经打开但尚未通过;后续必须复用同一个 Chrome 标签页,逐个展示正常、空、加载、失败、添加家谱弹层、切换家谱弹层、独立滚动和响应式状态,每次等待用户结论后再切换。 -
pages.json当前实际注册 52 条活动路由;A06 已从路由表移除但源码保留。 -
A02 已删除并合入 A01;不存在需要保留的 A02 兼容入口。
-
docs/验收规划.md当前活动页统计为:52 个待审核、0 个已验收、0 个返工标记、0 个冻结;A06 属于封存页,不计入这些数量。 -
历史上曾标记通过的 A01、A02、A04、A05、A06、G01、G03 只保留为历史视觉证据;活动页必须在本轮重新审核,A06 按最新决定封存。
-
当前没有任何页面处于视觉冻结状态;只有用户在本轮明确说“通过”后,对应页面才能改为
[x]并冻结。 -
2026-07-16 用户要求在次日审核前把全部页面样式先设计并落地。当前 52 个活动页面 均已有基础内部 H5 样式候选:A 系列保留已确认视觉;G 系列以 G01 为母体;T、F、R、N、M 各自拥有独立长背景和内容气质,但共享浅色国风、楷体、宣纸、朱砂、古金与 A 系列控件。静态合同与无截图运行 smoke 已覆盖主要页面状态;这些结果都只是待审候选,不能写成“用户已验收”或“已冻结”。A06 的候选实现和证据另行封存。
-
A01 当前候选已落实:闭眼图标保留中心瞳孔;密码行使用项目现有锁图标;短信验证码输入图标使用自生成的“消息气泡 + 三点”;不得恢复勾选图标或临时第三方 SVG。密码/短信两态代表联系表为
docs/design/screens/handoff/2026-07-16/A01-current-password-sms-contact-824x915.png。 -
2026-07-16 用户已逐态确认 A04 当前可实现的 8 类 H5 视觉状态;A04 继续保持
[~],因为真实滑动验证必须使用接口组件自带样式,注册成功/失败真实链路和 Android/HBuilderX 复核尚未完成。当前用户逐页审核位置已推进到 A05 重置密码。 -
A05 已按用户决定向 A01 完整收拢 Logo、全局楷体、标题分隔、两处朱砂按钮、浅色卷轴 Toast 和成功结果卷轴;旧验证面板、伪“验证码已发送”和“重新获取”状态已移除。2026-07-16 用户已逐态确认当前 7 类 H5 视觉状态;返回 A01 后“回填手机号、聚焦密码框”由用户明确延期到真实重置接口链路接入时解决,不阻塞当前样式验收。真实滑动验证、接口结果和 Android/HBuilderX 仍待复核,A05 继续保持
[~]、不冻结。 -
A06 已向 A01 完整收拢 Logo、全局楷体、标题分隔、页面主按钮、恢复层按钮和恢复卷轴。2026-07-16 用户确认样式没有问题,但判断当前流程暂时不用该页,并选择第二种封存方式:从
pages.json和活动验收表移除,保留pages/auth/a06-auth-status.vue、测试、设计记录与截图证据。A06 不标[x]、不冻结,也不计入活动页[~]数量;运行 smoke 在封存期间明确 SKIP。 -
G01 审核中已把“加入申请”三张卡改为独立
12rpx间距并通过 H5 合同与运行截图;页面尚未整体通过。用户随后确认顶部标题、当前家谱大卡片、四个快捷入口和金色分隔线固定,仅从“我创建的”开始独立滚动;2026-07-16 已按该设计形成内部 H5 候选,五档尺寸、弹层保持位置、切换家谱回顶和底部入口可达性均通过运行 smoke,等待用户查看实际页面,不能写成整页已验收。 -
G01 旧 C 图固定贴底后,在高屏上与纯色宣纸承接区出现明显横向分界线。2026-07-16 用户随后确认新生成的连续长背景,并决定仍作为 G01、G03、G05、G06、G08、G09、G10、G11、G12 共 9 个活动 G 页面的公共背景。ImageGen 原稿
793×1983已原样保留;确定性归一化母版为1536×3840,APP 运行图为1440×3600,唯一运行入口是GenealogyPageBackground.vue和genealogy-page-background-long.png。图片继续以widthFix按页面宽度等比完整显示并固定贴底,短屏只裁顶部安全区,左右不裁剪、不变形;用户查看多档对比后确认共享图片画层使用opacity: 0.28,宣纸底色与页面内容层不变。旧 A/B/C 母版和旧 C 运行图均保留且不再作为当前入口。本机四候选构建、Python/Node/静态契约、G01 四档基础尺寸与412×1000压力档、其余 G 页面运行 smoke 均已覆盖,H5 截图未见旧横向接缝。该公共背景决定不等于 G01 或其他 G 页面整页验收;Android/HBuilderX 和 4GB Android 图片解码/切页/回收仍未复核。用户已查看 G01 固定区/独立滚动实际 H5 页面并确认背景浓度,但未给出 G01 整页正式验收。换机命令和质量哈希见docs/design/G01_列表背景候选与换机重建.md。 -
用户随后指出 G01“加入申请”说明和状态文字偏小偏浅;首轮
26rpx / 25rpx实际生效但肉眼变化不够明显,用户最终选择 B 方案:说明使用28rpx / 500 / #62584c / 1.4,状态使用27rpx / 600,审核中为#7f4f16、被拒绝保留#a7160c、已退出为#62584c。本次全线视觉收敛又把当前家谱和列表卡片的地区、人数、角色、更新时间统一改为#62584c与中等字重;共享家谱卡“更新于”等现已纳入该全局可读性调整。Android/HBuilderX 与 G01 整页验收仍待完成。 -
全局控件现以 A 系列为唯一视觉标准:新增
AppButton.vue、AppDialog.vue、AppToast.vue、AppLoading.vue;活动代码中的旧不透明 A01 按钮引用与uni.showToast、uni.showModal、uni.showLoading、uni.showActionSheet均为 0。普通PageHeader已把“返回”文字换成真实左箭头。G01/G09/G10 与 T04–T06 的当前对话场景已接入 A 系列卷轴对话框;其他按钮统一消费 A 系列透明卷轴资产。 -
T、F、R、N、M 已分别生成并接入
1440×3600长背景,正式输入保存在docs/design/assets/module-backgrounds/masters/,运行资产位于各模块static/assets/modules/*/opaque/,重建脚本为design-pipeline/scripts/build_module_page_backgrounds.py,清单为design-pipeline/manifests/module-page-backgrounds.json。G 系列继续只使用既定 G01 公共长背景,不与其他模块背景混用。 -
当前没有未施工页面。用户下一活动审核页仍为 G01 我的家谱;后续只根据用户逐页审核意见做局部返工,不再按旧“无人审核时施工 T07”的规则自动推进。真实接口状态、Android/HBuilderX、系统字体放大、软键盘和 4GB Android 长图性能仍待复核。
如果其他文档仍写“53/54 条路由、7 个已验收或冻结”,那是旧阶段记录。当前状态和验收数量以本文件、实际 pages.json、docs/验收规划.md 为准。
2. 新电脑启动时必须完整阅读
按以下顺序阅读,不要跳过:
AGENTS.mddocs/交接记录.md(本文件)docs/验收规划.mddocs/规划.md(用于项目范围和历史结构;其中旧验收数字不再有效)docs/design/视觉设计交接手册.md(用于截图、资产和审视方法;其中旧冻结状态不再有效)docs/design/视觉证据索引.mddocs/design/D1_安卓视觉规范与页面壳.mddocs/design/P00_页面结构与资产清单.mddocs/design/设计资产生产流水线规范.mddesign-qa.md(历史内部 QA 证据不等于本轮用户验收)
阅读后先运行:
git status --short
必须保留全部已有未提交改动。不要因为文件是未跟踪状态就删除,也不要用旧提交覆盖当前工作区。
随后先向用户复述:52 条活动路由、52 页全部待审核、当前无冻结页、52 页均已有基础内部 H5 样式候选、A06 封存保留、用户下一审核页是 G01、当前没有未施工页面,以及准备使用的技能。复述准确前不要继续修改页面。
3. 文档权威顺序
发生冲突时按以下顺序判断:
- 用户在当前对话中的最新明确决定。
docs/交接记录.md:真实停点、风险、下一步。docs/验收规划.md:52 页活动流程顺序、封存页记录、状态合同、视觉验收规则和勾选状态。- 实际代码、
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 - 卷轴祥云主按钮:
static/assets/foundation/transparent/a01-scroll-primary-v3.png - 卷轴祥云微信按钮:
static/assets/foundation/transparent/a01-scroll-secondary-v3.png - 卷轴祥云 Toast:
static/assets/foundation/transparent/a01-scroll-toast-v3.png - 卷轴祥云安全验证弹窗:
static/assets/modules/auth/transparent/a01-scroll-dialog-v3.png - 最新可跨电脑查看的代表图:
docs/design/screens/handoff/2026-07-16/A01-current-password-sms-contact-824x915.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。- 最新真实运行截图已确认短信验证码行显示棕色消息气泡三点图标。
- 2026-07-16 用户已在浏览器中逐状态确认 A01 的密码默认、密码掩码、密码明文、短信默认、字段错误 Toast、协议错误和协议已勾选共 7 类视觉状态;顶部 Logo 缩小为
184×221rpx后也已确认。以上子项标记为“用户视觉审核通过”。 - 用户同时决定:真实滑动验证的滑块、轨道、拼图和结果状态使用接口组件自带样式,延期到接口接入阶段审核;当前卷轴安全验证弹窗只是流程占位,不是最终视觉,不计入通过项。
- A01 整页仍缺少本轮用户最终确认;当前浅色国风主题的四档尺寸完整复核和 Android 真机复核均不能写成已通过。深色与跟随系统已由用户决定延期到下一版本,不是基础版本验收门槛。
- 旧的
A01-password-icons-412x915.png实际仍是短信 Tab 且使用旧临时图标,不能当密码态证据。
4.4 最新资产生产决策
- 2026-07-16 用户批准将现有 Node.js/Sharp 雏形升级为混合资产流水线:Node.js 负责 manifest、编排、代码引用和 Chrome CDP 运行验证;Sharp 负责确定性裁切、等比缩放、格式和压缩;Python/Pillow(必要时 OpenCV)负责 Alpha、白边、绿边、预乘 Alpha 和像素边缘质量。唯一规范见
docs/design/设计资产生产流水线规范.md。 - 后续页面采用混合落地:代码负责布局、文字、间距、状态和普通结构;真实位图负责复杂水墨、品牌装饰和代码无法忠实表达的视觉;可复用装饰框只有通过 H5/Android 验证后才进入九宫格方案。禁止把所有元素机械做成整张位图,也禁止用临时 CSS/SVG 伪造复杂资产。
- schema v1 仍只是旧预览雏形,统一
fit: 'fill'、基础尺寸/Alpha 检查和代码组合预览不足以证明资产质量。2026-07-16 已新增 manifest v2、Pillow==12.3.0、Node/Python 重建与质量脚本;A01 卷轴祥云四件套 v3 已通过自动质量门、静态契约、资产审计和 H5 四尺寸检查。跨电脑、Android/HBuilderX 与用户正式验收仍未完成。 - 第一试点从登录/微信双按钮扩展为用户选定并批准的“方案 2:卷轴祥云”四件套。当前实际资产为
a01-scroll-primary-v3.png(1866×276)、a01-scroll-secondary-v3.png(1866×300)、a01-scroll-toast-v3.png(1770×246)和a01-scroll-dialog-v3.png(1860×1560)。主/次按钮和弹窗等比接入;Toast 使用固定切片border-image自适应文案宽度。文字、微信图标和交互仍由代码承载。旧原图与 v2 试点资产保留不覆盖。试点未获 Android 与用户整页确认前,不推广到其他页面。 - 用户已决定停止扩展 Photoshop/PSD 生产链,改用“ImageGen 原始母图 + 纯代码处理与渲染”的新流水线。
- 2026-07-16 用户最新决定:不保留
design-pipeline/node_modules/、design-pipeline/generated/、docs/design/assets/a01-vnext/candidates/和docs/design/assets/a01-vnext/review/;这些目录既不进入 Git,也不留在当前电脑。Photoshop 历史脚本仍作为文字/实现历史保留,但新流水线不得依赖已删除的 PSD、候选图或审阅中间稿。 - 新流水线使用独立目录,以 JSON 作为页面图层、状态、尺寸和导出路径的唯一机器可读所有者;Node.js 负责组合,Sharp 负责裁切、透明处理、缩放、体积检查和 PNG 导出。
- A01 的稳定输入已迁移为 Git 中正式保留的
static/assets/modules/auth/运行资产;design-pipeline/manifests/a01.json的每个source与output指向同一正式资产,流水线负责验证这些正式资产并生成多尺寸预览。这样任何电脑只需仓库内容和 npm 依赖即可运行,不需要本机候选图或 Photoshop。 - 同一批源资产同时生成独立页面资产、四尺寸设计预览和复杂状态联系表,避免“设计图与页面资产来自两套像素”。设计预览仍只是候选证据,最终必须进入 uni-app 并获取真实运行截图。
- 先只以 A01 验证完整流水线;A01 未经用户确认前不推广到其他 52 页,也不清理旧实验文件。
- 基础版本只支持当前浅色国风主题;深色与跟随系统整体延期到下一版本。
4.5 新电脑恢复代码资产流水线
仓库必须保留以下可复现文件:
docs/design/设计资产生产流水线规范.mddesign-pipeline/package.jsondesign-pipeline/package-lock.jsondesign-pipeline/manifests/a01.jsondesign-pipeline/scripts/build-a01.mjsstatic/assets/modules/auth/中清单引用的正式资产tests/a01-code-pipeline-contract.ps1
新电脑在项目根目录执行:
node --version
npm.cmd ci --prefix design-pipeline
npm.cmd --prefix design-pipeline run build:a01
powershell.exe -NoProfile -ExecutionPolicy Bypass -File tests/a01-code-pipeline-contract.ps1
以上是 schema v1 雏形的恢复命令。manifest v2 与 Python 质量门的换机命令已写入 docs/design/设计资产生产流水线规范.md;本机已验证,但新电脑必须真实安装并执行后才能宣称跨电脑复现通过。
预期输出分别包含 A01-CODE-PIPELINE BUILD PASS 和 A01-CODE-PIPELINE-CONTRACT PASS。构建结果生成在被忽略的 design-pipeline/generated/a01/;它只用于本机预览和验证,不得提交。需要再次腾出空间时可以删除 design-pipeline/node_modules/ 和 design-pipeline/generated/,下次重新执行 npm.cmd ci 与构建命令即可。不得把已删除的 candidates/ 或 review/ 恢复为清单输入。
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]并冻结;否则保持[~],明确返工时改[!]。
第三步:52 页基础候选已覆盖;用户审核时以当前审核页优先
截至 2026-07-16,pages.json 中 52 个活动页面均已有基础内部 H5 样式候选,但仍全部为 [~],不表示用户已验收。G 系列以 G01 为风格母体,T、F、R、N、M 已形成同一浅色国风主题下的独立模块背景;A 系列按钮、弹窗、Toast 和 Loading 为全局控件标准。
用户下一活动审核页是 G01 我的家谱,当前没有未施工页面。若用户开始逐页审核或指出返工项,只处理用户当前指定页面;只有用户明确说“通过”后才能把活动页面改为 [x] 并冻结。A06 不在该队列内,其源码、测试和证据保留供未来恢复。
真实入口优先。开发者直达路由只用于排错,不能冒充流程可达证据。不同用户身份、空态、加载、失败、权限、审核中、被拒绝、已退出/移除等状态必须在同一页面验收项下覆盖。
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. 每轮完成前验证
2026-07-16 已取得的内部验证证据如下(均不等于用户验收或 Android 通过):
- 静态合同通过:A01/A02、A04、A05、A06 封存合同、G01、G03、G05、G06、G08-G10、G11-G12、T01、T03-T08,以及截图脚本和整页视觉合同。
- H5 运行时 smoke 分别通过:A01、A04、A05、G01、G03、G05、G06、G08-G10、G11-G12、T01、T03-T08;A06 因路由封存明确输出
SKIP archived route。G05 与 T03-T08 在串联 CDP 测试中曾因页面目标重建瞬时失败,独立重跑均已通过;不要把该诊断噪声写成功能缺陷,也不要隐瞒独立复核方式。 - 实际活动路由统计为 52;A06 源码保留但未注册。
- 长期代表图集中在
docs/design/screens/handoff/2026-07-16/,并已登记到docs/design/视觉证据索引.md;这些仍是 H5 候选,Android/HBuilderX 真机或模拟器复核尚未完成。 - 本轮全模块基础视觉的 12 组专项静态合同、10 组无截图 H5 运行 smoke、52 路由合同、编译审计、Vue 3 入口合同、文档合同和清单合同已通过;五张模块长背景可重复构建,输出尺寸与 SHA-256 和交接清单一致。
- 两个旧总合同仍与最新权威决定冲突,未为绿灯而放宽:
core-flow-contract.ps1仍要求视觉阶段的 G03 调用appApi.createPerson;foundation-asset-audit.ps1仍把已确认并全局采用的 A 系列-v1/-v2/-v3资产统一判作临时名。当前专项 G03 静态/运行合同和全局 A 系列视觉合同均已通过。 - 仓库交接截图体积合同未通过,具体数据与处置边界见第 12 节。
先跑当前页面的聚焦验证。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。用户切换电脑前应自行确认以下内容已纳入版本控制并同步:
2026-07-20 Git 唯一换机通道
-
用户已明确:换机时只能通过 Git 交接,不能复制整个项目目录。因此远端仓库必须成为源码、文档、测试、实际运行资产和长期交接证据的唯一换机载体。
-
当前分支为
main,当前 HEAD 为5a31a75 Review changes batch 6 of 6。2026-07-20 最新只读检查仍有 56 项工作区变化:25 项修改、4 项删除、27 项未跟踪;这些内容尚未仅凭现有 HEAD 获得换机保障。 -
在用户自行审阅、暂存、提交并成功推送这些应保留变化之前,不得开始换机,也不得认为交接已经同步完成。新电脑只执行 clone/pull 无法获得未提交修改、未跟踪文件和本轮删除记录。
-
用户自行提交前必须同时核对
git status --short、git status --short --ignored和git diff --check;不能遗漏未跟踪的规划、测试、F08 实际资产及.hbuilderx/launch.json,也不能遗漏已确认的生成物/过期文档删除记录。 -
unpackage/、docs/design/screens/runtime/已按用户明确授权删除,不需要进入远端;docs/design/screens/handoff/、static/assets/中实际引用资产、源码、有效测试、验收规划和交接记录必须进入远端。 -
本轮 GPT 仍不执行
git add、commit、push;这些操作必须由用户自行完成。推送后应在新电脑核对分支、HEAD 和干净/预期的git status,再按本文件第 13 节停点继续。 -
2026-07-20 上传前只读审计:已配置远端
origin,当前上游为origin/main;Git 候选文件共 589 个、约 164.88MiB,最大单文件 6,822,092 字节,没有超过 20MiB 或 100MiB 的单文件;31 个未跟踪实体文件合计 18,674,321 字节(约 17.81MiB)。这些本地体积指标未发现常见单文件上传硬阻断,但远端网络、认证和仓库配额只有实际推送才能最终确认。 -
同次审计确认:文档流总规划/设计、F08 实际资产、定位合同与白名单、三份交接/验收文档、
.hbuilderx/launch.json均存在且未被.gitignore排除;长期 handoff 30 个文件全部已跟踪,没有未跟踪 handoff 文件。 -
git diff --check退出码为 0;git fsck --full退出码为 0。对象库存在历史 dangling blob/tree 和 4 个约 4.05MiB 的临时 garbage 对象,但没有对象损坏报告;不要为清理它们执行 reset、手工删除.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/视觉证据索引.md -
design-qa.md -
docs/design/screens/handoff/2026-07-16/A01-current-password-sms-contact-824x915.png -
docs/design/screens/handoff/2026-07-16/中 A01 至 G12 的当前代表图 -
A01 当前页面实际引用的全部新增 PNG 资产
-
2026-07-16 新增的各页面聚焦合同、运行时 smoke、截图脚本和实施计划
-
static/vendor/tac/(后续行为验证功能阶段需要)
docs/design/screens/runtime/、tmp/ 和本机 Chrome 调试目录不能作为换机后的唯一资料来源。最终运行资产必须在 static/assets/,长期代表证据必须在 docs/design/screens/handoff/,决策与下一步必须写进本文件或 docs/验收规划.md。
项目全部页面、接口与 Android 复核结束时,必须把本文件整理为最终交接文档,至少记录:最终活动路由与验收数量、A06 等封存页面及恢复步骤、延期到接口阶段的问题、Android/HBuilderX 验证结论、长期证据索引、遗留风险,以及交接当时已有修改和未跟踪内容。A06 恢复时必须先由产品确认独立阻断页仍有必要,再恢复路由、接入真实登录结果与恢复服务,并重新完成四档 H5、Android/HBuilderX 和用户审核。
12. 仓库体积与本地缓存规则
2026-07-16 下班前资产与清理交接
- G01 已保存 A/B/C 历史母版与旗舰长屏母版;用户已选择旗舰长屏并接入为 9 个 G 页面的公共背景,且确认共享图片画层使用 28% 不透明度,历史输入/输出继续保留,不删除。页面“上方固定、下方列表独立滚动”已按用户确认方向形成内部 H5 候选,用户已查看实际 H5 页面并确认背景浓度,五档运行证据已更新;G01 整页仍未验收,Android/HBuilderX 仍待复核。
- 跨电脑重建入口为
npm.cmd --prefix design-pipeline run build:g01-background-candidates,完整环境、依赖、输出哈希与可复现边界见docs/design/G01_列表背景候选与换机重建.md。 - 上传前审计只删除了两张无任何引用且已被新版证据替代的 2026-07-15 A01 旧全页截图,共减少 3,590,742 字节;精确清单见
docs/design/上传前文件清理审计_2026-07-16.md。 - 2026-07-17 用户确认上传前清理后,handoff 专项目录为 30 个文件、16,899,601 字节;连同
docs/design/screens/根目录保留的四档 A01 栅格图和 G01 v5 稿,全目录为 35 个文件且低于 20MB,满足仓库截图合同。20 张被新版联系表/正式母版替代的 handoff 旧图、7 张被正式 PSD/当前证据替代的早期整页稿已删除并迁移长期引用。生成母版、清单、脚本、测试、requirements.txt和 APP 运行图均保留。
2026-07-16 推送失败根因已处理:原本地提交包含约 229,085,446 字节新 Blob,混入嵌套 node_modules、生成预览、4 个大型 PSD 和候选中间 PNG,压缩上传包达到 81.39MiB 后被远端断开。清单改为正式运行资产自包含后,上述四类目录已从提交和本机删除;最新待推送提交的新 Blob 总量复核约 20,518,032 字节。旧大对象可能暂时存在于本机 .git reflog/对象库,但不再由最新提交引用,也不会随本次正常推送上传;不要为清理它们执行 reset 或手工删除 .git 对象。
2026-07-16 最新检查:tests/repository-handoff-size-contract.ps1 未通过,报告 too many handoff screenshots: 217(该次检查发生在新增 T04 代表图之前)。该脚本当前统计了 docs/design/screens/ 下包含已忽略 runtime 在内的全部截图;最终单独统计长期交接目录 docs/design/screens/handoff/ 为 52 个文件、33,477,839 字节(约 31.93MB),同样超过合同的 35 个文件/20MB门槛。本轮遵守用户禁令,没有删除、覆盖或清理任何历史证据、候选资产、runtime、tmp 或测试,也没有为了变绿而擅自放宽阈值。换机后应先让用户决定历史证据的归档策略,再单独处理体积合同;在此之前必须如实保留失败状态。
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/、design-pipeline/generated/、A01candidates/、A01review/、/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 或重建仓库规避。
13. 2026-07-20 文档流迁移未完成阻断与清理记录
- 当前迁移未完成。原定位合同只扫描
absolute/fixed/sticky,漏掉了普通容器上不必要的position: relative;F10 已被用户现场指出,其他页面也必须按同一规则重新审计。后续不得再用“剩余 112 条”作为完整数字,必须先扩展合同覆盖所有position声明。 - 正确边界:固定顶部/底部导航、真实弹层、Toast、全屏预览等保留必要定位;普通页面根容器、Header/Content 包装、正文、表单、卡片和可用 grid 同单元叠放的装饰不得残留无意义
relative/absolute。 - 当前停点:先返工 F10,再处理 T01 世代栏与成员节点;没有新的用户视觉确认,不新增
[x]。 - 本次用户明确授权清理无用文件。已确认
unpackage/dist/为可再生成构建产物,docs/design/screens/runtime/为短期诊断证据且不能作为长期唯一资料;两者可以删除。长期docs/design/screens/handoff/、实际引用资产、有效测试与源码继续保留。 - 2026-07-20 已完成或被总规划取代的 F05/F06/F08/F09/F10/R02/T01 单页 plan/spec 不再作为独立合同;有效结论以本记录、
docs/验收规划.md及2026-07-20-project-document-flow-migration总规划/设计为准。