Files
tyx_AI_xhs/tasks.md
suyx 4d1ec8ba7e
Dada P0-A isolated Windows CI / validate-and-package (push) Failing after 1m5s
feat: complete TASK-WP5-03 asset allowlist
2026-08-03 18:24:16 +08:00

51 KiB
Raw Permalink Blame History

Dada P0-A 开发任务计划

文档项 内容
文档版本 1.2
编写日期 2026-07-27
当前交付 仅 P0-A Windows 本机测试版
产品需求唯一权威 PRD.md v1.10
功能导航 FeatureSummary.md 1.1
工程基线 DevelopmentPlan.md 1.2
UI 基线 UIDesign.md 1.1
TDD 基线 哈希锁定的 tdd.md,文件内版本 1.5,89 个测试族、117 个规范 case
低保真基线 Dada-P0A-LowFi.penDada-LowFi-Preview/
机器可读任务记录 tasks.manifest.json,逐任务固定 requirements、AC、DevelopmentPlan 章节、case、模块、TDD 动作、命令、证据与 UI 映射
当前状态 开发尚未开始;所有任务初始为 not_startedRELEASE.json 尚不存在
文档职责 把 WP-0 至 WP-7 拆为可执行开发任务,固定依赖、产出、测试归属和完成门禁;不修改需求、架构、UI 或测试语义

1. 冻结输入与解释规则

1.1 输入校验

输入 版本 SHA-256
PRD.md 1.10 31F93674DF1A90B557FEE3AA9E74FB084E246CA8FE09F6BD4B1DC9D56D606565
FeatureSummary.md 1.1 6F80E272AAB08A5525B54501D83F16A4F6A7A170596947BBC25F1DA54F2FE844
DevelopmentPlan.md 1.2 76CCC786E910F3E503921AEF5B9BD22976E364184BA8C0062CDCF1C5F376AC0A
UIDesign.md 1.1 40A9EA29B921989877A01253A686F12A0EDE93454F8A23ADD5C0511616FCC35C
tdd.md 文件内版本 1.5 894165E188D9B821F81E1E1418011D38D3591873DDD5A23BA8C271C322B2F66E
Dada-P0A-LowFi.pen Pencil 2.1419 个顶层画板 A352C8F205E9399EB2E6306176253AF6FF65DDDBB9FDCEA2E2FE13E3C3459975

用户输入把该 tdd.md 称为 1.3,但给出的 SHA-256 与当前文件完全一致,而文件头为 1.4。任务计划以哈希锁定的实际文件为准,因此后文统一登记为 1.4;不得把同一哈希改写为 1.3。

8 张低保真预览 PNG 的哈希已与 tdd.md 第 1.2.2 节一致。.pen 的 19 个顶层画板中,Z8p3I Canvas Index 只作设计资产索引,不属于产品页面;其余画板只约束相应页面的布局参考,不替代 UIDesign.md 的页面全集和文案权威。

1.2 权威与变更处理

  1. 产品范围、状态、权限、业务规则、数据语义和 AC 结果只由 PRD.md 决定。
  2. FeatureSummary.md 只用于导航十三个功能模块、十九个契约、状态和 AC。
  3. DevelopmentPlan.md 固定技术栈、组件边界、API、SQLite、事务、进程、存储和 WP 顺序;任务不得重新选型或留下实现二选一。
  4. UIDesign.md 固定页面、控件、文案、焦点、状态和视觉规则;低保真只作布局和层级参考。
  5. tdd.md 固定 Red-Green-Refactor、89 个父测试族、117 个规范 case、证据和门禁。本计划不合并、删除或弱化 case。
  6. 四份全局 Markdown 任一哈希变化时,全部任务停止产出通过证据并按 tdd.md 标记受影响项为 source_changed。低保真变化按 frame 影响范围局部失效;范围不可判定时失效全部 UI、视觉和 E2E 证据。

2. 任务执行协议

2.1 状态与基本单位

任务状态沿用 tdd.mdnot_startedredgreenexternally_blockedpassedsource_changed。一个开发任务可以拥有多个父测试族,但每个父测试族在本计划中只有一个开发任务主责;tdd.md 第 6.9 节中属于该父族的全部规范 case 自动归属同一任务。

每个任务按固定顺序执行:

  1. 校验冻结输入哈希和上游依赖状态。
  2. 从所属规范 case 建立最小失败测试,保存 red_reason、禁止副作用和 Red 证据。
  3. 只实现使测试通过的最小行为,不添加 PRD 之外的入口、状态、配置或回退。
  4. 运行本层、所属 WP、跨 WP 依赖和安全脱敏回归。
  5. 在测试持续 Green 时重构,不改变 OpenAPI、Schema、事务或 UI 行为。
  6. 写入 artifacts/tdd/<run_id>/ 证据;缺 Red、最终 Green 或必要人工/真实证据时不得标记 passed
  7. 在独立任务分支形成任务提交,推送到 intelligrow 组织仓库的同名 Gitea 远端分支,核对远端哈希与本地提交一致并记录交付证据;推送未成功前不得标记 passed 或开始下一任务。

2.2 Definition of Ready

任务进入 red 前必须同时满足:

  • 冻结哈希一致,受影响源没有未处理的 source_changed
  • 规范 case 的需求 ID、AC、fixture、层级、禁止副作用和证据目录已确定;
  • 外部调用使用 mock;真实验证只通过显式 pnpm validate:external 执行;
  • 测试使用临时 SQLite、临时 LocalDataRoot、独立浏览器 profile 和脱敏 fixture,不读取真实业务实例。

硬依赖未 Green 时,下游可以编写并执行只针对已冻结契约、独立 fixture 或 mock 接口的 Red 测试,也可以完成 mock 接线;不得进入依赖真实上游行为的最小 Green 实现,更不得标记 Green、passed 或工作包完成。硬依赖 Green 是从 Red 进入 Green 的前置条件,不是建立 Red 的前置条件。

2.3 Definition of Done

单个任务达到 green 必须满足:

  • 所属父测试族及全部规范 case 已保存可复现 Red 和最终 Green 结果;
  • 所有固定层级分别通过,不能用 E2E 代替 DB/API,也不能用 mock 代替 EXT-REAL
  • 状态、响应、持久化、文件、UI 和禁止副作用均有断言;
  • evidence_refs 完整且脱敏扫描通过;
  • 所属 WP 回归和本计划第 5 节的跨包契约回归通过;
  • 没有 P0-B、P1 或明确不做能力混入。
  • 任务改动已形成范围明确的本地 Git 提交,且完整提交 SHA、Gitea 组织仓库、远端分支和远端哈希核对结果已记录;个人命名空间、本地未提交、推送失败或远端哈希不一致均不满足交付条件。

任务含 EXT-REAL 或 MANUAL 层级时,本地自动化 Green 后可以进入 externally_blocked;只有真实/人工证据齐全且 Gitea 远端交付核对通过才为 passed。WP 只有在本 WP 所有任务达到其规定门禁、且“不能提前宣告”条件全部消除后才能完成。

