{
  "schemaVersion": 1,
  "artifactVersion": "2026-09-27.1",
  "versionKind": "method documentation bound to recovered source",
  "status": "source-and-archived-receipts-verified; no-execution-rerun",
  "results": "/studies/api-patch/results.json",
  "resultsSha256": "cda08f066f670ea8e93101da90daa12bf1ad7310020a10955c9369cc330dff87",
  "producerBinding": {
    "sourceBoundarySha256": "ef20f0839cea66d43a046b3308de366e35270c5d9e91ce1beba91d0d4ddf68c0",
    "scope": "sha256 of authentic producing src/tasks/fixture boundary",
    "verification": "Pinned source recovered and its fingerprint recomputed to match the frozen internal aggregate. All 39 archived grader receipts match that source binding and their candidate tree digests. Reconstructed task rows and original evidence bytes match the frozen hashes. Two separate source/record reviews reproduced these checks.",
    "limitation": "A fingerprint identifies source; receipt reconciliation establishes consistency with frozen records. Neither proves patch correctness, test adequacy, or independently rerun execution."
  },
  "optionalCheck": {
    "name": "TEST-1 / test_behavior",
    "rules": [
      {
        "id": "baseline-replay",
        "pass": "Expected public tests exist without symlinks; diff from HEAD includes recognized added test declaration/assertion; changed hunk includes all task concept groups and no prohibited filesystem/topology introspection; after reversing non-test changes, at least one baseline test command exits nonzero and reports an active candidate-declared test name. Candidate edits are then restored. This uses output name matching, not a causal proof.",
        "fail": "Any explicit predicate rejection; includes no contribution, vocabulary mismatch, no named baseline failure, and some caught inspection or execution failures.",
        "candidateExecution": "Passing candidate suites is a separate mandatory regression assertion; generic TEST-1 alone does not require that pass.",
        "missingOrSkipped": "No such state is emitted by the source check. Missing files map to failed. Caught inspection/replay unavailability may map to failed; other uncaught process/restoration errors prevent a normal report and may become infrastructure errors. A missing receipt cannot be inferred as passed."
      },
      {
        "id": "nullable-value-mutation",
        "pass": "Recognize a nullable completed_at assertion on a constructed or SDK-decoded Job in changed hunk context; the assertion may already exist in context and need not be newly added. Both candidate public suites must pass; replacing null with a nonnull sentinel in a disposable copy must cause a named qualifying test to fail.",
        "fail": "No qualifying contribution, failed candidate public suites, or no named qualifying mutation failure. Missing files and symlinks fail. Mutation subprocess errors can become failed checks; uncaught diff or candidate-suite execution errors abort the grade."
      }
    ],
    "emittedStates": [
      "passed",
      "failed"
    ],
    "unavailableStates": [
      "missing",
      "skipped",
      "unavailable"
    ],
    "unavailableStateMeaning": "These are not distinct emitted states. Explicit missing-file and some unavailable-execution branches emit failed; other uncaught errors abort grading. Every one of the 39 gradeable archived receipts has exactly one TEST-1 result, so none are missing or skipped in this cohort. The one invalid output is ungraded and is not converted to a failed optional check.",
    "recordedFailures": {
      "numerator": 21,
      "denominator": 30
    },
    "numeratorDefinition": "Sum taskResults.passedWithTestCheckFailure across all ten task rows: recorded overall successes with a failed test_behavior signal.",
    "denominatorDefinition": "All 30 recorded overall passes. The 9 overall failures and 1 invalid output are excluded from this conditional denominator, but retained in the 40-attempt outcome denominator.",
    "observedStates": {
      "byOverallOutcome": {
        "passed": {
          "passed": 9,
          "failed": 21,
          "ungraded": 0
        },
        "failed": {
          "passed": 0,
          "failed": 9,
          "ungraded": 0
        },
        "invalid": {
          "passed": 0,
          "failed": 0,
          "ungraded": 1
        }
      },
      "missingOrSkippedGradeableChecks": 0,
      "verification": "matched archived receipts; no execution rerun or human validation"
    }
  },
  "overallPass": "Every non-test_behavior assertion passes, no task-detected tampering, and no candidate mutation detected by frozen-candidate wrapper. The optional check is excluded. The historical 80/90 score is not used by this API wrapper.",
  "accounting": {
    "attempts": 40,
    "tasks": 10,
    "settings": 2,
    "repetitionsPerTaskSetting": 2,
    "overallPassed": 30,
    "overallFailed": 9,
    "invalidOutput": 1,
    "recordedOptionalFailuresAmongPasses": 21,
    "headlineDenominator": 30,
    "attemptDenominator": 40,
    "gradeableDenominator": 39,
    "bothPassed": 9,
    "bothPassedMeaning": "Directly counted from matched archived receipts; not inferred from absence of failure."
  },
  "taskRules": [
    {
      "task": "Project priority filter",
      "rule": "baseline-replay",
      "expectedPublicTestPaths": [
        "apps/api/tests/platform.test.ts",
        "packages/sdk-python/tests/test_client.py"
      ],
      "baselineCommands": [
        [
          "bun",
          "test",
          "apps/api/tests/platform.test.ts"
        ],
        [
          "python3",
          "-m",
          "unittest",
          "packages/sdk-python/tests/test_client.py",
          "-v"
        ]
      ],
      "requiredConceptGroups": [
        [
          "priority"
        ]
      ],
      "compatibilityAdjustment": "none"
    },
    {
      "task": "Python pagination authentication",
      "rule": "baseline-replay",
      "expectedPublicTestPaths": [
        "packages/sdk-python/tests/test_client.py"
      ],
      "baselineCommands": [
        [
          "python3",
          "-m",
          "unittest",
          "packages/sdk-python/tests/test_client.py",
          "-v"
        ]
      ],
      "requiredConceptGroups": [
        [
          "iter_projects"
        ],
        [
          "authorization",
          "bearer",
          "token"
        ],
        [
          "tenant",
          "x-tenant-id"
        ]
      ],
      "compatibilityAdjustment": "none"
    },
    {
      "task": "CLI cursor pagination",
      "rule": "baseline-replay",
      "expectedPublicTestPaths": [
        "apps/cli/tests/cli.test.ts"
      ],
      "baselineCommands": [
        [
          "bun",
          "test",
          "apps/cli/tests/cli.test.ts"
        ]
      ],
      "requiredConceptGroups": [
        [
          "--all",
          "next_cursor",
          "cursor"
        ],
        [
          "--limit",
          "limit"
        ]
      ],
      "compatibilityAdjustment": "none"
    },
    {
      "task": "Bounded rate-limit retries",
      "rule": "baseline-replay",
      "expectedPublicTestPaths": [
        "packages/sdk-ts/tests/client.test.ts"
      ],
      "baselineCommands": [
        [
          "bun",
          "test",
          "packages/sdk-ts/tests/client.test.ts"
        ]
      ],
      "requiredConceptGroups": [
        [
          "retry-after",
          "retry_after",
          "429"
        ],
        [
          "sleep",
          "wait"
        ]
      ],
      "compatibilityAdjustment": "grader-owned type exports only"
    },
    {
      "task": "Backwards-compatible CLI option",
      "rule": "baseline-replay",
      "expectedPublicTestPaths": [
        "apps/cli/tests/cli.test.ts"
      ],
      "baselineCommands": [
        [
          "bun",
          "test",
          "apps/cli/tests/cli.test.ts"
        ]
      ],
      "requiredConceptGroups": [
        [
          "--project"
        ],
        [
          "--project-id"
        ]
      ],
      "compatibilityAdjustment": "none"
    },
    {
      "task": "Nullable completion times",
      "rule": "nullable-value-mutation",
      "expectedPublicTestPaths": [
        "packages/sdk-ts/tests/client.test.ts",
        "packages/sdk-python/tests/test_client.py"
      ],
      "ruleDetails": "Recognize a nullable completed_at assertion on a constructed or SDK-decoded Job in changed hunk context; the assertion may already exist in context and need not be newly added. Both candidate public suites must pass; replacing null with a nonnull sentinel in a disposable copy must cause a named qualifying test to fail."
    },
    {
      "task": "JSON-mode process behavior",
      "rule": "baseline-replay",
      "expectedPublicTestPaths": [
        "apps/cli/tests/cli.test.ts"
      ],
      "baselineCommands": [
        [
          "bun",
          "test",
          "apps/cli/tests/cli.test.ts"
        ]
      ],
      "requiredConceptGroups": [
        [
          "json"
        ],
        [
          "stderr",
          "stdout",
          "exit",
          "return"
        ]
      ],
      "compatibilityAdjustment": "none"
    },
    {
      "task": "Idempotent job creation",
      "rule": "baseline-replay",
      "expectedPublicTestPaths": [
        "apps/api/tests/platform.test.ts",
        "packages/sdk-python/tests/test_client.py"
      ],
      "baselineCommands": [
        [
          "bun",
          "test",
          "apps/api/tests/platform.test.ts"
        ],
        [
          "python3",
          "-m",
          "unittest",
          "packages/sdk-python/tests/test_client.py",
          "-v"
        ]
      ],
      "requiredConceptGroups": [
        [
          "idempotency",
          "idempotency-key",
          "idempotency_key"
        ]
      ],
      "compatibilityAdjustment": "none"
    },
    {
      "task": "Backwards-compatible job status",
      "rule": "baseline-replay",
      "expectedPublicTestPaths": [
        "apps/api/tests/platform.test.ts",
        "packages/sdk-python/tests/test_client.py"
      ],
      "baselineCommands": [
        [
          "bun",
          "test",
          "apps/api/tests/platform.test.ts"
        ],
        [
          "python3",
          "-m",
          "unittest",
          "packages/sdk-python/tests/test_client.py",
          "-v"
        ]
      ],
      "requiredConceptGroups": [
        [
          "pending"
        ],
        [
          "queued"
        ]
      ],
      "compatibilityAdjustment": "none"
    },
    {
      "task": "Wait for job completion",
      "rule": "baseline-replay",
      "expectedPublicTestPaths": [
        "apps/cli/tests/cli.test.ts"
      ],
      "baselineCommands": [
        [
          "bun",
          "test",
          "apps/cli/tests/cli.test.ts"
        ]
      ],
      "requiredConceptGroups": [
        [
          "--wait",
          "wait"
        ],
        [
          "--timeout",
          "timeout"
        ],
        [
          "sleep",
          "clock",
          "runtime",
          "now"
        ]
      ],
      "compatibilityAdjustment": "none"
    }
  ],
  "matchingDetails": {
    "conceptGroups": "Case-insensitive substring matching in changed hunk context. Every group must match at least one alternative. Recognized added declaration/assertion required; changed text alone is insufficient.",
    "replay": "A nonzero exit plus a recognized candidate test name in output is the operational signal; it is not a causal proof of a meaningful assertion failure.",
    "noCoverageClaim": "Neither rule measures code coverage or independently adjudicated test adequacy.",
    "nullableContribution": "The nullable rule examines added and unchanged hunk context. A comment-only edit can expose an existing qualifying assertion; this rule does not prove a newly added assertion. The candidate-suite and named mutation-failure requirements still apply."
  },
  "limitations": [
    "Archived receipts were reconciled read-only against frozen digests, not independently rerun. No private traces or patches are published.",
    "This descriptive method is not an executable reimplementation. Original source and receipts remain private; independent public reproduction requires authorized source and evidence access.",
    "The published configuration difference is two reasoning settings; private values and mappings are withheld.",
    "Repeated attempts on ten tasks are not forty independent task samples.",
    "No independent human review has been completed."
  ]
}
