Skip to content
ChangeGateReleaseProof

AI ANALYSIS · HUMAN OVERSIGHT

See the reasoning.

Two real recordings. Open either to look closer.

When versions disagree

October 16, 2026

Duo compared three examples. A human checked its advice.

Open recording

Real recorded Duo run over synthetic evidence. Opening this record makes no new AI call.

The supplied versions match

Target identity and source SHA are both equal to E0 in the synthetic projection, so this is only a synthetic consistency signal with no live release meaning.

Evidence details

Recorded classification: SYNTHETIC_SOURCE_MATCH

Expected source: 1111111111111111111111111111111111111111

Observed source: 1111111111111111111111111111111111111111

These identifiers are synthetic. They do not establish live deployment state.

  • E0 · /expectation/target/project_id
  • O1 · /observations/0/target/project_id
  • E0 · /expectation/target/deployment_id
  • O1 · /observations/0/target/deployment_id
  • E0 · /expectation/source_sha
  • O1 · /observations/0/source_sha

The versions are different

The target matches E0, but the source SHA is 2222... rather than expected 1111..., so version consistency is not shown and the discrepancy needs human review.

Evidence details

Recorded classification: SOURCE_MISMATCH

Expected source: 1111111111111111111111111111111111111111

Observed source: 2222222222222222222222222222222222222222

These identifiers are synthetic. They do not establish live deployment state.

  • E0 · /expectation/target/project_id
  • O2 · /observations/1/target/project_id
  • E0 · /expectation/target/deployment_id
  • O2 · /observations/1/target/deployment_id
  • E0 · /expectation/source_sha
  • O2 · /observations/1/source_sha

The observed version is missing

The target matches E0, but the observed source SHA is null, so equality with 1111... cannot be established and this observation gives no version assurance.

Evidence details

Recorded classification: SOURCE_MISSING

Expected source: 1111111111111111111111111111111111111111

Observed source: Missing

These identifiers are synthetic. They do not establish live deployment state.

  • E0 · /expectation/target/project_id
  • O3 · /observations/2/target/project_id
  • E0 · /expectation/target/deployment_id
  • O3 · /observations/2/target/deployment_id
  • E0 · /expectation/source_sha
  • O3 · /observations/2/source_sha
Recorded facts, unknowns and recommendations

Established facts

  • In the supplied synthetic projection, all three observations carry the same target identity as E0.
  • O1 has a source SHA equal to E0; O2 has a different source SHA; O3 has no source SHA.
  • The observations conflict (one match, one mismatch, one missing), so the set is not uniformly consistent.
  • A synthetic match is insufficient for live release authorization: the evidence is synthetic and human-transferred, and has no timestamps, no live deployment evidence, and no attestation. The conflicting O2 and O3 are unresolved, and authority fields show human_release PENDING, deployment_authorized false, G0 OPEN / NOT APPROVED and G1 CLOSED.
  • These observations cannot establish a real deployment chronology (order is shuffled and there are no timestamps), a root cause, a rollback, or source attestation (hashes are not authenticated here).

Unknowns

  • Capture time and order of O1, O2 and O3.
  • Whether the O2 SHA reflects a real different revision or a transfer or projection error.
  • Why O3 has no source SHA.
  • Whether the original bytes match the listed hashes.
  • Whether any live deployment matches E0.

Hypotheses, not findings

UNPROVEN: UNPROVEN: O2 was captured from a different revision of the same target (for example an earlier or later state) than the one E0 expects. Distinguishing evidence: Provider-side read-only records with observation timestamps for O2's capture, plus repository ancestry between 1111... and 2222...

UNPROVEN: UNPROVEN: O2 or O3 was altered or incompletely captured in saved-input transfer or projection (for example, the SHA was dropped from O3). Distinguishing evidence: Comparison of the original saved bytes against the listed original_bytes_sha256 values and the raw source fields.

