32 lines
2.7 KiB
Markdown
32 lines
2.7 KiB
Markdown
# Success Criteria
|
||
|
||
## Project Success
|
||
|
||
- 未登录用户只能看到 ARR 登录页或无详情 readiness;页面、API、上传、日志和下载均由服务端会话保护,退出后立即失效。
|
||
- XML 上传、确定性处理、完整结果验证和 Finance 提交不依赖 Agent/MCP,并得到终态任务回执。
|
||
- 纯 `PRICE_UNMATCHED` 上传得到 `needs_review` 而非失败:初始阶段没有日报、Finance 版本、失败事件或月报事件;填写全部键后原 XML + 冻结清单的独立重放才可产生一次最终成功。
|
||
- 用户上传 XML 后无需再提交月报参数;结构化结果成功入库会自动触发相应月报处理。
|
||
- 生成的月报包含 `TOTAL PRICE` 字段,并在每个数据行使用 `REAL PRICE × NIGHTS × NO_OF_ROOMS` 的 Excel 公式。
|
||
- 月报发布完成后,打开的月报页面自动出现新版本,不要求用户点击刷新。
|
||
|
||
## Task Completion Standard
|
||
|
||
- 行为改动必须同时覆盖触发链、内部参数推导、工作簿公式和失败/重试边界。
|
||
- 仅更新记忆的任务必须清楚标注哪些旧说法已失效,以及产品代码仍存在哪些差异。
|
||
|
||
## Quality Checks
|
||
|
||
- 测试必须覆盖错误/正确登录、尝试限流、安全回跳、CSRF 退出、会话撤销、桌面/H5 会话过期处理,以及 375/768/1024/1440 响应式无横向溢出。
|
||
- 测试必须证明月报触发发生在数据库成功提交之后,且失败提交不会触发。
|
||
- 测试必须覆盖合并重复价格键、候选价、整数格式、显式 `0`(冻结清单规范化为 `0.00`)、未完成禁止确认、revision 冲突、重复最终化、技术重试、取消留痕、认证/CSRF和隐私字段隔离。
|
||
- `待人工处理` 状态与复核进度必须作为同一个操作入口,点击或键盘激活后定位并聚焦人工价格面板,不能误开任务日志;复核面板、动态消息、确认弹窗和安全 API 错误必须完整支持中文、英文和泰文。
|
||
- 人工确认请求在途时,上传卡片必须显示本地化的“日报生成中”;请求结束后按成功、仍在生成或可重试复核状态收敛,不能继续显示过期的“等待人工定价”。
|
||
- 最终人工成功必须证明日报行序/数值可重放、Finance 只有一个 active 版本、`manual_review` 行数和冻结清单 SHA-256 可追踪、月报事件仅一次。
|
||
- 重新打开生成的 XLSX,确认 `TOTAL PRICE` 为公式单元格并逐行引用同一行的 `REAL PRICE`、`NIGHTS`、`NO_OF_ROOMS`。
|
||
- 用户入口不得要求提交月报年份、月份或截止日期。
|
||
- 页面自动同步必须避免重叠请求;页面隐藏或离开月报页时停止轮询,恢复可见时立即重新读取。
|
||
|
||
## Last Reviewed
|
||
|
||
2026-08-06
|