cases.json 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. [
  2. {
  3. "id": "planner-critical-audit-coverage",
  4. "level": "single_step",
  5. "risk": "Planner 遗漏 Production Brief 的关键 Global Data 路径",
  6. "expected": "所有要求审计路径都有 critical 处置",
  7. "test": "tests/agents/test_planner.py::PlannerDagTest::test_all_global_audit_paths_require_critical_disposition"
  8. },
  9. {
  10. "id": "executor-inspect-before-remote-run",
  11. "level": "trajectory",
  12. "risk": "Executor 未 inspect Schema 就调用远程工具",
  13. "expected": "同一远程工具必须先 inspect 后 run",
  14. "test": "tests/agents/test_executor.py::GeneralExecutorTest::test_research_run_requires_prior_matching_inspect"
  15. },
  16. {
  17. "id": "executor-remote-artifact-localization",
  18. "level": "single_step",
  19. "risk": "远程 Candidate URI 未映射为本地正式 Artifact",
  20. "expected": "远程来源唯一解析为当前 Run 内本地文件",
  21. "test": "tests/run/test_artifacts.py::ArtifactIntegrityTest::test_remote_candidate_resolves_to_single_local_copy"
  22. },
  23. {
  24. "id": "remote-url-content-replacement",
  25. "level": "adversarial",
  26. "risk": "同一远程 URL 在验收后替换内容",
  27. "expected": "正式 Artifact 继续绑定首次本地化并封印的字节",
  28. "test": "tests/run/test_artifacts.py::ArtifactIntegrityTest::test_localized_artifact_survives_remote_url_content_replacement"
  29. },
  30. {
  31. "id": "validator-missing-artifact-preflight",
  32. "level": "single_step",
  33. "risk": "结构化 Artifact 缺失却让模型继续给出 PASS",
  34. "expected": "模型调用前由确定性检查拒绝",
  35. "test": "tests/agents/test_task_validator.py::GeneralValidatorTest::test_missing_structured_artifact_is_rejected_before_model_execution"
  36. },
  37. {
  38. "id": "validator-critical-failure-verdict",
  39. "level": "final_output",
  40. "risk": "关键验收项 FAIL 但报告总判定为 PASS",
  41. "expected": "代码确定性汇总为 FAIL",
  42. "test": "tests/agents/test_task_validator.py::GeneralValidatorTest::test_critical_failure_deterministically_fails_report"
  43. },
  44. {
  45. "id": "stage-gap-replan-preserves-pass",
  46. "level": "trajectory",
  47. "risk": "Stage 缺口 Replan 时重复执行已 PASS Task",
  48. "expected": "只补缺口,已 PASS Task 不重跑",
  49. "test": "tests/graph/test_graph.py::GlobalDataGraphTest::test_stage_missing_requirement_replans_without_rerunning_passed_task"
  50. },
  51. {
  52. "id": "completed-run-tamper-rejection",
  53. "level": "final_output",
  54. "risk": "COMPLETED 后正式 Artifact 同路径内容被替换",
  55. "expected": "同 thread no-op 终态重验拒绝内容漂移",
  56. "test": "tests/graph/test_recovery.py::DurableRunTest::test_completed_noop_rejects_tampered_artifact_content"
  57. }
  58. ]