Recommendations, not executed actions

  1. Have a human supervisor read-only verify the saved original bytes for E0, O1, O2 and O3 against their listed SHA-256 values and the projected fields. Rule out transfer or projection error before interpreting the mismatch or missing source.
  2. Obtain read-only provider records with observation timestamps for the target deployment and the sources of O2 and O3. Establish capture provenance and ordering, which the supplied evidence lacks.
  3. Perform a read-only review of commit metadata and ancestry for 1111... and 2222.... Determine how the two SHAs relate, without altering the expectation or any observed data.
Original files and provenance

Session 9631970. Human-transferred evidence. The recording is a supervisor receipt, not cryptographic attestation. A later app build does not rerun this session.

Raw response JSON
{
  "contract": "changegate-bounded-version-analysis/v1",
  "synthetic": true,
  "observations": [
    {
      "evidence_id": "O1",
      "classification": "SYNTHETIC_SOURCE_MATCH",
      "evidence_refs": [
        {
          "evidence_id": "E0",
          "pointer": "/expectation/target/project_id"
        },
        {
          "evidence_id": "O1",
          "pointer": "/observations/0/target/project_id"
        },
        {
          "evidence_id": "E0",
          "pointer": "/expectation/target/deployment_id"
        },
        {
          "evidence_id": "O1",
          "pointer": "/observations/0/target/deployment_id"
        },
        {
          "evidence_id": "E0",
          "pointer": "/expectation/source_sha"
        },
        {
          "evidence_id": "O1",
          "pointer": "/observations/0/source_sha"
        }
      ],
      "explanation": "Target identity and source SHA are both equal to E0 in the synthetic projection, so this is only a synthetic consistency signal with no live release meaning."
    },
    {
      "evidence_id": "O2",
      "classification": "SOURCE_MISMATCH",
      "evidence_refs": [
        {
          "evidence_id": "E0",
          "pointer": "/expectation/target/project_id"
        },
        {
          "evidence_id": "O2",
          "pointer": "/observations/1/target/project_id"
        },
        {
          "evidence_id": "E0",
          "pointer": "/expectation/target/deployment_id"
        },
        {
          "evidence_id": "O2",
          "pointer": "/observations/1/target/deployment_id"
        },
        {
          "evidence_id": "E0",
          "pointer": "/expectation/source_sha"
        },
        {
          "evidence_id": "O2",
          "pointer": "/observations/1/source_sha"
        }
      ],
      "explanation": "The target matches E0, but the source SHA is 2222... rather than expected 1111..., so version consistency is not shown and the discrepancy needs human review."
    },
    {
      "evidence_id": "O3",
      "classification": "SOURCE_MISSING",
      "evidence_refs": [
        {
          "evidence_id": "E0",
          "pointer": "/expectation/target/project_id"
        },
        {
          "evidence_id": "O3",
          "pointer": "/observations/2/target/project_id"
        },
        {
          "evidence_id": "E0",
          "pointer": "/expectation/target/deployment_id"
        },
        {
          "evidence_id": "O3",
          "pointer": "/observations/2/target/deployment_id"
        },
        {
          "evidence_id": "E0",
          "pointer": "/expectation/source_sha"
        },
        {
          "evidence_id": "O3",
          "pointer": "/observations/2/source_sha"
        }
      ],
      "explanation": "The target matches E0, but the observed source SHA is null, so equality with 1111... cannot be established and this observation gives no version assurance."
    }
  ],
  "consistent_observation_ids": [
    "O1"
  ],
  "release_authorized": false,
  "established_facts": [
    "In the supplied synthetic projection, all three observations carry the same target identity as E0.",
    "O1 has a source SHA equal to E0; O2 has a different source SHA; O3 has no source SHA.",
    "The observations conflict (one match, one mismatch, one missing), so the set is not uniformly consistent.",
    "A synthetic match is insufficient for live release authorization: the evidence is synthetic and human-transferred, and has no timestamps, no live deployment evidence, and no attestation. The conflicting O2 and O3 are unresolved, and authority fields show human_release PENDING, deployment_authorized false, G0 OPEN / NOT APPROVED and G1 CLOSED.",
    "These observations cannot establish a real deployment chronology (order is shuffled and there are no timestamps), a root cause, a rollback, or source attestation (hashes are not authenticated here)."
  ],
  "hypotheses": [
    {
      "hypothesis": "UNPROVEN: O2 was captured from a different revision of the same target (for example an earlier or later state) than the one E0 expects.",
      "status": "UNPROVEN",
      "distinguishing_evidence": "Provider-side read-only records with observation timestamps for O2's capture, plus repository ancestry between 1111... and 2222..."
    },
    {
      "hypothesis": "UNPROVEN: O2 or O3 was altered or incompletely captured in saved-input transfer or projection (for example, the SHA was dropped from O3).",
      "status": "UNPROVEN",
      "distinguishing_evidence": "Comparison of the original saved bytes against the listed original_bytes_sha256 values and the raw source fields."
    }
  ],
  "unknowns": [
    "Capture time and order of O1, O2 and O3.",
    "Whether the O2 SHA reflects a real different revision or a transfer or projection error.",
    "Why O3 has no source SHA.",
    "Whether the original bytes match the listed hashes.",
    "Whether any live deployment matches E0."
  ],
  "next_read_only_checks": [
    {
      "priority": 1,
      "check": "Have a human supervisor read-only verify the saved original bytes for E0, O1, O2 and O3 against their listed SHA-256 values and the projected fields.",
      "purpose": "Rule out transfer or projection error before interpreting the mismatch or missing source."
    },
    {
      "priority": 2,
      "check": "Obtain read-only provider records with observation timestamps for the target deployment and the sources of O2 and O3.",
      "purpose": "Establish capture provenance and ordering, which the supplied evidence lacks."
    },
    {
      "priority": 3,
      "check": "Perform a read-only review of commit metadata and ancestry for 1111... and 2222....",
      "purpose": "Determine how the two SHAs relate, without altering the expectation or any observed data."
    }
  ],
  "limitations": [
    "Synthetic, human-transferred evidence only; no source code, CI logs, provider timestamps or live deployment evidence.",
    "Hashes are not authenticated and no files were retrieved.",
    "No release, deployment, credential, permission change or waiver is authorized.",
    "This is bounded analysis, not autonomous investigation."
  ]
}
Recording identity and limitations
{
  "contract": "changegate-recorded-duo-analysis/v1",
  "recording_kind": "HISTORICAL_REAL_DUO_RUN_WITH_SYNTHETIC_INPUT",
  "synthetic_evidence": true,
  "acquisition": "HUMAN_TRANSFERRED_SAVED_SYNTHETIC_EVIDENCE",
  "flow_id": 1018028,
  "flow_version": "1.2.0",
  "session_id": 9631970,
  "pipeline_id": 2957792786,
  "job_id": 17251613604,
  "completed_at_utc": "2026-10-17T03:35:57Z",
  "displayed_model": "claude_sonnet_5_5_vertex",
  "session_status": "Finished",
  "pipeline_status": "success",
  "invocations": 1,
  "retries": 0,
  "mention_trigger_final": "OFF",
  "session_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/43241995/showcase/-/automate/agent-sessions/9631970",
  "pipeline_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/43241995/showcase/-/pipelines/2957792786",
  "evidence": {
    "path": "evidence.json",
    "sha256": "11434e5dbb8eb90fa4a00161fc8026a43c2d62618e0797234faf7e20854b73c1",
    "bytes": 2094
  },
  "response": {
    "path": "response.json",
    "sha256": "1d3623d8221cc2d95d649e73732a819cd5708a3b51ef96b07698c1c74660cc69",
    "bytes": 4939
  },
  "supervisor_review": {
    "core_classifications": "MET",
    "evidence_pointers_resolved": 18,
    "operational_actionability": "NOT_MET_FOR_SYNTHETIC_PROVIDER_AND_COMMIT_LOOKUPS",
    "caveat": "Provider records and commit ancestry checks reference invented target IDs and SHAs. They are future workflow templates, not actionable real-provider lookups until genuine identifiers and provenance are supplied. Original model response remains unedited.",
    "attestation": "SUPERVISOR_RECORDED_NOT_CRYPTOGRAPHIC_ATTESTATION"
  },
  "authority": {
    "human_release": "PENDING",
    "release_authorized": false,
    "deployment_authorized": false,
    "g0": "OPEN / NOT APPROVED",
    "g1": "CLOSED"
  },
  "limitations": [
    "Human-transferred synthetic analysis, not autonomous retrieval.",
    "No live deployment verification, recovery, rollback or source attestation.",
    "One example does not establish generalized model reliability.",
    "A later application build does not rerun this model session."
  ]
}