2.4 仓库级测试接口前置

WP-0 必须建立并持续维护以下脚本:pnpm test:unittest:integrationtest:apitest:workertest:e2etest:visualtest:performancetest:securitytest:packagevalidate:tdd-tracetest:allvalidate:external。任一失败返回非零;普通 CI 不运行真实外部验证。

3. 依赖顺序与并行边界

阶段 可执行工作 硬门禁
A WP-0 全部任务 无上游;WP-0 Green 后才开放业务实现完成声明
B WP-1WP-5 的只读编译器、catalog 和资源路由骨架可启动 WP-1 依赖 WP-0WP-5 依赖 WP-0
C WP-2WP-5 继续 WP-2 依赖 WP-0、WP-1
D WP-3、WP-4、WP-5 可并行;WP-4 最终素材视觉集成等待 WP-5 WP-3/WP-4 依赖 WP-2WP-5 最终 renderer 集成依赖 WP-4
E WP-6 依赖 WP-1、WP-2、WP-5;模型页最终状态另依赖 WP-3
F WP-7 WP-0 至 WP-6 Green、三个外部阻塞具备真实验证条件

依赖未 Green 时,下游可以先写 Red、Schema fixture 或 mock 接线,但不能标记 Green。AI 网关、Resend、高德和最终真实 Chrome/Edge 是发布外部门禁,不阻止其本地状态机和 mock 分支开发,但不得伪装成已完成集成。

4. 可执行开发任务

4.1 WP-0 基础工程与本机边界

主责范围:PRIV-01、PRIV-02、NFR-01、NFR-07、NFR-09AC-24、AC-46、AC-55、AC-56。

任务 硬依赖 实现与产出 唯一主责测试族 Green / 禁止提前宣告
TASK-WP0-01 工程骨架与冻结依赖 建立 pnpm monorepo、唯一 lockfile、React/Vite/TypeScript、Fabric、Fastify、TypeBox、Drizzle/better-sqlite3、Node Worker 和 .NET 8 Supervisor 最小可运行骨架;接通第 2.4 节脚本入口 TDD-WP0-DEP-001 精确版本安装、类型检查、React/Fabric 渲染、Fastify、native 模块和随包 Node 预检通过;失败时先修订 DevelopmentPlan,不得私自换栈
TASK-WP0-02 Schema、OpenAPI 与事件基线 TASK-WP0-01 建立 TypeBox 单一 Schema 来源、OpenAPI 3.1、生成客户端、统一错误信封、correlation ID、SSE 非敏感事件和 REST refetch/bootstrap TDD-WP0-API-001TDD-WP0-EVT-001 OpenAPI snapshot 与运行校验一致;事件不承载业务真相或私有正文;断线/缺号恢复通过
TASK-WP0-03 回环访问与浏览器硬门禁 TASK-WP0-02 固定 127.0.0.1:43121、Host/Origin/CORS 防护、最小 gate shell、UA-CH 交叉校验、24 小时短期支持 Cookie、全产品路由前置 426 门禁 TDD-WP0-BND-001TDD-WP0-BRW-001TDD-WP0-BRW-002 局域网/其他 Host/Origin、非 Windows、其他品牌、错误 major、UA-CH 缺失/冲突和直调 API 均不可进入;支持分支最终 passed 等待 WP-7 真实记录
TASK-WP0-04 LocalDataRoot 与本机数据边界 TASK-WP0-01 建立目录布局、路径规范化、资源 ID 隔离、data_missing、只读素材根校验、无备份/无归档/无迁移边界和固定本机风险提示接线 TDD-WP0-DATA-001TDD-WP0-DATA-002 违规目录、符号链接和路径逃逸拒绝;已初始化根缺失不自动重建;浏览器不见绝对路径;产品无业务导入/项目包/恢复入口
TASK-WP0-05 容量状态、预留与文件一致性 TASK-WP0-02TASK-WP0-04 实现 LocalBackendStorageState、精确阈值、storage reservation、staging 流式校验、同卷原子改名、managed file、补偿队列、启动对账和物理删除后重测 TDD-WP0-STO-001TDD-WP0-STO-002TDD-WP0-STO-003TDD-WP0-FILE-001 写前只用 > 拒绝,恰好 5 GB 写入成功后 full;超限零副作用;full/unavailable 动作不同;未物理删除前不减字节
TASK-WP0-06 公开客户端缓存 TASK-WP0-02TASK-WP0-04 建立 150 MiB public allowlist LRU、Cache Storage/IndexedDB 元数据、写前淘汰和 Service Worker 路由边界 TDD-WP0-CACHE-001 逐场景枚举实际浏览器存储;internal/private/项目/提示词/未保存草稿均不进入持久缓存
TASK-WP0-07 Supervisor、凭据和运行诊断 TASK-WP0-01TASK-WP0-04TASK-WP0-05 实现单实例 mutex、固定端口检查、API/Worker 启停与有限重启、15 秒退出、Credential Manager 匿名管道注入、托盘状态、离线配置命令和脱敏诊断 TDD-WP0-SUP-001TDD-WP0-SEC-001 第二实例、端口占用、startup/api/worker degraded、凭据缺失/清除/重启和子进程残留均有确定行为;不动态换端口、不泄露凭据
TASK-WP0-08 日志、轮转和不可写联动 TASK-WP0-05TASK-WP0-07 建立 API/Worker/Supervisor JSONL 白名单日志、10 MiB/10 文件/30 天轮转、诊断复用脱敏器和日志不可写状态联动 TDD-WP0-LOG-001 日志不含密钥、邮箱、提示词、图片、绝对路径或供应商原文;日志不可写进入 unavailable 并阻断 AI
TASK-WP0-09 隔离 CI 与便携包 TASK-WP0-01TASK-WP0-08 配置 Windows Gitea Runner 隔离流水线;生成 Dada.exe、随包 Node、API/Worker、迁移、资源元数据、RELEASE.json 占位规则、START-HERE.txt、ZIP 和 SHA-256 TDD-WP0-PKG-001 CI 不读真实凭据、LocalDataRoot 或 3.57 GB 归档;包固定 43121、零真实配置/路径;正式 RELEASE 记录在 WP-7 冻结

WP-0 结束时运行:test:unittest:integrationtest:apitest:workertest:securitytest:package 和所属 E2E。真实浏览器支持记录尚未冻结时,AC-24 只能保持 Green 或 externally_blocked,不能 passed。

4.2 WP-1 认证、权限、数据模型与审计基础

主责范围:AUTH-01 至 AUTH-07、PRIV-03、PRIV-04、PRIV-06、NFR-04AC-01、AC-02、AC-22、AC-33、AC-39、AC-45、AC-49。

