Files
jiapuapp/docs/项目当前总览.md
T
2026-07-22 17:31:38 +08:00

122 lines
12 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.
# 项目当前总览
> 当前阶段:阶段 1——导航栈与 T01 大规模世系树书面设计已收口
> 当前状态:三位审查者已完成导航与 T01 的独立审查、交叉补漏和终审;业务代码尚未实施,下一步从导航失败测试开始
> 当前提交:`eced3d1 完成全项目响应式审核与换机交接`
> 更新日期:2026-07-22
## 当前目标
阶段 0 的清理和验证基线已经完成。当前主代理与两位固定评审者已把下一轮工作收敛为两个严格串行阶段:先统一导航栈语义,再在后端新图合同通过后重建 T01 大规模世系树。当前只完成中文设计和实施计划,没有接入新接口、迁移导航业务代码或改动 T01 运行时。
## 当前权威资料
- 治理设计:`docs/家谱项目全量治理设计.md`
- 当前实施计划:`docs/家谱项目全量治理实施计划.md`
- 视觉资产与构建:`docs/视觉资产与构建基线.md`
- 页面、流程与接口关系:`docs/接口与页面映射总表.md`
- 接口导出:`APP.openapi.json``APP.openapi.yaml`
- schema v3 视觉资产注册表:`design-pipeline/manifests/runtime-assets.json`
- 九宫格所有者:`styles/adaptive-frame-profiles.scss`
- 密码策略所有者:`utils/validation.js`
- 响应式覆盖:`tests/responsive-layout-coverage.json`
- 固定尺寸例外:`tests/responsive-layout-allowlist.json`
- 活动路由:`pages.json`;项目固定使用 Vue 3`uni.scss` 是 Sass 设计令牌唯一入口。
阶段 0 的临时清理清单已在长期结论迁入当前唯一所有者后删除。旧设计记录、规格、计划、交接和 H5/静态设计图中的有效事实已经迁移,旧文件已删除,不再存在并行入口。
## 接口文档所有权
Apifox 是接口合同的唯一源头。`APP.openapi.json` 用于自动扫描和测试,`APP.openapi.yaml` 用于人工阅读与跨工具导入。两份文件都由用户从 Apifox 导出;后续目标合同要求它们来自同一版本并保持语义一致,不得分别手工维护。阶段 0 只保护原文件,尚未把“当前两份导出语义完全一致”当作已验证结论。
当前 JSON 文档为 OpenAPI `3.0.1`,包含 `112` 条路径、`153` 个操作和 `72` 个模型。完整的 JSON/YAML 语义一致性合同将在阶段 1 建立。
阶段 0 结束时,JSON 的 SHA-256 为 `2b5b9a0ffdcd901c361fb7500bfd354d5fd6d038639fb6350c7d1ef7c0d43ab9`YAML 的 SHA-256 为 `ce6553577d441fee8c5023a87c30f9b411469cc1e7ce2d3c237314df0272ad77`。Git 只读状态仍为 YAML 已修改、JSON 未跟踪,与接管时一致;阶段 0 没有改写两份导出。
## 必须保护的用户改动
- `APP.openapi.yaml`:用户当前修改。
- `APP.openapi.json`:用户新导出的未跟踪文件。
- `docs/家谱项目全量治理设计.md`:已确认中文设计。
- `docs/家谱项目全量治理实施计划.md`:已改写为导航栈与 T01 的当前中文实施计划。
任何清理批次都不得覆盖、恢复或删除以上文件。
## 清理前基线
- 五个核心验证:全部通过。
- PowerShell 合同:`129` 个,`128` 个通过,`1` 个旧 A01 固定画布合同失败。
- Vue 覆盖:实际 `66`、清单 `66`、缺失 `0`、陈旧 `0`
- Vue 中 `100% 100% no-repeat``0`
- Vue 中直接声明 `border-image-slice``0`
- 文档:`261` 个;PowerShell 测试:`129` 个;Node 测试:`29` 个。
- `static/``128` 个正式文件,约 `95.45 MiB`
以上数字只记录清理起点,不是必须保持的目标。
## 阶段 0 最终结果
- 旧 A01 固定画布、PSD、Photoshop、v2 按钮和旧卷轴入口已经三人一致退役;没有通过重建旧预览制造假绿。
- schema v3 注册表已经完整覆盖当前 `static/assets`:认证直接资产、其余应用直接资产、共享卷轴、六张长页面背景和 G01 空态边框各有唯一 owner;旧 G01 候选与模块背景清单及注册例外已经删除。
- `design-pipeline/manifests/shared-scroll-skins-v3.json` 只拥有母版、处理、物理输出和质量规则,不再拥有页面槽位或 `uni-app mode`
- `tests/runtime-assets-contract.ps1` 精确闭合 `79` 个正式输出、物理文件和源码消费者;`tests/retired-asset-removal-contract.ps1` 防止旧候选、旧图标、TAC 残件与旧构建入口回归。
- 设计管线当前为 Node `25/25 PASS`、Python `19/19 PASS`;四张共享卷轴、六张长背景和 G01 空态边框均可真实重建并通过质量审计。
- 质量报告只含工作区相对路径;确定性测试证明相同输入连续两次得到相同字节哈希与报告。
- 六张长背景与 G01 空态边框迁移后的可见像素哈希逐张等于迁移前正式图;连续两次构建的文件 SHA-256 也完全一致。旧 Sharp 单用途依赖和专用构建器已删除。
- 已删除 `28` 个无运行时消费者的 `static/assets``3` 个旧 `static/icons``4` 个未接入业务的 TAC 文件和 `8` 个候选或伪母版;两张用户批准的 A01 选型图作为 `reference-only / non-runtime` 视觉锚点保留。
- 阶段 0 验收时的 MuMu 证据:`emulator-5554` 当时在线,ADB 设备字段为 `model:SDY_AN00`,系统型号为 `SDY-AN00`,物理尺寸 `720×1280`density `320 dpi`。本轮原生截图逐张打开复核了 A01、G01、T01 和 F01,未见缺图、透明错误、异常裁切或样式回退;复核结束后已回到 A01 页面,未启动、关闭或调整模拟器。
- `docs/接口与页面映射总表.md` 已按 `pages.json` 建立 `52/52` 活动页面映射;除 A04 与 T01 专项结论外,其余具体接口明确标记为“待对应业务阶段 OpenAPI 审查”。
- 第一轮六项产品优化已经完成:G01/G03/G06 统一读取 `onLoad(query)`;AppDialog 统一安全区与高度预算;AppTabbar/GenealogyCard 补齐可访问点击语义;G10 拒绝原因建立错误关联与失败聚焦;A04/A05/M04 统一消费唯一密码策略;T01 可在视图漂移后精确回到当前成员。
- 后续产品阶段按顺序为导航栈语义统一、T01 大规模世系树、短信验证码完整状态机、跨页面领域数据持久化、全局文字层级和无障碍第二轮;不得混合实施。
- 文档权威迁移已删除 `198` 个旧 Markdown、`35` 张旧 H5/静态设计图、`4` 个只保护旧资料的测试和 `.superpowers/sdd``12` 个过程文件;阶段 0 临时清单随后也已删除,当前 `docs/` 只保留 `5` 个长期中文 Markdown 入口。
- 浏览器截图链已把 G03、G06、G08—G12、T06、F02、N01 的有效状态断言迁回各自现有运行时合同;G01、T03—T08、T07 三个有价值的浏览器测试只剥离截图写盘,继续验证状态、滚动、溢出与交互。
- 已删除固定 Chrome 截图助手、联系表、8 个只保护截图助手的合同,以及迁移后重复的 N01/A02 合同;`tests/mumu-visual-acceptance-boundary-contract.ps1` 现在唯一约束“仓库不维护自动截图证据链、最终视觉通过只来自 MuMu”。
当前全量 PowerShell 合同为 `119/119 PASS`;五个核心验证、密码策略 Node 冒烟、设计管线 Node `25/25`、Python `19/19`、四份资产清单验证和共享卷轴质量验证均通过。根 `tests/` 现有 `29` 个 Node 文件,其中唯一不依赖 H5/CDP 服务的密码策略冒烟已实际执行;其余运行时文件只在具备 `127.0.0.1:9222` 调试页时执行,不能用语法检查冒充运行通过。
清理结束后,`static/` 精确保留 `79` 个正式文件、共 `70,414,397` 字节;`tmp/``unpackage/``design-pipeline/generated/` 均不存在。三位审查者确认删除的三类临时输出分别为 `94``188``3` 个文件;正式生成资产仍由清单和构建器恢复,质量报告不作为长期资料保留。
## 当前规划结论
### 导航栈
- 52 个活动页面中只读统计为 `navigateTo 59``navigateBack 11``redirectTo 14``reLaunch 7`,活动页面合计 91 次;活动组件另有 4 次,封存 A06 另有 2 次;没有 `switchTab`
- MuMu 已复现 F01→F03 返回后残留两个 F01、A01→A04→登录后残留两个 A01、T03 同路由连续叠页,以及栈深为 1 时 F03 错回 G01。
- 三人终选两个唯一所有者:`utils/navigation-routes.js` 持有 52 条路由、父页参数映射和结果操作枚举,`utils/navigation.js` 持有五种 Uni 导航 API、六个公开语义方法、一次性结果与统一返回优先级。
- G01、F01、M01 保持自定义 Tab 根页;A01 是认证根页。T03 只保留一个原生页面实例,亲属浏览使用页内成员轨迹。
- 当前尚未新建这两个模块,也没有迁移任何页面;实施从 `tests/navigation-routes-contract.ps1` 的预期红灯开始。
### T01 大规模世系树
- 当前默认 6 人数据已存在 103→106 断线;普通节点实际半高与全局常量相差约 4rpx;10×12 压力数据约 45/54 个父分组会断线,而旧测试只检查线段数量。
- 当前布局最坏为 `O(G×N)`,单人一代时接近 `O(N²)`;页面、mock 和 OpenAPI 分别使用 `parentId`、无关系字段和递归 `children/spouses`,无法直接对接。
- 产品终选“焦点成员渐进窗口+独立全谱概览”,初始上二代/下二代;主世系为骨架,配偶并排,每段家庭关系有独立联合点,子女从对应联合点向下。
- 技术终选视口大小的单 Canvas 同画节点和边;纯 JavaScript 按“规范化→严格校验→可见投影→确定性布局→Scene/空间索引→相机”处理,DOM 只保留页头、工具条、两档抽屉、搜索、概览和无障碍线性列表。
- 当前 OpenAPI 的 v1 `/lineage/tree` 仍是递归 `LineagePersonTreeView[]`,并缺少 overview、locator、稳定关系寻址和树版本并发合同。后端问题单 `API-T01-001` 已固定四条 `/genealogy/app/v2/...` 路径、FOCUS/BOUNDARY 查询、`schemaVersion/treeVersion`、EMPTY/POPULATED 空谱判别、窗口入口与全谱根分离、严格匿名节点、以 `relationshipKind` 判别的可寻址伴侣/父子关系、空 PATCH 错误码和 Scene 原子版本;在用户重新导出通过新合同前,T01 客户端不得开始实施。
- 当前规划轮没有改写 OpenAPI 文件,没有启动、关闭或调整 MuMu,也没有修改页面与业务代码。
## 三人规则
- 总共三人:主代理与两位固定评审者。
- 三个人都完整检查文档、测试和资产,不割裂分工。
- 审查阶段只读,实际文件变更只由主代理执行。
- 删除候选必须三人一致确认;任意一人提出有效疑点时继续调查。
- 用户已授权三人一致后直接删除,无需逐文件再次确认。
## 当前禁止事项
- 不执行 Git add、commit、push、restore、checkout 或 reset。
- 不启动、关闭或调整 MuMu。
- 不删除源码、接口导出、当前权威设计或用户改动。
- 不因测试失败而删除测试。
- 不因静态搜索无匹配而直接删除资产。
- 不归档确认失效的旧内容,不保留兼容入口。
## 下一步
1.`docs/家谱项目全量治理实施计划.md` 的任务 1 先写路由注册表失败合同,再实现两个导航唯一所有者。
2. 认证、G、T、F、R、N/M 每批独立运行聚焦合同、全局响应式合同、编译审计和 MuMu 进入/返回/取消/完成/重复进入矩阵。
3. 导航门禁完全通过后,运行当前 OpenAPI 上预期失败的 T01 图合同,把 `API-T01-001` 交给后端;只接受用户从更新后的 Apifox 重新导出的 JSON/YAML。
4. 新图合同通过后,按规范化与校验、布局、Scene 与空间索引、单 Canvas、页面交互、接口回流的顺序实施 T01。
5. T01 完成后,再依次规划短信验证码、跨页面领域数据持久化、全局文字层级与无障碍第二轮,不混合阶段。