A completed scan. Unresolved findings.

October 13, 2026

Duo distinguished a scanner finishing from an audit passing.

Open recording

Historical QC evidence at commit 1e386861. Five High dependency records remained. This is separate from the current application and does not invoke Duo.

The key distinction

A successful scanner execution does not mean security findings are cleared or release is approved.

Read Duo’s explanation

This interprets only the embedded saved QC evidence; no live retrieval or new testing was done. Current QC status is FINDINGS and the pipeline status is failed. Configured scan coverage is complete, and SAST and secrets scans succeeded with 0 findings, and application-validation succeeded. However, the full dependency audit command exited 1 and the QC assessment failed. The audit-capture job executed successfully, but that does not turn the audit failure into a pass. The full audit has 5 affected package records, all high severity, which map to 1 distinct advisory (GHSA-vfj7-8cjw-p6xm). The production audit has 0 records. No audit waiver exists, and two historical unknowns remain (diagnostic_artifact_capture_time, lifecycle_approval_configuration_comparison). Complete scan coverage and successful scanner execution do not establish release approval or security, so overall validation stays UNVERIFIED. G0 stays OPEN / NOT APPROVED and G1 stays CLOSED. The evidence was human-transferred, autonomous private access is not proven, and release and deployment are not authorized. This is not a new frozen-verifier v0.4 result; v0.4 is unchanged and was not run on this report.