任务 硬依赖 实现与产出 唯一主责测试族 Green / 禁止提前宣告
TASK-WP1-01 认证数据与邀请注册事务 WP-0 建立 UserProfile、邀请码、验证码挑战、普通账号初始点数/registration_grant、幂等键与事务;接入 Resend mock TDD-WP1-AUTH-001TDD-WP1-AUTH-002 发码前/建号前复核;有效注册一次提交;无效、过期、停用、耗尽邀请零副作用
TASK-WP1-02 登录状态机、会话与登录画面 TASK-WP1-01 实现注册/登录分离入口、未注册/已注册/已注销/suspended 状态、10 分钟验证码、60 秒重发、30 天 opaque session、CSRF 和退出/暂停/注销撤销;按 Z0pf8 落实普通用户登录布局、艺术带、管理员文字入口、固定本机提示和焦点 TDD-WP1-AUTH-003TDD-WP1-AUTH-004 六类身份状态不静默换流程;验证码不可复用;会话撤销即时生效;普通与管理员 audience 分离;登录页状态与布局证据齐全
TASK-WP1-03 注册展开态、内测告知与账号名额 TASK-WP1-01TASK-WP1-02 实现版本化内测告知、必选确认、资料字段、active+suspended 普通账号 10 人上限、deleted 释放和 super_admin 不占名额;按 DVPM8 落实邀请/邮箱只读摘要、资料、告知和注册主动作 TDD-WP1-NOTICE-001TDD-WP1-SLOT-001 告知覆盖 PRD 固定事项;未同意不建号;第 11 个普通账号被阻断;多个同权限 super_admin 合法;注册展开态状态与布局证据齐全
TASK-WP1-04 管理员白名单与安全配置生效 WP-0、TASK-WP1-01TASK-WP1-02 实现 HMAC 管理员白名单、独立管理员认证、多管理员、安全配置 revision、原子应用/回滚、system 审计和离线恢复边界 TDD-WP1-ADM-001TDD-WP1-CFG-001 非白名单发码前拒绝;普通账号不能原地提升;配置失败不部分生效;部署人员不成为产品角色或审计 actor
TASK-WP1-05 注销、匿名保留与物理清理 TASK-WP1-01TASK-WP1-04 实现注销事务、立即撤权与断链、邮箱释放、匿名事件、物理清理队列和最长 180 天保留 TDD-WP1-DEL-001TDD-WP1-DEL-002 旧数据不可恢复;原邮箱只能新邀请新建;匿名事件不可反查;注销不延长私有访问审计期限
TASK-WP1-06 两类审计基础不可变性 WP-0、TASK-WP1-04TASK-WP1-05 建立 AdminOperationLog 与 PrivateContentAccessLog 表、append-only trigger、合法 retention/privacy purge 作用域和非敏感摘要 TDD-WP1-AUD-001 普通连接不能改删;两类日志不混用;正文、图片、密钥和路径不进入审计

WP-1 的认证 UI 同步实现 user-authadmin-auth 的正常、加载、失败和禁用状态。Resend mock Green 不等于正式认证 passed;真实送达与正式账号链由 WP-7 完成。

4.3 WP-2 项目、点数与 GenerationJob

主责范围:CREDIT-01 至 CREDIT-06、PROJECT-01 至 PROJECT-09、GEN-03 至 GEN-06、GEN-11、GEN-12、GEN-14、GEN-16、NFR-05AC-03 至 AC-06、AC-20、AC-21、AC-28、AC-29、AC-34、AC-35、AC-36 P0-A 子集、AC-38 P0-A 子集、AC-43、AC-44、AC-51、AC-53。

任务 硬依赖 实现与产出 唯一主责测试族 Green / 禁止提前宣告
TASK-WP2-01 项目、历史、失败草稿与空工作台 WP-0、WP-1 实现新建项目、项目内追加、固定比例、20 active、10 成功图、默认命名/重命名、failed_empty 重试和批量入回收站;按 WbDYT 落实无项目工作台艺术带、生成表单和空任务区 TDD-WP2-PROJ-001TDD-WP2-PROJ-005 新建/追加/上限不混淆;重试只新建任务;有成功图项目不能进入 failed_empty 批量操作;艺术带仅在无项目工作台出现
TASK-WP2-02 自动保存与多标签冲突 TASK-WP2-01 实现 Dada Canvas Schema、1 秒 debounce、单请求在途、最新快照合并、If-Match CAS、dirty/saving/saved/failed/conflicted、离开守卫和一次冲突本地导出 TDD-WP2-PROJ-002TDD-WP2-PROJ-004 旧标签不能覆盖或另存副本;冲突页只读且仅一次本地导出,不写 latest;刷新只恢复 saved
TASK-WP2-03 回收站、恢复与 purge TASK-WP2-01、WP-0 文件清理 实现 trashed、精确 +720h purge_at、20 active 恢复限制、立即撤权和异步物理清理 TDD-WP2-PROJ-003 满 20 时保持 trashed;purged 后立即不可读;删除排队不伪造容量下降
TASK-WP2-04 点数账户、流水与管理员调点 WP-1、WP-0 SQLite 实现 available/reserved、reserve/commit/release、不可变 ledger、operation_key、余额不足和带原因的 admin adjustment TDD-WP2-CRED-001TDD-WP2-CRED-002 生成流程 available 不为负;结算一次;调点只改 available、可为负,reserved 不变,流水和审计同事务
TASK-WP2-05 生成提交、单任务、参考图与生成中工作台 TASK-WP2-01TASK-WP2-04、WP-0 存储 实现 multipart 提交、config/cost 复核、BEGIN IMMEDIATE、活动任务部分唯一索引、参考图内存态/流式提交/关系快照、幂等和 412 重确认;按 d99Lo 落实生成中工作台、当前任务、冻结点数、critical 容量条和禁用提交 TDD-WP2-GEN-001TDD-WP2-GEN-003TDD-WP2-REF-001 同账号只建一个活动任务;第二提交返回当前任务且不建项目/关系/冻结;过期配置和无效参考图零持久副作用;生成中页面不显示假进度且提交动作按状态禁用
TASK-WP2-06 任务终态、九类错误与网关余额影响 TASK-WP2-04TASK-WP2-05WP-3 Adapter 接口 mock 实现成功/失败/rejected、输出落盘与一次结算、固定九类错误、用户动作、GatewayBalanceState model/account/unknown 影响和 pending_manual_review TDD-WP2-GEN-002TDD-WP2-BAL-001TDD-WP2-ERR-001 reference_invalidsafety_rejected 分离;供应商原文不泄露;runtime 变化不回写 ModelConfig;用户点数只释放一次
TASK-WP2-07 原图与 latest export 服务 TASK-WP2-01TASK-WP2-02、WP-0 存储 实现历史原图下载、latest JPG/PNG 资源关系、同 Blob 上传、后端失败矩阵和无导出成品空态 TDD-WP2-EXP-001TDD-WP2-EXP-002 客户端下载与后端保存结果独立;失败保留旧 latest;从未导出不自动合成;不承诺跨设备下载

WP-2 同步交付 workspacecurrent-taskprojectsproject-detailcreditssettings 的业务接线。真实模型完成态与真实点数结算仍依赖 WP-3,不得用 Adapter mock 宣告 AC-40。

