Files
jiapuapp/docs/superpowers/plans/2026-07-16-genealogy-background-opacity.md
T
2026-07-20 06:52:33 +08:00

145 lines
5.3 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.
# G 模块公共背景 28% 透明度实施计划
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** 让 9 个活动 G 页面通过共享背景组件统一使用 28% 不透明度的连续长背景画层,同时保持宣纸底色、内容层和现有布局不变。
**Architecture:** `components/GenealogyPageBackground.vue` 继续作为背景显示规则的唯一所有者,只在图片画层增加 `opacity: 0.28``tests/genealogy-shared-background-contract.ps1` 锁定该值及单一所有权,页面级运行 smoke 和截图负责验证布局与可读性没有回归。
**Tech Stack:** uni-app、Vue 3、SCSS/CSS、PowerShell 契约测试、Node.js Chrome DevTools Protocol 运行 smoke。
## Global Constraints
- 只修改共享背景图片画层,不修改背景 PNG、母版、裁切、贴底方式或页面滚动结构。
- G01、G03、G05、G06、G08、G09、G10、G11、G12 统一生效;各页面不得重复定义透明度。
- H5 截图仅作为内部候选;Android/HBuilderX 真机或模拟器仍待复核。
- 不使用多代理、worktree,不执行 `git add``commit``push``reset``checkout`
- 保留所有已有修改、未跟踪文件、测试、文档和证据。
---
### Task 1: 用共享背景契约锁定 28% 不透明度
**Files:**
- Modify: `tests/genealogy-shared-background-contract.ps1`
- Test: `tests/genealogy-shared-background-contract.ps1`
**Interfaces:**
- Consumes: `.genealogy-page-background__art` 作为共享长背景图片画层。
- Produces: 背景透明度唯一值 `opacity: 0.28` 的仓库契约。
- [ ] **Step 1: 写入会失败的透明度与单一所有权断言**
在组件画层断言之后加入:
```powershell
Assert-Contract ($componentSource -match '(?s)\.genealogy-page-background__art\s*\{[^}]*opacity:\s*0\.28;') 'shared artwork must use the approved 28% opacity'
```
在每个 G 页面循环中加入:
```powershell
Assert-Contract ($pageSource -notmatch '(?s)\.genealogy-page-background__art\s*\{[^}]*opacity:') "$route must not override the shared background opacity"
```
- [ ] **Step 2: 运行契约并确认按预期失败**
Run:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File tests/genealogy-shared-background-contract.ps1
```
Expected: FAIL,错误包含 `shared artwork must use the approved 28% opacity`
---
### Task 2: 在共享组件实现 28% 画层不透明度
**Files:**
- Modify: `components/GenealogyPageBackground.vue`
- Test: `tests/genealogy-shared-background-contract.ps1`
**Interfaces:**
- Consumes: Task 1 的 `opacity: 0.28` 契约。
- Produces: 9 个活动 G 页面共用的淡化背景,无页面级覆盖。
- [ ] **Step 1: 最小修改共享画层样式**
将画层规则改为:
```css
.genealogy-page-background__art {
position: absolute;
bottom: 0;
right: 0;
left: 0;
display: block;
width: 100%;
opacity: 0.28;
}
```
- [ ] **Step 2: 运行契约并确认通过**
Run:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File tests/genealogy-shared-background-contract.ps1
```
Expected: `PASS G genealogy shared background contract`
- [ ] **Step 3: 证明契约能捕获回归**
临时把 `opacity: 0.28` 改回无透明度,运行同一契约并确认失败;随后恢复 `opacity: 0.28`,再次运行并确认通过。临时变化不得保留。
---
### Task 3: 运行回归、截图并更新内部状态
**Files:**
- Modify: `docs/交接记录.md`
- Modify: `docs/验收规划.md`
- Modify: `docs/design/G01_列表背景候选与换机重建.md`
- Modify: `design-qa.md`
- Evidence: `docs/design/screens/runtime/2026-07-16/`
**Interfaces:**
- Consumes: Task 2 已通过契约的共享组件。
- Produces: 五档 G01 H5 内部候选证据、其余 G 页面运行回归结果,以及不夸大验收层级的交接记录。
- [ ] **Step 1: 顺序运行 G 页面 smoke,避免调试端口竞争**
Run:
```powershell
node tests/g01-empty-state-runtime-smoke.js http://localhost:5173
node tests/g03-create-flow-runtime-smoke.js http://localhost:5173
node tests/g05-overview-runtime-smoke.js http://localhost:5173
node tests/g06-search-flow-runtime-smoke.js http://localhost:5173
node tests/g08-g10-application-flow-runtime-smoke.js http://localhost:5173
node tests/g11-g12-settings-poems-runtime-smoke.js http://localhost:5173
```
Expected: 六组脚本全部输出 `PASS`,无浏览器异常或 `console.error`
- [ ] **Step 2: 生成并检查 G01 五档截图**
尺寸为 `320×568``360×640``360×800``412×915``412×1000`。截图必须确认:背景比原候选明显变淡;标题、卡片、文字、按钮和底栏未同步变淡;左右不裁剪;内部列表滚动后底栏仍固定。
- [ ] **Step 3: 更新权威状态文档**
文档统一写明:用户确认共享背景画层为 28% 不透明度;当前只有 H5 内部候选证据;G01 及其余 G 页面没有因此获得整页验收;Android/HBuilderX 与 4GB Android 长图性能仍待复核。
- [ ] **Step 4: 最终一致性检查**
Run:
```powershell
git diff --check
git status --short
```
Expected: `git diff --check` 退出码为 0;只报告已有换行符提示,不覆盖或清理工作区中的任何既有修改。