Files
jiapuapp/docs/design/视觉设计交接手册.md
T
2026-07-17 08:08:33 +08:00

218 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 家谱 APP 视觉设计交接手册
> **2026-07-16 状态覆盖说明:** 本手册中的截图方法、资产规则和验证流程继续有效;旧路由与验收数字不再有效。当前为 52 条活动路由、52 页全部 `[~]` 待审核、0 页冻结;A06 已从路由与活动验收队列封存但保留实现。接管时先读 `docs/交接记录.md` 与 `docs/验收规划.md`。
> 更新日期:2026-07-14
> 用途:在新电脑或交给新的 GPT 后,按本手册恢复当前工作;它只记录已发生的事实,不把待验收写成已完成。
## 0. 给新 GPT 的可直接执行指令
你接手的是一个 **uni-app Android 家谱项目的高质量视觉设计任务**,全程中文工作;它不是只改 CSS 的任务。先不修改代码,完整阅读:`AGENTS.md``docs/交接记录.md`、本手册、`docs/规划.md``docs/design/D1_安卓视觉规范与页面壳.md``docs/design/P00_页面结构与资产清单.md``docs/design/设计资产生产流水线规范.md``docs/superpowers/plans/2026-07-13-product-design-visual-refinement.md``design-qa.md`。随后只向用户简洁复述当前停点和准备如何处理反馈。
必须保留已有未提交改动;不使用 worktree;不执行 `git add``git commit``git push`、上传、`git reset``git checkout`。旧阶段的 A01、A02、A04、A05、A06、G01、G03 验收/冻结记录只作历史证据;本轮 52 个活动页面全部重新待审核。A06 已封存,G07 是 G06 的页面内状态,不得重新建为独立页。
当前实际为 52 条活动路由,52 页全部标 `[~]`,0 页冻结;已有 14 个活动页面内部 H5 候选,A06 候选另行封存,均不得写成用户已正式验收。用户下一活动审核页是 G01;无人审核时下一施工页是 T07。接口只作功能布局参考,本轮没有对接。
新环境必须可用并实际调用:`product-design:index``product-design:audit``imagegen``superpowers:test-driven-development``superpowers:systematic-debugging``superpowers:verification-before-completion`。没有这些能力时,先安装/启用同等能力,不得假装已经完成设计审视或位图生成。
## 1. 当前停点:先看这一节
项目实际有 52 条活动路由;A02 已合并进 A01,A06 已封存,T02 已合并进 T01且遗留占位文件已删除。`docs/验收规划.md` 中 52 个活动页面全部为 `[~]`0 页已验收,0 页冻结。
- 已有 14 个活动页面内部 H5 候选:A01、A04、A05、G01、G03、G05、G06、G08、G09、G10、G11、G12、T01、T04。A06 的 H5 候选、源码、测试和证据已封存保留。
- 这些候选、内部 smoke、GPT 审视和旧 QA 都不等于用户正式验收。
- 用户下一活动审核页是 G01;无人审核时下一施工页是 T07 成员目录。
- 基础版本只做浅色国风主题;深色和跟随系统延期。
- 不提交、不推送、不上传 Git;由用户自行处理版本库操作。
下一位执行者先读 `docs/交接记录.md``docs/验收规划.md`,再按 `[~]` 清单协助用户逐页审核。默认只打开一张代表图或一张复杂状态联系表;多尺寸、before/after 与历史废稿仅在发现问题时展开。
## 1.1 迁移前必须保留的文件
本手册、G06 最终候选资产和截图工具均是接管所需文件;换电脑前,用户需在自行提交/上传时包含它们,或完整复制当前工作区。我没有执行任何 Git 暂存、提交、推送或上传操作。
至少要保留:`docs/design/视觉设计交接手册.md``docs/交接记录.md``docs/design/视觉证据索引.md``scripts/capture-chrome-page.js`、全部页面/资产/测试、`docs/design/screens/runtime/` 的运行证据,以及现有计划与设计记录。只复制已提交的旧版本会丢失当前停点。
## 2. 必读文件与唯一职责
| 文件 | 负责什么 |
| --- | --- |
| `AGENTS.md` | 最小修改、保护既有未提交内容、验证后再交付的项目规则。 |
| `docs/规划.md` | 54 条独立路由的范围、模块顺序和“完成”的定义。 |
| `docs/design/D1_安卓视觉规范与页面壳.md` | Android 页面、资产、布局与中文注释的硬约束。 |
| `docs/design/P00_页面结构与资产清单.md` | 路由、页面文件和资产台账的唯一清单。 |
| `docs/design/设计资产生产流水线规范.md` | 混合代码/位图落地、manifest、Node/Sharp/Python 分工、质量门和跨电脑恢复合同。 |
| `docs/superpowers/plans/2026-07-13-product-design-visual-refinement.md` | 已批准的分模块视觉精修计划和验收顺序。 |
| `docs/design/2026-07-13-A01-G01-A02-视觉审视.md` | A01/G01 视觉证据与旧 A02 的问题定位。 |
| `docs/design/A02_账号登录_设计记录.md` | A02 当前实现、资产、截图和测试记录。 |
| `design-qa.md` | A02 的 Design QA;当前 `final result: accepted`。 |
| `docs/交接记录.md` | 简版当前状态与恢复入口;本手册提供完整操作细节。 |
发生冲突时,按“用户最新明确指令 > AGENTS.md > 上表中的当前台账/计划 > 历史文档”的顺序处理。不要以旧的草案或已废弃的截图切片方案为依据。
## 3. 已验收的风格与绝对禁区
### A01 与 G01 是可观察的品牌真源
- A01 参考图:`docs/design/screens/A01-启动登录引导-栅格验收-412x915.png`
- G01 参考图:`docs/design/screens/G01-我的家谱-紧凑版设计稿-v5-Tabbar安全区.png`
共同语言是“家祠卷轴”:暖宣纸、朱砂主色、古金框线和元数据、墨褐字、低对比淡墨山水。主信息应先于背景被读到,留白是结构的一部分。
必须遵守:
1. 最新生产方法以 `docs/design/设计资产生产流水线规范.md` 为准:代码承担布局、文字、间距、状态和普通结构;复杂水墨、品牌装饰和代码无法忠实表达的视觉使用真实位图。
2. 固定比例完整位图、透明叠加资产和经 H5/Android 验证的九宫格必须在 manifest 中声明真实槽位、缩放和 Alpha 策略;不得默认使用 `scaleToFill` 或 Sharp `fit: 'fill'` 掩盖比例错误。
3. 不能把整张设计截图或局部截图裁进运行页面;运行资产必须是可复用的独立元素。
4. A01/G01 历史证据仍是品牌观察真源,但不等于本轮已验收或冻结;当前状态以 `docs/交接记录.md``docs/验收规划.md` 为准。
5. 不要用一个通用卡片母版覆盖所有模块。家谱、世系树、内容档案、人物记录、通知和设置必须在同一视觉语言下有各自的信息密度与层级。
## 4. A02 的精确状态
> 本节是 2026-07-14 的历史实现记录,不是当前路由或验收状态。当前 A02 已删除并合入 A01,本轮不得恢复 A02 路由;最新状态以 `docs/交接记录.md` 为准。
### 实现内容
- 路由与页面:`pages/auth/a02-login.vue`
- 新面板资产:`static/assets/modules/auth/opaque/a02-login-panel.png`
- 实际尺寸:940 × 1672
- 属性:四角不透明,承载宣纸底、双古金框、角饰与淡纹样
- 主按钮继续复用已验收完整资产:`static/assets/foundation/opaque/a01-primary-button.png`
- 账号密码与短信验证码 Tab、输入、忘记密码跳转和原有交互均保留;短信 Tab 已经通过真实 Chrome 调试点击截图。
### 已保存的运行证据
默认只查看 `docs/design/screens/handoff/2026-07-16/A01-current-password-sms-contact-824x915.png`。A02 已并入 A01;小屏、大屏和 before/after 历史证据保存在项目外完整归档中,按需展开,不在交接正文连续罗列。
### 通过/未通过的界线
已通过的是:资产尺寸与不透明角审计、A01/A02 页面契约、编译检查、A02 的多尺寸运行截图和短信 Tab 交互。
已通过的是:用户对 A02 的最终审美确认,`design-qa.md``accepted`,A02 可见效果冻结。用户若提出新的明确调整,只改动被指出的区域并重新截图复核;不要无根据改动面板框、输入区或交互。
## 5. 换电脑后如何恢复截图与审视能力
### 必备环境
- Windows、Chrome、HBuilderX(项目当前以 Android `uni-app` 为目标)。
- Node.js 22 或更高版本;当前脚本已在 Node 24 环境使用原生 `fetch``WebSocket`
- 先在 HBuilderX 启动本地 H5 调试页,并确认它能在 `http://localhost:5173` 打开。不要臆测项目的 npm 启动命令。
用专用 Chrome 调试实例开启远程端口;它与用户日常 Chrome 隔离:
```powershell
$chrome = "$env:ProgramFiles\Google\Chrome\Application\chrome.exe"
Start-Process -FilePath $chrome -ArgumentList `
'--remote-debugging-port=9222', `
"--user-data-dir=$env:TEMP\jiapu-chrome-debug", `
'http://localhost:5173/#/pages/auth/a02-login?agreed=1'
```
确认调试端口与应用页面存在:
```powershell
Invoke-RestMethod 'http://127.0.0.1:9222/json/list' | Select-Object title, url
```
使用项目内的正式脚本截图。它会导航**专用调试 Chrome**的当前标签页、写出 PNG,并在结束时清除设备尺寸覆盖;不能操作或关闭用户的日常 Chrome。
```powershell
node scripts/capture-chrome-page.js `
'http://localhost:5173/#/pages/auth/a02-login?agreed=1' `
'.login-page' `
'docs/design/screens/runtime/2026-07-14/A02-after-360x800.png' `
360 800
```
新截图先保存到已忽略的 `docs/design/screens/runtime/<日期>/`,绝不能放回 `static/assets/` 作为运行资源。每个代表页面至少做 360 × 800;只有出现比例风险或用户要求时再展开 320 × 568、360 × 640、412 × 915,多状态页面优先合成一张联系表。用户确认需要长期交接时,只把代表图复制到 `docs/design/screens/handoff/`。最终 Android/HBuilderX 截图仍需补做,H5 Chrome 截图不能替代它。
## 6. 后续执行顺序与每轮产物
### 历史门禁记录(本轮已失效)
以下内容只解释旧阶段为何保留某些资产,不得据此把任何页面写成当前已验收或冻结。
1. A02 与 A04 均已通过;不因后续页面改动而触碰其可见效果。
2. 若用户提出明确调整:只在对应页面修正,先调整对应契约测试,再改页面/资产,重新截图复核。
3. A05、A06 与 G01 空状态均已通过并完成状态同步;G04 已合并为 G03 `step=ancestor`,该双步骤已获用户通过;G07 已合并为 G06 三态。G06 三态候选和内部审视已完成,仍待用户视觉确认。
### 当前唯一顺序:逐页视觉审核
54 条路由候选已经全部覆盖。用户从 `docs/规划.md` 指定或按清单顺序审核页面;只有用户明确通过才改 `[x]`,要求返工则改 `[!]` 并只修改对应页面。接口、Android 打包和真机复核均留在视觉审核之后。
### 每个模块的固定工作流
1. 用 Product Design 对已运行页面截图审视,明确该模块与 A01/G01 的继承点、不同的信息结构与验收尺寸。
2. 先补/改最小的页面契约测试并看到失败,再实现页面;只有缺少真实视觉资产时才生成资产。
3. 资产生成后记录路径、尺寸、是否不透明、用途和引用页到 P00;生成图必须经过本地检查后进入 `static/assets/`
4. 保留既有可用跳转和返回行为,删除本轮替换后不再使用的临时导入、目录项和样式。
5. 运行受影响的测试、编译审计、真实路由截图,再更新设计记录、规划和交接状态。
6. 在用户验收之前,状态统一写“实现与截图完成,视觉待用户验收”。
## 7. 下一位 GPT 需要具备并实际调用的能力
这不是“只改 CSS”的任务。执行视觉页前应先读取对应技能说明,并在对用户的工作说明中指出正在使用的技能及目的。
| 能力/技能 | 何时使用 | 项目中的正确做法 |
| --- | --- | --- |
| `product-design:index``product-design:audit` | 审视、评价或设计一个已运行页面/流程时。 | 先拿到真实路由截图,再依据 A01/G01 与页面任务写审视结论;不要靠源码猜好不好看。 |
| Product Design 的 `user-context``get-context``ideate``image-to-code`、Design QA 流程 | 需要探索方向、选择视觉方案、将已选样稿落地、或交付前比对时。 | 有明确视觉真源时先忠实落地;没有真源且需要新方向时先给可比较方案,选定后再实现;最后在 `design-qa.md` 诚实记录通过或阻塞。 |
| `imagegen` | 现有资产无法承担完整视觉面时。 | 先用 A01/G01 实图作为参考,明确输出是完整不透明面板还是透明叠加件;检查实际尺寸/Alpha 后再放入项目。不能用截图代替资产。 |
| `superpowers:brainstorming``superpowers:writing-plans` | 新模块或会改变页面行为的创作工作开始前。 | 先写清用户目标、交互和验收,不以“尽快”跳过设计决定。 |
| `superpowers:test-driven-development` | 修改功能、路由契约、可审计视觉结构前。 | 先让最小契约测试失败,再做实现;视觉资产同样写尺寸/Alpha/引用审计。 |
| `superpowers:systematic-debugging` | 截图、路由、构建或测试出现意外时。 | 先复现和定位单一根因,禁止靠删测试、盲改样式掩盖问题。 |
| `superpowers:verification-before-completion` | 任何“完成/修好/通过”的表述前。 | 以命令输出、运行截图和用户确认作证据;不能用意图代替验证。 |
若新电脑没有 Product Design 或 ImageGen 插件,应先安装/启用同等能力;在能力缺失时不能假装完成视觉审计或资产生成。新环境先执行 `python --version``node --version` 确认可用环境;当前用户已确认 Python 已安装。若 Product Design 的持久 context 预检仍失败,记录原因即可,不得阻塞对项目内真实截图、资产和测试的接管。
## 8. 验证命令
先看工作区,再运行与改动相匹配的聚焦测试;模块阶段结束前运行全量 PowerShell 审计:
```powershell
git status --short
Get-ChildItem tests -Filter *.ps1 | Sort-Object Name | ForEach-Object {
& powershell.exe -NoProfile -ExecutionPolicy Bypass -File $_.FullName
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
}
git diff --check
```
A02 当前的最小回归集合:
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File tests/a02-asset-alpha-audit.ps1
powershell.exe -NoProfile -ExecutionPolicy Bypass -File tests/a01-a02-ui-contract.ps1
powershell.exe -NoProfile -ExecutionPolicy Bypass -File tests/compile-audit.ps1
powershell.exe -NoProfile -ExecutionPolicy Bypass -File tests/full-page-visual-contract.ps1
git diff --check
```
G06 当前候选继续或验收前的最小回归集合:
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File tests/g06-search-flow-contract.ps1
node tests/g06-search-flow-runtime-smoke.js http://localhost:5173
node scripts/capture-chrome-page.js "http://localhost:5173/#/pages/genealogy/g06-search-genealogies" ".search-page" "docs/design/screens/runtime/<日期>/G06-selected-strip-initial-360x800.png" 360 800
git diff --check
```
若 G06 发生视觉改动,必须用真实输入分别截取有结果和无结果状态,再用 Product Design 审视;只有三态、相关测试与用户确认齐全,才能更新为验收通过。
`git diff --check` 可能提示仓库既有的 CRLF 行尾警告;只有真正的空白错误或非零退出码才算失败。不要 reset、checkout、清空或覆盖用户已有改动。
## 9. 文档与资源维护清单
每次完成一个页面/模块,按事实更新:
- `docs/规划.md`:用户验收状态与下一个模块。
- `docs/design/P00_页面结构与资产清单.md`:新旧资产、尺寸、透明属性、引用位置与去留。
- `docs/design/<页面>_设计记录.md`:设计意图、截图、交互与测试。
- `docs/design/screens/runtime/<日期>/`:真实运行截图。
- `design-qa.md`:修复项、未决项与最终 `passed/blocked` 结果。
- `docs/交接记录.md` 与本手册:真实停点、风险、下一步;未获得用户确认就不能写成“已完成”。
当前工作区已经存在用户和历史任务的未提交改动。后续工作只能触及当前任务需要的文件;若改动与当前设计目标无关,只报告,不清理。