4.4 WP-3 三模型契约验证与适配

主责范围:GEN-01、GEN-02、GEN-07 至 GEN-10、GEN-13、GEN-15、ADMIN-03AC-30、AC-40。

任务 硬依赖 实现与产出 唯一主责测试族 Green / 禁止提前宣告
TASK-WP3-01 ModelConfig 集合与原子替换 WP-2 实现三模型固定 seed、immutable config_version/config_set、恰好一个 enabled default、唯一正整数 priority、完整集合 CAS、替代默认错误和审计 TDD-WP3-MDL-001TDD-WP3-MDL-002 初始 1/2/3 优先级;缺失/非正/重复/零或多默认整批拒绝;切换无可见中间态;失败原集合不变
TASK-WP3-02 独立 runtime 与推荐模型 TASK-WP3-01、WP-2 余额状态 实现 runtime reason/version、configured default/runtime/recommended 三层读取、空推荐、人工恢复和余额影响审计 TDD-WP3-MDL-003TDD-WP3-BAL-001 降级/恢复不改 enabled/default/priority;推荐只从可用候选派生;成本核对不补扣用户点数
TASK-WP3-03 三个独立 Adapter 与契约证据 TASK-WP3-01、WP-2 Generation 接口 分别实现三个 Adapter、纯文字/参考图/四比例、同步/异步、响应、一图、错误映射;配置字段变化令对应模型 unverified;提供 mock 和受控真实验证 TDD-WP3-ADP-001TDD-WP3-ADP-002 三模型 fixture/证据不得共用;完整重验前不可恢复 verified;真实证据未齐时任务保持 externally_blocked
TASK-WP3-04 Worker 租约、崩溃恢复与结算接线 TASK-WP3-03TASK-WP2-06 实现领取、租约、心跳、poll、崩溃恢复、无安全引用的 unknown_retryable、一次 release 和人工成本核对 TDD-WP3-WRK-001 有上游引用只 poll、不重新 submit;未知结果终止用户任务且不双结算;Worker degraded 禁止新任务

WP-3 本地 mock 全 Green 后,如任一模型缺最后一次配置对应的真实证据,整个 WP-3 保持 externally_blockedAC-30 的纯配置行为可 GreenAC-40 不得 passed。

4.5 WP-4 桌面编辑器与导出

主责范围:EDITOR-01 至 EDITOR-09、TEXT-01 至 TEXT-14、COL-01 至 COL-05、DYN-01 至 DYN-09、EXPORT-01 至 EXPORT-06、NFR-03、NFR-06AC-07、AC-09 至 AC-12、AC-14、AC-16 至 AC-19、AC-23 P0-A 子集、AC-27、AC-32。

任务 硬依赖 实现与产出 唯一主责测试族 Green / 禁止提前宣告
TASK-WP4-01 编辑器壳、Canvas Schema 与底图 WP-2;使用 WP-5 稳定 fixture 按 UIDesign/低保真实现三栏编辑器、顶部/底部状态、Fabric 转换边界、底图填充/适配/裁剪/调色/滤镜/恢复原图和换底图 TDD-WP4-BG-001TDD-WP4-BG-002 底图参数可预览、提交、撤销、保存、重开和导出一致;换图保留覆盖层、重置底图处理并刷新色卡
TASK-WP4-02 画布选择、变换与普通贴纸 TASK-WP4-01 实现循环选择、长按候选、多选/框选、移动/缩放/旋转/翻转/透明度/复制/层级/吸附、撤销重做和 50 元素双端限制 TDD-WP4-CAN-001TDD-WP4-STK-001 50 元素可编辑保存导出,第 51 个被阻断;无图层面板、隐藏、锁定、编组;动态 UI 不改变工具尺寸
TASK-WP4-03 文字模板、字体与属性 TASK-WP4-01WP-5 模板/字体 fixture 实现必须先选模板、四类/显示名搜索/catalog 顺序/账号最近使用、多行内容、模板切换、FontFace ready、字号/缩放、填充/描边/背景/对齐/行距/字距和一次提交撤销 TDD-WP4-TXT-001TDD-WP4-TXT-002TDD-WP4-TXT-003 文本/换行/变换按规则保留;真实字体缺失使模板 unavailable;不提供普通文字或普通贴纸关键词搜索;不静默回退
TASK-WP4-04 色卡与动态贴纸 provider TASK-WP4-01WP-5 声明式资源 实现 mmcq-v1 确定五色、四个色卡 renderer、时间/地点/身份 provider、DYN004 先确认后定位、坐标保存/清理、DYN012 FONT081 标记 TDD-WP4-COL-001TDD-WP4-DYN-001TDD-WP4-DYN-002TDD-WP4-DYN-003 色卡只读原始底图且网络上传为 0;时间值重开不漂移;拒绝定位调用为 0;身份前缀一个 @DYN012 不静默换字体
TASK-WP4-05 客户端导出与结果弹层 TASK-WP4-01TASK-WP4-04TASK-WP2-07 实现四比例真实像素、sRGB、JPG 80-100/默认 92、PNG 无损、无水印、未提交修改确认、同一 Blob 下载/上传和四结果组合 UI TDD-WP4-EXP-001 确认未提交修改只形成一次撤销并进入自动保存;导出本身不额外建撤销;后端失败不撤回已成功下载
TASK-WP4-06 键盘、焦点与语义可访问性 TASK-WP4-01TASK-WP4-05 落实 skip link、焦点顺序、ARIA/live region、弹层焦点/返回、画布外等价控件、200% 缩放和 axe TDD-WP4-A11Y-001 axe critical/serious 为 0;状态不只靠颜色;异步更新不抢焦点;最长文案、弹层和主动作可达
TASK-WP4-07 视觉与性能预算 TASK-WP4-01TASK-WP4-06;最终素材依赖 WP-5 建立固定 Canvas/字体/动态值、Chrome/Edge 截图 diff、50 元素交互、自动保存、编辑器打开、导出、内存和 DOM 性能 harness TDD-WP4-VIS-001TDD-WP4-PERF-001 边界偏差、显著像素和全部性能预算符合 tdd;已知替代人工复核;不得通过放宽超时、减元素或降尺寸掩盖失败

WP-4 以 editorexport 为主 UI 单元,并回归 workspaceproject-detail 的进入/返回、保存和 latest 状态。占位字体、未校验模板或只在一个浏览器通过时不能完成。

4.6 WP-5 素材转换、发布与 P0-A 白名单

主责范围:STATIC-01 至 STATIC-04、ADMIN-06、ADMIN-07、PRIV-05、NFR-02AC-13、AC-15 P0-A 子集、AC-31、AC-42、AC-48。

