# 家谱基础页面状态收口 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:** 让尚未获得后端家谱接口的基础页面明确展示开发状态,并阻止表单和操作按钮伪造成功结果。 **Architecture:** 仅在家谱列表、创建/加入、审核、成员管理、邀请、世系和字辈页面加载一个轻量状态脚本。页面通过 `data-feature-status` 和 `data-feature-message` 提供文案;脚本统一插入提示条,并拦截页面主内容区的提交与按钮操作。 **Tech Stack:** 原生 JavaScript、静态 HTML/CSS、Node LTS `node:test`。 ## Global Constraints - 保留现有页面、布局、视觉类名和导航结构,不删除用户设计。 - 不调用 `PC.openapi2.json` 中不存在的家谱、成员、世系或字辈接口。 - 所有新增注释使用中文;不写入测试账号或密码。 - 当前工作区含用户未提交修改,不执行提交、重置或清理操作。 --- ### Task 1: 建立失败测试 **Files:** - Create: `tests/pending-pages.test.js` - Modify: `tests/pc-scope.test.js` **Interfaces:** - Consumes: `PageAvailability.buildBanner(message)` 与 `PageAvailability.isPendingPage(body)`。 - Produces: 对状态脚本、页面标记和脚本加载的约束。 - [x] **Step 1: 写入失败测试** ```js test('待开发页面生成明确且转义后的状态提示', () => { assert.match(PageAvailability.buildBanner('家谱基础服务正在开发中'), /家谱基础服务正在开发中/); assert.match(PageAvailability.buildBanner(' ``` - [x] **Step 3: 运行完整测试** Run: `$env:Path = 'C:\\Program Files\\nodejs;' + $env:Path; npm.cmd test` Expected: 全部测试通过。 ### Task 4: 静态验证 **Files:** - Test: `tests/pc-scope.test.js` **Interfaces:** - Consumes: 8 个已标记页面。 - Produces: 所有待开发页面有状态文案,所有页面脚本路径存在。 - [x] **Step 1: 执行脚本引用检查** Run: PowerShell 扫描全部 HTML 的 `src="*.js"`,确认每个本地脚本文件存在。 - [x] **Step 2: 执行格式检查** Run: `git diff --check` Expected: 无缺失脚本和空白格式错误。