Original files
Raw response JSON
{
  "project_id": "87476475",
  "commit_sha": "1e386861925fae282682b22113f9a18b798ed2d9",
  "pipeline_id": "2943433979",
  "pipeline_status": "failed",
  "application_validation_status": "success",
  "current_qc_status": "FINDINGS",
  "configured_scan_coverage_complete": true,
  "sast_finding_count": 0,
  "secret_finding_count": 0,
  "full_audit_record_count": 5,
  "full_audit_high_record_count": 5,
  "distinct_advisory_count": 1,
  "production_audit_record_count": 0,
  "historical_unknowns": [
    "diagnostic_artifact_capture_time",
    "lifecycle_approval_configuration_comparison"
  ],
  "audit_waiver": false,
  "overall_validation": "UNVERIFIED",
  "G0": "OPEN / NOT APPROVED",
  "G1": "CLOSED",
  "source_acquisition": "human_read_connector",
  "autonomous_private_access_proven": false,
  "release_authorized": false,
  "deployment_authorized": false,
  "explanation": "This interprets only the embedded saved QC evidence; no live retrieval or new testing was done. Current QC status is FINDINGS and the pipeline status is failed. Configured scan coverage is complete, and SAST and secrets scans succeeded with 0 findings, and application-validation succeeded. However, the full dependency audit command exited 1 and the QC assessment failed. The audit-capture job executed successfully, but that does not turn the audit failure into a pass. The full audit has 5 affected package records, all high severity, which map to 1 distinct advisory (GHSA-vfj7-8cjw-p6xm). The production audit has 0 records. No audit waiver exists, and two historical unknowns remain (diagnostic_artifact_capture_time, lifecycle_approval_configuration_comparison). Complete scan coverage and successful scanner execution do not establish release approval or security, so overall validation stays UNVERIFIED. G0 stays OPEN / NOT APPROVED and G1 stays CLOSED. The evidence was human-transferred, autonomous private access is not proven, and release and deployment are not authorized. This is not a new frozen-verifier v0.4 result; v0.4 is unchanged and was not run on this report."
}

Recordings inform a human review. Neither grants release or deployment approval. One example does not establish general model reliability.