任务 硬依赖 实现与产出 唯一主责测试族 Green / 禁止提前宣告
TASK-WP5-01 只读素材编译器 WP-0 建立 TypeScript CLI,只读读取规范 manifest/catalog/metadata,输出 TemplateRenderModel、版本化元数据、最小 derived 产物和源前后校验报告;不执行 Lua/Prefab TDD-WP5-MAN-001 源文件哈希/时间不变;不读证据目录;不复制全库或形成等价派生副本;内容哈希去重复用
TASK-WP5-02 普通贴纸 catalog 与虚拟目录 TASK-WP5-01 构建 part1-25 的 1,407 项 StaticStickerCatalog,保留三组重复、稳定 ID/顺序/哈希/尺寸/MIME/缩略图引用;接入虚拟列表和懒加载 TDD-WP5-CAT-001 计数、part、重复和顺序精确;原图按需加载;DOM 只保留视口和两屏缓冲
TASK-WP5-03 复杂资源注册与 P0-A 白名单 TASK-WP5-01;与 WP-4 renderer 契约联调 导入注册 332 文字、86 字体项、16 色卡、35 动态;公开 manifest 只启用 32 文字、实际字体+FONT081、COLOR001/002/008/016、10 动态和 1,407 普通贴纸 TDD-WP5-WHITE-001TDD-WP5-COL-001 白名单外复杂素材不对普通用户可见;四种色卡消费同一五色;色卡/动态不计入 25 part;不把 full_p0 分批公开
TASK-WP5-04 Immutable manifest 与三类资源隔离 TASK-WP5-01TASK-WP5-03、WP-0 gate/cache 实现 release_version、manifest/file SHA-256、public/preview/private 三类路由、鉴权、no-store/immutable 缓存和不可推导资源 URL TDD-WP5-RES-001TDD-WP5-CACHE-001 public manifest 不含 internal/private;浏览器不见绝对路径;SW/Cache/IndexedDB 实际枚举无私有或预览内容
TASK-WP5-05 后台普通贴纸上传与版本发布 TASK-WP5-02TASK-WP5-04、WP-0 存储 实现 PNG/WebP 流式校验、stable ID/part/顺序、原图与缩略图独立预留/计量、immutable release 切换和旧版本保留 TDD-WP5-UPL-001 两类文件均计入 5 GBfull/unavailable 阻断;恰好等于上限允许提交后 full;不把既有归档复制进 managed-assets
TASK-WP5-06 历史贴纸显式清理 TASK-WP5-05、WP-2 project_asset_refs、WP-1 审计 实现候选查询、同管理员确认、短期 snapshot、BEGIN IMMEDIATE 全引用复核、整批拒绝/排队、Worker 物理删除、重计量和全阶段审计 TDD-WP5-CLN-001 有任一 release/active/trashed/待发布引用则整批拒绝;排队不减容量;无自动清理;物理删除和重测后才恢复
TASK-WP5-07 内部预览授权生命周期 TASK-WP5-03TASK-WP5-04、WP-1 会话 实现批次、AssetPreviewGrant、active/revoked/expired、每次授权校验、随机 manifest item ID、撤销即时阻断和既有项目按版本渲染 TDD-WP5-PREV-001 授权不改变普通用户角色;不出现后台能力;撤销/到期阻断新取用但不破坏已保存项目

真实约 3.57 GB 归档只在受控 release job 只读校验,日常 CI 使用小型合成 fixture。WP-5 的最终人工视觉通过依赖 WP-4 renderer;两者可并行开发但不能相互用占位实现宣告完成。

4.7 WP-6 运营后台与内部运营控制

主责范围:ADMIN-01、ADMIN-02、ADMIN-04、ADMIN-05、ADMIN-08、ADMIN-09、NFR-08AC-25、AC-47、AC-50、AC-52。模型配置、点数和素材能力分别复用 WP-3、WP-2、WP-5,不转移唯一主责。

任务 硬依赖 实现与产出 唯一主责测试族 Green / 禁止提前宣告
TASK-WP6-01 后台壳、权限与安全摘要 WP-1、WP-2、WP-5 按 UIDesign 实现独立 /admin 路由域、侧栏/总览、用户、邀请码、点数、素材、预览、生成记录入口和 active super_admin 服务端授权 TDD-WP6-ADM-001 普通/预览账号无法进入;管理员与普通 session 域分离;默认列表只含脱敏摘要;无敏感配置回显
TASK-WP6-02 私有内容告知与逐次访问 TASK-WP6-01、WP-1 UserProfile/审计 实现当前 notice version bootstrap、身份+版本持久 ack、428 区域门禁、升版重阻断、“打开并记录审计”和先审计后返回内容 TDD-WP6-PRIV-001TDD-WP6-PRIV-002 跨标签、重启、重登和 Chrome/Edge 同版本不重复;hover/预取不打开;每次点击独立记录;审计失败不返回内容;不要求逐次填写原因
TASK-WP6-03 免费服务硬停止与恢复 TASK-WP6-01、WP-1/2 事务基础 实现 Resend 每日/月度、高德月度用量领取,paused_quota/provider、上限只可下调、健康检查和 super_admin 人工恢复 TDD-WP6-SVC-001TDD-WP6-SVC-002 第 81/1001 次不调用;不得提高固定上限、启用收费、自动恢复/扩容;高德暂停只影响 DYN004 自动定位
TASK-WP6-04 敏感操作审计与保留 TASK-WP6-01TASK-WP6-03、WP-5 清理 把用户、点数、邀请、模型、素材、预览、服务、余额恢复和贴纸清理各阶段纳入同事务 AdminOperationLog;实现 180 天 Worker 清理 TDD-WP6-AUD-001 两类审计严格分离、180 天内不可改删、贴纸清理请求/复核/拒绝或排队/物理结果齐全且不含正文
TASK-WP6-05 模型/服务/存储状态与诊断 TASK-WP6-01、WP-0 诊断、WP-3 runtime 实现总览、模型、服务与存储页面的 configured default/runtime/recommended 三列、Worker/网关/Resend/高德/storage 状态、REST refetch 和复制诊断 TDD-WP6-STATE-001TDD-WP6-DIAG-001 推荐可 null;runtime 变化不回写配置;只显示稳定非敏感字段和逻辑位置;无密钥、邮箱、路径、正文或供应商原文

WP-6 必须覆盖 admin-overviewadmin-usersadmin-invitesadmin-modelsadmin-assetsadmin-previewadmin-generationsadmin-services-storageadmin-audit。后台按钮的禁用态不替代服务端授权、CAS、事务或审计。

4.8 WP-7 P0-A 验收准备与发布

主责范围:PRD 第 22 节全部 52 项当前 AC 和第 23 节发布门槛;产品 AC 唯一主责仍留在 WP-0 至 WP-6WP-7 只主责 AC-41 并汇总发布证据。

