08_归档04_VOZEB任务卡
VOZEB-UI-MIGRATION-02-M13 — 提示词库 Ocean Foundation 视觉切片
Task ID: VOZEB-UI-MIGRATION-02-M13-PROMPTS
目标用户结果: 用户能在统一 Ocean Air 壳层中浏览、筛选、复制公共提示词,并管理自己的提示词记录
Feature ID / Atomic Requirement IDs: HOME-P0-001;EXEC-P0-001(仅承载提示词页面视觉与既有交互)
Base SHA: 0701905d640dc1bd551ae1afe8ff1d38c122a393
必须阅读: VOZEB-UI-FOUNDATION-01.md;VOZEB-UI-MIGRATION-02.md;VOZEB-COMPONENT-INVENTORY-01.md;prompts.ts;my-prompts.ts;use-prompt-list.ts;prompt-select-dialog.tsx
允许修改: 本任务包;web/src/app/(user)/prompts/page.tsx;web/src/app/(user)/prompts/prompts-page.module.css;web/src/app/(user)/prompts/prompts-page-layout.test.tsx;web/src/app/(user)/my-prompts/page.tsx(仅在需要保持入口语义时);web/src/components/my-prompts/my-prompts-page.tsx;web/src/app/(user)/my-prompts/my-prompts-page.module.css;web/src/app/(user)/my-prompts/my-prompts-layout.test.ts;web/src/components/prompts/prompt-card.tsx;web/src/components/prompts/prompt-card.module.css;web/src/components/prompts/prompt-detail-dialog.tsx;web/src/components/prompts/prompt-detail-dialog.module.css
禁止修改: web/src/components/prompts/use-prompt-list.ts;web/src/components/prompts/prompt-select-dialog.tsx;services/api/**;stores/**;hooks/**;API routes;共享 Ocean/UI 组件;layout/navigation;其它页面、路由、Go、contracts、migrations、retail-platform
范围: 在公共提示词与个人提示词页面接入 OceanGlassCard、OceanContentCard、OceanDialog、OceanLoadingShell、OceanReveal、OceanStatusCluster、OceanUtilityControl 和现有 UI Button;统一页面标题、筛选工具栏、提示词卡片、详情弹窗、表格、加载/错误/空态、分页、创建与删除确认的 Ocean Air 材质和响应式布局
非目标: 不改变公共/个人提示词查询参数、分页、关键字/分类/标签筛选、详情预览、复制、保存到素材、创建、删除、错误提示、权限或 API/store/hooks 语义;不新增页面级背景、WebGL、运行时 TSX 文件或业务持久化
已冻结契约与数据模型: Prompt、PromptListResponse、usePromptPage、listMyPrompts/createMyPrompt/deleteMyPrompt、PromptCard、PromptDetailDialog 以及 `/prompts`、`/my-prompts` 路由保持不变;prompt-select-dialog 继续消费 PromptCard 的既有 props
安全与数据限制: 仅呈现现有会话与服务端返回的提示词/短期媒体预览;不读取或输出 Secret,不把提示词或媒体写入浏览器持久存储,不触发真实上游、账务或生产写入
验收命令: pnpm exec vitest run src/app/(user)/prompts/prompts-page-layout.test.tsx src/app/(user)/my-prompts/my-prompts-layout.test.ts src/services/api/prompts.test.ts src/services/api/my-prompts.test.ts --reporter=dot;pnpm exec tsc --noEmit --pretty false;pnpm exec eslint src/app/(user)/prompts/page.tsx src/app/(user)/prompts/prompts-page-layout.test.tsx src/components/my-prompts/my-prompts-page.tsx src/app/(user)/my-prompts/my-prompts-layout.test.ts src/components/prompts/prompt-card.tsx src/components/prompts/prompt-detail-dialog.tsx --quiet;pnpm exec prettier --check docs/oceanway/VOZEB-UI-MIGRATION-02-M13-PROMPTS.md src/app/(user)/prompts/page.tsx src/app/(user)/prompts/prompts-page.module.css src/app/(user)/prompts/prompts-page-layout.test.tsx src/components/my-prompts/my-prompts-page.tsx src/app/(user)/my-prompts/my-prompts-page.module.css src/app/(user)/my-prompts/my-prompts-layout.test.ts src/components/prompts/prompt-card.tsx src/components/prompts/prompt-card.module.css src/components/prompts/prompt-detail-dialog.tsx src/components/prompts/prompt-detail-dialog.module.css;pnpm run build;git diff --check
人工决策点: LOCAL_IMPLEMENTATION_CANDIDATE / CANDIDATE_EVIDENCE / NOT_FORMAL_TEST;正式 Testing、Operations、发布和其它页面迁移另行授权
交付物: 公共与个人提示词 Ocean Air 页面壳、内容优先提示词卡、玻璃详情/创建弹层、筛选/表格状态、响应式视觉契约测试和任务包验收边界
usePromptPage、listMyPrompts和现有 Prompt API/store 继续拥有请求、筛选、分页、复制、保存、创建、删除与错误语义;本切片只替换页面壳层和直属展示组件。PromptCard保持prompt-select-dialog所需的item、onOpen、onCopy、extraAction、actionLabel、actionIconprops;公共卡片和详情弹窗的键盘打开、按钮名称、媒体失败回退与aria语义不变。- 页面继续复用
AppWorkspaceShell提供的单一背景,不新增OceanAmbientBackground、WebGL renderer 或每张卡独立的 Liquid Glass renderer。 - 标题、正文、标签、分类、日期和表格元数据使用 Ocean Air/Abyss 中性文字;动作色只表达明确操作、焦点或状态,不出现蓝色正文或装饰渐变。
- loading、error、empty、ready、submitting 和删除确认保持最终几何可读;
prefers-reduced-motion、prefers-reduced-transparency与forced-colors下不依赖动画、模糊或颜色理解内容。 - 390px、430px 与窄桌面不产生页面横向溢出;提示词列表、表格和弹窗内部仅在内容确有需要时保留真实滚动。
- 本切片只登记候选实现,不提升正式 Development、Testing 或 Operations 状态;浏览器矩阵与独立验收由后续 Testing 任务完成。