{
  "schemaVersion": "1.0.0",
  "plan": {
    "id": "plan-service-request-v3",
    "title": "Fictional service-request technical test plan",
    "version": "3.0.0",
    "status": "approved",
    "baselineDate": "2026-08-01",
    "productVersion": "3.4.1",
    "ownerId": "owner-quality",
    "scope": [
      "System contract, integration, state-transition, retry, regression, recovery, and bounded smoke behavior for the fictional service-request release",
      "Named environments, synthetic fixtures, entry and exit gates, suite ownership, traceability, evidence, defect state, and retest state",
      "A read-only production smoke sequence that remains planned until a real target environment and release are authorized"
    ],
    "outOfScope": [
      "UAT business acceptance, representative-user sign-off, product approval, and business-readiness decisions",
      "Security assessment, threat modeling, penetration testing, privacy review, and compliance certification",
      "Accessibility evaluation, assistive-technology review, conformance claims, and legal advice",
      "Launch or release authorization, deployment execution, production monitoring ownership, and proof that rollback will succeed"
    ],
    "strategy": "Run the smallest deterministic contract and integration checks first, exercise state and failure paths in preview, close defects through version-bound retests, then preserve production smoke as an ordered stop-on-failure handoff.",
    "recoveryPolicy": "Reset only synthetic fixtures in non-production. In production, stop on the first mismatch, preserve evidence, make no fixture write, and hand recovery to the named operations owner."
  },
  "owners": [
    {
      "id": "owner-quality",
      "name": "Quality lead",
      "role": "test strategy and evidence owner"
    },
    {
      "id": "owner-engineering",
      "name": "Engineering lead",
      "role": "implementation and defect owner"
    },
    {
      "id": "owner-operations",
      "name": "Operations lead",
      "role": "environment and recovery owner"
    },
    {
      "id": "owner-product",
      "name": "Product lead",
      "role": "versioned requirement source owner"
    }
  ],
  "environments": [
    {
      "id": "env-integration",
      "name": "Isolated integration environment",
      "tier": "integration",
      "baseUrl": "https://integration.example.test",
      "version": "2.1.0",
      "ownerId": "owner-engineering",
      "dataPolicy": "Synthetic fixtures reset from the versioned seed before each run.",
      "status": "ready"
    },
    {
      "id": "env-preview",
      "name": "Release-candidate preview",
      "tier": "preview",
      "baseUrl": "https://preview.example.test",
      "version": "3.4.1",
      "ownerId": "owner-operations",
      "dataPolicy": "Reserved synthetic records only; reset is explicit and recorded after recovery checks.",
      "status": "ready"
    },
    {
      "id": "env-production",
      "name": "Production smoke target",
      "tier": "production",
      "baseUrl": "https://production.example.test",
      "version": "3.4.1",
      "ownerId": "owner-operations",
      "dataPolicy": "Read-only bounded smoke with no fixture write, no personal data, and immediate stop on mismatch.",
      "status": "restricted"
    }
  ],
  "testData": [
    {
      "id": "data-standard-request",
      "name": "Standard synthetic request fixture",
      "classification": "synthetic",
      "containsPersonalData": false,
      "resetMethod": "Reload fixture request-standard-v2 and verify its checksum before the run.",
      "ownerId": "owner-quality",
      "version": "2.0.0"
    },
    {
      "id": "data-recovery-fixture",
      "name": "Reserved recovery fixture",
      "classification": "reserved-fixture",
      "containsPersonalData": false,
      "resetMethod": "Restore the signed fixture snapshot and compare record count plus content digest.",
      "ownerId": "owner-operations",
      "version": "1.2.0"
    },
    {
      "id": "data-smoke-readonly",
      "name": "Read-only smoke marker",
      "classification": "reserved-fixture",
      "containsPersonalData": false,
      "resetMethod": "No reset is allowed; verify the public marker and version without mutating state.",
      "ownerId": "owner-operations",
      "version": "1.0.0"
    }
  ],
  "requirements": [
    {
      "id": "req-contract",
      "sourceId": "spec-service-request",
      "sourceVersion": "3.4.0",
      "statement": "A complete request returns one stable reference and a pending-review state.",
      "ownerId": "owner-product"
    },
    {
      "id": "req-invalid",
      "sourceId": "spec-service-request",
      "sourceVersion": "3.4.0",
      "statement": "An invalid request returns field-specific errors and creates no durable record.",
      "ownerId": "owner-product"
    },
    {
      "id": "req-idempotency",
      "sourceId": "spec-service-request",
      "sourceVersion": "3.4.0",
      "statement": "A duplicate request with the same key reuses the first result without a second side effect.",
      "ownerId": "owner-product"
    },
    {
      "id": "req-transition",
      "sourceId": "spec-service-request",
      "sourceVersion": "3.4.0",
      "statement": "Only allowed actors and current versions may move a request through reviewed states.",
      "ownerId": "owner-product"
    },
    {
      "id": "req-retry",
      "sourceId": "spec-notification-handoff",
      "sourceVersion": "2.3.0",
      "statement": "A notification failure preserves the request and retries without duplicating the decision.",
      "ownerId": "owner-product"
    },
    {
      "id": "req-audit",
      "sourceId": "spec-service-request",
      "sourceVersion": "3.4.0",
      "statement": "Every accepted state change records actor, prior version, next version, outcome, and correlation ID.",
      "ownerId": "owner-product"
    },
    {
      "id": "req-recovery",
      "sourceId": "runbook-service-request",
      "sourceVersion": "1.5.0",
      "statement": "The known fixture can be restored and reconciled in the non-production recovery rehearsal.",
      "ownerId": "owner-operations"
    },
    {
      "id": "req-smoke",
      "sourceId": "runbook-service-request",
      "sourceVersion": "1.5.0",
      "statement": "The authorized production smoke checks health, read-only behavior, and exact release marker in order.",
      "ownerId": "owner-operations"
    }
  ],
  "gates": [
    {
      "id": "gate-entry-build",
      "phase": "entry",
      "name": "Exact product version is present in the named environment",
      "ownerId": "owner-engineering",
      "required": true,
      "status": "met",
      "evidenceId": "evidence-contract-pass"
    },
    {
      "id": "gate-entry-data",
      "phase": "entry",
      "name": "Synthetic fixture version and reset checksum are recorded",
      "ownerId": "owner-quality",
      "required": true,
      "status": "met",
      "evidenceId": "evidence-invalid-pass"
    },
    {
      "id": "gate-exit-required",
      "phase": "exit",
      "name": "Every required test has current evidence on the named product version",
      "ownerId": "owner-quality",
      "required": true,
      "status": "met",
      "evidenceId": "evidence-journey-pass"
    },
    {
      "id": "gate-exit-defects",
      "phase": "exit",
      "name": "No open blocker or critical defect remains in the QA boundary",
      "ownerId": "owner-quality",
      "required": true,
      "status": "met",
      "evidenceId": "evidence-retry-pass"
    },
    {
      "id": "gate-exit-recovery",
      "phase": "exit",
      "name": "Non-production recovery fixture reconciles after rehearsal",
      "ownerId": "owner-operations",
      "required": true,
      "status": "met",
      "evidenceId": "evidence-recovery-pass"
    }
  ],
  "suites": [
    {
      "id": "suite-contract",
      "name": "Request contract suite",
      "type": "contract",
      "ownerId": "owner-quality",
      "environmentIds": ["env-integration"],
      "testDataIds": ["data-standard-request"],
      "entryGateIds": ["gate-entry-build", "gate-entry-data"],
      "exitGateIds": ["gate-exit-required"],
      "objective": "Verify accepted and invalid request boundaries before deeper flows run."
    },
    {
      "id": "suite-integration",
      "name": "State and side-effect integration suite",
      "type": "integration",
      "ownerId": "owner-quality",
      "environmentIds": ["env-integration"],
      "testDataIds": ["data-standard-request"],
      "entryGateIds": ["gate-entry-build", "gate-entry-data"],
      "exitGateIds": ["gate-exit-required", "gate-exit-defects"],
      "objective": "Exercise retries, current-version state changes, and audit records with synthetic data."
    },
    {
      "id": "suite-journey",
      "name": "Preview state-transition suite",
      "type": "end-to-end",
      "ownerId": "owner-quality",
      "environmentIds": ["env-preview"],
      "testDataIds": ["data-standard-request"],
      "entryGateIds": ["gate-entry-build", "gate-entry-data"],
      "exitGateIds": ["gate-exit-required"],
      "objective": "Verify the visible request and review journey on the release candidate."
    },
    {
      "id": "suite-recovery",
      "name": "Recovery rehearsal suite",
      "type": "resilience",
      "ownerId": "owner-operations",
      "environmentIds": ["env-preview"],
      "testDataIds": ["data-recovery-fixture"],
      "entryGateIds": ["gate-entry-build", "gate-entry-data"],
      "exitGateIds": ["gate-exit-recovery"],
      "objective": "Exercise fixture restoration and reconciliation without implying production recovery proof."
    },
    {
      "id": "suite-smoke",
      "name": "Bounded release smoke suite",
      "type": "smoke",
      "ownerId": "owner-operations",
      "environmentIds": ["env-preview", "env-production"],
      "testDataIds": ["data-smoke-readonly"],
      "entryGateIds": ["gate-entry-build"],
      "exitGateIds": ["gate-exit-required"],
      "objective": "Preserve an ordered read-only stop-on-failure sequence for preview and later authorized production use."
    }
  ],
  "tests": [
    {
      "id": "test-contract-request",
      "suiteId": "suite-contract",
      "requirementIds": ["req-contract"],
      "title": "Complete request returns one pending reference",
      "priority": "critical",
      "kind": "positive",
      "automationStatus": "automated",
      "environmentIds": ["env-integration"],
      "testDataIds": ["data-standard-request"],
      "precondition": "Fixture checksum matches data-standard-request version 2.0.0.",
      "action": "Submit the complete reserved request once with a new idempotency key.",
      "expectedResult": "One stable request reference is returned in pending-review state.",
      "recovery": "Delete the synthetic record through the fixture reset command and verify the baseline checksum."
    },
    {
      "id": "test-invalid-request",
      "suiteId": "suite-contract",
      "requirementIds": ["req-invalid"],
      "title": "Invalid request fails without a record",
      "priority": "critical",
      "kind": "invalid-input",
      "automationStatus": "automated",
      "environmentIds": ["env-integration"],
      "testDataIds": ["data-standard-request"],
      "precondition": "The synthetic request reference is absent before execution.",
      "action": "Submit a request with the required service type omitted.",
      "expectedResult": "The response identifies service type and no request or notification record is created.",
      "recovery": "Query by correlation ID and fail the run if any durable record exists."
    },
    {
      "id": "test-duplicate-request",
      "suiteId": "suite-integration",
      "requirementIds": ["req-idempotency"],
      "title": "Duplicate request reuses the first result",
      "priority": "critical",
      "kind": "duplicate-retry",
      "automationStatus": "automated",
      "environmentIds": ["env-integration"],
      "testDataIds": ["data-standard-request"],
      "precondition": "A fresh idempotency key and baseline side-effect count are recorded.",
      "action": "Submit the same request twice with the same key and body fingerprint.",
      "expectedResult": "Both responses identify one request and the side-effect count increases once.",
      "recovery": "Reset the synthetic fixture and retain the duplicate-attempt log as evidence."
    },
    {
      "id": "test-state-transition",
      "suiteId": "suite-journey",
      "requirementIds": ["req-transition"],
      "title": "Reviewer moves the current request to reviewed",
      "priority": "critical",
      "kind": "state-transition",
      "automationStatus": "hybrid",
      "environmentIds": ["env-preview"],
      "testDataIds": ["data-standard-request"],
      "precondition": "The current request is pending review and the reviewer fixture is authorized.",
      "action": "Open the request, record a bounded review note, and accept the current version.",
      "expectedResult": "The visible and stored state is reviewed with one version increment and one audit event.",
      "recovery": "Restore the preview fixture snapshot and verify the prior pending state."
    },
    {
      "id": "test-notification-retry",
      "suiteId": "suite-integration",
      "requirementIds": ["req-retry", "req-idempotency"],
      "title": "Notification retry preserves one decision",
      "priority": "high",
      "kind": "duplicate-retry",
      "automationStatus": "automated",
      "environmentIds": ["env-integration"],
      "testDataIds": ["data-standard-request"],
      "precondition": "The provider fixture fails the first notification and accepts the second.",
      "action": "Record one reviewed decision, observe the first failure, then run the bounded retry.",
      "expectedResult": "One decision remains, one notification succeeds, and both attempts share one correlation ID.",
      "recovery": "Reset the provider and request fixtures and keep both attempt records."
    },
    {
      "id": "test-audit-record",
      "suiteId": "suite-integration",
      "requirementIds": ["req-audit", "req-transition"],
      "title": "State change writes the complete audit record",
      "priority": "high",
      "kind": "positive",
      "automationStatus": "automated",
      "environmentIds": ["env-integration"],
      "testDataIds": ["data-standard-request"],
      "precondition": "The request version and actor fixture are known.",
      "action": "Apply one allowed state change and retrieve the audit event by correlation ID.",
      "expectedResult": "Actor, prior version, next version, outcome, time, and correlation ID are present.",
      "recovery": "Reset the synthetic request and verify no audit row points to a missing fixture record."
    },
    {
      "id": "test-recovery-fixture",
      "suiteId": "suite-recovery",
      "requirementIds": ["req-recovery"],
      "title": "Recovery fixture restores and reconciles",
      "priority": "critical",
      "kind": "recovery",
      "automationStatus": "hybrid",
      "environmentIds": ["env-preview"],
      "testDataIds": ["data-recovery-fixture"],
      "precondition": "The signed fixture snapshot and expected count plus digest are available.",
      "action": "Change the reserved fixture, restore the snapshot, and run the reconciliation query.",
      "expectedResult": "The fixture count and content digest match the recorded pre-change values.",
      "recovery": "Keep preview traffic held and escalate if either reconciliation value differs."
    },
    {
      "id": "test-smoke-health",
      "suiteId": "suite-smoke",
      "requirementIds": ["req-smoke"],
      "title": "Public health endpoint identifies the expected service",
      "priority": "critical",
      "kind": "smoke",
      "automationStatus": "automated",
      "environmentIds": ["env-preview", "env-production"],
      "testDataIds": ["data-smoke-readonly"],
      "precondition": "The exact target and expected release marker are recorded by operations.",
      "action": "Request the bounded public health endpoint once.",
      "expectedResult": "The response is healthy and names the expected service without exposing private state.",
      "recovery": "Stop the smoke sequence and hand the response plus correlation ID to operations."
    },
    {
      "id": "test-smoke-readonly",
      "suiteId": "suite-smoke",
      "requirementIds": ["req-smoke", "req-contract"],
      "title": "Read-only public marker remains reachable",
      "priority": "critical",
      "kind": "smoke",
      "automationStatus": "automated",
      "environmentIds": ["env-preview", "env-production"],
      "testDataIds": ["data-smoke-readonly"],
      "precondition": "The reserved marker URL is approved for non-mutating smoke use.",
      "action": "Read the public marker and record its response digest.",
      "expectedResult": "The marker returns the expected stable reference and performs no write.",
      "recovery": "Stop and compare the response with the prior release before any further action."
    },
    {
      "id": "test-smoke-version",
      "suiteId": "suite-smoke",
      "requirementIds": ["req-smoke"],
      "title": "Release marker matches the authorized product version",
      "priority": "critical",
      "kind": "smoke",
      "automationStatus": "automated",
      "environmentIds": ["env-preview", "env-production"],
      "testDataIds": ["data-smoke-readonly"],
      "precondition": "The expected product version and artifact digest are recorded outside the target.",
      "action": "Read the public version marker and compare it with the authorized values.",
      "expectedResult": "Version 3.4.1 and the expected fictional artifact digest match exactly.",
      "recovery": "Stop the sequence, preserve both values, and let operations decide recovery."
    }
  ],
  "runs": [
    {
      "id": "run-integration-initial",
      "planVersion": "3.0.0",
      "productVersion": "3.4.0",
      "environmentId": "env-integration",
      "testDataId": "data-standard-request",
      "startedAt": "2026-08-01T09:00:00Z",
      "endedAt": "2026-08-01T09:08:00Z",
      "status": "partial",
      "testIds": [
        "test-contract-request",
        "test-invalid-request",
        "test-duplicate-request",
        "test-notification-retry",
        "test-audit-record"
      ]
    },
    {
      "id": "run-preview-release",
      "planVersion": "3.0.0",
      "productVersion": "3.4.1",
      "environmentId": "env-preview",
      "testDataId": "data-standard-request",
      "startedAt": "2026-08-01T10:00:00Z",
      "endedAt": "2026-08-01T10:12:00Z",
      "status": "passed",
      "testIds": ["test-state-transition"]
    },
    {
      "id": "run-preview-recovery",
      "planVersion": "3.0.0",
      "productVersion": "3.4.1",
      "environmentId": "env-preview",
      "testDataId": "data-recovery-fixture",
      "startedAt": "2026-08-01T10:20:00Z",
      "endedAt": "2026-08-01T10:31:00Z",
      "status": "passed",
      "testIds": ["test-recovery-fixture"]
    },
    {
      "id": "run-preview-smoke",
      "planVersion": "3.0.0",
      "productVersion": "3.4.1",
      "environmentId": "env-preview",
      "testDataId": "data-smoke-readonly",
      "startedAt": "2026-08-01T10:40:00Z",
      "endedAt": "2026-08-01T10:43:00Z",
      "status": "passed",
      "testIds": ["test-smoke-health", "test-smoke-readonly", "test-smoke-version"]
    },
    {
      "id": "run-integration-retest",
      "planVersion": "3.0.0",
      "productVersion": "3.4.1",
      "environmentId": "env-integration",
      "testDataId": "data-standard-request",
      "startedAt": "2026-08-01T11:00:00Z",
      "endedAt": "2026-08-01T11:03:00Z",
      "status": "passed",
      "testIds": ["test-notification-retry"]
    }
  ],
  "evidence": [
    {
      "id": "evidence-contract-pass",
      "runId": "run-integration-initial",
      "testId": "test-contract-request",
      "environmentId": "env-integration",
      "testDataId": "data-standard-request",
      "outcome": "passed",
      "observedResult": "One request reference sr-0007 entered pending-review state.",
      "artifactUrl": "https://evidence.example.test/runs/integration-initial/contract",
      "artifactSha256": "befcfab73aae4453417809f1eca9ee00714166342c7ace5d7a58f6cb901b6225",
      "recordedAt": "2026-08-01T09:02:00Z",
      "runnerVersion": "1.3.0"
    },
    {
      "id": "evidence-invalid-pass",
      "runId": "run-integration-initial",
      "testId": "test-invalid-request",
      "environmentId": "env-integration",
      "testDataId": "data-standard-request",
      "outcome": "passed",
      "observedResult": "Field error named service type and record count remained unchanged.",
      "artifactUrl": "https://evidence.example.test/runs/integration-initial/invalid",
      "artifactSha256": "c327652b92c5ce6e7448729577c8cab96974f977cd3eb94ec1331c2b88646100",
      "recordedAt": "2026-08-01T09:03:00Z",
      "runnerVersion": "1.3.0"
    },
    {
      "id": "evidence-duplicate-pass",
      "runId": "run-integration-initial",
      "testId": "test-duplicate-request",
      "environmentId": "env-integration",
      "testDataId": "data-standard-request",
      "outcome": "passed",
      "observedResult": "Both responses referenced sr-0008 and the side-effect count increased once.",
      "artifactUrl": "https://evidence.example.test/runs/integration-initial/duplicate",
      "artifactSha256": "4404b182a9eb14d789ae4d632cee77ea431b050be7e5f4ffaf1b5c682244c60a",
      "recordedAt": "2026-08-01T09:04:00Z",
      "runnerVersion": "1.3.0"
    },
    {
      "id": "evidence-notification-fail",
      "runId": "run-integration-initial",
      "testId": "test-notification-retry",
      "environmentId": "env-integration",
      "testDataId": "data-standard-request",
      "outcome": "failed",
      "observedResult": "The second notification attempt created a second decision audit row.",
      "artifactUrl": "https://evidence.example.test/runs/integration-initial/notification-failure",
      "artifactSha256": "522a9f799874464612dfced5778806bff93fadd847715d89f26e1fbd4a4b53a2",
      "recordedAt": "2026-08-01T09:06:00Z",
      "runnerVersion": "1.3.0"
    },
    {
      "id": "evidence-audit-pass",
      "runId": "run-integration-initial",
      "testId": "test-audit-record",
      "environmentId": "env-integration",
      "testDataId": "data-standard-request",
      "outcome": "passed",
      "observedResult": "The audit row included actor, versions, outcome, time, and correlation ID.",
      "artifactUrl": "https://evidence.example.test/runs/integration-initial/audit",
      "artifactSha256": "c62ebd97949418cf1f152a53f6396893f0e146a546d58a40d04c7b6bee025a30",
      "recordedAt": "2026-08-01T09:07:00Z",
      "runnerVersion": "1.3.0"
    },
    {
      "id": "evidence-journey-pass",
      "runId": "run-preview-release",
      "testId": "test-state-transition",
      "environmentId": "env-preview",
      "testDataId": "data-standard-request",
      "outcome": "passed",
      "observedResult": "The current request moved once to reviewed and showed the matching audit event.",
      "artifactUrl": "https://evidence.example.test/runs/preview-release/journey",
      "artifactSha256": "c2ba6a8120323a08c45701b0d8df679b03bd123c33c25ad9bb8250d529b3e779",
      "recordedAt": "2026-08-01T10:11:00Z",
      "runnerVersion": "1.3.0"
    },
    {
      "id": "evidence-recovery-pass",
      "runId": "run-preview-recovery",
      "testId": "test-recovery-fixture",
      "environmentId": "env-preview",
      "testDataId": "data-recovery-fixture",
      "outcome": "passed",
      "observedResult": "The restored fixture matched the recorded count and content digest.",
      "artifactUrl": "https://evidence.example.test/runs/preview-recovery/reconcile",
      "artifactSha256": "50f2105da73faed456179047e8b4af70a87c2be244ec95c634df2da610ca3d23",
      "recordedAt": "2026-08-01T10:30:00Z",
      "runnerVersion": "1.3.0"
    },
    {
      "id": "evidence-smoke-health-pass",
      "runId": "run-preview-smoke",
      "testId": "test-smoke-health",
      "environmentId": "env-preview",
      "testDataId": "data-smoke-readonly",
      "outcome": "passed",
      "observedResult": "Preview health named the expected fictional service.",
      "artifactUrl": "https://evidence.example.test/runs/preview-smoke/health",
      "artifactSha256": "345074eb9bd74d6ed32b23871c54a164b79fb954b8229e461f3a13cf2c34acb3",
      "recordedAt": "2026-08-01T10:41:00Z",
      "runnerVersion": "1.3.0"
    },
    {
      "id": "evidence-smoke-readonly-pass",
      "runId": "run-preview-smoke",
      "testId": "test-smoke-readonly",
      "environmentId": "env-preview",
      "testDataId": "data-smoke-readonly",
      "outcome": "passed",
      "observedResult": "Preview marker returned the stable reference with no recorded write.",
      "artifactUrl": "https://evidence.example.test/runs/preview-smoke/readonly",
      "artifactSha256": "c7555eab33800549106e5628d1c307a7d973006036f6c71fc06565d1088b34f7",
      "recordedAt": "2026-08-01T10:42:00Z",
      "runnerVersion": "1.3.0"
    },
    {
      "id": "evidence-smoke-version-pass",
      "runId": "run-preview-smoke",
      "testId": "test-smoke-version",
      "environmentId": "env-preview",
      "testDataId": "data-smoke-readonly",
      "outcome": "passed",
      "observedResult": "Preview reported product version 3.4.1 and the expected fictional digest.",
      "artifactUrl": "https://evidence.example.test/runs/preview-smoke/version",
      "artifactSha256": "b4a49d9e85c755aee160b562c100b3bf073ec6d6a3ab2deb3fcb3375a2ebaa03",
      "recordedAt": "2026-08-01T10:43:00Z",
      "runnerVersion": "1.3.0"
    },
    {
      "id": "evidence-retry-pass",
      "runId": "run-integration-retest",
      "testId": "test-notification-retry",
      "environmentId": "env-integration",
      "testDataId": "data-standard-request",
      "outcome": "passed",
      "observedResult": "The retry preserved one decision and recorded two notification attempts.",
      "artifactUrl": "https://evidence.example.test/runs/integration-retest/notification",
      "artifactSha256": "e4ecaf276643444aa4301fb1c8b213c92bbe2d5796d670642cb67b8bfd1b8a4f",
      "recordedAt": "2026-08-01T11:02:00Z",
      "runnerVersion": "1.3.0"
    }
  ],
  "defects": [
    {
      "id": "defect-duplicate-audit",
      "title": "Notification retry duplicates the decision audit row",
      "severity": "major",
      "status": "closed",
      "testId": "test-notification-retry",
      "evidenceId": "evidence-notification-fail",
      "environmentId": "env-integration",
      "ownerId": "owner-engineering",
      "openedAt": "2026-08-01T09:10:00Z",
      "resolutionVersion": "3.4.1"
    }
  ],
  "retests": [
    {
      "id": "retest-duplicate-audit",
      "defectId": "defect-duplicate-audit",
      "testId": "test-notification-retry",
      "runId": "run-integration-retest",
      "evidenceId": "evidence-retry-pass",
      "result": "passed",
      "testedAt": "2026-08-01T11:02:00Z",
      "productVersion": "3.4.1"
    }
  ],
  "productionSmoke": [
    {
      "id": "smoke-health",
      "sequence": 10,
      "title": "Confirm public health and service identity",
      "testId": "test-smoke-health",
      "environmentId": "env-production",
      "status": "planned",
      "stopOnFailure": true,
      "expectedResult": "The service is healthy and names the expected public service only.",
      "verification": "Record status, response digest, release marker, and correlation ID.",
      "recoveryOwnerId": "owner-operations"
    },
    {
      "id": "smoke-readonly",
      "sequence": 20,
      "title": "Confirm the approved read-only marker",
      "testId": "test-smoke-readonly",
      "environmentId": "env-production",
      "status": "planned",
      "stopOnFailure": true,
      "expectedResult": "The stable marker is readable and no write is recorded.",
      "verification": "Compare the response digest and write counter with the approved release record.",
      "recoveryOwnerId": "owner-operations"
    },
    {
      "id": "smoke-version",
      "sequence": 30,
      "title": "Confirm the exact release marker",
      "testId": "test-smoke-version",
      "environmentId": "env-production",
      "status": "planned",
      "stopOnFailure": true,
      "expectedResult": "The product version and artifact digest match the authorized release record.",
      "verification": "Preserve expected and observed version plus digest before closing smoke.",
      "recoveryOwnerId": "owner-operations"
    }
  ]
}