任务 硬依赖 实现与产出 唯一主责测试族 Passed / 禁止提前宣告
TASK-WP7-01 候选制品与候选浏览器记录 WP-0 至 WP-6 Green 从候选便携包和当前安装的真实 Chrome/Edge 可执行文件生成 artifacts/tdd/<run_id>/release-candidate.json,记录 Windows build、品牌、major、full version、记录时间、候选制品哈希和固定端口;生成候选 ZIP 与候选 START-HERE.txt,但不写最终 RELEASE.json 支撑任务,不新增父测试族;最终发布验收由 TASK-WP7-07 主责 候选记录字段完整、脱敏且与候选制品一致;只作为后续精确环境输入,不能标记发布冻结或替代最终 RELEASE 证据
TASK-WP7-02 三模型真实契约验收 TASK-WP7-01、WP-3 Green、受控凭据 对三个模型分别运行纯文字、参考图、四比例、同步/异步、响应、九类错误、结算和契约变化重验,保存脱敏证据 TDD-WP7-EXT-001 每个模型独立证据齐全且匹配最后配置;任一失败保持 externally_blocked;不共享 verified 标记
TASK-WP7-03 Resend 真实发布门槛 TASK-WP7-01、WP-1/WP-6 Green、受控域名 核验 SPF/DKIM、免费规则;QQ/163/企业邮箱各 20 封至少 19 封在 2 分钟内送达;用正式链完成普通/管理员认证 TDD-WP7-EXT-002 人工统计脱敏;开发预置账号和 mock 不能作为证据;未达门槛不启动实际 P0-A 验收
TASK-WP7-04 高德真实发布门槛 TASK-WP7-01、WP-4/WP-6 Green、受控 Key 核验定位/逆地理、QPS、白名单、安全限制、每月 1,000 次硬停止和 DYN004 确认流程 TDD-WP7-EXT-003 真实测试坐标不关联真实项目;不发第 1001 次;不启用付费或自动扩容;失败保持 externally_blocked
TASK-WP7-05 候选精确环境 UI、视觉、性能与可访问性验收 TASK-WP7-01TASK-WP7-04 严格使用候选记录中的两个真实 full version,在 1920×1080、DPR 1、100%/200% 下重跑 AC-24、AC-32、全部 E2E、视觉、性能、下载、文件选择和逐个非 N/A 页面状态;按 frame 对照低保真 TDD-WP7-UI-001 22 个 coverage unit 全部有证据;候选环境与记录任何漂移均使本任务重跑;无独立 Pencil frame 的页面不漏测;Canvas Index 不计产品页
TASK-WP7-06 追踪闭环与最终 AC 预冻结验收 TASK-WP7-01TASK-WP7-05 运行 test:allvalidate:tdd-trace;汇总候选制品、外部、UI/视觉/性能证据;用固定 super_admin/普通账号及正常链创建临时第二普通账号完成 52 AC;确认候选浏览器字段在验收期间未漂移 TDD-WP7-AC-001 52/52 当前 AC passed109 需求 ID、13 模块、19 契约、9 错误、89/89 父族、117/117 case 完整;未来四项不计入;未通过时不得写最终 RELEASE.json
TASK-WP7-07 最终 RELEASE 冻结、制品生成与泄漏扫描 TASK-WP7-06 验收通过后把未漂移的候选浏览器记录写入最终 RELEASE.json,生成最终 ZIP、SHA-256 和 START-HERE.txt;把 RELEASE SHA-256 写入最终 evidence.json;扫描源码、Git、最终 ZIP、DB 配置、manifest、日志、截图、trace/evidence,并执行最终 package/support-gate smoke TDD-WP7-REL-001TDD-WP7-SEC-001 最终记录、制品、Windows build、两个 full version、固定 major 和端口一致;零真实敏感值/用户绝对路径;最终写入或扫描失败时不得发布,且不能沿用候选 passed 状态冒充最终冻结

任一真实外部门槛失败时,不得开始 P0-A 实际验收,也不得把 WP-7 或整体发布标记 passed。

5. 跨工作包集成任务

下列集成门禁不创建新的产品主责或测试族;由上游任务交付接口,下游任务消费并共同回归:

集成门禁 上游 -> 下游 必须证明
INT-01 存储状态与项目 WP-0 -> WP-2 full 可纯 JSON 保存、unavailable 拒绝新增后端写;项目只保存已提交资源 ID;删除完成后物理重测
INT-02 存储状态与导出 WP-0 -> WP-2/WP-4 客户端下载与 latest 上传解耦;full/unavailable 不覆盖旧 latest;失败不撤回已下载文件
INT-03 存储状态与素材 WP-0 -> WP-5 只读归档不复制;managed/derived 受 5 GB 约束;原图/缩略图独立预留和计量
INT-04 浏览器 gate WP-0 -> WP-1 至 WP-7 全部产品 HTML、bundle 和 API 均在 gate 后;阻断页不读取身份、业务、资源或容量
INT-05 安全配置应用 WP-0 -> WP-1/WP-6 API 原子应用后才生效;离线执行者无产品角色;失败无部分生效且有允许的 system 审计
INT-06 任务诊断 WP-2 -> WP-3/WP-6 未知上游结果进入成本核对,不新增用户任务状态、不补扣点数、不泄露供应商原文
INT-07 模型三层状态 WP-3 -> WP-2/WP-6 configured default、runtime availability、recommended 独立;runtime 降级不改配置;推荐可空
INT-08 私有告知 WP-1 -> WP-6 UserProfile 按身份+版本持久;区域服务端门禁;每次打开仍先写独立访问审计
INT-09 贴纸引用与清理 WP-2/WP-5 -> WP-6/WP-0 release、active/trashed 项目和待发布引用阻止整批清理;排队不减容量;物理删除后重测
INT-10 编辑器真实素材 WP-5 -> WP-4/WP-7 编辑预览与导出使用同一声明式 renderer/版本/字体;白名单、替代项和 Chrome/Edge 视觉证据一致

任一 INT-* 失败时,涉及的上下游任务均不能超过 Green;若失败来自真实环境或外部依赖,则保持 externally_blocked,不以局部 mock 结果覆盖。

6. 页面与状态交付归属

6.1 UIDesign coverage unit 归属

coverage unit 实现主责任务 最终证据任务
support-gate TASK-WP0-03 TASK-WP7-05
user-auth TASK-WP1-02TASK-WP1-03 TASK-WP7-03TASK-WP7-05
workspace TASK-WP2-01TASK-WP2-05 TASK-WP7-05
current-task TASK-WP2-05TASK-WP2-06TASK-WP3-04 TASK-WP7-05
projects TASK-WP2-01TASK-WP2-02TASK-WP2-03 TASK-WP7-05
project-detail TASK-WP2-01TASK-WP2-03TASK-WP2-07 TASK-WP7-05
editor TASK-WP4-01TASK-WP4-02TASK-WP4-03TASK-WP4-04TASK-WP4-05TASK-WP4-06TASK-WP4-07 TASK-WP7-05
export TASK-WP2-07TASK-WP4-05 TASK-WP7-05
credits TASK-WP2-04 TASK-WP7-05
settings TASK-WP0-04TASK-WP1-05 TASK-WP7-05
preview-user-variant TASK-WP5-04TASK-WP5-07 TASK-WP7-05
admin-auth TASK-WP1-04 TASK-WP7-03TASK-WP7-05
admin-overview TASK-WP6-01TASK-WP6-05 TASK-WP7-05
admin-users TASK-WP6-01TASK-WP2-04 TASK-WP7-05
admin-invites TASK-WP6-01TASK-WP1-01 TASK-WP7-05
admin-models TASK-WP3-01TASK-WP3-02TASK-WP6-05 TASK-WP7-05
admin-assets TASK-WP5-05TASK-WP5-06TASK-WP6-01 TASK-WP7-05
admin-preview TASK-WP5-07TASK-WP6-01 TASK-WP7-05
admin-generations TASK-WP6-02 TASK-WP7-05
admin-services-storage TASK-WP6-03TASK-WP6-05 TASK-WP7-05
admin-audit TASK-WP6-04 TASK-WP7-05
system-ui TASK-WP0-07TASK-WP0-08TASK-WP0-09 TASK-WP7-05TASK-WP7-07

