# PC 接口对接记录全量复核 Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** 重新验证 `pc-api-page-integration-tracker-2026-07-09.md` 中 PC-000 至 PC-013 的完成状态,并以当前代码、当前 PC YAML 和本次命令结果修正记录。 **Architecture:** `genealogy-pc-openapi.yaml` 的 `paths` 是接口范围唯一来源;代码和 HTML 是当前实现来源;Node 测试、语法检查和静态扫描是可重复验证来源。无法由前端离线验证的测试网关可用性明确标记为“外部环境待验证”,不将其当作页面对接完成证据。 **Tech Stack:** OpenAPI YAML、原生 JavaScript、Node `assert` 测试、PowerShell 静态扫描、Git 差异检查。 ## Global Constraints - 计划创建时间:2026-07-10 09:20:38 +08:00。 - 范围仅限追踪表中状态为“已完成”或“已修正”的 PC-000 至 PC-013;不新增业务接口或页面功能。 - 复核时不采用旧 APP 路径,不以历史测试文字代替当前命令结果。 - 每个结论必须记录命令、结果、时间和证据边界;证据不足必须改为“复核失败/待修正”或“外部环境待验证”。 - 仅在记录与事实不一致时修改文档;不改无关业务代码。 --- ### Task 1: 复核契约和配置项 **Files:** - Modify: `docs/pc-api-page-integration-tracker-2026-07-09.md` - Read: `genealogy-pc-openapi.yaml` - Read: `config.js` - Read: `public/js/api-client.js` - Test: `tests/config.test.js` - Test: `tests/api-client.test.js` **Covers:** PC-000、PC-001、PC-007、PC-010。 - [x] **Step 1: 核对 YAML 路径与客户端配置** Run: `rg -n "^ /captcha/|^ /auth/code:|^ /genealogy/pc/auth/|^ /genealogy/pc/files/|^ /genealogy/region/" genealogy-pc-openapi.yaml; rg -n "test-genealogy-api|ced7e5f0498645c6ec642dcf450b036f|web_pc" config.js public/js/api-client.js` Expected: 当前 YAML 只包含验证码、PC 认证、PC 文件、地区路径;代码使用当前 PC clientId 和开发环境 HTTP 基础地址。 - [x] **Step 2: 运行配置与 API 客户端测试** Run: `node tests\\config.test.js; node tests\\api-client.test.js; node --check config.js; node --check public\\js\\api-client.js` Expected: 四条命令均通过。 ### Task 2: 复核通用工具与未覆盖业务降级 **Files:** - Modify: `docs/pc-api-page-integration-tracker-2026-07-09.md` - Read: `utils/StorageUtil.js` - Read: `utils/FormUtil.js` - Read: `utils/RequestUtil.js` - Read: `public/js/api-client.js` - Test: `tests/utils.test.js` - Test: `tests/api-client.test.js` **Covers:** PC-002、PC-008。 - [x] **Step 1: 运行工具和 API 降级测试** Run: `node tests\\utils.test.js; node tests\\api-client.test.js; node tests\\pc-api-contract.test.js` Expected: 三个测试通过,PC 请求契约扫描无遗留项。 - [x] **Step 2: 核对未覆盖业务的错误边界** Run: `rg -n "PC_API_NOT_AVAILABLE" public\\js\\api-client.js` Expected: 未被 YAML `paths` 覆盖的业务方法统一受控失败,不生成旧 APP 网络请求。 ### Task 3: 复核认证、验证码与资料页面 **Files:** - Modify: `docs/pc-api-page-integration-tracker-2026-07-09.md` - Read: `login.html` - Read: `register.html` - Read: `forgot-password.html` - Read: `public/js/auth-pages.js` - Read: `public/js/captcha-pages.js` - Read: `utils/MessageUtil.js` - Test: `tests/auth-pages.test.js` - Test: `tests/captcha-pages.test.js` - Test: `tests/auth-page-structure.test.js` - Test: `tests/auth-message.test.js` - Test: `tests/profile-pages.test.js` - Test: `tests/security-pages.test.js` **Covers:** PC-003、PC-009、PC-011、PC-012、PC-013。 - [x] **Step 1: 检查认证场景、接口路径、TAC 挂载和 layui 提示** Run: `rg -n "WEB_H5_LOGIN|WEB_H5_REGISTER|WEB_H5_FORGOT_PASSWORD|captcha-modal.css|auth-captcha-modal|MessageUtil|layer.msg" login.html register.html forgot-password.html public\\js\\auth-pages.js public\\js\\captcha-pages.js utils\\MessageUtil.js` Expected: 三张认证页分别使用正确场景;验证码使用页面级挂载点;提示由 `MessageUtil`/layui 提供。 - [x] **Step 2: 运行认证和验证码测试** Run: `node tests\\auth-pages.test.js; node tests\\captcha-pages.test.js; node tests\\auth-page-structure.test.js; node tests\\auth-message.test.js; node tests\\profile-pages.test.js; node tests\\security-pages.test.js; node --check public\\js\\auth-pages.js; node --check public\\js\\captcha-pages.js; node --check utils\\MessageUtil.js` Expected: 所有测试和语法检查通过。 - [x] **Step 3: 记录网关外部依赖边界** Run: `curl.exe -I --max-time 15 http://test-genealogy-api.ddxcjp.cn/captcha/require` Expected: 仅记录当次 HTTP 结果;无论结果如何,不将测试网关可用性视为前端实现的通过或失败。 ### Task 4: 复核文件与地区公共能力 **Files:** - Modify: `docs/pc-api-page-integration-tracker-2026-07-09.md` - Read: `public/js/upload-pages.js` - Read: `public/js/region-pages.js` - Test: `tests/upload-pages.test.js` - Test: `tests/region-pages.test.js` **Covers:** PC-004、PC-005、PC-006。 - [x] **Step 1: 运行文件和地区测试** Run: `node tests\\upload-pages.test.js; node tests\\region-pages.test.js; node --check public\\js\\upload-pages.js; node --check public\\js\\region-pages.js` Expected: 所有测试和语法检查通过。 - [x] **Step 2: 扫描旧路径与页面覆盖边界** Run: `rg -n "PC_API_NOT_AVAILABLE" utils\\ApiClient.js` Expected: 文件、地区旧 APP 路径无匹配;业务页面覆盖边界仍由 `PC_API_NOT_AVAILABLE` 保护。 ### Task 5: 全量验证与追踪表修正 **Files:** - Modify: `docs/pc-api-page-integration-tracker-2026-07-09.md` - Modify: `docs/superpowers/plans/2026-07-10-pc-tracker-reverification.md` - [x] **Step 1: 运行全量测试和差异检查** Run: `Get-ChildItem -Path tests -Filter *.test.js | Sort-Object Name | ForEach-Object { node $_.FullName }; git diff --check` Expected: 所有测试通过,差异检查无空白错误。 - [x] **Step 2: 写入复核矩阵和最终状态** Record: PC-000 至 PC-013 每项的本次复核时间、验证命令、结论和外部环境边界;任何不一致项从“已完成”改为“待修正”。 ## 自检 - 覆盖范围:PC-000 至 PC-013 的所有“已完成/已修正”项均被归入一个复核任务。 - 来源一致性:接口范围只引用 `genealogy-pc-openapi.yaml` 的 `paths`,不引用旧 APP 文档。 - 状态规则:只有当前命令和当前代码同时支持的结论才能保留“已完成”。