25 KiB
25 KiB
Test Cases: Harness Evaluation Driven Generation
Overview
- Feature: Harness evaluation driven generation
- Requirements Source:
docs/technical/harness-engineering-modernization.md - Test Coverage: evaluation scoring, blocking quality failures, workflow plan events, trace aggregation, state transitions, internal golden replay, admin-only analytics, admin-only executor coverage summary, admin-only harness readiness
- Last Updated: 2026-06-23
Test Case Categories
1. Functional Tests
TC-F-001: 普通故事无图片生成写入评测事件
- Requirement: H7-3, H7-4
- Priority: High
- Preconditions:
- 用户已登录。
- 文本 provider 返回完整、儿童安全的故事。
- Test Steps:
- 调用
POST /api/generations,设置output_mode=story、generate_images=false。 - 执行 worker 任务。
- 查询 job detail。
- 调用
- Expected Results:
- job 状态为
completed。 - event 顺序包含
workflow_planned。 - event 顺序包含
evaluation_completed。 evaluation_completed.event_metadata.passed=true。evaluation_completed.event_metadata.overall_score >= 0.7。
- job 状态为
- Postconditions: 故事已持久化,
story_id写入 job。
TC-F-003: 用户 Trace summary 不返回评测摘要
- Requirement: H7-4, H7B-1
- Priority: High
- Preconditions:
- 故事已有
evaluation_completedjob event。
- 故事已有
- Test Steps:
- 调用
GET /api/generations/{story_id}/trace-summary。 - 检查响应字段。
- 调用
- Expected Results:
- 响应不包含
evaluation字段。 by_step不包含evaluation。by_artifact不因evaluation_completed增加story_text计数。failed_events不统计evaluation_completed。total_events不统计evaluation_completed,避免通过事件数量泄露内部评测步骤。
- 响应不包含
- Postconditions: 无数据修改。
TC-F-004: 用户 Job detail 不返回评测事件
- Requirement: H7-4, H7B-2
- Priority: High
- Preconditions:
- job 已记录
evaluation_completed事件。
- job 已记录
- Test Steps:
- 调用
GET /api/generations/jobs/{job_id}。 - 检查
events列表。
- 调用
- Expected Results:
events不包含evaluation_completed。- 响应不包含评测分数、维度分数、通过率或阻断阈值。
- Postconditions: 内部数据库事件不被删除。
TC-F-002: 完整故事输出获得通过评分
- Requirement: H7-1
- Priority: High
- Preconditions:
- 构造完整
StoryOutput。
- 构造完整
- Test Steps:
- 调用
evaluate_story_output。 - 读取
EvaluationResult。
- 调用
- Expected Results:
passed=true。blocking=false。- scores 包含
structure、safety、age_fit、educational_value、readability。
- Postconditions: 无持久化副作用。
TC-F-005: 完整绘本输出获得通过评分
- Requirement: H7-1, H7C-1
- Priority: High
- Preconditions:
- 构造完整
Storybook。
- 构造完整
- Test Steps:
- 调用
evaluate_storybook_output。 - 读取
EvaluationResult。
- 调用
- Expected Results:
passed=true。blocking=false。- scores 包含
structure、safety、age_fit、educational_value、readability。
- Postconditions: 无持久化副作用。
TC-F-006: 内部 golden cases 可回放且全部符合预期
- Requirement: H7-7, H7-8
- Priority: High
- Preconditions:
backend/app/services/harness/fixtures/evaluation_golden_cases.json存在。- fixture 只由后端测试、内部工具或 admin-only readiness 读取。
- Test Steps:
- 调用
replay_evaluation_golden_cases。 - 读取
EvaluationReplaySuiteResult。
- 调用
- Expected Results:
passed=true。failed_case_ids为空。- 普通故事和绘本样本都被覆盖。
- 样本覆盖完整普通故事、较长普通故事、空正文、缺失封面提示词、安全风险词、短文本阈值阻断、绘本重复页码、绘本缺页、绘本安全风险和绘本短分页。
- 结果不通过任何用户端 API 返回。
- Postconditions: 无持久化副作用。
TC-F-007: 内部 golden replay 覆盖摘要稳定
- Requirement: H7-8
- Priority: High
- Preconditions:
- golden replay suite 已执行。
- Test Steps:
- 调用
coverage_summary。 - 检查 artifact、age_band、risk_area、tags 和 outcome 分布。
- 调用
- Expected Results:
- artifact 覆盖
story=6、storybook=5。 - age_band 覆盖
3-4、5-6、7-8和unknown。 - risk_area 覆盖
happy_path、schema_error、safety_error、readability_warning、length_boundary。 - outcome 覆盖
passed=3、blocked=8。 - 覆盖摘要不通过任何用户端 API 返回。
- artifact 覆盖
- Postconditions: 无持久化副作用。
2. Edge Case Tests
TC-E-001: 很短故事通过结构但产生低龄阅读体验警告
- Requirement: H7-1
- Priority: Medium
- Preconditions:
- 构造标题、正文、封面提示词完整但正文很短的
StoryOutput。
- 构造标题、正文、封面提示词完整但正文很短的
- Test Steps:
- 调用
evaluate_story_output。 - 读取 warnings 和维度分数。
- 调用
- Expected Results:
- 不触发质量门异常。
age_fit或readability分数低于完整故事。- warnings 包含阅读体验提示。
- Postconditions: 无持久化副作用。
TC-E-002: 内部 golden replay 能报告预期不匹配
- Requirement: H7-7
- Priority: Medium
- Preconditions:
- 构造一个实际得分低于期望阈值的
EvaluationReplayCase。
- 构造一个实际得分低于期望阈值的
- Test Steps:
- 调用
run_evaluation_replay_cases。 - 读取
failure_report。
- 调用
- Expected Results:
passed=false。failed_case_ids包含该 case id。failure_report包含overall_score差异。
- Postconditions: 无持久化副作用。
3. Error Handling Tests
TC-ERR-001: 空正文阻断持久化
- Requirement: H7-4
- Priority: High
- Preconditions:
- 文本 provider 返回空
story_text。
- 文本 provider 返回空
- Test Steps:
- 执行 worker 任务。
- 查询 job 和 story 表。
- 查询 job events。
- Expected Results:
- job 状态为
failed。 - 没有 story 被持久化。
- events 包含
quality_gate_failed。 - events 包含
evaluation_completed。 evaluation_completed.event_metadata.blocking=true。
- job 状态为
- Postconditions: 用户可重试该 job。
TC-ERR-002: 不适龄风险词阻断生成
- Requirement: H7-1
- Priority: High
- Preconditions:
- 构造包含明显不适龄风险词的
StoryOutput。
- 构造包含明显不适龄风险词的
- Test Steps:
- 调用
evaluate_story_output。 - 读取
quality_gatemetadata。
- 调用
- Expected Results:
passed=false。blocking=true。quality_gate.issues[0].failure_category=safety_error。
- Postconditions: 无持久化副作用。
TC-ERR-003: 绘本结构错误阻断生成
- Requirement: H7-1, H7C-1
- Priority: High
- Preconditions:
- 构造页码重复或页面缺失的
Storybook。
- 构造页码重复或页面缺失的
- Test Steps:
- 调用
evaluate_storybook_output。 - 读取
quality_gatemetadata。
- 调用
- Expected Results:
passed=false。blocking=true。quality_gate.issues[0].code=invalid_storybook_page_number或对应结构错误。
- Postconditions: 无持久化副作用。
4. State Transition Tests
TC-ST-001: 普通故事无图片路径事件顺序稳定
- Requirement: H7-3
- Priority: High
- Preconditions:
- job 初始状态为
running/request_accepted。
- job 初始状态为
- Test Steps:
- 执行 worker 任务。
- 按 id 查询 events。
- Expected Results:
- event 顺序为
request_accepted、worker_started、workflow_planned、context_prepared、evaluation_completed、narrative_generated、story_saved、generation_completed。
- event 顺序为
- Postconditions: job
current_step=generation_completed。
TC-ST-002: 普通故事带图片路径记录可恢复资产计划
- Requirement: H9-1, H9-3
- Priority: High
- Preconditions:
- job 初始状态为
running/request_accepted。 - 请求设置
output_mode=story、generate_images=true。 - 文本 provider 返回合格故事,图片 provider 返回封面 URL。
- job 初始状态为
- Test Steps:
- 执行 worker 任务。
- 按 id 查询内部 events。
- 读取
workflow_planned.event_metadata.plan。
- Expected Results:
- event 顺序为
request_accepted、worker_started、workflow_planned、context_prepared、evaluation_completed、narrative_generated、story_saved、cover_image_started、cover_image_succeeded、generation_completed。 plan.mode=story_with_assets。- plan tasks 包含
evaluate_narrative。 - plan tasks 包含
generate_cover_image。 generate_cover_image.required=false。generate_cover_image.recoverable=true。
- event 顺序为
- Postconditions: job
current_step=generation_completed,故事image_status=ready。
TC-ST-003: 绘本路径记录绘本计划快照
- Requirement: H9-2, H9-3
- Priority: High
- Preconditions:
- job 初始状态为
running/request_accepted。 - 请求设置
output_mode=storybook。
- job 初始状态为
- Test Steps:
- 执行 worker 任务。
- 按 id 查询内部 events。
- 读取
workflow_planned.event_metadata.plan。
- Expected Results:
- event 顺序包含
workflow_planned,且位于worker_started和context_prepared之间。 plan.mode=storybook。- plan tasks 包含
generate_storybook_pages。 - plan tasks 包含
evaluate_storybook_pages。 - 当
generate_images=true时,plan tasks 包含generate_storybook_images。 generate_storybook_images.required=false。generate_storybook_images.recoverable=true。
- event 顺序包含
- Postconditions: job
current_step=generation_completed。
TC-ST-004: 绘本生成内部记录评测但用户事件脱敏
- Requirement: H7C-1, H7B-2, H9-4
- Priority: High
- Preconditions:
- 绘本生成 job 已执行完成。
- Test Steps:
- 直接查询内部
generation_job_events。 - 调用
GET /api/generations/jobs/{job_id}。
- 直接查询内部
- Expected Results:
- 内部事件包含
evaluation_completed。 - 内部
evaluation_completed.event_metadata.artifact=storybook_pages。 - 用户 API events 不包含
evaluation_completed。 - 用户 API 响应不包含
overall_score、维度分数、阈值或 golden replay 字段。
- 内部事件包含
- Postconditions: job 完成,绘本已持久化。
TC-ST-005: 资产生成和重试路径记录资产计划快照
- Requirement: H10-1, H10-2, H10-3
- Priority: High
- Preconditions:
- 故事已有可生成或可重试的图片/音频资源。
- Test Steps:
- 执行
asset_generationworker 任务。 - 调用
/api/generations/{story_id}/retry-assets。 - 按 id 查询内部 events。
- 执行
- Expected Results:
asset_generation事件顺序包含workflow_planned。asset_generation的plan.mode=asset_generation。asset_retry事件顺序包含workflow_planned。asset_retry的plan.mode=asset_retry。- 图片和音频任务在 plan 中为
required=false、recoverable=true。
- Postconditions: 资源状态按原有语义更新。
TC-ST-006: 用户事件 metadata 使用白名单脱敏
- Requirement: H10-4, H10-5
- Priority: High
- Preconditions:
- 内部 job events 包含原始
plan.tasks、result_snapshot、内部阈值或内部错误详情。
- 内部 job events 包含原始
- Test Steps:
- 调用
GET /api/generations/jobs/{job_id}。 - 检查
events[*].event_metadata。
- 调用
- Expected Results:
- 用户响应保留
step、artifact、asset、assets、failure_category等可解释字段。 workflow_planned只返回plan_mode、planned_task_count、recoverable_task_count。- 用户响应不包含原始
plan、tasks、result_snapshot、内部阈值、内部错误原文。 - 用户响应仍不包含
evaluation_completed、overall_score、维度分数或 golden replay 字段。
- 用户响应保留
- Postconditions: 内部数据库事件不被修改。
TC-ST-007: 用户 request payload 使用白名单脱敏
- Requirement: H11-1, H11-4
- Priority: High
- Preconditions:
- 生成 job 的
request_payload同时包含用户输入、公开控制字段、内部调度 token、Provider override 和评测策略。
- 生成 job 的
- Test Steps:
- 调用
GET /api/generations/jobs/{job_id}。 - 检查响应中的
request_payload。
- 调用
- Expected Results:
- 用户响应只保留
output_mode、input_type、type、story_id、assets、page_count、generate_images等安全控制字段。 - 用户响应不包含原始
data、education_theme、内部调度 token、Provider override 或 evaluation policy。 - 内部数据库中的完整 request payload 不被修改。
- 用户响应只保留
- Postconditions: 用户端仍可根据公开字段展示任务进度和可用操作。
TC-ST-008: 资产 plan runner 按 WorkflowPlan 顺序执行任务
- Requirement: H12-1, H12-5
- Priority: High
- Preconditions:
- 构造
asset_generation或asset_retryplan,包含图片和音频 task。
- 构造
- Test Steps:
- 调用
run_asset_plan(...)。 - 记录 image/audio handler 的调用顺序。
- 检查 runner 返回的 executed/ignored task keys。
- 调用
- Expected Results:
- 图片和音频 handler 按 plan 中
WorkflowTask顺序执行。 start_asset_*和complete_asset_*这类非资产生产 task 被记录为 ignored,不触发 provider handler。- 未知非资产 task 默认 ignored,不影响已知资产 task。
- 图片和音频 handler 按 plan 中
- Postconditions: 无数据库修改。
TC-ST-009: 后台资产生成由 plan runner 执行组合资产
- Requirement: H12-2, H12-5
- Priority: High
- Preconditions:
- 已持久化故事同时具备可生成图片和音频的输入。
- 创建
asset_generationjob,assets=["audio", "image"]。
- Test Steps:
- 调用 worker 执行该 job。
- 查询 job events 和 story 状态。
- Expected Results:
- event stream 为
workflow_planned后依次出现音频和图片生成事件。 - plan tasks 顺序包含
complete_audio_asset、complete_image_asset。 - story 的
audio_status与image_status均为ready。 - 用户 API 仍只暴露 coarse plan metadata,不返回原始
plan.tasks。
- event stream 为
- Postconditions: job 完成,资源状态与原有语义一致。
TC-ST-010: 用户侧过滤 executor coverage 内部事件
- Requirement: H13-4, H13-5
- Priority: High
- Preconditions:
- 生成 job 包含内部
executor_completed事件。 executor_completed.event_metadata包含 task keys 和 result assets。
- 生成 job 包含内部
- Test Steps:
- 调用
GET /api/generations/jobs/{job_id}。 - 调用
GET /api/generations/{story_id}/jobs。 - 调用
GET /api/generations/{story_id}/trace-summary。
- 调用
- Expected Results:
- 用户 job detail 不包含
executor_completed。 - 用户 job detail 不包含
executed_task_keys、ignored_task_keys或具体 task key。 - 当 job 当前步骤短暂停留在
executor_completed时,用户 summary 显示为安全公开的workflow_planned进度。 - 用户 trace summary 不包含
executor_completed或具体 task key。 - 用户 trace summary 的
total_events不统计内部executor_completed。
- 用户 job detail 不包含
- Postconditions: 内部数据库事件不被修改。
5. Admin-Only Analytics Tests
TC-ADM-001: 管理端评测 analytics 聚合内部评测事件
- Requirement: H8-1, H8-2
- Priority: High
- Preconditions:
- 数据库存在多个用户的
evaluation_completed事件。 - 请求通过 admin guard。
- 数据库存在多个用户的
- Test Steps:
- 调用
GET /admin/evaluations/analytics。 - 检查聚合结果。
- 调用
- Expected Results:
- 返回通过数、阻断数、通过率和平均分。
- 返回 artifact、output mode、score band、dimension score、quality gate issue、failure category 和 warning 聚合。
- 不返回故事正文、prompt、单条 evaluation event 或评分 reason。
- Postconditions: 无数据修改。
TC-ADM-002: 管理端评测 analytics 支持过滤
- Requirement: H8-3
- Priority: Medium
- Preconditions:
- 数据库存在新旧评测事件以及不同 artifact。
- Test Steps:
- 调用
GET /admin/evaluations/analytics?days=7。 - 调用
GET /admin/evaluations/analytics?artifact=story_text。 - 调用非法 artifact。
- 调用
- Expected Results:
days过滤只统计窗口内事件。artifact过滤只统计对应 artifact。- 非法 artifact 返回
422。
- Postconditions: 无数据修改。
TC-ADM-003: 管理端评测 analytics 需要 admin 鉴权
- Requirement: H8-2
- Priority: High
- Preconditions:
- 未提供 admin Basic Auth。
- Test Steps:
- 调用
GET /admin/evaluations/analytics。
- 调用
- Expected Results:
- 返回
401。 - 不返回任何评测统计。
- 返回
- Postconditions: 无数据修改。
TC-ADM-004: 管理端完整生成 trace 返回内部事件流
- Requirement: H11-2, H11-3, H11-4
- Priority: High
- Preconditions:
- 数据库存在包含
workflow_planned与evaluation_completed的生成 job。 - 请求通过 admin guard。
- 数据库存在包含
- Test Steps:
- 调用
GET /admin/generations/jobs/{job_id}/trace。 - 检查 request payload 与 event stream。
- 调用
- Expected Results:
- 返回完整 request payload,包括原始用户输入和内部调度字段。
- 返回完整
workflow_planned.event_metadata.plan.tasks。 - 返回
evaluation_completed事件及其内部评分 metadata。 - 响应包含
user_id,便于管理控制面审计。
- Postconditions: 无数据修改。
TC-ADM-005: 管理端完整生成 trace 需要 admin 鉴权
- Requirement: H11-3
- Priority: High
- Preconditions:
- 未提供 admin Basic Auth。
- Test Steps:
- 调用
GET /admin/generations/jobs/{job_id}/trace。
- 调用
- Expected Results:
- 返回
401。 - 不返回 request payload 或内部 event metadata。
- 返回
- Postconditions: 无数据修改。
TC-ADM-006: 管理端 executor coverage 聚合内部执行事件
- Requirement: H13-1, H13-2, H13-3, H13-5
- Priority: High
- Preconditions:
- 数据库存在多个
executor_completed事件。 - 请求通过 admin guard。
- 数据库存在多个
- Test Steps:
- 调用
GET /admin/executors/coverage。 - 调用
GET /admin/executors/coverage?plan_mode=asset_retry。 - 调用非法 plan mode。
- 调用
- Expected Results:
- 返回 total runs、planned/executed/ignored task counts 和 coverage ratio。
- 返回 plan mode、output mode、executed task keys、ignored task keys 和 result assets 聚合。
plan_mode过滤只统计对应 executor run。- 非法 plan mode 返回
422。
- Postconditions: 无数据修改。
TC-ADM-007: 管理端 executor coverage 需要 admin 鉴权
- Requirement: H13-3
- Priority: High
- Preconditions:
- 未提供 admin Basic Auth。
- Test Steps:
- 调用
GET /admin/executors/coverage。
- 调用
- Expected Results:
- 返回
401。 - 不返回 executor task keys 或 coverage metadata。
- 返回
- Postconditions: 无数据修改。
TC-ADM-008: 管理端完整生成 trace 返回单 job executor coverage 摘要
- Requirement: H14-1, H14-2, H14-4
- Priority: High
- Preconditions:
- 数据库存在包含
executor_completed事件的生成 job。 - 请求通过 admin guard。
- 数据库存在包含
- Test Steps:
- 调用
GET /admin/generations/jobs/{job_id}/trace。 - 检查
executor_coverage。
- 调用
- Expected Results:
- 响应包含
executor_coverage.scope=admin_internal_job_executor_coverage。 executor_coverage只统计当前 job 的 runs、planned/executed/ignored task counts 和 coverage ratio。executor_coverage.executed_task_keys、ignored_task_keys和result_assets与当前 job 的内部 executor event 一致。- 完整 event stream 仍保留
executor_completed,便于 admin 调试。
- 响应包含
- Postconditions: 无数据修改。
TC-ADM-009: 管理端 harness readiness 聚合内部质量门
- Requirement: H15-1, H15-2, H15-3, H15-4
- Priority: High
- Preconditions:
- app 内部 harness fixture 存在 golden replay cases。
- 数据库存在至少一条通过的
evaluation_completed事件。 - 数据库存在至少一条
executor_completed事件。 - 请求通过 admin guard。
- Test Steps:
- 调用
GET /admin/harness/readiness。 - 检查 readiness status、checks 和聚合摘要。
- 调用
- Expected Results:
status=ready。- checks 包含
golden_replay、runtime_evaluation_samples、runtime_evaluation_quality、executor_coverage_samples和executor_coverage_ratio。 - golden replay 显示全部通过。
- evaluation analytics 与 executor coverage 只以聚合形式返回。
- 响应不包含故事标题、正文、prompt、score reason 或 quality gate message。
- Postconditions: 无数据修改。
TC-ADM-010: 管理端 harness readiness 阻断低质量运行样本并需要 admin 鉴权
- Requirement: H15-2, H15-3, H15-4, H15-5
- Priority: High
- Preconditions:
- 数据库存在低质量或 blocking 的
evaluation_completed事件。 - executor coverage 运行样本缺失或不足。
- 数据库存在低质量或 blocking 的
- Test Steps:
- 通过 admin guard 调用
GET /admin/harness/readiness。 - 未提供 admin Basic Auth 调用同一路径。
- 通过 admin guard 调用
- Expected Results:
- 有 admin 权限时返回
status=blocked。 runtime_evaluation_quality.status=blocked。- executor 样本缺失时对应 check 为
needs_attention。 - 无 admin 权限时返回
401。 - 响应不包含 quality gate message 或单条事件明细。
- 有 admin 权限时返回
- Postconditions: 无数据修改。
Test Coverage Matrix
| Requirement ID | Test Cases | Coverage Status |
|---|---|---|
| H7-1 | TC-F-002, TC-F-005, TC-E-001, TC-ERR-002, TC-ERR-003 | Complete |
| H7-2 | TC-F-001, TC-ST-001 | Complete |
| H7-3 | TC-F-001, TC-ST-001 | Complete |
| H7-4 | TC-F-003, TC-ERR-001 | Complete |
| H7-5 | This document | Complete |
| H7-7 | TC-F-006, TC-E-002 | Complete |
| H7-8 | TC-F-006, TC-F-007 | Complete |
| H7B-1 | TC-F-003 | Complete |
| H7B-2 | TC-F-004 | Complete |
| H7C-1 | TC-F-005, TC-ERR-003, TC-ST-002 | Complete |
| H8-1 | TC-ADM-001 | Complete |
| H8-2 | TC-ADM-001, TC-ADM-003 | Complete |
| H8-3 | TC-ADM-002 | Complete |
| H8-4 | TC-F-003, TC-F-004, TC-ADM-001 | Complete |
| H9-1 | TC-ST-002 | Complete |
| H9-2 | TC-ST-003 | Complete |
| H9-3 | TC-ST-001, TC-ST-002, TC-ST-003 | Complete |
| H9-4 | TC-F-003, TC-F-004, TC-ST-004 | Complete |
| H10-1 | TC-ST-005 | Complete |
| H10-2 | TC-ST-005 | Complete |
| H10-3 | TC-ST-005 | Complete |
| H10-4 | TC-ST-006 | Complete |
| H10-5 | TC-ST-005, TC-ST-006 | Complete |
| H11-1 | TC-ST-007 | Complete |
| H11-2 | TC-ADM-004 | Complete |
| H11-3 | TC-ADM-004, TC-ADM-005 | Complete |
| H11-4 | TC-ST-007, TC-ADM-004, TC-ADM-005 | Complete |
| H11-5 | This document, docs/planning/harness-stage-11-report.md |
Complete |
| H12-1 | TC-ST-008 | Complete |
| H12-2 | TC-ST-009 | Complete |
| H12-3 | TC-ST-005, TC-ST-008 | Complete |
| H12-4 | TC-ST-005, backend story endpoint regression tests | Complete |
| H12-5 | TC-ST-008, TC-ST-009 | Complete |
| H13-1 | TC-ADM-006 | Complete |
| H13-2 | TC-ST-009, TC-ADM-006 | Complete |
| H13-3 | TC-ADM-006, TC-ADM-007 | Complete |
| H13-4 | TC-ST-010 | Complete |
| H13-5 | TC-ST-010, TC-ADM-006, TC-ADM-007 | Complete |
| H14-1 | TC-ADM-006, TC-ADM-008 | Complete |
| H14-2 | TC-ADM-008 | Complete |
| H14-3 | TC-ST-010 | Complete |
| H14-4 | TC-ST-010, TC-ADM-008 | Complete |
| H14-5 | This document, docs/planning/harness-stage-14-report.md |
Complete |
| H15-1 | TC-F-006, TC-ADM-009 | Complete |
| H15-2 | TC-ADM-009, TC-ADM-010 | Complete |
| H15-3 | TC-ADM-009, TC-ADM-010 | Complete |
| H15-4 | TC-ADM-009, TC-ADM-010 | Complete |
| H15-5 | This document, docs/planning/harness-stage-15-report.md |
Complete |
Notes
- 当前自动化已覆盖 TC-F-001、TC-F-002、TC-F-003、TC-F-004、TC-F-005、TC-F-006、TC-F-007、TC-E-002、TC-ERR-001、TC-ERR-002、TC-ERR-003、TC-ST-001、TC-ST-002、TC-ST-003、TC-ST-004、TC-ST-005、TC-ST-006、TC-ST-007、TC-ST-008、TC-ST-009、TC-ST-010、TC-ADM-001、TC-ADM-002、TC-ADM-003、TC-ADM-004、TC-ADM-005、TC-ADM-006、TC-ADM-007、TC-ADM-008、TC-ADM-009、TC-ADM-010。
- TC-E-001 可在下一轮补成显式单测。
- 所有
evaluation_completed、golden replay 和评分维度数据均按内部质量资产处理,不应进入用户端接口或用户前端。 GET /admin/evaluations/analytics只允许 admin-only 聚合摘要,不应返回原始内容、prompt、单条事件或评分 reason。GET /admin/generations/jobs/{job_id}/trace是 admin-only 调试和审查接口,可返回完整内部链路,不应被用户前端调用。GET /admin/executors/coverage是 admin-only executor 覆盖率接口,可返回 task keys 和 result assets,不应被用户前端调用。GET /admin/generations/jobs/{job_id}/trace可返回当前 job 的executor_coverage摘要;该摘要与 task keys 一样属于内部执行资产。GET /admin/harness/readiness是 admin-only harness 上线前审查摘要,可返回聚合 readiness、thresholds、golden coverage、evaluation analytics 和 executor coverage,不应返回正文、prompt、score reason、quality gate message 或单条事件明细。