所有 coverage unit 的正常、空/加载、失败/禁用及适用的冲突/容量/特殊状态以 tdd.md 第 11.1 节为准。UIDesign.md 中没有独立低保真 frame 的页面仍必须实现和留证;预览 PNG 不得通过 OCR 反推固定文案。

6.2 Pencil 产品 frame 映射

下表覆盖 .pen 中全部 18 个产品 frame。状态范围只定位实现与证据,不替代 UIDesign.md 的完整状态矩阵;同一 frame 同时承载两个 coverage unit 时在 page_id 中并列。

page_id frame ID 画板名 实现主任务 必须覆盖的状态范围
user-auth Z0pf8 01A 普通用户登录 TASK-WP1-02 登录正常;字段初始空;发码/登录加载;验证码、Resend 和身份状态失败;管理员入口、固定本机提示、艺术带与焦点
user-auth DVPM8 01B 注册展开态 TASK-WP1-03 邀请与邮箱已验证摘要;资料和告知未完成/完成;注册中;名额、邀请、验证码和提交失败;主动作禁用
workspace WbDYT 02A 空工作台 TASK-WP2-01 无项目艺术带;生成表单、推荐模型、四比例与空任务;模型/项目加载;模型、点数、参考图和容量禁用
workspacecurrent-task d99Lo 02B 生成中工作台 TASK-WP2-05 queued/running 无假百分比;冻结点数;critical 容量条;第二次提交禁用;失败/rejected 动作和配置变化重确认
projects zXyG9 03A 项目列表 TASK-WP2-01 active/trashed、筛选、多选 failed_empty;空/骨架;20 active、恢复/批量禁用;多标签和容量提示
project-detail v2Qbu 03B 项目详情 TASK-WP2-01 历史、固定比例、继续生成、编辑、原图/latest;无成功图/无成品;10 图上限、资源失败和容量状态
editor bHQnJ 04A 三栏编辑器 TASK-WP4-01 三栏、保存状态、画布、对象属性与固定底栏;画布/素材加载;保存/素材失败;第 51 元素;conflicted/full/unavailable
export i9upg7 04B 导出弹层 TASK-WP4-05 JPG/PNG、质量、尺寸;合成/持久化加载;未提交确认;四类失败结果;冲突一次下载和 full/unavailable
credits YlKzE 05A 点数明细 TASK-WP2-04 available/reserved、流水和分页;无流水/加载;失败保留安全摘要;负 available 如实显示且无购买入口
settings Ws5E0 05B 设置与本机数据 TASK-WP1-05 资料、本机数据、容量摘要和固定文案;加载/保存失败;full/unavailable;注销确认、处理中和返回登录
admin-overview e4e2Kz 06A 后台总览 TASK-WP6-01 名额、任务、成本核对、服务/容量和审计摘要;骨架/空事件;聚合失败;三模型状态分列和待处理事项
admin-models YVfVG 06B 模型配置 TASK-WP6-05 完整三模型集合、default/runtime/recommended;加载;空推荐;替代/priority 禁用;CAS 冲突和整套回滚
admin-assets A28V3c 06C 素材与历史清理 TASK-WP5-06 上传/版本/候选;无上传/无候选;格式/编译/权限失败;full/unavailable;引用冲突、排队、物理删除和重计量
admin-generations OnsiT 06D 生成记录与私有告知 TASK-WP6-02 默认隐藏正文;身份+版本告知;逐次打开;空记录/审计写入加载;428、审计失败、升版重阻断
admin-services-storage L3lde2 06E 服务与存储 TASK-WP6-05 Resend/高德/网关/Worker/LocalDataRoot;指标加载;paused/degraded/unavailable;恢复前置、清理排队和重计量
admin-audit DlCpN 06F 私有内容访问审计 TASK-WP6-04 两类独立审计、游标和 180 天;空/加载;查询失败;不可编辑删除;无正文、图片、密钥和路径
support-gate u1adni 07A 浏览器硬阻断 TASK-WP0-03 四种阻断 reason、支持品牌/major、最小诊断;bundle/API 无绕过;无业务空态、身份或容量读取
system-ui awt96 07B Windows 辅助系统界面 TASK-WP0-07 托盘/启动中/ready;启动失败、端口占用、API/Worker degraded;脱敏诊断;full/unavailable 告警与受限动作

Z8p3I 00 Canvas Index 是非产品索引,仅由 TASK-WP7-05 校验设计资产清单,不计产品页面、实现任务或完成率。低保真中的版本、账号、点数、容量和时间均为示例值,运行状态必须来自 fixture,最终浏览器版本必须来自候选记录和验收后冻结的 RELEASE.json

6.3 UIDesign-only 页面映射

以下 5 个 coverage unit 没有独立 Pencil 产品 frame,但仍是完整实现与证据范围;不得因无画板而跳过。

page_id frame ID 画板名 实现主任务 必须覆盖的状态范围
preview-user-variant UIDesign-only 无独立画板 TASK-WP5-07 有效授权、无授权/空批次、加载、撤销/过期阻断;不出现后台权限;全局容量条
admin-auth UIDesign-only 无独立画板 TASK-WP1-04 白名单邮箱验证码、字段空/加载、非白名单、停用/移除、Resend 失败;独立 audience 与返回普通登录
admin-users UIDesign-only 无独立画板 TASK-WP6-01 脱敏列表/详情、暂停恢复/调点、空/筛选空/骨架、原因缺失和状态禁用、负 available
admin-invites UIDesign-only 无独立画板 TASK-WP6-01 创建/停用/期限/次数/脱敏复制、空/骨架、名额满、过期/耗尽、请求失败和幂等/CAS 结果
admin-preview UIDesign-only 无独立画板 TASK-WP5-07 批次、模板状态、授权/撤销/到期、空/骨架、非法转换/发布失败;不出现 P0-B 全量开放

7. 追踪与完成门禁

7.1 机器可读任务记录

tasks.manifest.json 是本计划的逐任务执行记录,不是新的需求、架构或测试来源。每个任务对象必须包含:task_idwork_packagedependenciesrequirementsacceptance_criteriadevelopment_plan_sectionsmodulesparent_families、完整 case_ids、逐父族 first_redminimal_greenrefactor_scopevalidation_commandsevidence_directoriesautomationrelease_gateui_scope

