[
  {
    "slug": "claude-api-streaming",
    "sourceSha256": "037bf160c88d2d9d8cc830857c93c3d3589414a3786b39282b144e4aa3700119",
    "executedAt": "2026-11-03T15:20:36.411Z",
    "runtime": "v24.22.1",
    "platform": "darwin/arm64",
    "result": {
      "cases": [
        {
          "name": "正常終了",
          "input": "17文字ずつに分割した架空SSE / end_turn + message_stop",
          "actual": {
            "state": "complete",
            "text": "{\"total\":10}",
            "stopReason": "end_turn",
            "mayCommit": true
          },
          "expectedCommit": true,
          "pass": true
        },
        {
          "name": "出力上限",
          "input": "読めるJSONでも max_tokens",
          "actual": {
            "state": "incomplete",
            "text": "{\"total\":10}",
            "stopReason": "max_tokens",
            "mayCommit": false
          },
          "expectedCommit": false,
          "pass": true
        },
        {
          "name": "途中切断",
          "input": "end_turnはあるがmessage_stopが欠落",
          "actual": {
            "state": "incomplete",
            "text": "{\"total\":10}",
            "stopReason": "end_turn",
            "mayCommit": false
          },
          "expectedCommit": false,
          "pass": true
        }
      ]
    }
  },
  {
    "slug": "claude-json-semantic-validation",
    "sourceSha256": "f43fd2a5a9d76336a5d0c0745a69125357bc869868f0d70c5aab6809a1fd482e",
    "executedAt": "2026-11-03T15:20:36.412Z",
    "runtime": "v24.22.1",
    "platform": "darwin/arm64",
    "result": {
      "cases": [
        {
          "name": "金額と合計が一致",
          "input": {
            "currency": "JPY",
            "lines": [
              1000,
              500
            ],
            "total": 1500
          },
          "expected": "accepted",
          "actual": "accepted",
          "pass": true
        },
        {
          "name": "JSONは正しいが合計が不一致",
          "input": {
            "currency": "JPY",
            "lines": [
              1000,
              500
            ],
            "total": 1700
          },
          "expected": "sum_mismatch",
          "actual": "sum_mismatch",
          "pass": true
        },
        {
          "name": "通貨が欠落",
          "input": {
            "lines": [
              1000,
              500
            ],
            "total": 1500
          },
          "expected": "currency_required",
          "actual": "currency_required",
          "pass": true
        },
        {
          "name": "文字列の金額を暗黙変換しない",
          "input": {
            "currency": "JPY",
            "lines": [
              1000,
              "500"
            ],
            "total": 1500
          },
          "expected": "invalid_amount",
          "actual": "invalid_amount",
          "pass": true
        }
      ]
    }
  },
  {
    "slug": "claude-idempotent-actions",
    "sourceSha256": "3807093875a149d5589ca2309bd185a03e242330c9a8eb11088e400f7c5fc4fa",
    "executedAt": "2026-11-03T15:20:36.412Z",
    "runtime": "v24.22.1",
    "platform": "darwin/arm64",
    "result": {
      "cases": [
        {
          "name": "同じ要求を同時に二回",
          "input": {
            "key": "request-1",
            "payload": {
              "orderId": "sample-order",
              "amount": 1500
            },
            "calls": 2
          },
          "expectedEffects": 1,
          "actual": {
            "effects": 1,
            "results": [
              {
                "operationId": "local-1",
                "orderId": "sample-order"
              },
              {
                "operationId": "local-1",
                "orderId": "sample-order"
              }
            ]
          },
          "pass": true
        },
        {
          "name": "同じキーで内容を変更",
          "input": {
            "key": "request-1",
            "amount": 1700
          },
          "expected": "key_conflict",
          "actual": "key_conflict",
          "pass": true
        }
      ]
    }
  },
  {
    "slug": "rag-access-control",
    "sourceSha256": "2ff88725f9576a7bd7fd8e2a8eb7b8de88285a973eb88173885736667e271a7f",
    "executedAt": "2026-11-03T15:20:36.413Z",
    "runtime": "v24.22.1",
    "platform": "darwin/arm64",
    "result": {
      "documents": [
        {
          "id": "sales-plan",
          "tenant": "north",
          "groups": [
            "sales"
          ],
          "text": "計画"
        },
        {
          "id": "hr-plan",
          "tenant": "north",
          "groups": [
            "hr"
          ],
          "text": "計画"
        },
        {
          "id": "other-plan",
          "tenant": "south",
          "groups": [
            "sales"
          ],
          "text": "計画"
        }
      ],
      "cases": [
        {
          "name": "営業グループの検索",
          "principal": {
            "tenant": "north",
            "groups": [
              "sales"
            ]
          },
          "expected": [
            "sales-plan"
          ],
          "actual": [
            "sales-plan"
          ],
          "pass": true
        },
        {
          "name": "権限が空なら結果を渡さない",
          "principal": {
            "tenant": "north",
            "groups": []
          },
          "expected": [],
          "actual": [],
          "pass": true
        },
        {
          "name": "別テナントの同じグループ名",
          "principal": {
            "tenant": "south",
            "groups": [
              "sales"
            ]
          },
          "expected": [
            "other-plan"
          ],
          "actual": [
            "other-plan"
          ],
          "pass": true
        }
      ]
    }
  },
  {
    "slug": "ai-evaluation-dataset",
    "sourceSha256": "f1c17feeb19e41ffceae0c27727dee85e8f07af77fa99927268f0dff95d85c12",
    "executedAt": "2026-11-03T15:20:36.413Z",
    "runtime": "v24.22.1",
    "platform": "darwin/arm64",
    "result": {
      "development": [
        {
          "id": "q1",
          "sourceId": "document-A"
        },
        {
          "id": "q2",
          "sourceId": "document-B"
        }
      ],
      "cases": [
        {
          "name": "設問IDは違うが元資料が重複",
          "evaluation": [
            {
              "id": "q3",
              "sourceId": "document-A"
            }
          ],
          "expected": [
            "document-A"
          ],
          "actual": [
            "document-A"
          ],
          "pass": true
        },
        {
          "name": "元資料ごとに分離",
          "evaluation": [
            {
              "id": "q4",
              "sourceId": "document-C"
            }
          ],
          "expected": [],
          "actual": [],
          "pass": true
        }
      ]
    }
  }
]
