# 家谱基础页面状态收口 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: 无缺失脚本和空白格式错误。