manifest 必须满足:

  • 52 个任务全部有独立记录;TASK-WP7-01 是不新增父族/case 的候选发布支撑任务,其余任务按本计划拥有父测试族;
  • 117 个具体 case_id 恰好各出现一次并映射到其已知父族,不只依赖运行时模糊匹配;
  • requirements、AC、首个 Red、最小 Green 和层级从当前 tdd.md 的父族/case 定义确定性取得,不能由任务实现者自行补写;
  • DevelopmentPlan 章节、模块边界、Refactor 范围和 UI scope 由本计划固定;模块路径尚未在上游冻结时只使用已冻结组件名,不擅自固化目录结构;
  • tasks.mdtasks.manifest.json 或任一冻结输入变化时,追踪校验先比较哈希与集合,再决定受影响任务状态,不能只更新 manifest 哈希。

7.2 数量闭环

WP 开发任务 本计划唯一归属父测试族 tdd.md 规范 case 当前 AC 唯一主责
WP-0 9 17 20 4
WP-1 6 11 13 7
WP-2 7 15 30 16
WP-3 4 7 10 2
WP-4 7 15 17 13
WP-5 7 9 9 5
WP-6 5 8 11 4
WP-7 7 7 7 1
合计 52 89 117 52

pnpm validate:tdd-trace 必须从结构化来源或确定性解析验证:

  • 本计划列出的父测试族集合与 tdd.md 第 6.1 至 6.8 节完全相等,恰为 89 个,且每个只归属一个开发任务;
  • 第 6.9 节 117 个 case 都能按稳定正则映射到已知父族,89/89 父族至少一个 case;
  • tasks.manifest.json 中 52 个任务齐全,117 个 case_id 各出现一次,任务的 derived automation/release_gate 与父族层级一致;
  • 52 个当前 AC 恰有一个 WP 主责,AC-08、AC-26、AC-37、AC-54 不得进入当前 passed 统计;
  • 109 个当前 PRD 需求 ID、十三个功能模块、十九个数据契约、九类 GenerationErrorCategory 和 22 个 UI coverage unit 均有落点;
  • .pen 的 18 个产品 frame ID 各有 page_id、主任务和状态范围;5 个无独立画板 coverage unit 明确标为 UIDesign-only
  • 每个 case 的必填字段、派生 automationrelease_gate、逐层状态和证据目录非空且未被人工改写。

7.3 工作包完成检查

WP 自动门禁 真实/人工门禁 不能提前宣告
WP-0 单元、API、存储、Supervisor、安全、打包 Green 最终浏览器记录在 WP-7 固定依赖、回环、容量等号、日志/诊断/凭据、无备份不迁移任一未过
WP-1 认证状态机、事务、会话、名额、注销、审计 Green Resend 正式认证 预置账号或 mock 邮件不得替代真实认证
WP-2 项目、点数、任务、参考图、冲突、错误 Green 真实模型完成态依赖 WP-3 mock 成功不得替代真实模型结算
WP-3 配置集合、runtime、Adapter mock、Worker 恢复 Green 三模型独立真实契约 任一模型未匹配最后配置完成全矩阵
WP-4 编辑器、导出、a11y、性能 harness Green 最终视觉依赖 WP-5 真实白名单 占位字体/资源或单浏览器通过
WP-5 编译、目录、隔离、缓存、上传、清理 Green 真实归档只读校验与人工视觉 自动清理、引用未清、排队即减量或逐批公开 full_p0
WP-6 后台、告知、审计、服务、存储 Green 真实服务恢复与正式身份流程 浏览器状态代替后端确认、逐次审计缺失、敏感信息回显
WP-7 候选记录、test:all、追踪和预冻结 AC Green 精确 full version UI/视觉/性能、AI、Resend、高德通过后才写最终 RELEASE;最终制品扫描通过 候选记录被当作最终 RELEASE,或任一外部门槛、页面状态、AC、最终哈希/扫描未完成

7.4 P0-A 最终完成定义

只有同时满足以下条件,开发任务计划才完成:

  1. WP-0 至 WP-7 全部达到各自门禁,所有任务为 passed,没有 source_changedredgreenexternally_blocked 遗留。
  2. 89/89 父测试族、117/117 规范 case 及参数分支均有可复现 Red、最终 Green/Passed 和脱敏证据。
  3. 52/52 当前 AC passed109 个需求 ID、十三个模块、十九个契约和九类错误全部闭环;reference_invalidsafety_rejected 证据分离。
  4. 存储精确阈值、等号写入、超限零副作用、原图/缩略图计量、full/unavailable 动作和物理删除后重测全部通过。
  5. ModelConfig 始终恰好一个 enabled default、priority 唯一正整数;runtime 不回写配置;recommended 可为空。
  6. 私有告知按 super_admin 身份+版本持久,升版重阻断;每次私有图片/完整提示词打开仍先写独立审计。
  7. 浏览器实际枚举确认 SW、Cache Storage 和 IndexedDB 不含 internal/private、项目、提示词或未保存草稿。
  8. 临时第二普通账号通过正常邀请/验证码链创建,完成跨用户隔离后正常注销并进入规定清理路径。
  9. 22 个 UI coverage unit 的全部适用状态在最终 Chrome/Edge、1920×1080、100%/200% 下无不可用重叠,焦点、文案、视觉、50 元素和四比例导出通过。
  10. 三模型、Resend、高德真实门槛通过;没有自动充值、收费备用、自动恢复或自动扩容。
  11. 最终 ZIP、SHA-256、RELEASE.jsonSTART-HERE.txt、固定端口和真实浏览器记录一致,局域网、其他设备及不支持浏览器不能进入产品。
  12. 代码、制品、日志、配置、manifest、截图、trace 和证据零真实凭据、验证码、会话令牌、管理员真实邮箱、完整私有内容和硬编码用户绝对路径。
  13. 普通用户主框架和设置区持续原样显示:“测试数据仅保存在本机,不自动备份,也不会迁移到正式系统。”

8. 当前计划明确不包含

  • 不创建 AC-08、AC-26、AC-37、AC-54 或任一 P0-B 当前开发任务。
  • 不实现手机、局域网、远程访问、跨设备、公司系统合并、对象存储、产品 HTTPS、云备份、项目归档、数据迁移或恢复。
  • 不实现 P1 的本地底图上传、空白画布、普通贴纸关键词搜索、公开注册准备、高德主体迁移或正式合规条款。
  • 不实现支付、订阅、自动充值、批量生成/导出、复制生成、社区、普通文字、用户自定义贴纸、AI 贴纸、GIF/视频、直发小红书、局部编辑、协作、版本历史、编组或图层面板。
  • 不重新选择技术栈,不引入 Docker、Redis、远程数据库/队列、对象存储、外部日志/指标、自动更新或自动扩容。
  • 不在本计划中虚构人员、日历工期或故事点。排期只有在团队规模、可用工时、外部凭据窗口和真实设备排期确定后,基于本任务依赖图另行制定。