Files
jiapu/docs/superpowers/plans/2026-07-11-residual-pc-entry-closure.md
T
2026-07-11 21:36:26 +08:00

4.5 KiB
Raw Blame History

剩余用户 PC 业务入口收口 Implementation Plan

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: 让剩余未有正式接口支持的用户 PC 业务入口显示明确状态,避免跳转到看似可用的分享、会员或家谱管理流程。

Architecture: 复用 public/js/pending-pages.js 的状态契约和链接收束规则。仅标记 profile-family-home.htmlprofile-share.htmlprofile-services.html;账号主页、个人资料、安全设置和家族圈动态继续使用现有真实功能。

Tech Stack: 原生 JavaScript、静态 HTML/CSS、Node LTS node:test

Global Constraints

  • 保留现有页面、布局、视觉类名和导航结构,不删除用户设计。
  • PC.openapi2.json 中不存在家谱主页、邀请奖励和会员订单的正式接口,不得伪造请求或静态数据为真实业务。
  • profile-family-home.html 的家族圈动态入口继续跳转到 profile-feed.html
  • 所有新增注释使用中文;不写入测试账号或密码。
  • 当前工作区含用户未提交修改,不执行提交、重置或清理操作。

Task 1: 扩展入口状态测试

Files:

  • Modify: tests/pending-pages.test.js

Interfaces:

  • Consumes: 目标页面的 data-feature-status="pending"、状态脚本引用与 data-feature-link="available"

  • Produces: 剩余业务入口的静态约束,及真实账户页面不被误标记的约束。

  • Step 1: 写入失败测试

新增以下数组并加入现有待开发页面检查:

const residualPendingPages = [
  'profile-family-home.html',
  'profile-share.html',
  'profile-services.html'
];

新增断言:profile-family-home.htmlprofile-feed.html 链接必须带有 data-feature-link="available"profile.htmlprofile-data.htmlprofile-security.html 不得含待开发状态标记。

  • Step 2: 运行失败测试

Run: $env:Path = 'C:\\Program Files\\nodejs;' + $env:Path; node --test tests/pending-pages.test.js

Expected: 三个剩余入口尚未标记,测试失败。

Task 2: 标记剩余业务入口

Files:

  • Modify: profile-family-home.html
  • Modify: profile-share.html
  • Modify: profile-services.html
  • Test: tests/pending-pages.test.js

Interfaces:

  • Consumes: PageAvailability.init() 读取的页面状态属性,和 PageAvailability.shouldBlockLink(link) 的可用入口约定。

  • Produces: 状态提示、业务链接拦截,以及唯一保留的动态入口。

  • Step 1: 标记页面状态

分别在三个 body 中增加 data-feature-status="pending" 和对应中文提示:家谱主页使用“家谱概览与管理服务正在开发中,当前页面仅保留设计预览。”;应用分享使用“应用分享与邀请奖励服务正在开发中,当前页面仅保留设计预览。”;帮助与服务使用“会员与在线服务正在开发中,当前页面仅保留设计预览。”

  • Step 2: 加载统一状态脚本并放行动态入口

每页都在 utils/ApiClient.js 后增加:

<script src="utils/ApiClient.js"></script>
<script src="public/js/pending-pages.js"></script>

profile-family-home.html 中将动态链接改为:

<a class="btn primary magnetic" href="profile-feed.html" data-feature-link="available">发布动态</a>
  • Step 3: 运行测试确认通过

Run: $env:Path = 'C:\\Program Files\\nodejs;' + $env:Path; node --test tests/pending-pages.test.js

Expected: 全部状态页面和真实账户页面断言通过。

Task 3: 更新进度与验证

Files:

  • Modify: docs/规划.md
  • Modify: docs/superpowers/plans/2026-07-11-residual-pc-entry-closure.md
  • Test: tests/*.test.js

Interfaces:

  • Consumes: 全部 HTML 的本地脚本引用。

  • Produces: 已完成第三轮进度和可重复验证记录。

  • Step 1: 写入第三轮完成状态

docs/规划.md 的“实施进度”中增加已完成第三轮,说明三类剩余 PC 业务入口已收口,家族圈动态未受影响。

  • Step 2: 执行完整测试

Run: $env:Path = 'C:\\Program Files\\nodejs;' + $env:Path; npm.cmd test

Expected: 所有 Node 测试通过。

  • Step 3: 执行静态检查

Run: PowerShell 扫描全部 HTML 的 src="*.js",随后运行 git diff --check

Expected: 每个本地脚本文件存在,且没有空白格式错误。