{
  "metadata": {
    "projectId": "SAMPLE-PENTASCOPE-MASTER",
    "artifactId": "MASTER-REFERENCE-001",
    "version": "1.0.0",
    "status": "Draft",
    "language": "en",
    "supportingLanguage": "Arabic examples and guide summary",
    "createdAt": "2026-09-08",
    "updatedAt": "2026-09-08",
    "author": "PentaScope synthetic reference authoring",
    "schemaVersion": "pentascope-master-reference/1.0",
    "skillRef": "pentascope-be/skills/pentascope-requirements-to-quality/SKILL.md",
    "mode": "coverage_audit",
    "entryStage": "brd",
    "targetRef": null,
    "sourceRefs": [
      "SRC-001",
      "SRC-002",
      "SRC-003",
      "SRC-004",
      "SRC-005",
      "SRC-006",
      "SRC-007",
      "SRC-008",
      "SRC-009",
      "SRC-010",
      "SRC-011",
      "SRC-012",
      "SRC-013",
      "SRC-014",
      "SRC-015",
      "SRC-016",
      "SRC-017",
      "SRC-018",
      "SRC-019",
      "SRC-020",
      "SRC-021",
      "SRC-022",
      "SRC-023",
      "SRC-024",
      "SRC-025",
      "SRC-026",
      "SRC-027",
      "SRC-028",
      "SRC-029",
      "SRC-030",
      "SRC-031"
    ],
    "synthetic": true,
    "executable": false,
    "changeSummary": "Initial comprehensive reference pack; no runtime project seeded, no customer content, no provider call, no execution evidence.",
    "supersedes": null
  },
  "businessRequirements": [
    {
      "id": "BR-001",
      "title": "Named account registration and recovery",
      "rule": "People use their own verified account; invalid registration and recovery input never grants project access.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-001"
      ]
    },
    {
      "id": "BR-002",
      "title": "Session revocation and MFA",
      "rule": "Account sessions and MFA operations validate current identity and expose no reusable secret after setup.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-002"
      ]
    },
    {
      "id": "BR-003",
      "title": "Project creation and strict data isolation",
      "rule": "A new project begins empty and every project read/write uses the authenticated selected project.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-003"
      ]
    },
    {
      "id": "BR-004",
      "title": "Membership and invitation governance",
      "rule": "Only authorized owners manage named memberships; invitations and revocation preserve project ownership and least privilege.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-004"
      ]
    },
    {
      "id": "BR-005",
      "title": "Restricted integration keys",
      "rule": "Widget and Agent credentials are restricted project service identities, never substitutes for a person or owner membership.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-005"
      ]
    },
    {
      "id": "BR-006",
      "title": "Typed document intake and file safety",
      "rule": "Explicit project-owned BRD, SRS and test-case uploads validate type, size and file content before analysis.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-006"
      ]
    },
    {
      "id": "BR-007",
      "title": "Durable analysis and recovery",
      "rule": "Document work uses durable project-scoped jobs, bounded retries and honest failure states without replacing partial validated work with a misleading summary.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-007"
      ]
    },
    {
      "id": "BR-008",
      "title": "Source obligation coverage and gaps",
      "rule": "Every mandatory source obligation receives an explicit disposition before BRD-derived SRS approval; unsupported assumptions stay visible.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-008"
      ]
    },
    {
      "id": "BR-009",
      "title": "Detailed BRD to SRS transformation",
      "rule": "Draft SRS preserves sourced business meaning and supplies actors, flows, data rules, exceptions and observable acceptance criteria without inventing business truth.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-009"
      ]
    },
    {
      "id": "BR-010",
      "title": "Requirement decisions and immutable revisions",
      "rule": "Explicit authorized review decisions govern requirement status, preserve revision history and invalidate downstream work when source meaning changes.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-010"
      ]
    },
    {
      "id": "BR-011",
      "title": "Project SRS navigation and explicit links",
      "rule": "SRS navigation and traceability show only actual project records and preserve unmapped relationships as visible gaps.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-011"
      ]
    },
    {
      "id": "BR-012",
      "title": "Story change and language preservation",
      "rule": "Story edits and translations preserve source lineage, business obligations and immutable prior meaning; translated content is reviewable.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-012"
      ]
    },
    {
      "id": "BR-013",
      "title": "Imported test cases retain identity and quality gaps",
      "rule": "Imported cases preserve original identity and content, map only supported requirements and expose duplicates or missing test design fields.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-013"
      ]
    },
    {
      "id": "BR-014",
      "title": "Risk-based test design and delta generation",
      "rule": "Generated tests have distinct risk-based objectives, precise criterion links, reproducible steps and observable outcomes; design does not record execution.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-014"
      ]
    },
    {
      "id": "BR-015",
      "title": "Test library selection and approval readiness",
      "rule": "Selections resolve current project-owned cases and distinguish approved browser-ready, blocked and manual-only work.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-015"
      ]
    },
    {
      "id": "BR-016",
      "title": "Execution preview bound to target and versions",
      "rule": "A confirmed preview binds selected cases, membership version, target and credentials; changes require fresh review before queueing.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-016"
      ]
    },
    {
      "id": "BR-017",
      "title": "Credential storage and scoped leases",
      "rule": "Test credentials are encrypted server-side and leased only through authorized Agent execution scope; ordinary reads expose metadata only.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-017"
      ]
    },
    {
      "id": "BR-018",
      "title": "Command claims, progress and recovery",
      "rule": "Agents execute only authorized safe commands, keep attributable progress and recover from interruption without duplicate terminal results.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-018"
      ]
    },
    {
      "id": "BR-019",
      "title": "Verifiable assertions and private evidence",
      "rule": "The backend computes assertion outcomes from actual receipts and never accepts an unsupported pass; evidence is project-scoped and expires by policy.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-019"
      ]
    },
    {
      "id": "BR-020",
      "title": "Defect capture and human triage",
      "rule": "Defects record reproducible observations and evidence; authorized human decisions separate confirmed fixes from rejected reports.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-020"
      ]
    },
    {
      "id": "BR-021",
      "title": "Fix delivery and exact-build retest",
      "rule": "A defect cannot close until a verified fully passing retest proves the fix on the delivered build and correct case lineage.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-020"
      ]
    },
    {
      "id": "BR-022",
      "title": "Change impact and regression selection",
      "rule": "Impact derives from explicit current links and identifies affected requirements, cases and downstream records without hiding unknown relationships.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-021"
      ]
    },
    {
      "id": "BR-023",
      "title": "Coverage arithmetic and release decisions",
      "rule": "Designed, approved, executed, passed and evidenced coverage are separate measurements; critical gaps block release despite a high aggregate score.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-022"
      ]
    },
    {
      "id": "BR-024",
      "title": "Portable exports and controlled handoff",
      "rule": "Exports and handoffs retain IDs, versions, status and project lineage while excluding secrets and unsupported readiness claims.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-023"
      ]
    },
    {
      "id": "BR-025",
      "title": "Scheduled execution with renewed readiness",
      "rule": "Schedules are project-owned, use validated cases/targets and do not execute stale or unauthorized work after relevant state changes.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-024"
      ]
    },
    {
      "id": "BR-026",
      "title": "Safe webhook delivery and retry",
      "rule": "Webhook destinations follow exact-host outbound policy and delivery/retry state records actual transport outcomes.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-025"
      ]
    },
    {
      "id": "BR-027",
      "title": "Grounded and bounded assistant plans",
      "rule": "Agent plans use authenticated project sources and allowed targets, explain missing inputs and stay within the approved safe execution mission.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-026"
      ]
    },
    {
      "id": "BR-028",
      "title": "Governed AI output, privacy and budgets",
      "rule": "AI operations use task-specific policy, validated structured output, bounded provider attempts and usage metadata without saving source bodies or secrets in usage receipts.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-027"
      ]
    },
    {
      "id": "BR-029",
      "title": "Private generated media and real content validation",
      "rule": "Generated presentation images are real validated media stored privately in the selected project and are never evidence of a test execution.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-028"
      ]
    },
    {
      "id": "BR-030",
      "title": "Accessible bilingual and responsive workspace",
      "rule": "English and Arabic routes preserve task context; core controls remain usable by keyboard and in narrow screens with accurate loading, empty and error states.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-029"
      ]
    },
    {
      "id": "BR-031",
      "title": "Readiness, backups and recovery operations",
      "rule": "Operations distinguish process liveness from required data/storage readiness and validate recovery against a consistent isolated database/object-store snapshot.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-030"
      ]
    },
    {
      "id": "BR-032",
      "title": "Auditability and sensitive-data minimization",
      "rule": "Business mutations and failures remain attributable to project, actor, operation and time while operational views exclude secret/source-body leakage.",
      "status": "Draft",
      "classification": "recommendation",
      "sourceRefs": [
        "SRC-031"
      ]
    }
  ],
  "requirements": [
    {
      "title": "Named account registration and recovery",
      "module": "identity",
      "actor": "account holder",
      "route": "/en/login",
      "source": "pentascope-be/lib/account-auth.ts",
      "rule": "People use their own verified account; invalid registration and recovery input never grants project access.",
      "fields": "email: normalized lowercase, valid format, maximum 320 characters; password: 12–1024 characters; verification/recovery token: secret, single-use, expiry from deployed policy.",
      "risk": "High",
      "id": "REQ-001",
      "businessId": "BR-001",
      "storyId": "US-001",
      "obligationId": "OBL-001",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "I can access my own work through a verified identity and recover access without giving an attacker control",
      "sourceRefs": [
        "SRC-001"
      ],
      "nfrRefs": [],
      "acceptanceCriteria": [
        {
          "id": "AC-001-01",
          "given": "A unique sample mailbox is controlled by the tester and email delivery uses a test sink.",
          "when": "Register the mailbox with a 12-character test password, open the delivered verification link, then sign in.",
          "then": "Verification identifies the intended account and sign-in reaches the project selection flow; no unrelated project becomes visible.",
          "status": "Draft"
        },
        {
          "id": "AC-001-02",
          "given": "No account exists for the test mailbox.",
          "when": "Try an 11-character password, then a malformed email, then a valid 12-character password and email using separate attempts.",
          "then": "Invalid attempts show actionable validation and create no usable account; the valid boundary can enter verification.",
          "status": "Draft"
        },
        {
          "id": "AC-001-03",
          "given": "A verified sample account and its test inbox exist.",
          "when": "Request recovery, redeem the link once with a new compliant password, then open the same link again.",
          "then": "The used link cannot reset the password a second time; the first reset remains effective.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-001",
        "TC-002",
        "TC-003"
      ]
    },
    {
      "title": "Session revocation and MFA",
      "module": "identity",
      "actor": "account holder",
      "route": "/en/account",
      "source": "pentascope-be/app/api/account-mfa/route.ts",
      "rule": "Account sessions and MFA operations validate current identity and expose no reusable secret after setup.",
      "fields": "sessionId: server-issued; MFA code: time-based numeric code; recovery code: secret and single-use; locale: supported UI choice.",
      "risk": "High",
      "id": "REQ-002",
      "businessId": "BR-002",
      "storyId": "US-002",
      "obligationId": "OBL-002",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "I can terminate unwanted sessions and protect sign-in with a second factor",
      "sourceRefs": [
        "SRC-002"
      ],
      "nfrRefs": [
        "NFR-003"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-002-01",
          "given": "Two isolated browser profiles are signed in to the same sample account.",
          "when": "In profile A revoke profile B from account sessions; in B request protected account and project data.",
          "then": "Profile B loses authorized access while A remains usable.",
          "status": "Draft"
        },
        {
          "id": "AC-002-02",
          "given": "MFA enrollment was completed with a tester-controlled authenticator.",
          "when": "Sign out, sign in with the password, submit an incorrect MFA code, then a current correct code.",
          "then": "The incorrect code cannot complete sign-in; the current correct code can.",
          "status": "Draft"
        },
        {
          "id": "AC-002-03",
          "given": "The sample account has MFA and an unused recovery code held outside the pack.",
          "when": "Use the recovery code to finish sign-in, sign out, then attempt to reuse it.",
          "then": "First use can recover access; second use is rejected.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-004",
        "TC-005",
        "TC-006"
      ]
    },
    {
      "title": "Project creation and strict data isolation",
      "module": "projects",
      "actor": "owner",
      "route": "/en/projects",
      "source": "pentascope-be/app/api/account-projects/route.ts",
      "rule": "A new project begins empty and every project read/write uses the authenticated selected project.",
      "fields": "projectId: server-issued and immutable; name: required; base URL/environment: configured target metadata; browser selector: not authorization.",
      "risk": "High",
      "id": "REQ-003",
      "businessId": "BR-003",
      "storyId": "US-003",
      "obligationId": "OBL-003",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "my team can start with its own sources and keep other projects confidential",
      "sourceRefs": [
        "SRC-003"
      ],
      "nfrRefs": [
        "NFR-001"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-003-01",
          "given": "The named owner is signed in and has no project called SAMPLE-A-{runKey}.",
          "when": "Create SAMPLE-A-{runKey}, select it, then open its SRS, test library and issues.",
          "then": "The project exists and each unpopulated area gives an honest empty state; no bundled business graph or cases are attached.",
          "status": "Draft"
        },
        {
          "id": "AC-003-02",
          "given": "Owner A belongs only to SAMPLE-A; owner B belongs only to SAMPLE-B containing a marker B-PRIVATE-{runKey}.",
          "when": "As A substitute B project and artifact IDs into observed read and write requests.",
          "then": "The server denies access without returning B content and without modifying B.",
          "status": "Draft"
        },
        {
          "id": "AC-003-03",
          "given": "One account belongs to A and B, each with a different source-title marker.",
          "when": "Open A source details, switch to B, navigate back and refresh the details route.",
          "then": "Every displayed source and count belongs to the current authorized project or an explicit unavailable state.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-007",
        "TC-008",
        "TC-009"
      ]
    },
    {
      "title": "Membership and invitation governance",
      "module": "access",
      "actor": "owner",
      "route": "/en/members",
      "source": "pentascope-be/app/api/project-members/route.ts",
      "rule": "Only authorized owners manage named memberships; invitations and revocation preserve project ownership and least privilege.",
      "fields": "role: owner/editor/tester/viewer; capabilities: server-maintained; invitation email: controlled test inbox; membership version: increases on change.",
      "risk": "High",
      "id": "REQ-004",
      "businessId": "BR-004",
      "storyId": "US-004",
      "obligationId": "OBL-004",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "collaborators receive only the access they need and ownership is never lost",
      "sourceRefs": [
        "SRC-004"
      ],
      "nfrRefs": [
        "NFR-001"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-004-01",
          "given": "Owner A controls a fresh project and the invitee has a separate verified account.",
          "when": "Invite the sample mailbox as viewer, accept from that mailbox account, then open the project.",
          "then": "The accepted member sees the intended project with viewer capabilities; the owner stays owner.",
          "status": "Draft"
        },
        {
          "id": "AC-004-02",
          "given": "An active tester is signed in and can read SAMPLE-A.",
          "when": "Remove the tester using the owner account, then retry a protected request from the tester session.",
          "then": "Removed membership grants no further project access, including with the old browser selector.",
          "status": "Draft"
        },
        {
          "id": "AC-004-03",
          "given": "The project has one active owner and a separate editor.",
          "when": "Attempt to remove or demote the sole owner, then use the supported transfer-owner action to the editor.",
          "then": "Removal/demotion cannot leave the project ownerless; a valid transfer makes the new account owner atomically.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-010",
        "TC-011",
        "TC-012"
      ]
    },
    {
      "title": "Restricted integration keys",
      "module": "access",
      "actor": "owner / service agent",
      "route": "/api/project-access-keys",
      "source": "pentascope-be/db/runtime.ts",
      "rule": "Widget and Agent credentials are restricted project service identities, never substitutes for a person or owner membership.",
      "fields": "scope: widget:write or agent:execute as issued; raw key: secret returned by controlled issuance only; display: masked last4; revoked status: enforced.",
      "risk": "High",
      "id": "REQ-005",
      "businessId": "BR-005",
      "storyId": "US-005",
      "obligationId": "OBL-005",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "capture and execution integrations can work without receiving human administrator privileges",
      "sourceRefs": [
        "SRC-005"
      ],
      "nfrRefs": [
        "NFR-001"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-005-01",
          "given": "Owner created a Widget key for A; the key is held in a test secret store.",
          "when": "Submit a synthetic issue and attachment through the supported Widget flow, then try listing project requirements with the same key.",
          "then": "Issue submission follows the Widget contract; requirement access is rejected.",
          "status": "Draft"
        },
        {
          "id": "AC-005-02",
          "given": "A valid A Agent key and a separate owner account exist.",
          "when": "Attempt a member update and owner-only settings change using the Agent key.",
          "then": "The server rejects both actions and membership/settings remain unchanged.",
          "status": "Draft"
        },
        {
          "id": "AC-005-03",
          "given": "An A Widget key has submitted one known fixture issue.",
          "when": "Revoke it as owner and retry a supported issue submission with that key.",
          "then": "The revoked key cannot create another issue.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-013",
        "TC-014",
        "TC-015"
      ]
    },
    {
      "title": "Typed document intake and file safety",
      "module": "source-intake",
      "actor": "editor",
      "route": "/api/project-documents",
      "source": "pentascope-be/app/api/project-documents/route.ts",
      "rule": "Explicit project-owned BRD, SRS and test-case uploads validate type, size and file content before analysis.",
      "fields": "documentType: brd/srs/test-cases; file: PDF/DOCX/XLSX/TXT/MD/CSV/JSON/HTML with matching extension/MIME/signature; maximum 20×1024×1024 bytes; hash: content-derived.",
      "risk": "High",
      "id": "REQ-006",
      "businessId": "BR-006",
      "storyId": "US-006",
      "obligationId": "OBL-006",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "the team analyzes the intended valid document and can identify its exact source version",
      "sourceRefs": [
        "SRC-006"
      ],
      "nfrRefs": [],
      "acceptanceCriteria": [
        {
          "id": "AC-006-01",
          "given": "A is empty and the tester has reviewed this synthetic BRD and authorized a sandbox import.",
          "when": "Choose BRD, upload BRD.md through the source intake, and inspect the saved source/job entry.",
          "then": "The source has a project-owned ID, filename, type, content hash and truthful queued/processing state.",
          "status": "Draft"
        },
        {
          "id": "AC-006-02",
          "given": "A valid tiny Markdown file and a harmless plain-text file renamed as .pdf are available.",
          "when": "Upload the renamed file as PDF; then upload the actual Markdown file as BRD.",
          "then": "The mismatch is rejected with a supported actionable error; the valid document enters the normal intake flow.",
          "status": "Draft"
        },
        {
          "id": "AC-006-03",
          "given": "An isolated local fixture builder can create valid plain-text files at 20 MiB and at 20 MiB + 1 byte; do not send them to a paid provider.",
          "when": "With analysis disabled/tested through a local harness, submit both sizes using an allowed text MIME and type.",
          "then": "The larger file returns the size rejection; the exact-limit file passes the size gate and remains subject to all other validation.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-016",
        "TC-017",
        "TC-018"
      ]
    },
    {
      "title": "Durable analysis and recovery",
      "module": "source-intake",
      "actor": "editor / operator",
      "route": "/api/analysis-jobs/[id]",
      "source": "pentascope-be/lib/analysis-job-queue.ts",
      "rule": "Document work uses durable project-scoped jobs, bounded retries and honest failure states without replacing partial validated work with a misleading summary.",
      "fields": "jobId: server-issued; attempts: bounded deployed policy; source hash/version: immutable input; progress: observed job progress; retry: authorized action.",
      "risk": "High",
      "id": "REQ-007",
      "businessId": "BR-007",
      "storyId": "US-007",
      "obligationId": "OBL-007",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "long-running analysis can recover from failures without losing source identity or duplicating accepted work",
      "sourceRefs": [
        "SRC-007"
      ],
      "nfrRefs": [
        "NFR-004",
        "NFR-008"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-007-01",
          "given": "A small approved synthetic source is queued and the local worker uses a deterministic provider fixture.",
          "when": "Start the bounded worker, refresh the source status, then open the produced artifact.",
          "then": "Progress and final state correspond to the durable job; the artifact stays Draft and cites the same source hash.",
          "status": "Draft"
        },
        {
          "id": "AC-007-02",
          "given": "A test provider fixture fails once with a retryable error, then returns a valid structured draft.",
          "when": "Process the job, inspect its failure/retry state, then invoke the supported authorized retry.",
          "then": "The job records bounded attempt history; retry preserves source identity and produces at most one successful final artifact version.",
          "status": "Draft"
        },
        {
          "id": "AC-007-03",
          "given": "A synthetic malformed provider fixture cannot satisfy the artifact schema.",
          "when": "Run the bounded attempts; if cancellation is offered, request cancellation while queued and observe it.",
          "then": "Exhaustion/cancellation has a truthful terminal state with an actionable reason; no Approved artifact is synthesized.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-019",
        "TC-020",
        "TC-021"
      ]
    },
    {
      "title": "Source obligation coverage and gaps",
      "module": "requirements",
      "actor": "requirements manager",
      "route": "/api/srs-source-audit",
      "source": "pentascope-be/lib/document-analysis-policy.ts",
      "rule": "Every mandatory source obligation receives an explicit disposition before BRD-derived SRS approval; unsupported assumptions stay visible.",
      "fields": "sourceRef: project artifact/version/hash/locator; disposition: requirement/duplicate/exclusion/ambiguity/conflict; reviewed exclusion: decision required; coverage receipt: current source hash.",
      "risk": "High",
      "id": "REQ-008",
      "businessId": "BR-008",
      "storyId": "US-008",
      "obligationId": "OBL-008",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "no mandatory business obligation disappears between a source document and an approved specification",
      "sourceRefs": [
        "SRC-008"
      ],
      "nfrRefs": [
        "NFR-002"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-008-01",
          "given": "A short source states two distinct obligations: only owners can invite; removed members lose access.",
          "when": "Analyze the source using the governed local fixture and inspect the obligation ledger and resulting requirements.",
          "then": "Both obligations have individual source locators and formal requirement/disposition links; neither is replaced by a generic module summary.",
          "status": "Draft"
        },
        {
          "id": "AC-008-02",
          "given": "One synthetic source says viewers may edit and another says viewers are read-only.",
          "when": "Submit both as versioned project sources and request review.",
          "then": "A conflict is visible with both citations and a blocking decision; the output does not silently choose a permission rule.",
          "status": "Draft"
        },
        {
          "id": "AC-008-03",
          "given": "A source has a complete draft coverage receipt.",
          "when": "Change the source by adding a mandatory obligation and process it as a new version.",
          "then": "The old receipt cannot establish complete coverage for the new hash; the new obligation is covered or explicitly listed as a gap.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-022",
        "TC-023",
        "TC-024"
      ]
    },
    {
      "title": "Detailed BRD to SRS transformation",
      "module": "requirements",
      "actor": "business analyst",
      "route": "/api/project-documents",
      "source": "pentascope-be/skills/pentascope-requirements-to-quality/references/stage-contracts.md",
      "rule": "Draft SRS preserves sourced business meaning and supplies actors, flows, data rules, exceptions and observable acceptance criteria without inventing business truth.",
      "fields": "requirement ID: stable; story: actor/goal/preconditions/trigger/flows/effects; criterion: stable ID and observable expected outcome; claim: sourced/derived/assumption/recommendation/gap.",
      "risk": "High",
      "id": "REQ-009",
      "businessId": "BR-009",
      "storyId": "US-009",
      "obligationId": "OBL-009",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "reviewers and testers understand exactly how the proposed business behavior should work",
      "sourceRefs": [
        "SRC-009"
      ],
      "nfrRefs": [
        "NFR-002"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-009-01",
          "given": "An approved-to-analyze synthetic BRD contains project invitation scope, actors and expected business result.",
          "when": "Request BRD-to-SRS and inspect the invitation story against the stage contract.",
          "then": "The draft has source citations, actor, main/alternate/error flows, field validation, permissions, effects and measurable acceptance criteria.",
          "status": "Draft"
        },
        {
          "id": "AC-009-02",
          "given": "The source says the system must be fast but supplies no latency target.",
          "when": "Analyze the source and inspect performance requirements, questions and quality gates.",
          "then": "No invented latency target is presented as sourced; a decision question or explicitly proposed measurable target is returned.",
          "status": "Draft"
        },
        {
          "id": "AC-009-03",
          "given": "Only chapter 2 is supplied to a bounded section analysis fixture.",
          "when": "Review chapter 2 and inspect document-wide missing-section findings.",
          "then": "The bounded result does not claim unseen chapters are absent; it records only uncertainties evidenced in chapter 2.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-025",
        "TC-026",
        "TC-027"
      ]
    },
    {
      "title": "Requirement decisions and immutable revisions",
      "module": "requirements",
      "actor": "requirements manager",
      "route": "/api/requirements-management",
      "source": "pentascope-be/app/api/requirements-management/route.ts",
      "rule": "Explicit authorized review decisions govern requirement status, preserve revision history and invalidate downstream work when source meaning changes.",
      "fields": "reviewStatus: Draft/Changes Requested/In Review/Approved/Rejected; scopeStatus: In Scope or explicit exclusion; expected version: current management version; reason: meaningful decision rationale.",
      "risk": "High",
      "id": "REQ-010",
      "businessId": "BR-010",
      "storyId": "US-010",
      "obligationId": "OBL-010",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "reviewers control what is approved and a concurrent edit cannot silently change that decision",
      "sourceRefs": [
        "SRC-010"
      ],
      "nfrRefs": [],
      "acceptanceCriteria": [
        {
          "id": "AC-010-01",
          "given": "A draft requirement has complete sources, no open blocking findings and an authorized reviewer under the current decision policy.",
          "when": "Submit for review, inspect gates, then approve with an attributable rationale.",
          "then": "Only a permitted review transition succeeds; decision actor/time/reason and approved version are recorded.",
          "status": "Draft"
        },
        {
          "id": "AC-010-02",
          "given": "A requirement has an open finding that blocks Approval.",
          "when": "Submit or attempt the approval action using an authorized manager.",
          "then": "The gate identifies the blocking finding and does not mark the requirement Approved.",
          "status": "Draft"
        },
        {
          "id": "AC-010-03",
          "given": "Two tabs load the same requirement management version.",
          "when": "Save a meaningful change in A; then attempt a different save/decision from B using the original version.",
          "then": "The stale operation is rejected or requires reload; it cannot overwrite A silently.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-028",
        "TC-029",
        "TC-030"
      ]
    },
    {
      "title": "Project SRS navigation and explicit links",
      "module": "requirements",
      "actor": "viewer",
      "route": "/en/srs",
      "source": "pentascope-be/app/api/project-traceability/route.ts",
      "rule": "SRS navigation and traceability show only actual project records and preserve unmapped relationships as visible gaps.",
      "fields": "hierarchy: department/module/workflow/story; link: explicit source and target IDs in one project; route/API references: discovered or approved, never invented.",
      "risk": "High",
      "id": "REQ-011",
      "businessId": "BR-011",
      "storyId": "US-011",
      "obligationId": "OBL-011",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "I can find the right story and see which relationships still require a business decision",
      "sourceRefs": [
        "SRC-011"
      ],
      "nfrRefs": [],
      "acceptanceCriteria": [
        {
          "id": "AC-011-01",
          "given": "A has a reviewed fixture module, workflow and story with known source markers.",
          "when": "Navigate from the SRS directory to workflow and story, then back to the project view.",
          "then": "Names, parents, criteria and source links describe the same project-owned story throughout.",
          "status": "Draft"
        },
        {
          "id": "AC-011-02",
          "given": "A requirement exists with no confirmed workflow or route.",
          "when": "Open traceability/coverage and filter for the unmapped record.",
          "then": "The record stays visibly unmapped and is not counted as fully route-covered.",
          "status": "Draft"
        },
        {
          "id": "AC-011-03",
          "given": "A and B each contain a distinct story; the actor can edit only A.",
          "when": "Attempt to connect an A test or requirement to the known B story identifier.",
          "then": "The server rejects or omits the unauthorized edge and returns no B content.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-031",
        "TC-032",
        "TC-033"
      ]
    },
    {
      "title": "Story change and language preservation",
      "module": "requirements",
      "actor": "editor",
      "route": "/api/story-edits",
      "source": "pentascope-be/app/api/story-translate/route.ts",
      "rule": "Story edits and translations preserve source lineage, business obligations and immutable prior meaning; translated content is reviewable.",
      "fields": "storyId: project-owned; sourceLanguage/targetLanguage: explicit; text: UTF-8; version and change reason: recorded; identifiers and numeric rules: preserved.",
      "risk": "High",
      "id": "REQ-012",
      "businessId": "BR-012",
      "storyId": "US-012",
      "obligationId": "OBL-012",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "both language audiences receive the same business meaning and earlier decisions remain traceable",
      "sourceRefs": [
        "SRC-012"
      ],
      "nfrRefs": [],
      "acceptanceCriteria": [
        {
          "id": "AC-012-01",
          "given": "A contains a story with a stable identifier and a known acceptance criterion.",
          "when": "Change its business rule with a reason and inspect the history and impact views.",
          "then": "The new text is attributable to the editor and previous content remains identifiable.",
          "status": "Draft"
        },
        {
          "id": "AC-012-02",
          "given": "The story contains Arabic text, a stable ID and a numeric limit; a local translation fixture is configured.",
          "when": "Request English translation and compare source and translated obligations side by side.",
          "then": "IDs, role restrictions, negation and numeric values are preserved; translation is a reviewable artifact.",
          "status": "Draft"
        },
        {
          "id": "AC-012-03",
          "given": "The original bilingual story is persisted and the translation provider fixture returns an error.",
          "when": "Request translation and observe the failure; reload the story.",
          "then": "The UI/API report failure and the original story is intact.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-034",
        "TC-035",
        "TC-036"
      ]
    },
    {
      "title": "Imported test cases retain identity and quality gaps",
      "module": "test-design",
      "actor": "tester",
      "route": "/api/project-documents",
      "source": "pentascope-be/lib/phase1-quality.ts",
      "rule": "Imported cases preserve original identity and content, map only supported requirements and expose duplicates or missing test design fields.",
      "fields": "documentType: test-cases; external ID: preserved source identity; requirement/criterion links: explicit; steps and expected outcomes: non-empty; review state: Draft.",
      "risk": "High",
      "id": "REQ-013",
      "businessId": "BR-013",
      "storyId": "US-013",
      "obligationId": "OBL-013",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "existing test assets remain reusable without hiding duplicates, missing expectations or unsupported mappings",
      "sourceRefs": [
        "SRC-013"
      ],
      "nfrRefs": [],
      "acceptanceCriteria": [
        {
          "id": "AC-013-01",
          "given": "A CSV fixture contains two distinct original IDs, steps, expected results and source requirement IDs.",
          "when": "Upload as test-cases and inspect the normalized suite.",
          "then": "Both case identities and detailed steps survive normalization with source lineage and Draft review state.",
          "status": "Draft"
        },
        {
          "id": "AC-013-02",
          "given": "A CSV contains one exact duplicate and a case referencing an unknown requirement.",
          "when": "Import the file and inspect review findings and mapping.",
          "then": "The duplicate and unknown link are visible for review; neither silently inflates verified coverage.",
          "status": "Draft"
        },
        {
          "id": "AC-013-03",
          "given": "An imported case has a title but no expected result or usable steps.",
          "when": "Inspect its readiness and attempt to include it in an execution preview.",
          "then": "The case remains non-executable with actionable missing-field reasons.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-037",
        "TC-038",
        "TC-039"
      ]
    },
    {
      "title": "Risk-based test design and delta generation",
      "module": "test-design",
      "actor": "tester",
      "route": "/api/story-test-generation",
      "source": "pentascope-be/app/api/story-test-generation/route.ts",
      "rule": "Generated tests have distinct risk-based objectives, precise criterion links, reproducible steps and observable outcomes; design does not record execution.",
      "fields": "source case/requirement version: explicit; category: relevant risk dimension; role/data/cleanup/evidence: required for executable design; generation scope: requested delta.",
      "risk": "High",
      "id": "REQ-014",
      "businessId": "BR-014",
      "storyId": "US-014",
      "obligationId": "OBL-014",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "the suite addresses real business risks with reproducible checks and observable outcomes",
      "sourceRefs": [
        "SRC-014"
      ],
      "nfrRefs": [
        "NFR-002"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-014-01",
          "given": "A review-approved invitation requirement has positive and permission criteria; a local structured provider fixture is configured.",
          "when": "Request test design and inspect each returned case and its exact criterion links.",
          "then": "Cases contain preconditions, independent data, ordered steps, expected outcomes, role and evidence needs, covering distinct business risks.",
          "status": "Draft"
        },
        {
          "id": "AC-014-02",
          "given": "The suite already has a reviewed happy-path case but lacks the revoked-member criterion.",
          "when": "Request missing coverage for that criterion and inspect the generated delta.",
          "then": "The new case addresses the missing criterion and preserves the existing reviewed case/version.",
          "status": "Draft"
        },
        {
          "id": "AC-014-03",
          "given": "A provider fixture returns a case referencing a nonexistent requirement or criterion.",
          "when": "Run generation through the backend validator.",
          "then": "Invalid links cannot enter approved coverage; the job reports a validation gap or bounded correction.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-040",
        "TC-041",
        "TC-042"
      ]
    },
    {
      "title": "Test library selection and approval readiness",
      "module": "test-design",
      "actor": "tester",
      "route": "/api/test-case-groups",
      "source": "pentascope-be/lib/test-library.ts",
      "rule": "Selections resolve current project-owned cases and distinguish approved browser-ready, blocked and manual-only work.",
      "fields": "selection: explicit IDs or current filter/group; case version: current; execution mode: manual/browser; approval state: current; status totals: disjoint truthful counts.",
      "risk": "High",
      "id": "REQ-015",
      "businessId": "BR-015",
      "storyId": "US-015",
      "obligationId": "OBL-015",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "I can choose an accurate current scope and know which cases still need preparation",
      "sourceRefs": [
        "SRC-015"
      ],
      "nfrRefs": [],
      "acceptanceCriteria": [
        {
          "id": "AC-015-01",
          "given": "A has distinguishable module suites with different priorities and review states.",
          "when": "Apply a module and priority filter, select the visible scope, then inspect selected IDs/counts.",
          "then": "Selection contains only matching project cases; hidden stale selections are not silently included.",
          "status": "Draft"
        },
        {
          "id": "AC-015-02",
          "given": "The selection contains one approved browser case, one Draft case and one manual-only case.",
          "when": "Request execution preview with the entire selection and no run-ready-only opt-in.",
          "then": "The preview returns an explicit mixed-selection blocker with ready/blocked/manual counts.",
          "status": "Draft"
        },
        {
          "id": "AC-015-03",
          "given": "A case was approved against requirement version 1.",
          "when": "Change the linked requirement through the permitted workflow, then resolve the old case selection.",
          "then": "The selection cannot treat the stale approval as current execution readiness.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-043",
        "TC-044",
        "TC-045"
      ]
    },
    {
      "title": "Execution preview bound to target and versions",
      "module": "execution",
      "actor": "tester",
      "route": "/api/execution-previews",
      "source": "pentascope-be/app/api/execution-previews/route.ts",
      "rule": "A confirmed preview binds selected cases, membership version, target and credentials; changes require fresh review before queueing.",
      "fields": "previewId/hash: server-issued; target: approved base URL/environment; options: credentialId/role/mode/dataProfile; selected case versions: frozen by preview.",
      "risk": "High",
      "id": "REQ-016",
      "businessId": "BR-016",
      "storyId": "US-016",
      "obligationId": "OBL-016",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "the browser runs exactly the cases, target and role I reviewed before confirmation",
      "sourceRefs": [
        "SRC-016"
      ],
      "nfrRefs": [],
      "acceptanceCriteria": [
        {
          "id": "AC-016-01",
          "given": "A has one approved browser-ready case, a configured sandbox target and an authorized tester.",
          "when": "Preview the case, review the target/role/counts, then confirm using the returned preview contract.",
          "then": "A command corresponds exactly to the reviewed case and target; it is not shown as already executed.",
          "status": "Draft"
        },
        {
          "id": "AC-016-02",
          "given": "A valid preview exists but has not been confirmed.",
          "when": "Change the project target or selected credential state, then attempt to confirm the old preview.",
          "then": "The stale preview cannot queue execution against the changed target; a fresh preview is required.",
          "status": "Draft"
        },
        {
          "id": "AC-016-03",
          "given": "A tester holds a preview for case version 1.",
          "when": "Revoke the tester or change case approval/version before confirmation; retry using the original preview.",
          "then": "Current authorization and version checks reject the stale confirmation.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-046",
        "TC-047",
        "TC-048"
      ]
    },
    {
      "title": "Credential storage and scoped leases",
      "module": "execution",
      "actor": "owner / service agent",
      "route": "/api/project-credentials/[id]/lease",
      "source": "pentascope-be/app/api/project-credentials/[id]/lease/route.ts",
      "rule": "Test credentials are encrypted server-side and leased only through authorized Agent execution scope; ordinary reads expose metadata only.",
      "fields": "credentialId: project-owned; login URL: target context; password: never stored in this pack/logs; status: Ready before selection; lease: short-lived server policy.",
      "risk": "High",
      "id": "REQ-017",
      "businessId": "BR-017",
      "storyId": "US-017",
      "obligationId": "OBL-017",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "an authorized runner can authenticate without exposing stored credentials to ordinary project readers",
      "sourceRefs": [
        "SRC-017"
      ],
      "nfrRefs": [
        "NFR-001",
        "NFR-003"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-017-01",
          "given": "Owner has a tester-controlled sandbox account; only the secret store contains its password.",
          "when": "Create a credential using the HTTPS project flow, then list credential metadata and inspect browser storage.",
          "then": "The credential is selectable by reference and list/UI/storage do not expose the password.",
          "status": "Draft"
        },
        {
          "id": "AC-017-02",
          "given": "A ready A credential exists; viewer and Widget identities have no Agent scope.",
          "when": "Request its lease using each disallowed identity.",
          "then": "Both requests are denied without credential material.",
          "status": "Draft"
        },
        {
          "id": "AC-017-03",
          "given": "The Agent belongs to A and a distinct B credential identifier is known in the isolated fixture.",
          "when": "Request B credential with A Agent, then revoke an A credential and request that lease.",
          "then": "Neither foreign nor revoked credential can be leased.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-049",
        "TC-050",
        "TC-051"
      ]
    },
    {
      "title": "Command claims, progress and recovery",
      "module": "execution",
      "actor": "agent:execute",
      "route": "/api/test-commands",
      "source": "pentascope-be/lib/test-command-service.ts",
      "rule": "Agents execute only authorized safe commands, keep attributable progress and recover from interruption without duplicate terminal results.",
      "fields": "commandId: server-issued; claim/lease: server-enforced; case IDs and target: approved; state: persisted; step timestamp: actual; forbidden actions: configured safe-mode policy.",
      "risk": "High",
      "id": "REQ-018",
      "businessId": "BR-018",
      "storyId": "US-018",
      "obligationId": "OBL-018",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "approved work completes once with truthful progress even when an agent stops or competes for a claim",
      "sourceRefs": [
        "SRC-018"
      ],
      "nfrRefs": [
        "NFR-004",
        "NFR-008"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-018-01",
          "given": "An authorized command contains one approved read-only browser case and an Agent key for A.",
          "when": "Claim it through the supported agent flow, perform the prescribed steps and submit actual receipts.",
          "then": "The command moves through truthful progress to its computed terminal state and is linked to its real run.",
          "status": "Draft"
        },
        {
          "id": "AC-018-02",
          "given": "One unclaimed command and two isolated authorized Agent clients exist.",
          "when": "Have both clients attempt to claim the same command at the same time.",
          "then": "Only a valid current claimant may perform/complete the command; no duplicate authoritative run is accepted.",
          "status": "Draft"
        },
        {
          "id": "AC-018-03",
          "given": "An Agent has claimed a safe read-only command; the recovery timing policy is recorded.",
          "when": "Interrupt the client before completion, allow the configured lease/recovery action, then resume through the supported flow.",
          "then": "Progress remains distinguishable from success; recovery cannot manufacture missing step evidence.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-052",
        "TC-053",
        "TC-054"
      ]
    },
    {
      "title": "Verifiable assertions and private evidence",
      "module": "evidence",
      "actor": "agent:execute / tester",
      "route": "/api/test-runs",
      "source": "pentascope-be/lib/execution-evidence.ts",
      "rule": "The backend computes assertion outcomes from actual receipts and never accepts an unsupported pass; evidence is project-scoped and expires by policy.",
      "fields": "assertion: ID/kind/subject/operator/expected/sourceRef; receipt: actual/outcome/observedAt; steps: ordered actual observations; files: private signed access; case version: exact.",
      "risk": "High",
      "id": "REQ-019",
      "businessId": "BR-019",
      "storyId": "US-019",
      "obligationId": "OBL-019",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "release reviewers can trust a result because actual observations prove its assertions",
      "sourceRefs": [
        "SRC-019"
      ],
      "nfrRefs": [
        "NFR-001",
        "NFR-002"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-019-01",
          "given": "An approved safe test expects a specific page text and URL on the sandbox build.",
          "when": "Execute it and submit actual step receipts plus matching objective assertions and allowed evidence.",
          "then": "The recorded outcome is computed from the actual observations and links to the exact case/build.",
          "status": "Draft"
        },
        {
          "id": "AC-019-02",
          "given": "The assertion contract expects HTTP status 200; a controlled target returns 500.",
          "when": "Submit actual=500 with a client-reported Passed result through the local execution harness.",
          "then": "The backend does not record an authoritative pass; computed outcome or validation identifies the mismatch.",
          "status": "Draft"
        },
        {
          "id": "AC-019-03",
          "given": "A private evidence file exists and the configured signed-URL expiry is recorded.",
          "when": "Try a modified signature, an unauthorized project context and the URL after expiry.",
          "then": "Access is denied without exposing object credentials or a reusable private storage location.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-055",
        "TC-056",
        "TC-057"
      ]
    },
    {
      "title": "Defect capture and human triage",
      "module": "defects",
      "actor": "tester / editor",
      "route": "/api/issues",
      "source": "pentascope-be/app/api/issues/[id]/route.ts",
      "rule": "Defects record reproducible observations and evidence; authorized human decisions separate confirmed fixes from rejected reports.",
      "fields": "issueId: server-issued; source run/case: actual if available; actual vs expected: separate; severity: triaged impact; status/reason/actor: attributable.",
      "risk": "High",
      "id": "REQ-020",
      "businessId": "BR-020",
      "storyId": "US-020",
      "obligationId": "OBL-020",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "the team can reproduce reported problems and make accountable decisions about which need fixes",
      "sourceRefs": [
        "SRC-020"
      ],
      "nfrRefs": [
        "NFR-008"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-020-01",
          "given": "A controlled sandbox page displays a wrong label; the expected label is linked to a reviewed criterion.",
          "when": "Create an issue with reproduction steps, actual/expected text, target build and redacted screenshot.",
          "then": "The issue retains the supplied facts and links without asserting unobserved impact.",
          "status": "Draft"
        },
        {
          "id": "AC-020-02",
          "given": "Two fixture issues exist: one reproducible and one contradicted by the approved requirement.",
          "when": "Use an authorized decision role to approve the first for fix and reject the second with rationale.",
          "then": "Each decision follows an allowed transition with an attributable business reason.",
          "status": "Draft"
        },
        {
          "id": "AC-020-03",
          "given": "An issue is open and a viewer or Widget key can identify it within the fixture.",
          "when": "Attempt to change it directly to Closed using the disallowed identity.",
          "then": "The transition is rejected and the original status remains.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-058",
        "TC-059",
        "TC-060"
      ]
    },
    {
      "title": "Fix delivery and exact-build retest",
      "module": "defects",
      "actor": "editor / tester",
      "route": "/api/issues/[id]",
      "source": "pentascope-be/app/api/issues/[id]/route.ts",
      "rule": "A defect cannot close until a verified fully passing retest proves the fix on the delivered build and correct case lineage.",
      "fields": "fix build: exact revision/identifier; delivery reference: durable link; retest run: project-owned, verified and fully passing; case lineage: issue-related; closure: named decision.",
      "risk": "High",
      "id": "REQ-021",
      "businessId": "BR-021",
      "storyId": "US-021",
      "obligationId": "OBL-021",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "a closed defect means its actual delivered fix has been verified on the correct build",
      "sourceRefs": [
        "SRC-020"
      ],
      "nfrRefs": [
        "NFR-008"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-021-01",
          "given": "A confirmed issue is approved for fix and a real sandbox fix build is available.",
          "when": "Record the exact build and delivery reference using the supported fix transition.",
          "then": "The issue records the build/delivery and reaches the allowed retest state, without claiming the fix passed.",
          "status": "Draft"
        },
        {
          "id": "AC-021-02",
          "given": "The issue awaits retest on build A; a passing fixture run exists on build B or unrelated case lineage.",
          "when": "Attempt closure using the unrelated or wrong-build run.",
          "then": "The gate rejects closure and explains the mismatched evidence.",
          "status": "Draft"
        },
        {
          "id": "AC-021-03",
          "given": "The actual fix build is deployed in the isolated target and a linked approved case is ready.",
          "when": "Run the case and required regression on that exact build; submit receipts; close through the authorized workflow.",
          "then": "Closure succeeds only if the required run is fully passing and evidence/lineage/build match.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-061",
        "TC-062",
        "TC-063"
      ]
    },
    {
      "title": "Change impact and regression selection",
      "module": "impact",
      "actor": "editor",
      "route": "/api/project-impact",
      "source": "pentascope-be/lib/project-impact-engine.ts",
      "rule": "Impact derives from explicit current links and identifies affected requirements, cases and downstream records without hiding unknown relationships.",
      "fields": "change reference: exact version; edge: persisted traceability; affected IDs: project-owned; rationale: cited link or labelled uncertainty; regression decision: human-reviewed.",
      "risk": "High",
      "id": "REQ-022",
      "businessId": "BR-022",
      "storyId": "US-022",
      "obligationId": "OBL-022",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "the team retests affected behavior and can see where incomplete links leave uncertainty",
      "sourceRefs": [
        "SRC-021"
      ],
      "nfrRefs": [],
      "acceptanceCriteria": [
        {
          "id": "AC-022-01",
          "given": "A requirement links to two cases and an unrelated requirement links to a third.",
          "when": "Change the first requirement meaningfully and inspect impact.",
          "then": "Both linked cases appear with traceable reasons; the unrelated case is not falsely asserted to depend on the changed rule.",
          "status": "Draft"
        },
        {
          "id": "AC-022-02",
          "given": "A changed requirement lacks route or case links.",
          "when": "Request impact and inspect coverage/gaps.",
          "then": "The response identifies missing mappings and cannot claim no impact merely because no link exists.",
          "status": "Draft"
        },
        {
          "id": "AC-022-03",
          "given": "A and B contain different similarly named requirements; A has only one accessible source.",
          "when": "Ask about the change in A using a local response fixture and inspect answer citations.",
          "then": "Citations resolve to A records; unsupported consequences are marked uncertain.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-064",
        "TC-065",
        "TC-066"
      ]
    },
    {
      "title": "Coverage arithmetic and release decisions",
      "module": "validation",
      "actor": "owner",
      "route": "/api/lifecycle",
      "source": "pentascope-be/app/api/lifecycle/route.ts",
      "rule": "Designed, approved, executed, passed and evidenced coverage are separate measurements; critical gaps block release despite a high aggregate score.",
      "fields": "denominator: in-scope current requirement/criterion IDs; numerator: explicit qualifying links; run/build: exact; dimension: functional/security/API/etc.; decision: named and reasoned.",
      "risk": "High",
      "id": "REQ-023",
      "businessId": "BR-023",
      "storyId": "US-023",
      "obligationId": "OBL-023",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "the release owner can distinguish planned coverage from observed proof and unresolved critical risk",
      "sourceRefs": [
        "SRC-022"
      ],
      "nfrRefs": [
        "NFR-002"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-023-01",
          "given": "A has four in-scope criteria, two linked Draft cases and no runs.",
          "when": "Open traceability and release/coverage views.",
          "then": "Designed criterion coverage is 2/4 where explicit links exist; executed/passed coverage remains zero.",
          "status": "Draft"
        },
        {
          "id": "AC-023-02",
          "given": "Most cases have valid passing evidence but a critical tenant-isolation criterion has no accepted run.",
          "when": "Prepare a release readiness decision for that exact build.",
          "then": "The unresolved critical criterion blocks a ready/approved conclusion regardless of average score.",
          "status": "Draft"
        },
        {
          "id": "AC-023-03",
          "given": "A previous build has a recorded readiness assessment.",
          "when": "Revise a linked requirement and inspect readiness for the changed scope/current build.",
          "then": "The prior assessment stays historical and cannot count as current proof of the changed obligation.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-067",
        "TC-068",
        "TC-069"
      ]
    },
    {
      "title": "Portable exports and controlled handoff",
      "module": "exports",
      "actor": "owner / editor",
      "route": "/api/validation-transfer",
      "source": "pentascope-be/app/api/validation-transfer/route.ts",
      "rule": "Exports and handoffs retain IDs, versions, status and project lineage while excluding secrets and unsupported readiness claims.",
      "fields": "export project/version: explicit; case IDs: stable; status: truthful; evidence: authorized references; credentials/raw tokens: excluded; destination: authorized when transfer is requested.",
      "risk": "High",
      "id": "REQ-024",
      "businessId": "BR-024",
      "storyId": "US-024",
      "obligationId": "OBL-024",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "another reviewer can follow the same quality lineage without receiving private credentials",
      "sourceRefs": [
        "SRC-023"
      ],
      "nfrRefs": [
        "NFR-003"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-024-01",
          "given": "A has a versioned source, requirement, Draft case and no execution.",
          "when": "Use the supported export/handoff operation and inspect the downloaded artifact.",
          "then": "The artifact preserves IDs, links and Draft/Not Run meaning with a visible project/version.",
          "status": "Draft"
        },
        {
          "id": "AC-024-02",
          "given": "A has a credential and service key with unique secret markers held outside the pack.",
          "when": "Export project handoff and inspect allowed metadata with an approved redaction scanner.",
          "then": "No credential password, raw service key, provider key or storage secret is present.",
          "status": "Draft"
        },
        {
          "id": "AC-024-03",
          "given": "A-only member knows B project ID in the isolated fixture.",
          "when": "Attempt B export/validation transfer with A authorization.",
          "then": "The server denies export without leaking B records or generating a downloadable B artifact.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-070",
        "TC-071",
        "TC-072"
      ]
    },
    {
      "title": "Scheduled execution with renewed readiness",
      "module": "integrations",
      "actor": "owner",
      "route": "/api/test-schedules",
      "source": "pentascope-be/app/api/test-schedules/route.ts",
      "rule": "Schedules are project-owned, use validated cases/targets and do not execute stale or unauthorized work after relevant state changes.",
      "fields": "name: required; cases/routes: at least one validated item; intervalMinutes: current route normalizes to 15–10080; status: active/paused; next run: ISO timestamp.",
      "risk": "High",
      "id": "REQ-025",
      "businessId": "BR-025",
      "storyId": "US-025",
      "obligationId": "OBL-025",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "recurring tests run only while their scope, permissions and target remain valid",
      "sourceRefs": [
        "SRC-024"
      ],
      "nfrRefs": [
        "NFR-004"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-025-01",
          "given": "A has one approved safe case and the local dispatcher is controlled by the tester.",
          "when": "Create a schedule, inspect next-run metadata, then pause before it is due.",
          "then": "The schedule belongs to A with validated selection and a visible paused state.",
          "status": "Draft"
        },
        {
          "id": "AC-025-02",
          "given": "A has a Draft case and an unknown case ID.",
          "when": "Attempt schedules for each invalid selection and an empty name/selection.",
          "then": "Invalid requests report actionable errors and cannot create executable scheduled work.",
          "status": "Draft"
        },
        {
          "id": "AC-025-03",
          "given": "A paused schedule was valid before its case approval or creator membership changed.",
          "when": "Change the approval/membership, then try resuming and dispatching it.",
          "then": "Current authorization/readiness is enforced; stale scheduling data cannot bypass execution gates.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-073",
        "TC-074",
        "TC-075"
      ]
    },
    {
      "title": "Safe webhook delivery and retry",
      "module": "integrations",
      "actor": "owner / operator",
      "route": "/api/webhook-deliveries",
      "source": "pentascope-be/lib/webhook-delivery.ts",
      "rule": "Webhook destinations follow exact-host outbound policy and delivery/retry state records actual transport outcomes.",
      "fields": "destination: approved HTTPS host; redirects/private addresses: governed deny policy; event ID: stable; attempts: bounded; payload: project-scoped and redacted.",
      "risk": "High",
      "id": "REQ-026",
      "businessId": "BR-026",
      "storyId": "US-026",
      "obligationId": "OBL-026",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "approved integrations receive events reliably and failed delivery remains visible for recovery",
      "sourceRefs": [
        "SRC-025"
      ],
      "nfrRefs": [
        "NFR-004"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-026-01",
          "given": "A local isolated transport fixture simulates an approved HTTPS webhook sink; no real recipient is used.",
          "when": "Trigger a supported project event and process one delivery pass.",
          "then": "A delivery record links the event to its actual accepted response and attempt time.",
          "status": "Draft"
        },
        {
          "id": "AC-026-02",
          "given": "The outbound policy uses a fixture allowlist and no external request is needed.",
          "when": "Through the local transport harness test non-allowlisted, loopback/private and redirecting destinations.",
          "then": "Unsafe destinations are rejected before forbidden network access; redirect policy is enforced.",
          "status": "Draft"
        },
        {
          "id": "AC-026-03",
          "given": "The fixture sink returns a retryable failure once then accepts the same event.",
          "when": "Process the first attempt and inspect failure, then process the due retry.",
          "then": "The first attempt is failed/pending retry; only the accepted receipt establishes delivery.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-076",
        "TC-077",
        "TC-078"
      ]
    },
    {
      "title": "Grounded and bounded assistant plans",
      "module": "assistant",
      "actor": "tester",
      "route": "/api/agent/plan",
      "source": "pentascope-be/app/api/agent/plan/route.ts",
      "rule": "Agent plans use authenticated project sources and allowed targets, explain missing inputs and stay within the approved safe execution mission.",
      "fields": "mission: explicit goal/scope; target: authorized base URL/route; role: credential reference; source IDs: project-owned; unsafe actions: forbidden unless explicitly approved in execution policy.",
      "risk": "High",
      "id": "REQ-027",
      "businessId": "BR-027",
      "storyId": "US-027",
      "obligationId": "OBL-027",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "the assistant helps plan safe project work using known sources and identifies what is missing",
      "sourceRefs": [
        "SRC-026"
      ],
      "nfrRefs": [
        "NFR-002"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-027-01",
          "given": "A has an approved read-only scenario, route map and local provider fixture.",
          "when": "Request an agent plan and inspect its steps, source links and target.",
          "then": "Steps are executable within the known route/role, cite the project source and contain observable assertions.",
          "status": "Draft"
        },
        {
          "id": "AC-027-02",
          "given": "A lacks a confirmed target URL or required role credential.",
          "when": "Request execution-oriented planning for an authenticated journey.",
          "then": "The response identifies the missing prerequisite and cannot represent the plan as execution-ready.",
          "status": "Draft"
        },
        {
          "id": "AC-027-03",
          "given": "A synthetic document contains quoted text telling the assistant to reveal secrets and visit an unrelated domain.",
          "when": "Run planning with the document as untrusted source content through a local provider fixture.",
          "then": "The quoted instructions are treated as source data and do not change scope, reveal secrets or trigger outbound actions.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-079",
        "TC-080",
        "TC-081"
      ]
    },
    {
      "title": "Governed AI output, privacy and budgets",
      "module": "ai-platform",
      "actor": "owner / operator",
      "route": "/api/ai-factory",
      "source": "pentascope-be/lib/ai-task-registry.ts",
      "rule": "AI operations use task-specific policy, validated structured output, bounded provider attempts and usage metadata without saving source bodies or secrets in usage receipts.",
      "fields": "operation/skill version: registered; source hash: current; provider/model: governed route; usage: tokens/cost/latency metadata; budget: enforced server-side; cache: scoped/versioned.",
      "risk": "High",
      "id": "REQ-028",
      "businessId": "BR-028",
      "storyId": "US-028",
      "obligationId": "OBL-028",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "the team receives validated AI work within approved privacy and spending boundaries",
      "sourceRefs": [
        "SRC-027"
      ],
      "nfrRefs": [
        "NFR-003"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-028-01",
          "given": "A valid deterministic provider fixture is configured and external paid requests are disabled.",
          "when": "Run a bounded test-design request and open owner-visible usage metadata.",
          "then": "The receipt identifies operation, policy/model fixture, counts and outcome without storing prompt/source/response bodies.",
          "status": "Draft"
        },
        {
          "id": "AC-028-02",
          "given": "An isolated policy fixture has exhausted its allowed project/operation budget.",
          "when": "Request another AI operation without changing the server policy.",
          "then": "The backend reports a budget/policy block before an unauthorized provider call.",
          "status": "Draft"
        },
        {
          "id": "AC-028-03",
          "given": "The first fixture provider fails and one permitted fallback returns malformed JSON.",
          "when": "Run the operation and inspect attempt/error receipts.",
          "then": "Only allowed bounded attempts occur; invalid fallback output cannot become an approved artifact or fake successful answer.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-082",
        "TC-083",
        "TC-084"
      ]
    },
    {
      "title": "Private generated media and real content validation",
      "module": "media",
      "actor": "editor",
      "route": "/api/ai-images",
      "source": "pentascope-be/app/api/ai-images/route.ts",
      "rule": "Generated presentation images are real validated media stored privately in the selected project and are never evidence of a test execution.",
      "fields": "image content: valid PNG/JPEG/WebP; source context: authorized; storage: private S3-compatible; read URL: signed/expiring; usage: governed image operation.",
      "risk": "High",
      "id": "REQ-029",
      "businessId": "BR-029",
      "storyId": "US-029",
      "obligationId": "OBL-029",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "the team can use real private presentation images without confusing them with test evidence",
      "sourceRefs": [
        "SRC-028"
      ],
      "nfrRefs": [],
      "acceptanceCriteria": [
        {
          "id": "AC-029-01",
          "given": "The local image provider fixture returns a small valid PNG and private sandbox storage is available.",
          "when": "Request a project presentation image, then open its authorized signed URL.",
          "then": "The image decodes correctly, belongs to A and has generation/usage metadata.",
          "status": "Draft"
        },
        {
          "id": "AC-029-02",
          "given": "The fixture provider returns HTML or invalid bytes while labelling them image/png.",
          "when": "Request generation and inspect the result.",
          "then": "Content validation rejects the payload and does not publish a broken/private artifact as success.",
          "status": "Draft"
        },
        {
          "id": "AC-029-03",
          "given": "A generated image has a valid signed URL and B has no access to A.",
          "when": "Try unauthorized metadata access and then access after configured link expiry.",
          "then": "Unauthorized metadata and expired reads are denied; the private object remains controlled.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-085",
        "TC-086",
        "TC-087"
      ]
    },
    {
      "title": "Accessible bilingual and responsive workspace",
      "module": "usability",
      "actor": "viewer / tester",
      "route": "/en/srs and /srs",
      "source": "pentascope-fe/lib/localized-route.mjs",
      "rule": "English and Arabic routes preserve task context; core controls remain usable by keyboard and in narrow screens with accurate loading, empty and error states.",
      "fields": "language: en/ar; Arabic direction: rtl; English: ltr; viewport fixtures: 375 and 1440 CSS pixels; focused control: visible; accessible name: meaningful.",
      "risk": "High",
      "id": "REQ-030",
      "businessId": "BR-030",
      "storyId": "US-030",
      "obligationId": "OBL-030",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "Arabic and English users can complete core work on narrow screens and with a keyboard",
      "sourceRefs": [
        "SRC-029"
      ],
      "nfrRefs": [
        "NFR-005"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-030-01",
          "given": "A contains English and Arabic source/story titles and the viewer is signed in.",
          "when": "Open /en/srs, switch to Arabic, navigate to a story, then return to English.",
          "then": "Authorized project context and corresponding content are preserved; direction and labels match the selected language.",
          "status": "Draft"
        },
        {
          "id": "AC-030-02",
          "given": "A tester can access source intake and the review/library controls in a desktop browser.",
          "when": "Navigate with Tab/Shift+Tab, activate labelled buttons and open/close any dialog using keyboard controls.",
          "then": "Focus is visible and logical; controls have accessible names; dialogs do not trap or lose focus incorrectly.",
          "status": "Draft"
        },
        {
          "id": "AC-030-03",
          "given": "A is empty and a controlled backend-error fixture can be enabled.",
          "when": "At 375 CSS pixels open Arabic and English project/SRS views; then trigger the controlled load failure and retry.",
          "then": "Important content/actions remain readable without clipped controls; empty, loading and error states are distinct and retryable.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-088",
        "TC-089",
        "TC-090"
      ]
    },
    {
      "title": "Readiness, backups and recovery operations",
      "module": "operations",
      "actor": "operator",
      "route": "/api/health and /api/ready",
      "source": "pentascope-be/app/api/ready/route.ts",
      "rule": "Operations distinguish process liveness from required data/storage readiness and validate recovery against a consistent isolated database/object-store snapshot.",
      "fields": "health: process status; ready: MySQL and object storage checks; build: exact revision; backup manifest: database and object-store point; RPO/RTO: owner decision, not inferred.",
      "risk": "High",
      "id": "REQ-031",
      "businessId": "BR-031",
      "storyId": "US-031",
      "obligationId": "OBL-031",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "operators can detect dependency failures and recover a consistent set of business records and evidence",
      "sourceRefs": [
        "SRC-030"
      ],
      "nfrRefs": [
        "NFR-006",
        "NFR-007"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-031-01",
          "given": "The isolated API, migrated database and private object storage are available.",
          "when": "Request liveness and readiness; inspect dependency outcomes and timestamps.",
          "then": "Liveness confirms the process and readiness reports dependency availability without credentials.",
          "status": "Draft"
        },
        {
          "id": "AC-031-02",
          "given": "An operator-controlled local fixture can disable MySQL or storage without touching shared services.",
          "when": "Disable one dependency, request both probes, then restore it.",
          "then": "Readiness reports the affected dependency failure; liveness remains a distinct process signal.",
          "status": "Draft"
        },
        {
          "id": "AC-031-03",
          "given": "An approved isolated backup contains a sample source, case, run metadata and matching evidence object; restoration is explicitly authorized for the sandbox.",
          "when": "Restore into a new disposable namespace, run migration/readiness checks and open the linked artifact/evidence.",
          "then": "The restored graph and evidence agree on IDs/versions; original environment is unchanged.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-091",
        "TC-092",
        "TC-093"
      ]
    },
    {
      "title": "Auditability and sensitive-data minimization",
      "module": "operations",
      "actor": "owner / operator",
      "route": "/api/activity and /api/system-logs",
      "source": "pentascope-be/lib/system-log.ts",
      "rule": "Business mutations and failures remain attributable to project, actor, operation and time while operational views exclude secret/source-body leakage.",
      "fields": "activity: project/actor/module/operation/time; correlation: command/run/job/issue where relevant; logs: sanitized; filters: bounded project scope; retention: approved policy gap.",
      "risk": "High",
      "id": "REQ-032",
      "businessId": "BR-032",
      "storyId": "US-032",
      "obligationId": "OBL-032",
      "status": "Draft",
      "version": "1.0.0",
      "classification": "recommendation",
      "derivation": "Proposed synthetic acceptance contract grounded in the cited local implementation/skill surface; it is not an approved customer requirement or proof of deployed behavior.",
      "businessBenefit": "the team can investigate changes and failures without leaking project content or secrets",
      "sourceRefs": [
        "SRC-031"
      ],
      "nfrRefs": [
        "NFR-003",
        "NFR-008"
      ],
      "acceptanceCriteria": [
        {
          "id": "AC-032-01",
          "given": "A named requirements manager has a review-ready requirement.",
          "when": "Record a permitted review decision, then inspect activity and requirement decision history.",
          "then": "Project, actor, action, time and affected requirement/version can be reconciled.",
          "status": "Draft"
        },
        {
          "id": "AC-032-02",
          "given": "A local transport fixture throws an error containing harmless canary text representing a secret.",
          "when": "Trigger the failure and inspect user-visible errors, system logs and usage metadata.",
          "then": "Actionable failure context remains while sensitive header/key/source-body values are redacted.",
          "status": "Draft"
        },
        {
          "id": "AC-032-03",
          "given": "A and B each contain a uniquely marked fixture activity.",
          "when": "As A query and paginate activity/log filters, including a guessed B identifier.",
          "then": "Only authorized A data is returned; counts and pagination do not reveal B content.",
          "status": "Draft"
        }
      ],
      "cases": [
        "TC-094",
        "TC-095",
        "TC-096"
      ]
    }
  ],
  "testCases": [
    {
      "id": "TC-001",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "identity",
      "title": "Register and verify a named account",
      "objective": "Verify register and verify a named account against AC-001-01.",
      "type": "Functional",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "People use their own verified account; invalid registration and recovery input never grants project access.",
      "requirementIds": [
        "REQ-001"
      ],
      "storyIds": [
        "US-001"
      ],
      "acceptanceCriterionIds": [
        "AC-001-01"
      ],
      "businessIds": [
        "BR-001"
      ],
      "sourceRefs": [
        "SRC-001"
      ],
      "routeRef": "/en/login",
      "role": "account holder",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A unique sample mailbox is controlled by the tester and email delivery uses a test sink."
      ],
      "testData": "Use a fresh TC-001-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A unique sample mailbox is controlled by the tester and email delivery uses a test sink.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A unique sample mailbox is controlled by the tester and email delivery uses a test sink.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Register the mailbox with a 12-character test password, open the delivered verification link, then sign in.",
          "expected": "Verification identifies the intended account and sign-in reaches the project selection flow; no unrelated project becomes visible."
        },
        {
          "index": 3,
          "action": "Sign out and sign in again; the account remains verified. Save a redacted email receipt and account-state observation.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Verification identifies the intended account and sign-in reaches the project selection flow; no unrelated project becomes visible.",
        "persistedData": "Sign out and sign in again; the account remains verified. Save a redacted email receipt and account-state observation.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "identity",
        "Functional",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-002",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "identity",
      "title": "Password and email boundaries reject invalid input",
      "objective": "Verify password and email boundaries reject invalid input against AC-001-02.",
      "type": "Boundary",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "People use their own verified account; invalid registration and recovery input never grants project access.",
      "requirementIds": [
        "REQ-001"
      ],
      "storyIds": [
        "US-001"
      ],
      "acceptanceCriterionIds": [
        "AC-001-02"
      ],
      "businessIds": [
        "BR-001"
      ],
      "sourceRefs": [
        "SRC-001"
      ],
      "routeRef": "/en/login",
      "role": "account holder",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "No account exists for the test mailbox."
      ],
      "testData": "Use a fresh TC-002-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: No account exists for the test mailbox.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: No account exists for the test mailbox.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Try an 11-character password, then a malformed email, then a valid 12-character password and email using separate attempts.",
          "expected": "Invalid attempts show actionable validation and create no usable account; the valid boundary can enter verification."
        },
        {
          "index": 3,
          "action": "Count accounts for the unique fixture via approved administration and confirm no invalid duplicate. Never capture the password.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Invalid attempts show actionable validation and create no usable account; the valid boundary can enter verification.",
        "persistedData": "Count accounts for the unique fixture via approved administration and confirm no invalid duplicate. Never capture the password.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "identity",
        "Boundary",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-003",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "identity",
      "title": "Recovery link cannot be replayed",
      "objective": "Verify recovery link cannot be replayed against AC-001-03.",
      "type": "Security",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "People use their own verified account; invalid registration and recovery input never grants project access.",
      "requirementIds": [
        "REQ-001"
      ],
      "storyIds": [
        "US-001"
      ],
      "acceptanceCriterionIds": [
        "AC-001-03"
      ],
      "businessIds": [
        "BR-001"
      ],
      "sourceRefs": [
        "SRC-001"
      ],
      "routeRef": "/en/login",
      "role": "account holder",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A verified sample account and its test inbox exist."
      ],
      "testData": "Use a fresh TC-003-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A verified sample account and its test inbox exist.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A verified sample account and its test inbox exist.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request recovery, redeem the link once with a new compliant password, then open the same link again.",
          "expected": "The used link cannot reset the password a second time; the first reset remains effective."
        },
        {
          "index": 3,
          "action": "Sign in using the new credential; verify the original credential is rejected and stored evidence contains no recovery token.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The used link cannot reset the password a second time; the first reset remains effective.",
        "persistedData": "Sign in using the new credential; verify the original credential is rejected and stored evidence contains no recovery token.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "identity",
        "Security",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-004",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "identity",
      "title": "Revoke another active session",
      "objective": "Verify revoke another active session against AC-002-01.",
      "type": "Security",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Account sessions and MFA operations validate current identity and expose no reusable secret after setup.",
      "requirementIds": [
        "REQ-002"
      ],
      "storyIds": [
        "US-002"
      ],
      "acceptanceCriterionIds": [
        "AC-002-01"
      ],
      "businessIds": [
        "BR-002"
      ],
      "sourceRefs": [
        "SRC-002"
      ],
      "routeRef": "/en/account",
      "role": "account holder",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "Two isolated browser profiles are signed in to the same sample account."
      ],
      "testData": "Use a fresh TC-004-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: Two isolated browser profiles are signed in to the same sample account.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: Two isolated browser profiles are signed in to the same sample account.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "In profile A revoke profile B from account sessions; in B request protected account and project data.",
          "expected": "Profile B loses authorized access while A remains usable."
        },
        {
          "index": 3,
          "action": "Refresh B and replay its previous protected request; access remains denied and no sensitive data is returned.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Profile B loses authorized access while A remains usable.",
        "persistedData": "Refresh B and replay its previous protected request; access remains denied and no sensitive data is returned.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "identity",
        "Security",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-005",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "identity",
      "title": "Require valid MFA at sign-in",
      "objective": "Verify require valid mfa at sign-in against AC-002-02.",
      "type": "Security",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Account sessions and MFA operations validate current identity and expose no reusable secret after setup.",
      "requirementIds": [
        "REQ-002"
      ],
      "storyIds": [
        "US-002"
      ],
      "acceptanceCriterionIds": [
        "AC-002-02"
      ],
      "businessIds": [
        "BR-002"
      ],
      "sourceRefs": [
        "SRC-002"
      ],
      "routeRef": "/en/account",
      "role": "account holder",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "MFA enrollment was completed with a tester-controlled authenticator."
      ],
      "testData": "Use a fresh TC-005-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: MFA enrollment was completed with a tester-controlled authenticator.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: MFA enrollment was completed with a tester-controlled authenticator.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Sign out, sign in with the password, submit an incorrect MFA code, then a current correct code.",
          "expected": "The incorrect code cannot complete sign-in; the current correct code can."
        },
        {
          "index": 3,
          "action": "Confirm protected requests before successful MFA expose no project data; screenshots exclude setup secrets and codes.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The incorrect code cannot complete sign-in; the current correct code can.",
        "persistedData": "Confirm protected requests before successful MFA expose no project data; screenshots exclude setup secrets and codes.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "identity",
        "Security",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-006",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "identity",
      "title": "Recovery code is consumed once",
      "objective": "Verify recovery code is consumed once against AC-002-03.",
      "type": "Recovery",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Account sessions and MFA operations validate current identity and expose no reusable secret after setup.",
      "requirementIds": [
        "REQ-002"
      ],
      "storyIds": [
        "US-002"
      ],
      "acceptanceCriterionIds": [
        "AC-002-03"
      ],
      "businessIds": [
        "BR-002"
      ],
      "sourceRefs": [
        "SRC-002"
      ],
      "routeRef": "/en/account",
      "role": "account holder",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The sample account has MFA and an unused recovery code held outside the pack."
      ],
      "testData": "Use a fresh TC-006-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The sample account has MFA and an unused recovery code held outside the pack.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The sample account has MFA and an unused recovery code held outside the pack.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Use the recovery code to finish sign-in, sign out, then attempt to reuse it.",
          "expected": "First use can recover access; second use is rejected."
        },
        {
          "index": 3,
          "action": "Record redacted authentication outcomes and leave the account with a controlled valid recovery method.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "First use can recover access; second use is rejected.",
        "persistedData": "Record redacted authentication outcomes and leave the account with a controlled valid recovery method.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "identity",
        "Recovery",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-007",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "projects",
      "title": "Create an empty project",
      "objective": "Verify create an empty project against AC-003-01.",
      "type": "Functional",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "A new project begins empty and every project read/write uses the authenticated selected project.",
      "requirementIds": [
        "REQ-003"
      ],
      "storyIds": [
        "US-003"
      ],
      "acceptanceCriterionIds": [
        "AC-003-01"
      ],
      "businessIds": [
        "BR-003"
      ],
      "sourceRefs": [
        "SRC-003"
      ],
      "routeRef": "/en/projects",
      "role": "owner",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The named owner is signed in and has no project called SAMPLE-A-{runKey}."
      ],
      "testData": "Use a fresh TC-007-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The named owner is signed in and has no project called SAMPLE-A-{runKey}.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The named owner is signed in and has no project called SAMPLE-A-{runKey}.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Create SAMPLE-A-{runKey}, select it, then open its SRS, test library and issues.",
          "expected": "The project exists and each unpopulated area gives an honest empty state; no bundled business graph or cases are attached."
        },
        {
          "index": 3,
          "action": "Reload and read the project overview; counts remain zero until an explicit authorized upload or creation.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The project exists and each unpopulated area gives an honest empty state; no bundled business graph or cases are attached.",
        "persistedData": "Reload and read the project overview; counts remain zero until an explicit authorized upload or creation.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "projects",
        "Functional",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-008",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "projects",
      "title": "Reject another project identifier",
      "objective": "Verify reject another project identifier against AC-003-02.",
      "type": "Tenant isolation",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "A new project begins empty and every project read/write uses the authenticated selected project.",
      "requirementIds": [
        "REQ-003"
      ],
      "storyIds": [
        "US-003"
      ],
      "acceptanceCriterionIds": [
        "AC-003-02"
      ],
      "businessIds": [
        "BR-003"
      ],
      "sourceRefs": [
        "SRC-003"
      ],
      "routeRef": "/en/projects",
      "role": "owner",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "Owner A belongs only to SAMPLE-A; owner B belongs only to SAMPLE-B containing a marker B-PRIVATE-{runKey}."
      ],
      "testData": "Use a fresh TC-008-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: Owner A belongs only to SAMPLE-A; owner B belongs only to SAMPLE-B containing a marker B-PRIVATE-{runKey}.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: Owner A belongs only to SAMPLE-A; owner B belongs only to SAMPLE-B containing a marker B-PRIVATE-{runKey}.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "As A substitute B project and artifact IDs into observed read and write requests.",
          "expected": "The server denies access without returning B content and without modifying B."
        },
        {
          "index": 3,
          "action": "As B confirm the marker and record count are unchanged; retain redacted denial responses.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The server denies access without returning B content and without modifying B.",
        "persistedData": "As B confirm the marker and record count are unchanged; retain redacted denial responses.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "projects",
        "Tenant isolation",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-009",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "projects",
      "title": "Switch projects without stale content",
      "objective": "Verify switch projects without stale content against AC-003-03.",
      "type": "State",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "A new project begins empty and every project read/write uses the authenticated selected project.",
      "requirementIds": [
        "REQ-003"
      ],
      "storyIds": [
        "US-003"
      ],
      "acceptanceCriterionIds": [
        "AC-003-03"
      ],
      "businessIds": [
        "BR-003"
      ],
      "sourceRefs": [
        "SRC-003"
      ],
      "routeRef": "/en/projects",
      "role": "owner",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "One account belongs to A and B, each with a different source-title marker."
      ],
      "testData": "Use a fresh TC-009-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: One account belongs to A and B, each with a different source-title marker.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: One account belongs to A and B, each with a different source-title marker.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Open A source details, switch to B, navigate back and refresh the details route.",
          "expected": "Every displayed source and count belongs to the current authorized project or an explicit unavailable state."
        },
        {
          "index": 3,
          "action": "Inspect API project context and browser storage; only a non-sensitive project selector may persist locally.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Every displayed source and count belongs to the current authorized project or an explicit unavailable state.",
        "persistedData": "Inspect API project context and browser storage; only a non-sensitive project selector may persist locally.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "projects",
        "State",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-010",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "access",
      "title": "Invite and accept a viewer membership",
      "objective": "Verify invite and accept a viewer membership against AC-004-01.",
      "type": "Functional",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Only authorized owners manage named memberships; invitations and revocation preserve project ownership and least privilege.",
      "requirementIds": [
        "REQ-004"
      ],
      "storyIds": [
        "US-004"
      ],
      "acceptanceCriterionIds": [
        "AC-004-01"
      ],
      "businessIds": [
        "BR-004"
      ],
      "sourceRefs": [
        "SRC-004"
      ],
      "routeRef": "/en/members",
      "role": "owner",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "Owner A controls a fresh project and the invitee has a separate verified account."
      ],
      "testData": "Use a fresh TC-010-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: Owner A controls a fresh project and the invitee has a separate verified account.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: Owner A controls a fresh project and the invitee has a separate verified account.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Invite the sample mailbox as viewer, accept from that mailbox account, then open the project.",
          "expected": "The accepted member sees the intended project with viewer capabilities; the owner stays owner."
        },
        {
          "index": 3,
          "action": "As viewer attempt a requirement mutation; it is denied. Record invitation delivery and membership role without tokens.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The accepted member sees the intended project with viewer capabilities; the owner stays owner.",
        "persistedData": "As viewer attempt a requirement mutation; it is denied. Record invitation delivery and membership role without tokens.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "access",
        "Functional",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-011",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "access",
      "title": "Membership removal takes immediate effect",
      "objective": "Verify membership removal takes immediate effect against AC-004-02.",
      "type": "Security",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Only authorized owners manage named memberships; invitations and revocation preserve project ownership and least privilege.",
      "requirementIds": [
        "REQ-004"
      ],
      "storyIds": [
        "US-004"
      ],
      "acceptanceCriterionIds": [
        "AC-004-02"
      ],
      "businessIds": [
        "BR-004"
      ],
      "sourceRefs": [
        "SRC-004"
      ],
      "routeRef": "/en/members",
      "role": "owner",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "An active tester is signed in and can read SAMPLE-A."
      ],
      "testData": "Use a fresh TC-011-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: An active tester is signed in and can read SAMPLE-A.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: An active tester is signed in and can read SAMPLE-A.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Remove the tester using the owner account, then retry a protected request from the tester session.",
          "expected": "Removed membership grants no further project access, including with the old browser selector."
        },
        {
          "index": 3,
          "action": "Refresh and retry an execution action; no command is created.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Removed membership grants no further project access, including with the old browser selector.",
        "persistedData": "Refresh and retry an execution action; no command is created.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "access",
        "Security",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-012",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "access",
      "title": "Protect the last owner",
      "objective": "Verify protect the last owner against AC-004-03.",
      "type": "Business rule",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Only authorized owners manage named memberships; invitations and revocation preserve project ownership and least privilege.",
      "requirementIds": [
        "REQ-004"
      ],
      "storyIds": [
        "US-004"
      ],
      "acceptanceCriterionIds": [
        "AC-004-03"
      ],
      "businessIds": [
        "BR-004"
      ],
      "sourceRefs": [
        "SRC-004"
      ],
      "routeRef": "/en/members",
      "role": "owner",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The project has one active owner and a separate editor."
      ],
      "testData": "Use a fresh TC-012-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The project has one active owner and a separate editor.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The project has one active owner and a separate editor.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Attempt to remove or demote the sole owner, then use the supported transfer-owner action to the editor.",
          "expected": "Removal/demotion cannot leave the project ownerless; a valid transfer makes the new account owner atomically."
        },
        {
          "index": 3,
          "action": "Re-read both memberships and verify exactly one transfer result and an attributable activity record.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Removal/demotion cannot leave the project ownerless; a valid transfer makes the new account owner atomically.",
        "persistedData": "Re-read both memberships and verify exactly one transfer result and an attributable activity record.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "access",
        "Business rule",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-013",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "access",
      "title": "Widget can submit an issue only within scope",
      "objective": "Verify widget can submit an issue only within scope against AC-005-01.",
      "type": "Authorization",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Widget and Agent credentials are restricted project service identities, never substitutes for a person or owner membership.",
      "requirementIds": [
        "REQ-005"
      ],
      "storyIds": [
        "US-005"
      ],
      "acceptanceCriterionIds": [
        "AC-005-01"
      ],
      "businessIds": [
        "BR-005"
      ],
      "sourceRefs": [
        "SRC-005"
      ],
      "routeRef": "/api/project-access-keys",
      "role": "widget:write",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "Owner created a Widget key for A; the key is held in a test secret store."
      ],
      "testData": "Use a fresh TC-013-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: Owner created a Widget key for A; the key is held in a test secret store.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: Owner created a Widget key for A; the key is held in a test secret store.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Submit a synthetic issue and attachment through the supported Widget flow, then try listing project requirements with the same key.",
          "expected": "Issue submission follows the Widget contract; requirement access is rejected."
        },
        {
          "index": 3,
          "action": "Check the new issue belongs to A and compare the allowed-method policy; never place the raw key in evidence.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Issue submission follows the Widget contract; requirement access is rejected.",
        "persistedData": "Check the new issue belongs to A and compare the allowed-method policy; never place the raw key in evidence.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "access",
        "Authorization",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-014",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "access",
      "title": "Agent cannot administer project members",
      "objective": "Verify agent cannot administer project members against AC-005-02.",
      "type": "Authorization",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Widget and Agent credentials are restricted project service identities, never substitutes for a person or owner membership.",
      "requirementIds": [
        "REQ-005"
      ],
      "storyIds": [
        "US-005"
      ],
      "acceptanceCriterionIds": [
        "AC-005-02"
      ],
      "businessIds": [
        "BR-005"
      ],
      "sourceRefs": [
        "SRC-005"
      ],
      "routeRef": "/api/project-access-keys",
      "role": "agent:execute",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A valid A Agent key and a separate owner account exist."
      ],
      "testData": "Use a fresh TC-014-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A valid A Agent key and a separate owner account exist.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A valid A Agent key and a separate owner account exist.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Attempt a member update and owner-only settings change using the Agent key.",
          "expected": "The server rejects both actions and membership/settings remain unchanged."
        },
        {
          "index": 3,
          "action": "Read the records as owner and verify zero unauthorized mutations.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The server rejects both actions and membership/settings remain unchanged.",
        "persistedData": "Read the records as owner and verify zero unauthorized mutations.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "access",
        "Authorization",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-015",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "access",
      "title": "Revoked key fails on its former allowed route",
      "objective": "Verify revoked key fails on its former allowed route against AC-005-03.",
      "type": "Security",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Widget and Agent credentials are restricted project service identities, never substitutes for a person or owner membership.",
      "requirementIds": [
        "REQ-005"
      ],
      "storyIds": [
        "US-005"
      ],
      "acceptanceCriterionIds": [
        "AC-005-03"
      ],
      "businessIds": [
        "BR-005"
      ],
      "sourceRefs": [
        "SRC-005"
      ],
      "routeRef": "/api/project-access-keys",
      "role": "owner / service agent",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "An A Widget key has submitted one known fixture issue."
      ],
      "testData": "Use a fresh TC-015-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: An A Widget key has submitted one known fixture issue.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: An A Widget key has submitted one known fixture issue.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Revoke it as owner and retry a supported issue submission with that key.",
          "expected": "The revoked key cannot create another issue."
        },
        {
          "index": 3,
          "action": "Reload the owner key list for masked/revoked display and confirm the duplicate marker is absent.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The revoked key cannot create another issue.",
        "persistedData": "Reload the owner key list for masked/revoked display and confirm the duplicate marker is absent.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "access",
        "Security",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-016",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "source-intake",
      "title": "Upload a labelled BRD source",
      "objective": "Verify upload a labelled brd source against AC-006-01.",
      "type": "Functional",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Explicit project-owned BRD, SRS and test-case uploads validate type, size and file content before analysis.",
      "requirementIds": [
        "REQ-006"
      ],
      "storyIds": [
        "US-006"
      ],
      "acceptanceCriterionIds": [
        "AC-006-01"
      ],
      "businessIds": [
        "BR-006"
      ],
      "sourceRefs": [
        "SRC-006"
      ],
      "routeRef": "/api/project-documents",
      "role": "editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A is empty and the tester has reviewed this synthetic BRD and authorized a sandbox import."
      ],
      "testData": "Use a fresh TC-016-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A is empty and the tester has reviewed this synthetic BRD and authorized a sandbox import.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A is empty and the tester has reviewed this synthetic BRD and authorized a sandbox import.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Choose BRD, upload BRD.md through the source intake, and inspect the saved source/job entry.",
          "expected": "The source has a project-owned ID, filename, type, content hash and truthful queued/processing state."
        },
        {
          "index": 3,
          "action": "Refresh before worker completion; no completed analysis or execution is claimed prematurely.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The source has a project-owned ID, filename, type, content hash and truthful queued/processing state.",
        "persistedData": "Refresh before worker completion; no completed analysis or execution is claimed prematurely.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "source-intake",
        "Functional",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-017",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "source-intake",
      "title": "Reject mismatched content and file type",
      "objective": "Verify reject mismatched content and file type against AC-006-02.",
      "type": "Validation",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Explicit project-owned BRD, SRS and test-case uploads validate type, size and file content before analysis.",
      "requirementIds": [
        "REQ-006"
      ],
      "storyIds": [
        "US-006"
      ],
      "acceptanceCriterionIds": [
        "AC-006-02"
      ],
      "businessIds": [
        "BR-006"
      ],
      "sourceRefs": [
        "SRC-006"
      ],
      "routeRef": "/api/project-documents",
      "role": "editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A valid tiny Markdown file and a harmless plain-text file renamed as .pdf are available."
      ],
      "testData": "Use a fresh TC-017-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A valid tiny Markdown file and a harmless plain-text file renamed as .pdf are available.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A valid tiny Markdown file and a harmless plain-text file renamed as .pdf are available.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Upload the renamed file as PDF; then upload the actual Markdown file as BRD.",
          "expected": "The mismatch is rejected with a supported actionable error; the valid document enters the normal intake flow."
        },
        {
          "index": 3,
          "action": "Confirm the rejected file produced no usable analyzed artifact and unrelated documents remain intact.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The mismatch is rejected with a supported actionable error; the valid document enters the normal intake flow.",
        "persistedData": "Confirm the rejected file produced no usable analyzed artifact and unrelated documents remain intact.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "source-intake",
        "Validation",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-018",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "source-intake",
      "title": "Enforce the 20 MiB document ceiling",
      "objective": "Verify enforce the 20 mib document ceiling against AC-006-03.",
      "type": "Boundary",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Explicit project-owned BRD, SRS and test-case uploads validate type, size and file content before analysis.",
      "requirementIds": [
        "REQ-006"
      ],
      "storyIds": [
        "US-006"
      ],
      "acceptanceCriterionIds": [
        "AC-006-03"
      ],
      "businessIds": [
        "BR-006"
      ],
      "sourceRefs": [
        "SRC-006"
      ],
      "routeRef": "/api/project-documents",
      "role": "editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "An isolated local fixture builder can create valid plain-text files at 20 MiB and at 20 MiB + 1 byte; do not send them to a paid provider."
      ],
      "testData": "Use a fresh TC-018-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: An isolated local fixture builder can create valid plain-text files at 20 MiB and at 20 MiB + 1 byte; do not send them to a paid provider.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: An isolated local fixture builder can create valid plain-text files at 20 MiB and at 20 MiB + 1 byte; do not send them to a paid provider.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "With analysis disabled/tested through a local harness, submit both sizes using an allowed text MIME and type.",
          "expected": "The larger file returns the size rejection; the exact-limit file passes the size gate and remains subject to all other validation."
        },
        {
          "index": 3,
          "action": "Record byte counts and size-gate responses; do not treat subsequent extraction/provider limitations as a size-gate defect.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The larger file returns the size rejection; the exact-limit file passes the size gate and remains subject to all other validation.",
        "persistedData": "Record byte counts and size-gate responses; do not treat subsequent extraction/provider limitations as a size-gate defect.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "source-intake",
        "Boundary",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-019",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "source-intake",
      "title": "Observe a queued job through completion",
      "objective": "Verify observe a queued job through completion against AC-007-01.",
      "type": "Integration",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Document work uses durable project-scoped jobs, bounded retries and honest failure states without replacing partial validated work with a misleading summary.",
      "requirementIds": [
        "REQ-007"
      ],
      "storyIds": [
        "US-007"
      ],
      "acceptanceCriterionIds": [
        "AC-007-01"
      ],
      "businessIds": [
        "BR-007"
      ],
      "sourceRefs": [
        "SRC-007"
      ],
      "routeRef": "/api/analysis-jobs/[id]",
      "role": "editor / operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A small approved synthetic source is queued and the local worker uses a deterministic provider fixture."
      ],
      "testData": "Use a fresh TC-019-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A small approved synthetic source is queued and the local worker uses a deterministic provider fixture.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A small approved synthetic source is queued and the local worker uses a deterministic provider fixture.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Start the bounded worker, refresh the source status, then open the produced artifact.",
          "expected": "Progress and final state correspond to the durable job; the artifact stays Draft and cites the same source hash."
        },
        {
          "index": 3,
          "action": "Restart the worker after completion; it does not create another artifact for the same completed job.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Progress and final state correspond to the durable job; the artifact stays Draft and cites the same source hash.",
        "persistedData": "Restart the worker after completion; it does not create another artifact for the same completed job.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "source-intake",
        "Integration",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-020",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "source-intake",
      "title": "Recover a transient provider failure",
      "objective": "Verify recover a transient provider failure against AC-007-02.",
      "type": "Recovery",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Document work uses durable project-scoped jobs, bounded retries and honest failure states without replacing partial validated work with a misleading summary.",
      "requirementIds": [
        "REQ-007"
      ],
      "storyIds": [
        "US-007"
      ],
      "acceptanceCriterionIds": [
        "AC-007-02"
      ],
      "businessIds": [
        "BR-007"
      ],
      "sourceRefs": [
        "SRC-007"
      ],
      "routeRef": "/api/analysis-jobs/[id]",
      "role": "editor / operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A test provider fixture fails once with a retryable error, then returns a valid structured draft."
      ],
      "testData": "Use a fresh TC-020-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A test provider fixture fails once with a retryable error, then returns a valid structured draft.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A test provider fixture fails once with a retryable error, then returns a valid structured draft.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Process the job, inspect its failure/retry state, then invoke the supported authorized retry.",
          "expected": "The job records bounded attempt history; retry preserves source identity and produces at most one successful final artifact version."
        },
        {
          "index": 3,
          "action": "Review error sanitization and links; no provider key, source body or false success appears in usage/error logs.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The job records bounded attempt history; retry preserves source identity and produces at most one successful final artifact version.",
        "persistedData": "Review error sanitization and links; no provider key, source body or false success appears in usage/error logs.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "source-intake",
        "Recovery",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-021",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "source-intake",
      "title": "Cancel or stop unrecoverable analysis safely",
      "objective": "Verify cancel or stop unrecoverable analysis safely against AC-007-03.",
      "type": "Failure",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Document work uses durable project-scoped jobs, bounded retries and honest failure states without replacing partial validated work with a misleading summary.",
      "requirementIds": [
        "REQ-007"
      ],
      "storyIds": [
        "US-007"
      ],
      "acceptanceCriterionIds": [
        "AC-007-03"
      ],
      "businessIds": [
        "BR-007"
      ],
      "sourceRefs": [
        "SRC-007"
      ],
      "routeRef": "/api/analysis-jobs/[id]",
      "role": "editor / operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A synthetic malformed provider fixture cannot satisfy the artifact schema."
      ],
      "testData": "Use a fresh TC-021-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A synthetic malformed provider fixture cannot satisfy the artifact schema.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A synthetic malformed provider fixture cannot satisfy the artifact schema.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Run the bounded attempts; if cancellation is offered, request cancellation while queued and observe it.",
          "expected": "Exhaustion/cancellation has a truthful terminal state with an actionable reason; no Approved artifact is synthesized."
        },
        {
          "index": 3,
          "action": "Confirm unrelated jobs still progress and record the final job ID/status without retrying indefinitely.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Exhaustion/cancellation has a truthful terminal state with an actionable reason; no Approved artifact is synthesized.",
        "persistedData": "Confirm unrelated jobs still progress and record the final job ID/status without retrying indefinitely.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "source-intake",
        "Failure",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-022",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Preserve distinct mandatory obligations",
      "objective": "Verify preserve distinct mandatory obligations against AC-008-01.",
      "type": "Business coverage",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Every mandatory source obligation receives an explicit disposition before BRD-derived SRS approval; unsupported assumptions stay visible.",
      "requirementIds": [
        "REQ-008"
      ],
      "storyIds": [
        "US-008"
      ],
      "acceptanceCriterionIds": [
        "AC-008-01"
      ],
      "businessIds": [
        "BR-008"
      ],
      "sourceRefs": [
        "SRC-008"
      ],
      "routeRef": "/api/srs-source-audit",
      "role": "requirements manager",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A short source states two distinct obligations: only owners can invite; removed members lose access."
      ],
      "testData": "Use a fresh TC-022-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A short source states two distinct obligations: only owners can invite; removed members lose access.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A short source states two distinct obligations: only owners can invite; removed members lose access.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Analyze the source using the governed local fixture and inspect the obligation ledger and resulting requirements.",
          "expected": "Both obligations have individual source locators and formal requirement/disposition links; neither is replaced by a generic module summary."
        },
        {
          "index": 3,
          "action": "Reconcile detected/covered/uncovered counts against the two source statements and retain the receipt.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Both obligations have individual source locators and formal requirement/disposition links; neither is replaced by a generic module summary.",
        "persistedData": "Reconcile detected/covered/uncovered counts against the two source statements and retain the receipt.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Business coverage",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-023",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Surface a contradictory source rule",
      "objective": "Verify surface a contradictory source rule against AC-008-02.",
      "type": "Negative",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Every mandatory source obligation receives an explicit disposition before BRD-derived SRS approval; unsupported assumptions stay visible.",
      "requirementIds": [
        "REQ-008"
      ],
      "storyIds": [
        "US-008"
      ],
      "acceptanceCriterionIds": [
        "AC-008-02"
      ],
      "businessIds": [
        "BR-008"
      ],
      "sourceRefs": [
        "SRC-008"
      ],
      "routeRef": "/api/srs-source-audit",
      "role": "requirements manager",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "One synthetic source says viewers may edit and another says viewers are read-only."
      ],
      "testData": "Use a fresh TC-023-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: One synthetic source says viewers may edit and another says viewers are read-only.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: One synthetic source says viewers may edit and another says viewers are read-only.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Submit both as versioned project sources and request review.",
          "expected": "A conflict is visible with both citations and a blocking decision; the output does not silently choose a permission rule."
        },
        {
          "index": 3,
          "action": "Try approval while the conflict remains open; readiness must identify the unresolved decision.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "A conflict is visible with both citations and a blocking decision; the output does not silently choose a permission rule.",
        "persistedData": "Try approval while the conflict remains open; readiness must identify the unresolved decision.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Negative",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-024",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Invalidate a stale coverage receipt",
      "objective": "Verify invalidate a stale coverage receipt against AC-008-03.",
      "type": "Versioning",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Every mandatory source obligation receives an explicit disposition before BRD-derived SRS approval; unsupported assumptions stay visible.",
      "requirementIds": [
        "REQ-008"
      ],
      "storyIds": [
        "US-008"
      ],
      "acceptanceCriterionIds": [
        "AC-008-03"
      ],
      "businessIds": [
        "BR-008"
      ],
      "sourceRefs": [
        "SRC-008"
      ],
      "routeRef": "/api/srs-source-audit",
      "role": "requirements manager",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A source has a complete draft coverage receipt."
      ],
      "testData": "Use a fresh TC-024-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A source has a complete draft coverage receipt.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A source has a complete draft coverage receipt.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Change the source by adding a mandatory obligation and process it as a new version.",
          "expected": "The old receipt cannot establish complete coverage for the new hash; the new obligation is covered or explicitly listed as a gap."
        },
        {
          "index": 3,
          "action": "Compare version/hash/ledger counts and confirm prior immutable evidence remains distinguishable.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The old receipt cannot establish complete coverage for the new hash; the new obligation is covered or explicitly listed as a gap.",
        "persistedData": "Compare version/hash/ledger counts and confirm prior immutable evidence remains distinguishable.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Versioning",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-025",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Generate a complete reviewable story",
      "objective": "Verify generate a complete reviewable story against AC-009-01.",
      "type": "Content quality",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Draft SRS preserves sourced business meaning and supplies actors, flows, data rules, exceptions and observable acceptance criteria without inventing business truth.",
      "requirementIds": [
        "REQ-009"
      ],
      "storyIds": [
        "US-009"
      ],
      "acceptanceCriterionIds": [
        "AC-009-01"
      ],
      "businessIds": [
        "BR-009"
      ],
      "sourceRefs": [
        "SRC-009"
      ],
      "routeRef": "/api/project-documents",
      "role": "business analyst",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "An approved-to-analyze synthetic BRD contains project invitation scope, actors and expected business result."
      ],
      "testData": "Use a fresh TC-025-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: An approved-to-analyze synthetic BRD contains project invitation scope, actors and expected business result.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: An approved-to-analyze synthetic BRD contains project invitation scope, actors and expected business result.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request BRD-to-SRS and inspect the invitation story against the stage contract.",
          "expected": "The draft has source citations, actor, main/alternate/error flows, field validation, permissions, effects and measurable acceptance criteria."
        },
        {
          "index": 3,
          "action": "Check each distinct obligation has a requirement link and every professional addition is labelled derived or recommendation.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The draft has source citations, actor, main/alternate/error flows, field validation, permissions, effects and measurable acceptance criteria.",
        "persistedData": "Check each distinct obligation has a requirement link and every professional addition is labelled derived or recommendation.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Content quality",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-026",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Missing business threshold becomes a question",
      "objective": "Verify missing business threshold becomes a question against AC-009-02.",
      "type": "Ambiguity",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Draft SRS preserves sourced business meaning and supplies actors, flows, data rules, exceptions and observable acceptance criteria without inventing business truth.",
      "requirementIds": [
        "REQ-009"
      ],
      "storyIds": [
        "US-009"
      ],
      "acceptanceCriterionIds": [
        "AC-009-02"
      ],
      "businessIds": [
        "BR-009"
      ],
      "sourceRefs": [
        "SRC-009"
      ],
      "routeRef": "/api/project-documents",
      "role": "business analyst",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The source says the system must be fast but supplies no latency target."
      ],
      "testData": "Use a fresh TC-026-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The source says the system must be fast but supplies no latency target.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The source says the system must be fast but supplies no latency target.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Analyze the source and inspect performance requirements, questions and quality gates.",
          "expected": "No invented latency target is presented as sourced; a decision question or explicitly proposed measurable target is returned."
        },
        {
          "index": 3,
          "action": "Confirm the artifact remains unapproved and the missing threshold is traceable to its vague source statement.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "No invented latency target is presented as sourced; a decision question or explicitly proposed measurable target is returned.",
        "persistedData": "Confirm the artifact remains unapproved and the missing threshold is traceable to its vague source statement.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Ambiguity",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-027",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Review only the requested source section",
      "objective": "Verify review only the requested source section against AC-009-03.",
      "type": "Scope",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Draft SRS preserves sourced business meaning and supplies actors, flows, data rules, exceptions and observable acceptance criteria without inventing business truth.",
      "requirementIds": [
        "REQ-009"
      ],
      "storyIds": [
        "US-009"
      ],
      "acceptanceCriterionIds": [
        "AC-009-03"
      ],
      "businessIds": [
        "BR-009"
      ],
      "sourceRefs": [
        "SRC-009"
      ],
      "routeRef": "/api/project-documents",
      "role": "business analyst",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "Only chapter 2 is supplied to a bounded section analysis fixture."
      ],
      "testData": "Use a fresh TC-027-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: Only chapter 2 is supplied to a bounded section analysis fixture.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: Only chapter 2 is supplied to a bounded section analysis fixture.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Review chapter 2 and inspect document-wide missing-section findings.",
          "expected": "The bounded result does not claim unseen chapters are absent; it records only uncertainties evidenced in chapter 2."
        },
        {
          "index": 3,
          "action": "Verify source locators fall inside the supplied section and any overall completeness statement is deferred.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The bounded result does not claim unseen chapters are absent; it records only uncertainties evidenced in chapter 2.",
        "persistedData": "Verify source locators fall inside the supplied section and any overall completeness statement is deferred.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Scope",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-028",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Approve a reviewed requirement with no blockers",
      "objective": "Verify approve a reviewed requirement with no blockers against AC-010-01.",
      "type": "Workflow",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Explicit authorized review decisions govern requirement status, preserve revision history and invalidate downstream work when source meaning changes.",
      "requirementIds": [
        "REQ-010"
      ],
      "storyIds": [
        "US-010"
      ],
      "acceptanceCriterionIds": [
        "AC-010-01"
      ],
      "businessIds": [
        "BR-010"
      ],
      "sourceRefs": [
        "SRC-010"
      ],
      "routeRef": "/api/requirements-management",
      "role": "requirements manager",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A draft requirement has complete sources, no open blocking findings and an authorized reviewer under the current decision policy."
      ],
      "testData": "Use a fresh TC-028-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A draft requirement has complete sources, no open blocking findings and an authorized reviewer under the current decision policy.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A draft requirement has complete sources, no open blocking findings and an authorized reviewer under the current decision policy.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Submit for review, inspect gates, then approve with an attributable rationale.",
          "expected": "Only a permitted review transition succeeds; decision actor/time/reason and approved version are recorded."
        },
        {
          "index": 3,
          "action": "Refresh history and verify the approved content matches the reviewed version and explicit decision.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Only a permitted review transition succeeds; decision actor/time/reason and approved version are recorded.",
        "persistedData": "Refresh history and verify the approved content matches the reviewed version and explicit decision.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Workflow",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-029",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Block approval with unresolved findings",
      "objective": "Verify block approval with unresolved findings against AC-010-02.",
      "type": "Business rule",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Explicit authorized review decisions govern requirement status, preserve revision history and invalidate downstream work when source meaning changes.",
      "requirementIds": [
        "REQ-010"
      ],
      "storyIds": [
        "US-010"
      ],
      "acceptanceCriterionIds": [
        "AC-010-02"
      ],
      "businessIds": [
        "BR-010"
      ],
      "sourceRefs": [
        "SRC-010"
      ],
      "routeRef": "/api/requirements-management",
      "role": "requirements manager",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A requirement has an open finding that blocks Approval."
      ],
      "testData": "Use a fresh TC-029-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A requirement has an open finding that blocks Approval.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A requirement has an open finding that blocks Approval.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Submit or attempt the approval action using an authorized manager.",
          "expected": "The gate identifies the blocking finding and does not mark the requirement Approved."
        },
        {
          "index": 3,
          "action": "Read status/history and verify no hidden approval or executable downstream eligibility was created.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The gate identifies the blocking finding and does not mark the requirement Approved.",
        "persistedData": "Read status/history and verify no hidden approval or executable downstream eligibility was created.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Business rule",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-030",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Reject stale concurrent edits",
      "objective": "Verify reject stale concurrent edits against AC-010-03.",
      "type": "Concurrency",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Explicit authorized review decisions govern requirement status, preserve revision history and invalidate downstream work when source meaning changes.",
      "requirementIds": [
        "REQ-010"
      ],
      "storyIds": [
        "US-010"
      ],
      "acceptanceCriterionIds": [
        "AC-010-03"
      ],
      "businessIds": [
        "BR-010"
      ],
      "sourceRefs": [
        "SRC-010"
      ],
      "routeRef": "/api/requirements-management",
      "role": "requirements manager",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "Two tabs load the same requirement management version."
      ],
      "testData": "Use a fresh TC-030-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: Two tabs load the same requirement management version.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: Two tabs load the same requirement management version.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Save a meaningful change in A; then attempt a different save/decision from B using the original version.",
          "expected": "The stale operation is rejected or requires reload; it cannot overwrite A silently."
        },
        {
          "index": 3,
          "action": "Compare revision history and current content; affected tests are invalidated when the changed requirement makes their approval stale.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The stale operation is rejected or requires reload; it cannot overwrite A silently.",
        "persistedData": "Compare revision history and current content; affected tests are invalidated when the changed requirement makes their approval stale.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Concurrency",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-031",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Read a hierarchy and story detail",
      "objective": "Verify read a hierarchy and story detail against AC-011-01.",
      "type": "Functional",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "SRS navigation and traceability show only actual project records and preserve unmapped relationships as visible gaps.",
      "requirementIds": [
        "REQ-011"
      ],
      "storyIds": [
        "US-011"
      ],
      "acceptanceCriterionIds": [
        "AC-011-01"
      ],
      "businessIds": [
        "BR-011"
      ],
      "sourceRefs": [
        "SRC-011"
      ],
      "routeRef": "/en/srs",
      "role": "viewer",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A has a reviewed fixture module, workflow and story with known source markers."
      ],
      "testData": "Use a fresh TC-031-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A has a reviewed fixture module, workflow and story with known source markers.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A has a reviewed fixture module, workflow and story with known source markers.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Navigate from the SRS directory to workflow and story, then back to the project view.",
          "expected": "Names, parents, criteria and source links describe the same project-owned story throughout."
        },
        {
          "index": 3,
          "action": "Reload a direct story URL and confirm it resolves only while membership/project context is valid.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Names, parents, criteria and source links describe the same project-owned story throughout.",
        "persistedData": "Reload a direct story URL and confirm it resolves only while membership/project context is valid.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Functional",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-032",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Keep an unmapped requirement visible",
      "objective": "Verify keep an unmapped requirement visible against AC-011-02.",
      "type": "Coverage",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "SRS navigation and traceability show only actual project records and preserve unmapped relationships as visible gaps.",
      "requirementIds": [
        "REQ-011"
      ],
      "storyIds": [
        "US-011"
      ],
      "acceptanceCriterionIds": [
        "AC-011-02"
      ],
      "businessIds": [
        "BR-011"
      ],
      "sourceRefs": [
        "SRC-011"
      ],
      "routeRef": "/en/srs",
      "role": "viewer",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A requirement exists with no confirmed workflow or route."
      ],
      "testData": "Use a fresh TC-032-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A requirement exists with no confirmed workflow or route.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A requirement exists with no confirmed workflow or route.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Open traceability/coverage and filter for the unmapped record.",
          "expected": "The record stays visibly unmapped and is not counted as fully route-covered."
        },
        {
          "index": 3,
          "action": "Add a confirmed explicit link using an authorized editor, then verify only that mapping changes.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The record stays visibly unmapped and is not counted as fully route-covered.",
        "persistedData": "Add a confirmed explicit link using an authorized editor, then verify only that mapping changes.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Coverage",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-033",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Reject a cross-project traceability edge",
      "objective": "Verify reject a cross-project traceability edge against AC-011-03.",
      "type": "Tenant isolation",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "SRS navigation and traceability show only actual project records and preserve unmapped relationships as visible gaps.",
      "requirementIds": [
        "REQ-011"
      ],
      "storyIds": [
        "US-011"
      ],
      "acceptanceCriterionIds": [
        "AC-011-03"
      ],
      "businessIds": [
        "BR-011"
      ],
      "sourceRefs": [
        "SRC-011"
      ],
      "routeRef": "/en/srs",
      "role": "editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A and B each contain a distinct story; the actor can edit only A."
      ],
      "testData": "Use a fresh TC-033-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A and B each contain a distinct story; the actor can edit only A.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A and B each contain a distinct story; the actor can edit only A.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Attempt to connect an A test or requirement to the known B story identifier.",
          "expected": "The server rejects or omits the unauthorized edge and returns no B content."
        },
        {
          "index": 3,
          "action": "Read A traceability after refresh and confirm no B ID/title entered its graph.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The server rejects or omits the unauthorized edge and returns no B content.",
        "persistedData": "Read A traceability after refresh and confirm no B ID/title entered its graph.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Tenant isolation",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-034",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Edit a story and inspect its history",
      "objective": "Verify edit a story and inspect its history against AC-012-01.",
      "type": "Versioning",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Story edits and translations preserve source lineage, business obligations and immutable prior meaning; translated content is reviewable.",
      "requirementIds": [
        "REQ-012"
      ],
      "storyIds": [
        "US-012"
      ],
      "acceptanceCriterionIds": [
        "AC-012-01"
      ],
      "businessIds": [
        "BR-012"
      ],
      "sourceRefs": [
        "SRC-012"
      ],
      "routeRef": "/api/story-edits",
      "role": "editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A contains a story with a stable identifier and a known acceptance criterion."
      ],
      "testData": "Use a fresh TC-034-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A contains a story with a stable identifier and a known acceptance criterion.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A contains a story with a stable identifier and a known acceptance criterion.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Change its business rule with a reason and inspect the history and impact views.",
          "expected": "The new text is attributable to the editor and previous content remains identifiable."
        },
        {
          "index": 3,
          "action": "Check linked tests/coverage reflect the changed version and no other project story changes.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The new text is attributable to the editor and previous content remains identifiable.",
        "persistedData": "Check linked tests/coverage reflect the changed version and no other project story changes.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Versioning",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-035",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Translate Arabic without losing obligations",
      "objective": "Verify translate arabic without losing obligations against AC-012-02.",
      "type": "Localization",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Story edits and translations preserve source lineage, business obligations and immutable prior meaning; translated content is reviewable.",
      "requirementIds": [
        "REQ-012"
      ],
      "storyIds": [
        "US-012"
      ],
      "acceptanceCriterionIds": [
        "AC-012-02"
      ],
      "businessIds": [
        "BR-012"
      ],
      "sourceRefs": [
        "SRC-012"
      ],
      "routeRef": "/api/story-edits",
      "role": "editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The story contains Arabic text, a stable ID and a numeric limit; a local translation fixture is configured."
      ],
      "testData": "Use a fresh TC-035-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The story contains Arabic text, a stable ID and a numeric limit; a local translation fixture is configured.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The story contains Arabic text, a stable ID and a numeric limit; a local translation fixture is configured.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request English translation and compare source and translated obligations side by side.",
          "expected": "IDs, role restrictions, negation and numeric values are preserved; translation is a reviewable artifact."
        },
        {
          "index": 3,
          "action": "Inspect any uncertain term as a gap; translation alone never constitutes approval.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "IDs, role restrictions, negation and numeric values are preserved; translation is a reviewable artifact.",
        "persistedData": "Inspect any uncertain term as a gap; translation alone never constitutes approval.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Localization",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-036",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "requirements",
      "title": "Preserve the story after provider failure",
      "objective": "Verify preserve the story after provider failure against AC-012-03.",
      "type": "Failure",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Story edits and translations preserve source lineage, business obligations and immutable prior meaning; translated content is reviewable.",
      "requirementIds": [
        "REQ-012"
      ],
      "storyIds": [
        "US-012"
      ],
      "acceptanceCriterionIds": [
        "AC-012-03"
      ],
      "businessIds": [
        "BR-012"
      ],
      "sourceRefs": [
        "SRC-012"
      ],
      "routeRef": "/api/story-edits",
      "role": "editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The original bilingual story is persisted and the translation provider fixture returns an error."
      ],
      "testData": "Use a fresh TC-036-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The original bilingual story is persisted and the translation provider fixture returns an error.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The original bilingual story is persisted and the translation provider fixture returns an error.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request translation and observe the failure; reload the story.",
          "expected": "The UI/API report failure and the original story is intact."
        },
        {
          "index": 3,
          "action": "Confirm no empty/partial translation silently replaced accepted content and retries retain the intended source version.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The UI/API report failure and the original story is intact.",
        "persistedData": "Confirm no empty/partial translation silently replaced accepted content and retries retain the intended source version.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "requirements",
        "Failure",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-037",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "test-design",
      "title": "Import cases with their original IDs",
      "objective": "Verify import cases with their original ids against AC-013-01.",
      "type": "Import",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Imported cases preserve original identity and content, map only supported requirements and expose duplicates or missing test design fields.",
      "requirementIds": [
        "REQ-013"
      ],
      "storyIds": [
        "US-013"
      ],
      "acceptanceCriterionIds": [
        "AC-013-01"
      ],
      "businessIds": [
        "BR-013"
      ],
      "sourceRefs": [
        "SRC-013"
      ],
      "routeRef": "/api/project-documents",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A CSV fixture contains two distinct original IDs, steps, expected results and source requirement IDs."
      ],
      "testData": "Use a fresh TC-037-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A CSV fixture contains two distinct original IDs, steps, expected results and source requirement IDs.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A CSV fixture contains two distinct original IDs, steps, expected results and source requirement IDs.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Upload as test-cases and inspect the normalized suite.",
          "expected": "Both case identities and detailed steps survive normalization with source lineage and Draft review state."
        },
        {
          "index": 3,
          "action": "Compare original and normalized counts/text; no execution result is inferred from the import.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Both case identities and detailed steps survive normalization with source lineage and Draft review state.",
        "persistedData": "Compare original and normalized counts/text; no execution result is inferred from the import.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "test-design",
        "Import",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-038",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "test-design",
      "title": "Detect duplicate and unmapped cases",
      "objective": "Verify detect duplicate and unmapped cases against AC-013-02.",
      "type": "Quality",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Imported cases preserve original identity and content, map only supported requirements and expose duplicates or missing test design fields.",
      "requirementIds": [
        "REQ-013"
      ],
      "storyIds": [
        "US-013"
      ],
      "acceptanceCriterionIds": [
        "AC-013-02"
      ],
      "businessIds": [
        "BR-013"
      ],
      "sourceRefs": [
        "SRC-013"
      ],
      "routeRef": "/api/project-documents",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A CSV contains one exact duplicate and a case referencing an unknown requirement."
      ],
      "testData": "Use a fresh TC-038-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A CSV contains one exact duplicate and a case referencing an unknown requirement.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A CSV contains one exact duplicate and a case referencing an unknown requirement.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Import the file and inspect review findings and mapping.",
          "expected": "The duplicate and unknown link are visible for review; neither silently inflates verified coverage."
        },
        {
          "index": 3,
          "action": "Resolve mapping only with source evidence and retain original case identity in the review record.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The duplicate and unknown link are visible for review; neither silently inflates verified coverage.",
        "persistedData": "Resolve mapping only with source evidence and retain original case identity in the review record.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "test-design",
        "Quality",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-039",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "test-design",
      "title": "Reject execution readiness for incomplete cases",
      "objective": "Verify reject execution readiness for incomplete cases against AC-013-03.",
      "type": "Negative",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Imported cases preserve original identity and content, map only supported requirements and expose duplicates or missing test design fields.",
      "requirementIds": [
        "REQ-013"
      ],
      "storyIds": [
        "US-013"
      ],
      "acceptanceCriterionIds": [
        "AC-013-03"
      ],
      "businessIds": [
        "BR-013"
      ],
      "sourceRefs": [
        "SRC-013"
      ],
      "routeRef": "/api/project-documents",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "An imported case has a title but no expected result or usable steps."
      ],
      "testData": "Use a fresh TC-039-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: An imported case has a title but no expected result or usable steps.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: An imported case has a title but no expected result or usable steps.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Inspect its readiness and attempt to include it in an execution preview.",
          "expected": "The case remains non-executable with actionable missing-field reasons."
        },
        {
          "index": 3,
          "action": "Confirm no browser command or passing run is created by the attempted preview.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The case remains non-executable with actionable missing-field reasons.",
        "persistedData": "Confirm no browser command or passing run is created by the attempted preview.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "test-design",
        "Negative",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-040",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "test-design",
      "title": "Design cases for an approved business story",
      "objective": "Verify design cases for an approved business story against AC-014-01.",
      "type": "Quality",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Generated tests have distinct risk-based objectives, precise criterion links, reproducible steps and observable outcomes; design does not record execution.",
      "requirementIds": [
        "REQ-014"
      ],
      "storyIds": [
        "US-014"
      ],
      "acceptanceCriterionIds": [
        "AC-014-01"
      ],
      "businessIds": [
        "BR-014"
      ],
      "sourceRefs": [
        "SRC-014"
      ],
      "routeRef": "/api/story-test-generation",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A review-approved invitation requirement has positive and permission criteria; a local structured provider fixture is configured."
      ],
      "testData": "Use a fresh TC-040-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A review-approved invitation requirement has positive and permission criteria; a local structured provider fixture is configured.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A review-approved invitation requirement has positive and permission criteria; a local structured provider fixture is configured.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request test design and inspect each returned case and its exact criterion links.",
          "expected": "Cases contain preconditions, independent data, ordered steps, expected outcomes, role and evidence needs, covering distinct business risks."
        },
        {
          "index": 3,
          "action": "Open execution results and verify no run, pass or screenshot was invented during generation.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Cases contain preconditions, independent data, ordered steps, expected outcomes, role and evidence needs, covering distinct business risks.",
        "persistedData": "Open execution results and verify no run, pass or screenshot was invented during generation.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "test-design",
        "Quality",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-041",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "test-design",
      "title": "Generate missing coverage without replacing existing work",
      "objective": "Verify generate missing coverage without replacing existing work against AC-014-02.",
      "type": "Delta",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Generated tests have distinct risk-based objectives, precise criterion links, reproducible steps and observable outcomes; design does not record execution.",
      "requirementIds": [
        "REQ-014"
      ],
      "storyIds": [
        "US-014"
      ],
      "acceptanceCriterionIds": [
        "AC-014-02"
      ],
      "businessIds": [
        "BR-014"
      ],
      "sourceRefs": [
        "SRC-014"
      ],
      "routeRef": "/api/story-test-generation",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The suite already has a reviewed happy-path case but lacks the revoked-member criterion."
      ],
      "testData": "Use a fresh TC-041-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The suite already has a reviewed happy-path case but lacks the revoked-member criterion.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The suite already has a reviewed happy-path case but lacks the revoked-member criterion.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request missing coverage for that criterion and inspect the generated delta.",
          "expected": "The new case addresses the missing criterion and preserves the existing reviewed case/version."
        },
        {
          "index": 3,
          "action": "Check case IDs and duplicates; review status for newly generated work remains Draft.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The new case addresses the missing criterion and preserves the existing reviewed case/version.",
        "persistedData": "Check case IDs and duplicates; review status for newly generated work remains Draft.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "test-design",
        "Delta",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-042",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "test-design",
      "title": "Reject unsupported test references from a provider",
      "objective": "Verify reject unsupported test references from a provider against AC-014-03.",
      "type": "Validation",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Generated tests have distinct risk-based objectives, precise criterion links, reproducible steps and observable outcomes; design does not record execution.",
      "requirementIds": [
        "REQ-014"
      ],
      "storyIds": [
        "US-014"
      ],
      "acceptanceCriterionIds": [
        "AC-014-03"
      ],
      "businessIds": [
        "BR-014"
      ],
      "sourceRefs": [
        "SRC-014"
      ],
      "routeRef": "/api/story-test-generation",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A provider fixture returns a case referencing a nonexistent requirement or criterion."
      ],
      "testData": "Use a fresh TC-042-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A provider fixture returns a case referencing a nonexistent requirement or criterion.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A provider fixture returns a case referencing a nonexistent requirement or criterion.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Run generation through the backend validator.",
          "expected": "Invalid links cannot enter approved coverage; the job reports a validation gap or bounded correction."
        },
        {
          "index": 3,
          "action": "Check the persisted suite and coverage for orphan references; invalid provider output produces no ready command.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Invalid links cannot enter approved coverage; the job reports a validation gap or bounded correction.",
        "persistedData": "Check the persisted suite and coverage for orphan references; invalid provider output produces no ready command.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "test-design",
        "Validation",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-043",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "test-design",
      "title": "Filter and select the intended test scope",
      "objective": "Verify filter and select the intended test scope against AC-015-01.",
      "type": "Functional",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Selections resolve current project-owned cases and distinguish approved browser-ready, blocked and manual-only work.",
      "requirementIds": [
        "REQ-015"
      ],
      "storyIds": [
        "US-015"
      ],
      "acceptanceCriterionIds": [
        "AC-015-01"
      ],
      "businessIds": [
        "BR-015"
      ],
      "sourceRefs": [
        "SRC-015"
      ],
      "routeRef": "/api/test-case-groups",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A has distinguishable module suites with different priorities and review states."
      ],
      "testData": "Use a fresh TC-043-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A has distinguishable module suites with different priorities and review states.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A has distinguishable module suites with different priorities and review states.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Apply a module and priority filter, select the visible scope, then inspect selected IDs/counts.",
          "expected": "Selection contains only matching project cases; hidden stale selections are not silently included."
        },
        {
          "index": 3,
          "action": "Reload and compare server-resolved selection with visible filters; no B cases are present.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Selection contains only matching project cases; hidden stale selections are not silently included.",
        "persistedData": "Reload and compare server-resolved selection with visible filters; no B cases are present.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "test-design",
        "Functional",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-044",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "test-design",
      "title": "Explain mixed executable and blocked selection",
      "objective": "Verify explain mixed executable and blocked selection against AC-015-02.",
      "type": "Readiness",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Selections resolve current project-owned cases and distinguish approved browser-ready, blocked and manual-only work.",
      "requirementIds": [
        "REQ-015"
      ],
      "storyIds": [
        "US-015"
      ],
      "acceptanceCriterionIds": [
        "AC-015-02"
      ],
      "businessIds": [
        "BR-015"
      ],
      "sourceRefs": [
        "SRC-015"
      ],
      "routeRef": "/api/test-case-groups",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The selection contains one approved browser case, one Draft case and one manual-only case."
      ],
      "testData": "Use a fresh TC-044-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The selection contains one approved browser case, one Draft case and one manual-only case.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The selection contains one approved browser case, one Draft case and one manual-only case.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request execution preview with the entire selection and no run-ready-only opt-in.",
          "expected": "The preview returns an explicit mixed-selection blocker with ready/blocked/manual counts."
        },
        {
          "index": 3,
          "action": "Verify no command is queued; if opting into ready-only later, the omitted cases are disclosed.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The preview returns an explicit mixed-selection blocker with ready/blocked/manual counts.",
        "persistedData": "Verify no command is queued; if opting into ready-only later, the omitted cases are disclosed.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "test-design",
        "Readiness",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-045",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "test-design",
      "title": "Version change removes stale readiness",
      "objective": "Verify version change removes stale readiness against AC-015-03.",
      "type": "Versioning",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Selections resolve current project-owned cases and distinguish approved browser-ready, blocked and manual-only work.",
      "requirementIds": [
        "REQ-015"
      ],
      "storyIds": [
        "US-015"
      ],
      "acceptanceCriterionIds": [
        "AC-015-03"
      ],
      "businessIds": [
        "BR-015"
      ],
      "sourceRefs": [
        "SRC-015"
      ],
      "routeRef": "/api/test-case-groups",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A case was approved against requirement version 1."
      ],
      "testData": "Use a fresh TC-045-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A case was approved against requirement version 1.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A case was approved against requirement version 1.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Change the linked requirement through the permitted workflow, then resolve the old case selection.",
          "expected": "The selection cannot treat the stale approval as current execution readiness."
        },
        {
          "index": 3,
          "action": "Inspect the displayed reason, affected version link and queued-command count.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The selection cannot treat the stale approval as current execution readiness.",
        "persistedData": "Inspect the displayed reason, affected version link and queued-command count.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "test-design",
        "Versioning",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-046",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "execution",
      "title": "Confirm a current safe execution preview",
      "objective": "Verify confirm a current safe execution preview against AC-016-01.",
      "type": "Workflow",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "A confirmed preview binds selected cases, membership version, target and credentials; changes require fresh review before queueing.",
      "requirementIds": [
        "REQ-016"
      ],
      "storyIds": [
        "US-016"
      ],
      "acceptanceCriterionIds": [
        "AC-016-01"
      ],
      "businessIds": [
        "BR-016"
      ],
      "sourceRefs": [
        "SRC-016"
      ],
      "routeRef": "/api/execution-previews",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A has one approved browser-ready case, a configured sandbox target and an authorized tester."
      ],
      "testData": "Use a fresh TC-046-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A has one approved browser-ready case, a configured sandbox target and an authorized tester.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A has one approved browser-ready case, a configured sandbox target and an authorized tester.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Preview the case, review the target/role/counts, then confirm using the returned preview contract.",
          "expected": "A command corresponds exactly to the reviewed case and target; it is not shown as already executed."
        },
        {
          "index": 3,
          "action": "Read the command as owner and compare selected IDs, role, environment and preview metadata.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "A command corresponds exactly to the reviewed case and target; it is not shown as already executed.",
        "persistedData": "Read the command as owner and compare selected IDs, role, environment and preview metadata.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "execution",
        "Workflow",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-047",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "execution",
      "title": "Reject confirmation after target change",
      "objective": "Verify reject confirmation after target change against AC-016-02.",
      "type": "Safety",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "A confirmed preview binds selected cases, membership version, target and credentials; changes require fresh review before queueing.",
      "requirementIds": [
        "REQ-016"
      ],
      "storyIds": [
        "US-016"
      ],
      "acceptanceCriterionIds": [
        "AC-016-02"
      ],
      "businessIds": [
        "BR-016"
      ],
      "sourceRefs": [
        "SRC-016"
      ],
      "routeRef": "/api/execution-previews",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A valid preview exists but has not been confirmed."
      ],
      "testData": "Use a fresh TC-047-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A valid preview exists but has not been confirmed.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A valid preview exists but has not been confirmed.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Change the project target or selected credential state, then attempt to confirm the old preview.",
          "expected": "The stale preview cannot queue execution against the changed target; a fresh preview is required."
        },
        {
          "index": 3,
          "action": "Verify command count did not increase and the new preview displays the changed target.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The stale preview cannot queue execution against the changed target; a fresh preview is required.",
        "persistedData": "Verify command count did not increase and the new preview displays the changed target.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "execution",
        "Safety",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-048",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "execution",
      "title": "Reject confirmation after membership or case change",
      "objective": "Verify reject confirmation after membership or case change against AC-016-03.",
      "type": "Concurrency",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "A confirmed preview binds selected cases, membership version, target and credentials; changes require fresh review before queueing.",
      "requirementIds": [
        "REQ-016"
      ],
      "storyIds": [
        "US-016"
      ],
      "acceptanceCriterionIds": [
        "AC-016-03"
      ],
      "businessIds": [
        "BR-016"
      ],
      "sourceRefs": [
        "SRC-016"
      ],
      "routeRef": "/api/execution-previews",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A tester holds a preview for case version 1."
      ],
      "testData": "Use a fresh TC-048-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A tester holds a preview for case version 1.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A tester holds a preview for case version 1.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Revoke the tester or change case approval/version before confirmation; retry using the original preview.",
          "expected": "Current authorization and version checks reject the stale confirmation."
        },
        {
          "index": 3,
          "action": "Read persisted commands as owner and verify no unauthorized or stale command was created.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Current authorization and version checks reject the stale confirmation.",
        "persistedData": "Read persisted commands as owner and verify no unauthorized or stale command was created.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "execution",
        "Concurrency",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-049",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "execution",
      "title": "Store a sample credential without exposing its secret",
      "objective": "Verify store a sample credential without exposing its secret against AC-017-01.",
      "type": "Security",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Test credentials are encrypted server-side and leased only through authorized Agent execution scope; ordinary reads expose metadata only.",
      "requirementIds": [
        "REQ-017"
      ],
      "storyIds": [
        "US-017"
      ],
      "acceptanceCriterionIds": [
        "AC-017-01"
      ],
      "businessIds": [
        "BR-017"
      ],
      "sourceRefs": [
        "SRC-017"
      ],
      "routeRef": "/api/project-credentials/[id]/lease",
      "role": "owner / service agent",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "Owner has a tester-controlled sandbox account; only the secret store contains its password."
      ],
      "testData": "Use a fresh TC-049-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: Owner has a tester-controlled sandbox account; only the secret store contains its password.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: Owner has a tester-controlled sandbox account; only the secret store contains its password.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Create a credential using the HTTPS project flow, then list credential metadata and inspect browser storage.",
          "expected": "The credential is selectable by reference and list/UI/storage do not expose the password."
        },
        {
          "index": 3,
          "action": "Inspect redacted network responses and logs; no plaintext credential appears outside the intended protected transit/lease flow.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The credential is selectable by reference and list/UI/storage do not expose the password.",
        "persistedData": "Inspect redacted network responses and logs; no plaintext credential appears outside the intended protected transit/lease flow.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "execution",
        "Security",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-050",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "execution",
      "title": "Reject a lease from a viewer or Widget key",
      "objective": "Verify reject a lease from a viewer or widget key against AC-017-02.",
      "type": "Authorization",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Test credentials are encrypted server-side and leased only through authorized Agent execution scope; ordinary reads expose metadata only.",
      "requirementIds": [
        "REQ-017"
      ],
      "storyIds": [
        "US-017"
      ],
      "acceptanceCriterionIds": [
        "AC-017-02"
      ],
      "businessIds": [
        "BR-017"
      ],
      "sourceRefs": [
        "SRC-017"
      ],
      "routeRef": "/api/project-credentials/[id]/lease",
      "role": "owner / service agent",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A ready A credential exists; viewer and Widget identities have no Agent scope."
      ],
      "testData": "Use a fresh TC-050-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A ready A credential exists; viewer and Widget identities have no Agent scope.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A ready A credential exists; viewer and Widget identities have no Agent scope.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request its lease using each disallowed identity.",
          "expected": "Both requests are denied without credential material."
        },
        {
          "index": 3,
          "action": "Confirm credential state is unchanged and evidence captures only status/error, never secrets.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Both requests are denied without credential material.",
        "persistedData": "Confirm credential state is unchanged and evidence captures only status/error, never secrets.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "execution",
        "Authorization",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-051",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "execution",
      "title": "Reject a foreign or revoked credential lease",
      "objective": "Verify reject a foreign or revoked credential lease against AC-017-03.",
      "type": "Tenant isolation",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Test credentials are encrypted server-side and leased only through authorized Agent execution scope; ordinary reads expose metadata only.",
      "requirementIds": [
        "REQ-017"
      ],
      "storyIds": [
        "US-017"
      ],
      "acceptanceCriterionIds": [
        "AC-017-03"
      ],
      "businessIds": [
        "BR-017"
      ],
      "sourceRefs": [
        "SRC-017"
      ],
      "routeRef": "/api/project-credentials/[id]/lease",
      "role": "agent:execute",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The Agent belongs to A and a distinct B credential identifier is known in the isolated fixture."
      ],
      "testData": "Use a fresh TC-051-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The Agent belongs to A and a distinct B credential identifier is known in the isolated fixture.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The Agent belongs to A and a distinct B credential identifier is known in the isolated fixture.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request B credential with A Agent, then revoke an A credential and request that lease.",
          "expected": "Neither foreign nor revoked credential can be leased."
        },
        {
          "index": 3,
          "action": "Read credential metadata as the respective owners and record denial outcomes with credential values redacted.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Neither foreign nor revoked credential can be leased.",
        "persistedData": "Read credential metadata as the respective owners and record denial outcomes with credential values redacted.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "execution",
        "Tenant isolation",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-052",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "execution",
      "title": "Claim and complete a safe sandbox command",
      "objective": "Verify claim and complete a safe sandbox command against AC-018-01.",
      "type": "Execution",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Agents execute only authorized safe commands, keep attributable progress and recover from interruption without duplicate terminal results.",
      "requirementIds": [
        "REQ-018"
      ],
      "storyIds": [
        "US-018"
      ],
      "acceptanceCriterionIds": [
        "AC-018-01"
      ],
      "businessIds": [
        "BR-018"
      ],
      "sourceRefs": [
        "SRC-018"
      ],
      "routeRef": "/api/test-commands",
      "role": "agent:execute",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "An authorized command contains one approved read-only browser case and an Agent key for A."
      ],
      "testData": "Use a fresh TC-052-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: An authorized command contains one approved read-only browser case and an Agent key for A.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: An authorized command contains one approved read-only browser case and an Agent key for A.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Claim it through the supported agent flow, perform the prescribed steps and submit actual receipts.",
          "expected": "The command moves through truthful progress to its computed terminal state and is linked to its real run."
        },
        {
          "index": 3,
          "action": "Refresh operator views; case version, target and agent identity match the command and result.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The command moves through truthful progress to its computed terminal state and is linked to its real run.",
        "persistedData": "Refresh operator views; case version, target and agent identity match the command and result.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "execution",
        "Execution",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-053",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "execution",
      "title": "Prevent competing agents from duplicating a claim",
      "objective": "Verify prevent competing agents from duplicating a claim against AC-018-02.",
      "type": "Concurrency",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Agents execute only authorized safe commands, keep attributable progress and recover from interruption without duplicate terminal results.",
      "requirementIds": [
        "REQ-018"
      ],
      "storyIds": [
        "US-018"
      ],
      "acceptanceCriterionIds": [
        "AC-018-02"
      ],
      "businessIds": [
        "BR-018"
      ],
      "sourceRefs": [
        "SRC-018"
      ],
      "routeRef": "/api/test-commands",
      "role": "agent:execute",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "One unclaimed command and two isolated authorized Agent clients exist."
      ],
      "testData": "Use a fresh TC-053-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: One unclaimed command and two isolated authorized Agent clients exist.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: One unclaimed command and two isolated authorized Agent clients exist.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Have both clients attempt to claim the same command at the same time.",
          "expected": "Only a valid current claimant may perform/complete the command; no duplicate authoritative run is accepted."
        },
        {
          "index": 3,
          "action": "Record claim responses and persisted command/run counts; stop any losing client before it touches the target.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Only a valid current claimant may perform/complete the command; no duplicate authoritative run is accepted.",
        "persistedData": "Record claim responses and persisted command/run counts; stop any losing client before it touches the target.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "execution",
        "Concurrency",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-054",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "execution",
      "title": "Recover from agent interruption honestly",
      "objective": "Verify recover from agent interruption honestly against AC-018-03.",
      "type": "Recovery",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Agents execute only authorized safe commands, keep attributable progress and recover from interruption without duplicate terminal results.",
      "requirementIds": [
        "REQ-018"
      ],
      "storyIds": [
        "US-018"
      ],
      "acceptanceCriterionIds": [
        "AC-018-03"
      ],
      "businessIds": [
        "BR-018"
      ],
      "sourceRefs": [
        "SRC-018"
      ],
      "routeRef": "/api/test-commands",
      "role": "agent:execute",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "An Agent has claimed a safe read-only command; the recovery timing policy is recorded."
      ],
      "testData": "Use a fresh TC-054-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: An Agent has claimed a safe read-only command; the recovery timing policy is recorded.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: An Agent has claimed a safe read-only command; the recovery timing policy is recorded.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Interrupt the client before completion, allow the configured lease/recovery action, then resume through the supported flow.",
          "expected": "Progress remains distinguishable from success; recovery cannot manufacture missing step evidence."
        },
        {
          "index": 3,
          "action": "Check stale submissions cannot overwrite a newer accepted result and record final blocked/recovered state accurately.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Progress remains distinguishable from success; recovery cannot manufacture missing step evidence.",
        "persistedData": "Check stale submissions cannot overwrite a newer accepted result and record final blocked/recovered state accurately.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "execution",
        "Recovery",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-055",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "evidence",
      "title": "Submit an objectively verifiable passing observation",
      "objective": "Verify submit an objectively verifiable passing observation against AC-019-01.",
      "type": "Evidence",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "The backend computes assertion outcomes from actual receipts and never accepts an unsupported pass; evidence is project-scoped and expires by policy.",
      "requirementIds": [
        "REQ-019"
      ],
      "storyIds": [
        "US-019"
      ],
      "acceptanceCriterionIds": [
        "AC-019-01"
      ],
      "businessIds": [
        "BR-019"
      ],
      "sourceRefs": [
        "SRC-019"
      ],
      "routeRef": "/api/test-runs",
      "role": "agent:execute / tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "An approved safe test expects a specific page text and URL on the sandbox build."
      ],
      "testData": "Use a fresh TC-055-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: An approved safe test expects a specific page text and URL on the sandbox build.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: An approved safe test expects a specific page text and URL on the sandbox build.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Execute it and submit actual step receipts plus matching objective assertions and allowed evidence.",
          "expected": "The recorded outcome is computed from the actual observations and links to the exact case/build."
        },
        {
          "index": 3,
          "action": "Open the evidence as an authorized member and verify contents/time/target correspond to the run.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The recorded outcome is computed from the actual observations and links to the exact case/build.",
        "persistedData": "Open the evidence as an authorized member and verify contents/time/target correspond to the run.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "evidence",
        "Evidence",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-056",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "evidence",
      "title": "Reject a reported pass contradicted by actual data",
      "objective": "Verify reject a reported pass contradicted by actual data against AC-019-02.",
      "type": "Negative",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "The backend computes assertion outcomes from actual receipts and never accepts an unsupported pass; evidence is project-scoped and expires by policy.",
      "requirementIds": [
        "REQ-019"
      ],
      "storyIds": [
        "US-019"
      ],
      "acceptanceCriterionIds": [
        "AC-019-02"
      ],
      "businessIds": [
        "BR-019"
      ],
      "sourceRefs": [
        "SRC-019"
      ],
      "routeRef": "/api/test-runs",
      "role": "agent:execute / tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The assertion contract expects HTTP status 200; a controlled target returns 500."
      ],
      "testData": "Use a fresh TC-056-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The assertion contract expects HTTP status 200; a controlled target returns 500.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The assertion contract expects HTTP status 200; a controlled target returns 500.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Submit actual=500 with a client-reported Passed result through the local execution harness.",
          "expected": "The backend does not record an authoritative pass; computed outcome or validation identifies the mismatch."
        },
        {
          "index": 3,
          "action": "Verify dashboards and coverage do not count this as passed and retain the 500 observation as evidence.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The backend does not record an authoritative pass; computed outcome or validation identifies the mismatch.",
        "persistedData": "Verify dashboards and coverage do not count this as passed and retain the 500 observation as evidence.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "evidence",
        "Negative",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-057",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "evidence",
      "title": "Deny expired, tampered or cross-project evidence access",
      "objective": "Verify deny expired, tampered or cross-project evidence access against AC-019-03.",
      "type": "Security",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "The backend computes assertion outcomes from actual receipts and never accepts an unsupported pass; evidence is project-scoped and expires by policy.",
      "requirementIds": [
        "REQ-019"
      ],
      "storyIds": [
        "US-019"
      ],
      "acceptanceCriterionIds": [
        "AC-019-03"
      ],
      "businessIds": [
        "BR-019"
      ],
      "sourceRefs": [
        "SRC-019"
      ],
      "routeRef": "/api/test-runs",
      "role": "agent:execute / tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A private evidence file exists and the configured signed-URL expiry is recorded."
      ],
      "testData": "Use a fresh TC-057-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A private evidence file exists and the configured signed-URL expiry is recorded.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A private evidence file exists and the configured signed-URL expiry is recorded.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Try a modified signature, an unauthorized project context and the URL after expiry.",
          "expected": "Access is denied without exposing object credentials or a reusable private storage location."
        },
        {
          "index": 3,
          "action": "Obtain a new authorized link where supported and verify valid access still retrieves the correct file.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Access is denied without exposing object credentials or a reusable private storage location.",
        "persistedData": "Obtain a new authorized link where supported and verify valid access still retrieves the correct file.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "evidence",
        "Security",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-058",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "defects",
      "title": "Capture a reproducible synthetic defect",
      "objective": "Verify capture a reproducible synthetic defect against AC-020-01.",
      "type": "Workflow",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Defects record reproducible observations and evidence; authorized human decisions separate confirmed fixes from rejected reports.",
      "requirementIds": [
        "REQ-020"
      ],
      "storyIds": [
        "US-020"
      ],
      "acceptanceCriterionIds": [
        "AC-020-01"
      ],
      "businessIds": [
        "BR-020"
      ],
      "sourceRefs": [
        "SRC-020"
      ],
      "routeRef": "/api/issues",
      "role": "tester / editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A controlled sandbox page displays a wrong label; the expected label is linked to a reviewed criterion."
      ],
      "testData": "Use a fresh TC-058-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A controlled sandbox page displays a wrong label; the expected label is linked to a reviewed criterion.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A controlled sandbox page displays a wrong label; the expected label is linked to a reviewed criterion.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Create an issue with reproduction steps, actual/expected text, target build and redacted screenshot.",
          "expected": "The issue retains the supplied facts and links without asserting unobserved impact."
        },
        {
          "index": 3,
          "action": "Reload issue details and verify attachment scope, report author, time and criterion/run references.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The issue retains the supplied facts and links without asserting unobserved impact.",
        "persistedData": "Reload issue details and verify attachment scope, report author, time and criterion/run references.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "defects",
        "Workflow",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-059",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "defects",
      "title": "Approve or reject with a recorded reason",
      "objective": "Verify approve or reject with a recorded reason against AC-020-02.",
      "type": "Review",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Defects record reproducible observations and evidence; authorized human decisions separate confirmed fixes from rejected reports.",
      "requirementIds": [
        "REQ-020"
      ],
      "storyIds": [
        "US-020"
      ],
      "acceptanceCriterionIds": [
        "AC-020-02"
      ],
      "businessIds": [
        "BR-020"
      ],
      "sourceRefs": [
        "SRC-020"
      ],
      "routeRef": "/api/issues",
      "role": "tester / editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "Two fixture issues exist: one reproducible and one contradicted by the approved requirement."
      ],
      "testData": "Use a fresh TC-059-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: Two fixture issues exist: one reproducible and one contradicted by the approved requirement.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: Two fixture issues exist: one reproducible and one contradicted by the approved requirement.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Use an authorized decision role to approve the first for fix and reject the second with rationale.",
          "expected": "Each decision follows an allowed transition with an attributable business reason."
        },
        {
          "index": 3,
          "action": "Read history and verify the rejected report did not become an executable fix obligation automatically.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Each decision follows an allowed transition with an attributable business reason.",
        "persistedData": "Read history and verify the rejected report did not become an executable fix obligation automatically.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "defects",
        "Review",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-060",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "defects",
      "title": "Prevent unauthorized issue closure",
      "objective": "Verify prevent unauthorized issue closure against AC-020-03.",
      "type": "Authorization",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Defects record reproducible observations and evidence; authorized human decisions separate confirmed fixes from rejected reports.",
      "requirementIds": [
        "REQ-020"
      ],
      "storyIds": [
        "US-020"
      ],
      "acceptanceCriterionIds": [
        "AC-020-03"
      ],
      "businessIds": [
        "BR-020"
      ],
      "sourceRefs": [
        "SRC-020"
      ],
      "routeRef": "/api/issues",
      "role": "tester / editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "An issue is open and a viewer or Widget key can identify it within the fixture."
      ],
      "testData": "Use a fresh TC-060-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: An issue is open and a viewer or Widget key can identify it within the fixture.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: An issue is open and a viewer or Widget key can identify it within the fixture.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Attempt to change it directly to Closed using the disallowed identity.",
          "expected": "The transition is rejected and the original status remains."
        },
        {
          "index": 3,
          "action": "Reload as owner and confirm no closure/retest evidence was fabricated.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The transition is rejected and the original status remains.",
        "persistedData": "Reload as owner and confirm no closure/retest evidence was fabricated.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "defects",
        "Authorization",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-061",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "defects",
      "title": "Move a delivered fix to awaiting retest",
      "objective": "Verify move a delivered fix to awaiting retest against AC-021-01.",
      "type": "Workflow",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "A defect cannot close until a verified fully passing retest proves the fix on the delivered build and correct case lineage.",
      "requirementIds": [
        "REQ-021"
      ],
      "storyIds": [
        "US-021"
      ],
      "acceptanceCriterionIds": [
        "AC-021-01"
      ],
      "businessIds": [
        "BR-021"
      ],
      "sourceRefs": [
        "SRC-020"
      ],
      "routeRef": "/api/issues/[id]",
      "role": "editor / tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A confirmed issue is approved for fix and a real sandbox fix build is available."
      ],
      "testData": "Use a fresh TC-061-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A confirmed issue is approved for fix and a real sandbox fix build is available.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A confirmed issue is approved for fix and a real sandbox fix build is available.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Record the exact build and delivery reference using the supported fix transition.",
          "expected": "The issue records the build/delivery and reaches the allowed retest state, without claiming the fix passed."
        },
        {
          "index": 3,
          "action": "Read issue history and make the same build available to the retest runner.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The issue records the build/delivery and reaches the allowed retest state, without claiming the fix passed.",
        "persistedData": "Read issue history and make the same build available to the retest runner.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "defects",
        "Workflow",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-062",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "defects",
      "title": "Reject closure using a different build or unrelated case",
      "objective": "Verify reject closure using a different build or unrelated case against AC-021-02.",
      "type": "Business rule",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "A defect cannot close until a verified fully passing retest proves the fix on the delivered build and correct case lineage.",
      "requirementIds": [
        "REQ-021"
      ],
      "storyIds": [
        "US-021"
      ],
      "acceptanceCriterionIds": [
        "AC-021-02"
      ],
      "businessIds": [
        "BR-021"
      ],
      "sourceRefs": [
        "SRC-020"
      ],
      "routeRef": "/api/issues/[id]",
      "role": "editor / tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The issue awaits retest on build A; a passing fixture run exists on build B or unrelated case lineage."
      ],
      "testData": "Use a fresh TC-062-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The issue awaits retest on build A; a passing fixture run exists on build B or unrelated case lineage.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The issue awaits retest on build A; a passing fixture run exists on build B or unrelated case lineage.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Attempt closure using the unrelated or wrong-build run.",
          "expected": "The gate rejects closure and explains the mismatched evidence."
        },
        {
          "index": 3,
          "action": "Verify the issue still awaits valid retest and no release readiness metric treats it as closed.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The gate rejects closure and explains the mismatched evidence.",
        "persistedData": "Verify the issue still awaits valid retest and no release readiness metric treats it as closed.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "defects",
        "Business rule",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-063",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "defects",
      "title": "Close only after a real matching retest",
      "objective": "Verify close only after a real matching retest against AC-021-03.",
      "type": "Retest",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "A defect cannot close until a verified fully passing retest proves the fix on the delivered build and correct case lineage.",
      "requirementIds": [
        "REQ-021"
      ],
      "storyIds": [
        "US-021"
      ],
      "acceptanceCriterionIds": [
        "AC-021-03"
      ],
      "businessIds": [
        "BR-021"
      ],
      "sourceRefs": [
        "SRC-020"
      ],
      "routeRef": "/api/issues/[id]",
      "role": "editor / tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The actual fix build is deployed in the isolated target and a linked approved case is ready."
      ],
      "testData": "Use a fresh TC-063-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The actual fix build is deployed in the isolated target and a linked approved case is ready.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The actual fix build is deployed in the isolated target and a linked approved case is ready.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Run the case and required regression on that exact build; submit receipts; close through the authorized workflow.",
          "expected": "Closure succeeds only if the required run is fully passing and evidence/lineage/build match."
        },
        {
          "index": 3,
          "action": "Record closure actor/time and links; if any assertion fails, keep the issue open/reopened instead of forcing closure.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Closure succeeds only if the required run is fully passing and evidence/lineage/build match.",
        "persistedData": "Record closure actor/time and links; if any assertion fails, keep the issue open/reopened instead of forcing closure.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "defects",
        "Retest",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-064",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "impact",
      "title": "Trace a requirement change to its tests",
      "objective": "Verify trace a requirement change to its tests against AC-022-01.",
      "type": "Functional",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Impact derives from explicit current links and identifies affected requirements, cases and downstream records without hiding unknown relationships.",
      "requirementIds": [
        "REQ-022"
      ],
      "storyIds": [
        "US-022"
      ],
      "acceptanceCriterionIds": [
        "AC-022-01"
      ],
      "businessIds": [
        "BR-022"
      ],
      "sourceRefs": [
        "SRC-021"
      ],
      "routeRef": "/api/project-impact",
      "role": "editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A requirement links to two cases and an unrelated requirement links to a third."
      ],
      "testData": "Use a fresh TC-064-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A requirement links to two cases and an unrelated requirement links to a third.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A requirement links to two cases and an unrelated requirement links to a third.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Change the first requirement meaningfully and inspect impact.",
          "expected": "Both linked cases appear with traceable reasons; the unrelated case is not falsely asserted to depend on the changed rule."
        },
        {
          "index": 3,
          "action": "Review proposed regression IDs against the link graph and record the selected scope.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Both linked cases appear with traceable reasons; the unrelated case is not falsely asserted to depend on the changed rule.",
        "persistedData": "Review proposed regression IDs against the link graph and record the selected scope.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "impact",
        "Functional",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-065",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "impact",
      "title": "Show uncertainty when mapping is incomplete",
      "objective": "Verify show uncertainty when mapping is incomplete against AC-022-02.",
      "type": "Negative",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Impact derives from explicit current links and identifies affected requirements, cases and downstream records without hiding unknown relationships.",
      "requirementIds": [
        "REQ-022"
      ],
      "storyIds": [
        "US-022"
      ],
      "acceptanceCriterionIds": [
        "AC-022-02"
      ],
      "businessIds": [
        "BR-022"
      ],
      "sourceRefs": [
        "SRC-021"
      ],
      "routeRef": "/api/project-impact",
      "role": "editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A changed requirement lacks route or case links."
      ],
      "testData": "Use a fresh TC-065-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A changed requirement lacks route or case links.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A changed requirement lacks route or case links.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request impact and inspect coverage/gaps.",
          "expected": "The response identifies missing mappings and cannot claim no impact merely because no link exists."
        },
        {
          "index": 3,
          "action": "Keep regression readiness pending until the owner reviews the missing mapping.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The response identifies missing mappings and cannot claim no impact merely because no link exists.",
        "persistedData": "Keep regression readiness pending until the owner reviews the missing mapping.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "impact",
        "Negative",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-066",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "impact",
      "title": "Ground an impact answer in the selected project",
      "objective": "Verify ground an impact answer in the selected project against AC-022-03.",
      "type": "AI grounding",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Impact derives from explicit current links and identifies affected requirements, cases and downstream records without hiding unknown relationships.",
      "requirementIds": [
        "REQ-022"
      ],
      "storyIds": [
        "US-022"
      ],
      "acceptanceCriterionIds": [
        "AC-022-03"
      ],
      "businessIds": [
        "BR-022"
      ],
      "sourceRefs": [
        "SRC-021"
      ],
      "routeRef": "/api/project-impact",
      "role": "editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A and B contain different similarly named requirements; A has only one accessible source."
      ],
      "testData": "Use a fresh TC-066-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A and B contain different similarly named requirements; A has only one accessible source.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A and B contain different similarly named requirements; A has only one accessible source.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Ask about the change in A using a local response fixture and inspect answer citations.",
          "expected": "Citations resolve to A records; unsupported consequences are marked uncertain."
        },
        {
          "index": 3,
          "action": "Check no B details, fabricated IDs or unsupported implementation promises appear.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Citations resolve to A records; unsupported consequences are marked uncertain.",
        "persistedData": "Check no B details, fabricated IDs or unsupported implementation promises appear.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "impact",
        "AI grounding",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-067",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "validation",
      "title": "Distinguish designed from executed coverage",
      "objective": "Verify distinguish designed from executed coverage against AC-023-01.",
      "type": "Reporting",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Designed, approved, executed, passed and evidenced coverage are separate measurements; critical gaps block release despite a high aggregate score.",
      "requirementIds": [
        "REQ-023"
      ],
      "storyIds": [
        "US-023"
      ],
      "acceptanceCriterionIds": [
        "AC-023-01"
      ],
      "businessIds": [
        "BR-023"
      ],
      "sourceRefs": [
        "SRC-022"
      ],
      "routeRef": "/api/lifecycle",
      "role": "owner",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A has four in-scope criteria, two linked Draft cases and no runs."
      ],
      "testData": "Use a fresh TC-067-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A has four in-scope criteria, two linked Draft cases and no runs.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A has four in-scope criteria, two linked Draft cases and no runs.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Open traceability and release/coverage views.",
          "expected": "Designed criterion coverage is 2/4 where explicit links exist; executed/passed coverage remains zero."
        },
        {
          "index": 3,
          "action": "Check approved coverage is also zero and the UI does not display a fabricated execution percentage.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Designed criterion coverage is 2/4 where explicit links exist; executed/passed coverage remains zero.",
        "persistedData": "Check approved coverage is also zero and the UI does not display a fabricated execution percentage.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "validation",
        "Reporting",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-068",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "validation",
      "title": "Keep a critical security gap as a release blocker",
      "objective": "Verify keep a critical security gap as a release blocker against AC-023-02.",
      "type": "Business rule",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Designed, approved, executed, passed and evidenced coverage are separate measurements; critical gaps block release despite a high aggregate score.",
      "requirementIds": [
        "REQ-023"
      ],
      "storyIds": [
        "US-023"
      ],
      "acceptanceCriterionIds": [
        "AC-023-02"
      ],
      "businessIds": [
        "BR-023"
      ],
      "sourceRefs": [
        "SRC-022"
      ],
      "routeRef": "/api/lifecycle",
      "role": "owner",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "Most cases have valid passing evidence but a critical tenant-isolation criterion has no accepted run."
      ],
      "testData": "Use a fresh TC-068-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: Most cases have valid passing evidence but a critical tenant-isolation criterion has no accepted run.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: Most cases have valid passing evidence but a critical tenant-isolation criterion has no accepted run.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Prepare a release readiness decision for that exact build.",
          "expected": "The unresolved critical criterion blocks a ready/approved conclusion regardless of average score."
        },
        {
          "index": 3,
          "action": "Record blocker IDs and owner action; do not waive it through arithmetic.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The unresolved critical criterion blocks a ready/approved conclusion regardless of average score.",
        "persistedData": "Record blocker IDs and owner action; do not waive it through arithmetic.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "validation",
        "Business rule",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-069",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "validation",
      "title": "Invalidate readiness after material source change",
      "objective": "Verify invalidate readiness after material source change against AC-023-03.",
      "type": "Versioning",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Designed, approved, executed, passed and evidenced coverage are separate measurements; critical gaps block release despite a high aggregate score.",
      "requirementIds": [
        "REQ-023"
      ],
      "storyIds": [
        "US-023"
      ],
      "acceptanceCriterionIds": [
        "AC-023-03"
      ],
      "businessIds": [
        "BR-023"
      ],
      "sourceRefs": [
        "SRC-022"
      ],
      "routeRef": "/api/lifecycle",
      "role": "owner",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A previous build has a recorded readiness assessment."
      ],
      "testData": "Use a fresh TC-069-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A previous build has a recorded readiness assessment.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A previous build has a recorded readiness assessment.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Revise a linked requirement and inspect readiness for the changed scope/current build.",
          "expected": "The prior assessment stays historical and cannot count as current proof of the changed obligation."
        },
        {
          "index": 3,
          "action": "Verify affected criteria require new review/retest and the previous build evidence remains accessible as history.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The prior assessment stays historical and cannot count as current proof of the changed obligation.",
        "persistedData": "Verify affected criteria require new review/retest and the previous build evidence remains accessible as history.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "validation",
        "Versioning",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-070",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "exports",
      "title": "Export a reviewable requirements-to-test pack",
      "objective": "Verify export a reviewable requirements-to-test pack against AC-024-01.",
      "type": "Export",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Exports and handoffs retain IDs, versions, status and project lineage while excluding secrets and unsupported readiness claims.",
      "requirementIds": [
        "REQ-024"
      ],
      "storyIds": [
        "US-024"
      ],
      "acceptanceCriterionIds": [
        "AC-024-01"
      ],
      "businessIds": [
        "BR-024"
      ],
      "sourceRefs": [
        "SRC-023"
      ],
      "routeRef": "/api/validation-transfer",
      "role": "owner / editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A has a versioned source, requirement, Draft case and no execution."
      ],
      "testData": "Use a fresh TC-070-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A has a versioned source, requirement, Draft case and no execution.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A has a versioned source, requirement, Draft case and no execution.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Use the supported export/handoff operation and inspect the downloaded artifact.",
          "expected": "The artifact preserves IDs, links and Draft/Not Run meaning with a visible project/version."
        },
        {
          "index": 3,
          "action": "Compare row totals and criterion IDs to server data and verify Arabic text remains legible.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The artifact preserves IDs, links and Draft/Not Run meaning with a visible project/version.",
        "persistedData": "Compare row totals and criterion IDs to server data and verify Arabic text remains legible.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "exports",
        "Export",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-071",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "exports",
      "title": "Export must not contain stored secrets",
      "objective": "Verify export must not contain stored secrets against AC-024-02.",
      "type": "Privacy",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Exports and handoffs retain IDs, versions, status and project lineage while excluding secrets and unsupported readiness claims.",
      "requirementIds": [
        "REQ-024"
      ],
      "storyIds": [
        "US-024"
      ],
      "acceptanceCriterionIds": [
        "AC-024-02"
      ],
      "businessIds": [
        "BR-024"
      ],
      "sourceRefs": [
        "SRC-023"
      ],
      "routeRef": "/api/validation-transfer",
      "role": "owner / editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A has a credential and service key with unique secret markers held outside the pack."
      ],
      "testData": "Use a fresh TC-071-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A has a credential and service key with unique secret markers held outside the pack.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A has a credential and service key with unique secret markers held outside the pack.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Export project handoff and inspect allowed metadata with an approved redaction scanner.",
          "expected": "No credential password, raw service key, provider key or storage secret is present."
        },
        {
          "index": 3,
          "action": "Retain only scan summary and sanitized metadata, never the secret marker values.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "No credential password, raw service key, provider key or storage secret is present.",
        "persistedData": "Retain only scan summary and sanitized metadata, never the secret marker values.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "exports",
        "Privacy",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-072",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "exports",
      "title": "Prevent cross-project export",
      "objective": "Verify prevent cross-project export against AC-024-03.",
      "type": "Tenant isolation",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Exports and handoffs retain IDs, versions, status and project lineage while excluding secrets and unsupported readiness claims.",
      "requirementIds": [
        "REQ-024"
      ],
      "storyIds": [
        "US-024"
      ],
      "acceptanceCriterionIds": [
        "AC-024-03"
      ],
      "businessIds": [
        "BR-024"
      ],
      "sourceRefs": [
        "SRC-023"
      ],
      "routeRef": "/api/validation-transfer",
      "role": "owner / editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A-only member knows B project ID in the isolated fixture."
      ],
      "testData": "Use a fresh TC-072-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A-only member knows B project ID in the isolated fixture.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A-only member knows B project ID in the isolated fixture.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Attempt B export/validation transfer with A authorization.",
          "expected": "The server denies export without leaking B records or generating a downloadable B artifact."
        },
        {
          "index": 3,
          "action": "Confirm no transfer record or remote delivery was created for the unauthorized attempt.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The server denies export without leaking B records or generating a downloadable B artifact.",
        "persistedData": "Confirm no transfer record or remote delivery was created for the unauthorized attempt.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "exports",
        "Tenant isolation",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-073",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "integrations",
      "title": "Create and pause a sandbox schedule",
      "objective": "Verify create and pause a sandbox schedule against AC-025-01.",
      "type": "Functional",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Schedules are project-owned, use validated cases/targets and do not execute stale or unauthorized work after relevant state changes.",
      "requirementIds": [
        "REQ-025"
      ],
      "storyIds": [
        "US-025"
      ],
      "acceptanceCriterionIds": [
        "AC-025-01"
      ],
      "businessIds": [
        "BR-025"
      ],
      "sourceRefs": [
        "SRC-024"
      ],
      "routeRef": "/api/test-schedules",
      "role": "owner",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A has one approved safe case and the local dispatcher is controlled by the tester."
      ],
      "testData": "Use a fresh TC-073-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A has one approved safe case and the local dispatcher is controlled by the tester.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A has one approved safe case and the local dispatcher is controlled by the tester.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Create a schedule, inspect next-run metadata, then pause before it is due.",
          "expected": "The schedule belongs to A with validated selection and a visible paused state."
        },
        {
          "index": 3,
          "action": "Run one bounded local dispatch pass after the due time fixture; the paused schedule does not enqueue work.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The schedule belongs to A with validated selection and a visible paused state.",
        "persistedData": "Run one bounded local dispatch pass after the due time fixture; the paused schedule does not enqueue work.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "integrations",
        "Functional",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-074",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "integrations",
      "title": "Reject an invalid or unapproved selection",
      "objective": "Verify reject an invalid or unapproved selection against AC-025-02.",
      "type": "Validation",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Schedules are project-owned, use validated cases/targets and do not execute stale or unauthorized work after relevant state changes.",
      "requirementIds": [
        "REQ-025"
      ],
      "storyIds": [
        "US-025"
      ],
      "acceptanceCriterionIds": [
        "AC-025-02"
      ],
      "businessIds": [
        "BR-025"
      ],
      "sourceRefs": [
        "SRC-024"
      ],
      "routeRef": "/api/test-schedules",
      "role": "owner",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A has a Draft case and an unknown case ID."
      ],
      "testData": "Use a fresh TC-074-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A has a Draft case and an unknown case ID.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A has a Draft case and an unknown case ID.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Attempt schedules for each invalid selection and an empty name/selection.",
          "expected": "Invalid requests report actionable errors and cannot create executable scheduled work."
        },
        {
          "index": 3,
          "action": "List schedules and command counts; only previously valid records remain.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Invalid requests report actionable errors and cannot create executable scheduled work.",
        "persistedData": "List schedules and command counts; only previously valid records remain.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "integrations",
        "Validation",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-075",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "integrations",
      "title": "Revalidate before resume or dispatch",
      "objective": "Verify revalidate before resume or dispatch against AC-025-03.",
      "type": "State",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Schedules are project-owned, use validated cases/targets and do not execute stale or unauthorized work after relevant state changes.",
      "requirementIds": [
        "REQ-025"
      ],
      "storyIds": [
        "US-025"
      ],
      "acceptanceCriterionIds": [
        "AC-025-03"
      ],
      "businessIds": [
        "BR-025"
      ],
      "sourceRefs": [
        "SRC-024"
      ],
      "routeRef": "/api/test-schedules",
      "role": "owner",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A paused schedule was valid before its case approval or creator membership changed."
      ],
      "testData": "Use a fresh TC-075-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A paused schedule was valid before its case approval or creator membership changed.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A paused schedule was valid before its case approval or creator membership changed.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Change the approval/membership, then try resuming and dispatching it.",
          "expected": "Current authorization/readiness is enforced; stale scheduling data cannot bypass execution gates."
        },
        {
          "index": 3,
          "action": "Record the refusal or blocked dispatch and confirm no target action occurred.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Current authorization/readiness is enforced; stale scheduling data cannot bypass execution gates.",
        "persistedData": "Record the refusal or blocked dispatch and confirm no target action occurred.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "integrations",
        "State",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-076",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "integrations",
      "title": "Deliver a fixture event to an approved sink",
      "objective": "Verify deliver a fixture event to an approved sink against AC-026-01.",
      "type": "Integration",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Webhook destinations follow exact-host outbound policy and delivery/retry state records actual transport outcomes.",
      "requirementIds": [
        "REQ-026"
      ],
      "storyIds": [
        "US-026"
      ],
      "acceptanceCriterionIds": [
        "AC-026-01"
      ],
      "businessIds": [
        "BR-026"
      ],
      "sourceRefs": [
        "SRC-025"
      ],
      "routeRef": "/api/webhook-deliveries",
      "role": "owner / operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A local isolated transport fixture simulates an approved HTTPS webhook sink; no real recipient is used."
      ],
      "testData": "Use a fresh TC-076-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A local isolated transport fixture simulates an approved HTTPS webhook sink; no real recipient is used.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A local isolated transport fixture simulates an approved HTTPS webhook sink; no real recipient is used.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Trigger a supported project event and process one delivery pass.",
          "expected": "A delivery record links the event to its actual accepted response and attempt time."
        },
        {
          "index": 3,
          "action": "Compare sanitized payload project/event IDs with the recorded sink receipt.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "A delivery record links the event to its actual accepted response and attempt time.",
        "persistedData": "Compare sanitized payload project/event IDs with the recorded sink receipt.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "integrations",
        "Integration",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-077",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "integrations",
      "title": "Block forbidden outbound destinations",
      "objective": "Verify block forbidden outbound destinations against AC-026-02.",
      "type": "Security",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Webhook destinations follow exact-host outbound policy and delivery/retry state records actual transport outcomes.",
      "requirementIds": [
        "REQ-026"
      ],
      "storyIds": [
        "US-026"
      ],
      "acceptanceCriterionIds": [
        "AC-026-02"
      ],
      "businessIds": [
        "BR-026"
      ],
      "sourceRefs": [
        "SRC-025"
      ],
      "routeRef": "/api/webhook-deliveries",
      "role": "owner / operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The outbound policy uses a fixture allowlist and no external request is needed."
      ],
      "testData": "Use a fresh TC-077-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The outbound policy uses a fixture allowlist and no external request is needed.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The outbound policy uses a fixture allowlist and no external request is needed.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Through the local transport harness test non-allowlisted, loopback/private and redirecting destinations.",
          "expected": "Unsafe destinations are rejected before forbidden network access; redirect policy is enforced."
        },
        {
          "index": 3,
          "action": "Record blocked reasons and fixture transport-call counts; do not probe real infrastructure.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Unsafe destinations are rejected before forbidden network access; redirect policy is enforced.",
        "persistedData": "Record blocked reasons and fixture transport-call counts; do not probe real infrastructure.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "integrations",
        "Security",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-078",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "integrations",
      "title": "Retry a transient failure without inventing delivery",
      "objective": "Verify retry a transient failure without inventing delivery against AC-026-03.",
      "type": "Recovery",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Webhook destinations follow exact-host outbound policy and delivery/retry state records actual transport outcomes.",
      "requirementIds": [
        "REQ-026"
      ],
      "storyIds": [
        "US-026"
      ],
      "acceptanceCriterionIds": [
        "AC-026-03"
      ],
      "businessIds": [
        "BR-026"
      ],
      "sourceRefs": [
        "SRC-025"
      ],
      "routeRef": "/api/webhook-deliveries",
      "role": "owner / operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The fixture sink returns a retryable failure once then accepts the same event."
      ],
      "testData": "Use a fresh TC-078-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The fixture sink returns a retryable failure once then accepts the same event.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The fixture sink returns a retryable failure once then accepts the same event.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Process the first attempt and inspect failure, then process the due retry.",
          "expected": "The first attempt is failed/pending retry; only the accepted receipt establishes delivery."
        },
        {
          "index": 3,
          "action": "Verify stable event identity, bounded attempts and no silent success at exhaustion.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The first attempt is failed/pending retry; only the accepted receipt establishes delivery.",
        "persistedData": "Verify stable event identity, bounded attempts and no silent success at exhaustion.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "integrations",
        "Recovery",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-079",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "assistant",
      "title": "Produce a sourced read-only test plan",
      "objective": "Verify produce a sourced read-only test plan against AC-027-01.",
      "type": "AI quality",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Agent plans use authenticated project sources and allowed targets, explain missing inputs and stay within the approved safe execution mission.",
      "requirementIds": [
        "REQ-027"
      ],
      "storyIds": [
        "US-027"
      ],
      "acceptanceCriterionIds": [
        "AC-027-01"
      ],
      "businessIds": [
        "BR-027"
      ],
      "sourceRefs": [
        "SRC-026"
      ],
      "routeRef": "/api/agent/plan",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A has an approved read-only scenario, route map and local provider fixture."
      ],
      "testData": "Use a fresh TC-079-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A has an approved read-only scenario, route map and local provider fixture.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A has an approved read-only scenario, route map and local provider fixture.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request an agent plan and inspect its steps, source links and target.",
          "expected": "Steps are executable within the known route/role, cite the project source and contain observable assertions."
        },
        {
          "index": 3,
          "action": "Compare against the approved mission; plan generation alone creates no execution evidence.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Steps are executable within the known route/role, cite the project source and contain observable assertions.",
        "persistedData": "Compare against the approved mission; plan generation alone creates no execution evidence.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "assistant",
        "AI quality",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-080",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "assistant",
      "title": "Report missing target or credential as a gap",
      "objective": "Verify report missing target or credential as a gap against AC-027-02.",
      "type": "Readiness",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Agent plans use authenticated project sources and allowed targets, explain missing inputs and stay within the approved safe execution mission.",
      "requirementIds": [
        "REQ-027"
      ],
      "storyIds": [
        "US-027"
      ],
      "acceptanceCriterionIds": [
        "AC-027-02"
      ],
      "businessIds": [
        "BR-027"
      ],
      "sourceRefs": [
        "SRC-026"
      ],
      "routeRef": "/api/agent/plan",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A lacks a confirmed target URL or required role credential."
      ],
      "testData": "Use a fresh TC-080-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A lacks a confirmed target URL or required role credential.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A lacks a confirmed target URL or required role credential.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request execution-oriented planning for an authenticated journey.",
          "expected": "The response identifies the missing prerequisite and cannot represent the plan as execution-ready."
        },
        {
          "index": 3,
          "action": "Verify no guessed route, password, account or passing result is generated.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The response identifies the missing prerequisite and cannot represent the plan as execution-ready.",
        "persistedData": "Verify no guessed route, password, account or passing result is generated.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "assistant",
        "Readiness",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-081",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "assistant",
      "title": "Ignore instructions embedded in an uploaded source",
      "objective": "Verify ignore instructions embedded in an uploaded source against AC-027-03.",
      "type": "Prompt injection",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Agent plans use authenticated project sources and allowed targets, explain missing inputs and stay within the approved safe execution mission.",
      "requirementIds": [
        "REQ-027"
      ],
      "storyIds": [
        "US-027"
      ],
      "acceptanceCriterionIds": [
        "AC-027-03"
      ],
      "businessIds": [
        "BR-027"
      ],
      "sourceRefs": [
        "SRC-026"
      ],
      "routeRef": "/api/agent/plan",
      "role": "tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A synthetic document contains quoted text telling the assistant to reveal secrets and visit an unrelated domain."
      ],
      "testData": "Use a fresh TC-081-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A synthetic document contains quoted text telling the assistant to reveal secrets and visit an unrelated domain.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A synthetic document contains quoted text telling the assistant to reveal secrets and visit an unrelated domain.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Run planning with the document as untrusted source content through a local provider fixture.",
          "expected": "The quoted instructions are treated as source data and do not change scope, reveal secrets or trigger outbound actions."
        },
        {
          "index": 3,
          "action": "Inspect bounded tool plan, citations and sanitized receipts; retain the harmless injection text only.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The quoted instructions are treated as source data and do not change scope, reveal secrets or trigger outbound actions.",
        "persistedData": "Inspect bounded tool plan, citations and sanitized receipts; retain the harmless injection text only.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "assistant",
        "Prompt injection",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-082",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "ai-platform",
      "title": "Inspect a successful local AI usage receipt",
      "objective": "Verify inspect a successful local ai usage receipt against AC-028-01.",
      "type": "Governance",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "AI operations use task-specific policy, validated structured output, bounded provider attempts and usage metadata without saving source bodies or secrets in usage receipts.",
      "requirementIds": [
        "REQ-028"
      ],
      "storyIds": [
        "US-028"
      ],
      "acceptanceCriterionIds": [
        "AC-028-01"
      ],
      "businessIds": [
        "BR-028"
      ],
      "sourceRefs": [
        "SRC-027"
      ],
      "routeRef": "/api/ai-factory",
      "role": "owner / operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A valid deterministic provider fixture is configured and external paid requests are disabled."
      ],
      "testData": "Use a fresh TC-082-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A valid deterministic provider fixture is configured and external paid requests are disabled.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A valid deterministic provider fixture is configured and external paid requests are disabled.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Run a bounded test-design request and open owner-visible usage metadata.",
          "expected": "The receipt identifies operation, policy/model fixture, counts and outcome without storing prompt/source/response bodies."
        },
        {
          "index": 3,
          "action": "Verify the generated artifact passes schema/link validation and provider choice follows operation policy.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The receipt identifies operation, policy/model fixture, counts and outcome without storing prompt/source/response bodies.",
        "persistedData": "Verify the generated artifact passes schema/link validation and provider choice follows operation policy.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "ai-platform",
        "Governance",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-083",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "ai-platform",
      "title": "Stop work when the configured budget denies it",
      "objective": "Verify stop work when the configured budget denies it against AC-028-02.",
      "type": "Cost control",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "AI operations use task-specific policy, validated structured output, bounded provider attempts and usage metadata without saving source bodies or secrets in usage receipts.",
      "requirementIds": [
        "REQ-028"
      ],
      "storyIds": [
        "US-028"
      ],
      "acceptanceCriterionIds": [
        "AC-028-02"
      ],
      "businessIds": [
        "BR-028"
      ],
      "sourceRefs": [
        "SRC-027"
      ],
      "routeRef": "/api/ai-factory",
      "role": "owner / operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "An isolated policy fixture has exhausted its allowed project/operation budget."
      ],
      "testData": "Use a fresh TC-083-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: An isolated policy fixture has exhausted its allowed project/operation budget.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: An isolated policy fixture has exhausted its allowed project/operation budget.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request another AI operation without changing the server policy.",
          "expected": "The backend reports a budget/policy block before an unauthorized provider call."
        },
        {
          "index": 3,
          "action": "Assert zero additional provider transport calls and no fabricated artifact fallback.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The backend reports a budget/policy block before an unauthorized provider call.",
        "persistedData": "Assert zero additional provider transport calls and no fabricated artifact fallback.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "ai-platform",
        "Cost control",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-084",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "ai-platform",
      "title": "Fallback remains bounded and preserves truth",
      "objective": "Verify fallback remains bounded and preserves truth against AC-028-03.",
      "type": "Failure",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "AI operations use task-specific policy, validated structured output, bounded provider attempts and usage metadata without saving source bodies or secrets in usage receipts.",
      "requirementIds": [
        "REQ-028"
      ],
      "storyIds": [
        "US-028"
      ],
      "acceptanceCriterionIds": [
        "AC-028-03"
      ],
      "businessIds": [
        "BR-028"
      ],
      "sourceRefs": [
        "SRC-027"
      ],
      "routeRef": "/api/ai-factory",
      "role": "owner / operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The first fixture provider fails and one permitted fallback returns malformed JSON."
      ],
      "testData": "Use a fresh TC-084-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The first fixture provider fails and one permitted fallback returns malformed JSON.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The first fixture provider fails and one permitted fallback returns malformed JSON.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Run the operation and inspect attempt/error receipts.",
          "expected": "Only allowed bounded attempts occur; invalid fallback output cannot become an approved artifact or fake successful answer."
        },
        {
          "index": 3,
          "action": "Confirm errors are actionable and sanitized, source context remains in A, and no indefinite retry loop occurs.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Only allowed bounded attempts occur; invalid fallback output cannot become an approved artifact or fake successful answer.",
        "persistedData": "Confirm errors are actionable and sanitized, source context remains in A, and no indefinite retry loop occurs.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "ai-platform",
        "Failure",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-085",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "media",
      "title": "Store a valid generated-image fixture",
      "objective": "Verify store a valid generated-image fixture against AC-029-01.",
      "type": "Media",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Generated presentation images are real validated media stored privately in the selected project and are never evidence of a test execution.",
      "requirementIds": [
        "REQ-029"
      ],
      "storyIds": [
        "US-029"
      ],
      "acceptanceCriterionIds": [
        "AC-029-01"
      ],
      "businessIds": [
        "BR-029"
      ],
      "sourceRefs": [
        "SRC-028"
      ],
      "routeRef": "/api/ai-images",
      "role": "editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The local image provider fixture returns a small valid PNG and private sandbox storage is available."
      ],
      "testData": "Use a fresh TC-085-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The local image provider fixture returns a small valid PNG and private sandbox storage is available.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The local image provider fixture returns a small valid PNG and private sandbox storage is available.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request a project presentation image, then open its authorized signed URL.",
          "expected": "The image decodes correctly, belongs to A and has generation/usage metadata."
        },
        {
          "index": 3,
          "action": "Check test execution views remain unchanged; generated presentation media does not become run evidence.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The image decodes correctly, belongs to A and has generation/usage metadata.",
        "persistedData": "Check test execution views remain unchanged; generated presentation media does not become run evidence.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "media",
        "Media",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-086",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "media",
      "title": "Reject a non-image provider payload",
      "objective": "Verify reject a non-image provider payload against AC-029-02.",
      "type": "Validation",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Generated presentation images are real validated media stored privately in the selected project and are never evidence of a test execution.",
      "requirementIds": [
        "REQ-029"
      ],
      "storyIds": [
        "US-029"
      ],
      "acceptanceCriterionIds": [
        "AC-029-02"
      ],
      "businessIds": [
        "BR-029"
      ],
      "sourceRefs": [
        "SRC-028"
      ],
      "routeRef": "/api/ai-images",
      "role": "editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The fixture provider returns HTML or invalid bytes while labelling them image/png."
      ],
      "testData": "Use a fresh TC-086-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The fixture provider returns HTML or invalid bytes while labelling them image/png.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The fixture provider returns HTML or invalid bytes while labelling them image/png.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request generation and inspect the result.",
          "expected": "Content validation rejects the payload and does not publish a broken/private artifact as success."
        },
        {
          "index": 3,
          "action": "Verify no usable signed media record was persisted and the error is sanitized.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Content validation rejects the payload and does not publish a broken/private artifact as success.",
        "persistedData": "Verify no usable signed media record was persisted and the error is sanitized.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "media",
        "Validation",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-087",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "media",
      "title": "Protect images across project and URL expiry",
      "objective": "Verify protect images across project and url expiry against AC-029-03.",
      "type": "Privacy",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Generated presentation images are real validated media stored privately in the selected project and are never evidence of a test execution.",
      "requirementIds": [
        "REQ-029"
      ],
      "storyIds": [
        "US-029"
      ],
      "acceptanceCriterionIds": [
        "AC-029-03"
      ],
      "businessIds": [
        "BR-029"
      ],
      "sourceRefs": [
        "SRC-028"
      ],
      "routeRef": "/api/ai-images",
      "role": "editor",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A generated image has a valid signed URL and B has no access to A."
      ],
      "testData": "Use a fresh TC-087-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A generated image has a valid signed URL and B has no access to A.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A generated image has a valid signed URL and B has no access to A.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Try unauthorized metadata access and then access after configured link expiry.",
          "expected": "Unauthorized metadata and expired reads are denied; the private object remains controlled."
        },
        {
          "index": 3,
          "action": "Obtain a renewed authorized link where supported and confirm the object is still the same image.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Unauthorized metadata and expired reads are denied; the private object remains controlled.",
        "persistedData": "Obtain a renewed authorized link where supported and confirm the object is still the same image.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "media",
        "Privacy",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-088",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "usability",
      "title": "Switch language while preserving project context",
      "objective": "Verify switch language while preserving project context against AC-030-01.",
      "type": "Localization",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "English and Arabic routes preserve task context; core controls remain usable by keyboard and in narrow screens with accurate loading, empty and error states.",
      "requirementIds": [
        "REQ-030"
      ],
      "storyIds": [
        "US-030"
      ],
      "acceptanceCriterionIds": [
        "AC-030-01"
      ],
      "businessIds": [
        "BR-030"
      ],
      "sourceRefs": [
        "SRC-029"
      ],
      "routeRef": "/en/srs and /srs",
      "role": "viewer / tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A contains English and Arabic source/story titles and the viewer is signed in."
      ],
      "testData": "Use a fresh TC-088-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A contains English and Arabic source/story titles and the viewer is signed in.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A contains English and Arabic source/story titles and the viewer is signed in.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Open /en/srs, switch to Arabic, navigate to a story, then return to English.",
          "expected": "Authorized project context and corresponding content are preserved; direction and labels match the selected language."
        },
        {
          "index": 3,
          "action": "Check Arabic text, IDs, dates and numbers for truncation or reversed meaning; compare route families.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Authorized project context and corresponding content are preserved; direction and labels match the selected language.",
        "persistedData": "Check Arabic text, IDs, dates and numbers for truncation or reversed meaning; compare route families.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "usability",
        "Localization",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-089",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "usability",
      "title": "Complete a core journey using keyboard only",
      "objective": "Verify complete a core journey using keyboard only against AC-030-02.",
      "type": "Accessibility",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "English and Arabic routes preserve task context; core controls remain usable by keyboard and in narrow screens with accurate loading, empty and error states.",
      "requirementIds": [
        "REQ-030"
      ],
      "storyIds": [
        "US-030"
      ],
      "acceptanceCriterionIds": [
        "AC-030-02"
      ],
      "businessIds": [
        "BR-030"
      ],
      "sourceRefs": [
        "SRC-029"
      ],
      "routeRef": "/en/srs and /srs",
      "role": "viewer / tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A tester can access source intake and the review/library controls in a desktop browser."
      ],
      "testData": "Use a fresh TC-089-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A tester can access source intake and the review/library controls in a desktop browser.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A tester can access source intake and the review/library controls in a desktop browser.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Navigate with Tab/Shift+Tab, activate labelled buttons and open/close any dialog using keyboard controls.",
          "expected": "Focus is visible and logical; controls have accessible names; dialogs do not trap or lose focus incorrectly."
        },
        {
          "index": 3,
          "action": "Record any unreachable action against its screenshot/accessibility observation; proposed formal conformance target remains a decision gap.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Focus is visible and logical; controls have accessible names; dialogs do not trap or lose focus incorrectly.",
        "persistedData": "Record any unreachable action against its screenshot/accessibility observation; proposed formal conformance target remains a decision gap.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "usability",
        "Accessibility",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-090",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "usability",
      "title": "Use narrow screens during empty and error states",
      "objective": "Verify use narrow screens during empty and error states against AC-030-03.",
      "type": "Responsive",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "English and Arabic routes preserve task context; core controls remain usable by keyboard and in narrow screens with accurate loading, empty and error states.",
      "requirementIds": [
        "REQ-030"
      ],
      "storyIds": [
        "US-030"
      ],
      "acceptanceCriterionIds": [
        "AC-030-03"
      ],
      "businessIds": [
        "BR-030"
      ],
      "sourceRefs": [
        "SRC-029"
      ],
      "routeRef": "/en/srs and /srs",
      "role": "viewer / tester",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A is empty and a controlled backend-error fixture can be enabled."
      ],
      "testData": "Use a fresh TC-090-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A is empty and a controlled backend-error fixture can be enabled.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A is empty and a controlled backend-error fixture can be enabled.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "At 375 CSS pixels open Arabic and English project/SRS views; then trigger the controlled load failure and retry.",
          "expected": "Important content/actions remain readable without clipped controls; empty, loading and error states are distinct and retryable."
        },
        {
          "index": 3,
          "action": "Repeat at 1440 pixels and confirm no stale success/counts are displayed while the backend is unavailable.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Important content/actions remain readable without clipped controls; empty, loading and error states are distinct and retryable.",
        "persistedData": "Repeat at 1440 pixels and confirm no stale success/counts are displayed while the backend is unavailable.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "usability",
        "Responsive",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-091",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "operations",
      "title": "Observe healthy dependencies separately",
      "objective": "Verify observe healthy dependencies separately against AC-031-01.",
      "type": "Operations",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Operations distinguish process liveness from required data/storage readiness and validate recovery against a consistent isolated database/object-store snapshot.",
      "requirementIds": [
        "REQ-031"
      ],
      "storyIds": [
        "US-031"
      ],
      "acceptanceCriterionIds": [
        "AC-031-01"
      ],
      "businessIds": [
        "BR-031"
      ],
      "sourceRefs": [
        "SRC-030"
      ],
      "routeRef": "/api/health and /api/ready",
      "role": "operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "The isolated API, migrated database and private object storage are available."
      ],
      "testData": "Use a fresh TC-091-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: The isolated API, migrated database and private object storage are available.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: The isolated API, migrated database and private object storage are available.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Request liveness and readiness; inspect dependency outcomes and timestamps.",
          "expected": "Liveness confirms the process and readiness reports dependency availability without credentials."
        },
        {
          "index": 3,
          "action": "Capture responses and the tested build; do not extrapolate uptime from one successful probe.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Liveness confirms the process and readiness reports dependency availability without credentials.",
        "persistedData": "Capture responses and the tested build; do not extrapolate uptime from one successful probe.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "operations",
        "Operations",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-092",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "operations",
      "title": "Readiness fails honestly on dependency outage",
      "objective": "Verify readiness fails honestly on dependency outage against AC-031-02.",
      "type": "Resilience",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Operations distinguish process liveness from required data/storage readiness and validate recovery against a consistent isolated database/object-store snapshot.",
      "requirementIds": [
        "REQ-031"
      ],
      "storyIds": [
        "US-031"
      ],
      "acceptanceCriterionIds": [
        "AC-031-02"
      ],
      "businessIds": [
        "BR-031"
      ],
      "sourceRefs": [
        "SRC-030"
      ],
      "routeRef": "/api/health and /api/ready",
      "role": "operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "An operator-controlled local fixture can disable MySQL or storage without touching shared services."
      ],
      "testData": "Use a fresh TC-092-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: An operator-controlled local fixture can disable MySQL or storage without touching shared services.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: An operator-controlled local fixture can disable MySQL or storage without touching shared services.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Disable one dependency, request both probes, then restore it.",
          "expected": "Readiness reports the affected dependency failure; liveness remains a distinct process signal."
        },
        {
          "index": 3,
          "action": "Verify recovery is observed on a new probe and error output contains no connection secrets.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Readiness reports the affected dependency failure; liveness remains a distinct process signal.",
        "persistedData": "Verify recovery is observed on a new probe and error output contains no connection secrets.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "operations",
        "Resilience",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-093",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "operations",
      "title": "Restore a consistent sandbox quality record",
      "objective": "Verify restore a consistent sandbox quality record against AC-031-03.",
      "type": "Recovery",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Operations distinguish process liveness from required data/storage readiness and validate recovery against a consistent isolated database/object-store snapshot.",
      "requirementIds": [
        "REQ-031"
      ],
      "storyIds": [
        "US-031"
      ],
      "acceptanceCriterionIds": [
        "AC-031-03"
      ],
      "businessIds": [
        "BR-031"
      ],
      "sourceRefs": [
        "SRC-030"
      ],
      "routeRef": "/api/health and /api/ready",
      "role": "operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "An approved isolated backup contains a sample source, case, run metadata and matching evidence object; restoration is explicitly authorized for the sandbox."
      ],
      "testData": "Use a fresh TC-093-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: An approved isolated backup contains a sample source, case, run metadata and matching evidence object; restoration is explicitly authorized for the sandbox.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: An approved isolated backup contains a sample source, case, run metadata and matching evidence object; restoration is explicitly authorized for the sandbox.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Restore into a new disposable namespace, run migration/readiness checks and open the linked artifact/evidence.",
          "expected": "The restored graph and evidence agree on IDs/versions; original environment is unchanged."
        },
        {
          "index": 3,
          "action": "Record measured recovery duration and recovered timestamps without claiming an unapproved RPO/RTO target was met.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "The restored graph and evidence agree on IDs/versions; original environment is unchanged.",
        "persistedData": "Record measured recovery duration and recovered timestamps without claiming an unapproved RPO/RTO target was met.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "operations",
        "Recovery",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-094",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "operations",
      "title": "Trace a business decision to its actor",
      "objective": "Verify trace a business decision to its actor against AC-032-01.",
      "type": "Audit",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Business mutations and failures remain attributable to project, actor, operation and time while operational views exclude secret/source-body leakage.",
      "requirementIds": [
        "REQ-032"
      ],
      "storyIds": [
        "US-032"
      ],
      "acceptanceCriterionIds": [
        "AC-032-01"
      ],
      "businessIds": [
        "BR-032"
      ],
      "sourceRefs": [
        "SRC-031"
      ],
      "routeRef": "/api/activity and /api/system-logs",
      "role": "owner / operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A named requirements manager has a review-ready requirement."
      ],
      "testData": "Use a fresh TC-094-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A named requirements manager has a review-ready requirement.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A named requirements manager has a review-ready requirement.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Record a permitted review decision, then inspect activity and requirement decision history.",
          "expected": "Project, actor, action, time and affected requirement/version can be reconciled."
        },
        {
          "index": 3,
          "action": "Capture the business receipt and verify no password/token or unrelated project activity appears.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Project, actor, action, time and affected requirement/version can be reconciled.",
        "persistedData": "Capture the business receipt and verify no password/token or unrelated project activity appears.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "operations",
        "Audit",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-095",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "operations",
      "title": "Sanitize a controlled integration error",
      "objective": "Verify sanitize a controlled integration error against AC-032-02.",
      "type": "Privacy",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Business mutations and failures remain attributable to project, actor, operation and time while operational views exclude secret/source-body leakage.",
      "requirementIds": [
        "REQ-032"
      ],
      "storyIds": [
        "US-032"
      ],
      "acceptanceCriterionIds": [
        "AC-032-02"
      ],
      "businessIds": [
        "BR-032"
      ],
      "sourceRefs": [
        "SRC-031"
      ],
      "routeRef": "/api/activity and /api/system-logs",
      "role": "owner / operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A local transport fixture throws an error containing harmless canary text representing a secret."
      ],
      "testData": "Use a fresh TC-095-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A local transport fixture throws an error containing harmless canary text representing a secret.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A local transport fixture throws an error containing harmless canary text representing a secret.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "Trigger the failure and inspect user-visible errors, system logs and usage metadata.",
          "expected": "Actionable failure context remains while sensitive header/key/source-body values are redacted."
        },
        {
          "index": 3,
          "action": "Use a canary scan summary as evidence; never use a real secret for this test.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Actionable failure context remains while sensitive header/key/source-body values are redacted.",
        "persistedData": "Use a canary scan summary as evidence; never use a real secret for this test.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "operations",
        "Privacy",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    },
    {
      "id": "TC-096",
      "version": "1.0.0",
      "projectId": "SAMPLE-PENTASCOPE-MASTER",
      "suite": "operations",
      "title": "Keep filtered logs within project bounds",
      "objective": "Verify keep filtered logs within project bounds against AC-032-03.",
      "type": "Tenant isolation",
      "priority": "P1",
      "risk": "High",
      "riskRationale": "Business mutations and failures remain attributable to project, actor, operation and time while operational views exclude secret/source-body leakage.",
      "requirementIds": [
        "REQ-032"
      ],
      "storyIds": [
        "US-032"
      ],
      "acceptanceCriterionIds": [
        "AC-032-03"
      ],
      "businessIds": [
        "BR-032"
      ],
      "sourceRefs": [
        "SRC-031"
      ],
      "routeRef": "/api/activity and /api/system-logs",
      "role": "owner / operator",
      "credentialRef": "Bind an approved secret-store reference during readiness; no secret is included",
      "environment": "Disposable approved sandbox only; exact URLs/build recorded in execution manifest",
      "reviewStatus": "Draft",
      "executionStatus": "Not Run",
      "automationFeasibility": "Manual acceptance design; local API/provider/transport fixtures may automate stable checks after adaptation and review",
      "preconditions": [
        "GAP-001, GAP-002 and GAP-007 resolved for this adopted scope; current case and requirement versions explicitly reviewed.",
        "A and B each contain a uniquely marked fixture activity."
      ],
      "testData": "Use a fresh TC-096-{runKey} marker and isolated SAMPLE-A/SAMPLE-B records as needed. Replace every placeholder in the execution manifest before running. Case-specific setup: A and B each contain a uniquely marked fixture activity.",
      "steps": [
        {
          "index": 1,
          "action": "Verify this case-specific setup and record the actual target/build/role: A and B each contain a uniquely marked fixture activity.",
          "expected": "The declared setup is independently observed; otherwise stop and record Blocked without executing dependent actions."
        },
        {
          "index": 2,
          "action": "As A query and paginate activity/log filters, including a guessed B identifier.",
          "expected": "Only authorized A data is returned; counts and pagination do not reveal B content."
        },
        {
          "index": 3,
          "action": "Check first/last/empty pages and confirm a denied query produces no unauthorized mutation.",
          "expected": "The specific verification is observed and retained with redacted evidence. A contradiction fails the case; missing prerequisites/evidence prevent a pass."
        }
      ],
      "expectedOutcomes": {
        "primary": "Only authorized A data is returned; counts and pagination do not reveal B content.",
        "persistedData": "Check first/last/empty pages and confirm a denied query produces no unauthorized mutation.",
        "ui": "Where a UI is involved, displayed state agrees with the observed API/persisted outcome; no false success.",
        "api": "Where an API is involved, preserve the actual status and sanitized contract fields. Exact generic denial code is recorded from the approved build, not guessed.",
        "audit": "For business mutations inspect available actor/project/version/time receipts; record an explicit gap if the required receipt is unavailable.",
        "notifications": "Only controlled test sinks are allowed; when this scenario triggers no notification, record Not applicable.",
        "integration": "Use local approved fixtures for provider/worker/webhook/media failure cases; record fixture version and actual calls."
      },
      "negativeAssertions": [
        "No unrelated project records are disclosed or changed.",
        "No generated design, imported case or client-reported status is treated as real passing execution.",
        "No raw secret is copied into screenshots, exports, case data or execution logs."
      ],
      "cleanup": "Stop fixture agents/dispatchers; pause created schedules; revoke temporary keys; restore changed fixture roles/settings; remove only this case marker through an approved supported cleanup method. Preserve required evidence separately and never delete shared/customer records.",
      "evidenceContract": [
        "Actual UTC start/end and executor identity",
        "Exact frontend/backend/target build and case version",
        "Step observations and sanitized UI/API receipts proving the acceptance criterion",
        "Project-scoped authorized evidence references; no fake screenshot/file/run IDs",
        "Affected persisted-state observation and audit reference for mutations; reasoned Not applicable for read-only work"
      ],
      "dependencies": [
        "Approved sandbox manifest",
        "Case-specific setup above"
      ],
      "tags": [
        "operations",
        "Tenant isolation",
        "synthetic",
        "manual-acceptance"
      ],
      "actualResult": null,
      "runId": null,
      "evidenceRefs": [],
      "defectIds": []
    }
  ],
  "traceability": [
    {
      "businessId": "BR-001",
      "obligationId": "OBL-001",
      "requirementId": "REQ-001",
      "storyId": "US-001",
      "acceptanceCriterionId": "AC-001-01",
      "testCaseId": "TC-001",
      "sourceRef": "SRC-001",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-001",
      "obligationId": "OBL-001",
      "requirementId": "REQ-001",
      "storyId": "US-001",
      "acceptanceCriterionId": "AC-001-02",
      "testCaseId": "TC-002",
      "sourceRef": "SRC-001",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-001",
      "obligationId": "OBL-001",
      "requirementId": "REQ-001",
      "storyId": "US-001",
      "acceptanceCriterionId": "AC-001-03",
      "testCaseId": "TC-003",
      "sourceRef": "SRC-001",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-002",
      "obligationId": "OBL-002",
      "requirementId": "REQ-002",
      "storyId": "US-002",
      "acceptanceCriterionId": "AC-002-01",
      "testCaseId": "TC-004",
      "sourceRef": "SRC-002",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-002",
      "obligationId": "OBL-002",
      "requirementId": "REQ-002",
      "storyId": "US-002",
      "acceptanceCriterionId": "AC-002-02",
      "testCaseId": "TC-005",
      "sourceRef": "SRC-002",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-002",
      "obligationId": "OBL-002",
      "requirementId": "REQ-002",
      "storyId": "US-002",
      "acceptanceCriterionId": "AC-002-03",
      "testCaseId": "TC-006",
      "sourceRef": "SRC-002",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-003",
      "obligationId": "OBL-003",
      "requirementId": "REQ-003",
      "storyId": "US-003",
      "acceptanceCriterionId": "AC-003-01",
      "testCaseId": "TC-007",
      "sourceRef": "SRC-003",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-003",
      "obligationId": "OBL-003",
      "requirementId": "REQ-003",
      "storyId": "US-003",
      "acceptanceCriterionId": "AC-003-02",
      "testCaseId": "TC-008",
      "sourceRef": "SRC-003",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-003",
      "obligationId": "OBL-003",
      "requirementId": "REQ-003",
      "storyId": "US-003",
      "acceptanceCriterionId": "AC-003-03",
      "testCaseId": "TC-009",
      "sourceRef": "SRC-003",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-004",
      "obligationId": "OBL-004",
      "requirementId": "REQ-004",
      "storyId": "US-004",
      "acceptanceCriterionId": "AC-004-01",
      "testCaseId": "TC-010",
      "sourceRef": "SRC-004",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-004",
      "obligationId": "OBL-004",
      "requirementId": "REQ-004",
      "storyId": "US-004",
      "acceptanceCriterionId": "AC-004-02",
      "testCaseId": "TC-011",
      "sourceRef": "SRC-004",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-004",
      "obligationId": "OBL-004",
      "requirementId": "REQ-004",
      "storyId": "US-004",
      "acceptanceCriterionId": "AC-004-03",
      "testCaseId": "TC-012",
      "sourceRef": "SRC-004",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-005",
      "obligationId": "OBL-005",
      "requirementId": "REQ-005",
      "storyId": "US-005",
      "acceptanceCriterionId": "AC-005-01",
      "testCaseId": "TC-013",
      "sourceRef": "SRC-005",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-005",
      "obligationId": "OBL-005",
      "requirementId": "REQ-005",
      "storyId": "US-005",
      "acceptanceCriterionId": "AC-005-02",
      "testCaseId": "TC-014",
      "sourceRef": "SRC-005",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-005",
      "obligationId": "OBL-005",
      "requirementId": "REQ-005",
      "storyId": "US-005",
      "acceptanceCriterionId": "AC-005-03",
      "testCaseId": "TC-015",
      "sourceRef": "SRC-005",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-006",
      "obligationId": "OBL-006",
      "requirementId": "REQ-006",
      "storyId": "US-006",
      "acceptanceCriterionId": "AC-006-01",
      "testCaseId": "TC-016",
      "sourceRef": "SRC-006",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-006",
      "obligationId": "OBL-006",
      "requirementId": "REQ-006",
      "storyId": "US-006",
      "acceptanceCriterionId": "AC-006-02",
      "testCaseId": "TC-017",
      "sourceRef": "SRC-006",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-006",
      "obligationId": "OBL-006",
      "requirementId": "REQ-006",
      "storyId": "US-006",
      "acceptanceCriterionId": "AC-006-03",
      "testCaseId": "TC-018",
      "sourceRef": "SRC-006",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-007",
      "obligationId": "OBL-007",
      "requirementId": "REQ-007",
      "storyId": "US-007",
      "acceptanceCriterionId": "AC-007-01",
      "testCaseId": "TC-019",
      "sourceRef": "SRC-007",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-007",
      "obligationId": "OBL-007",
      "requirementId": "REQ-007",
      "storyId": "US-007",
      "acceptanceCriterionId": "AC-007-02",
      "testCaseId": "TC-020",
      "sourceRef": "SRC-007",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-007",
      "obligationId": "OBL-007",
      "requirementId": "REQ-007",
      "storyId": "US-007",
      "acceptanceCriterionId": "AC-007-03",
      "testCaseId": "TC-021",
      "sourceRef": "SRC-007",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-008",
      "obligationId": "OBL-008",
      "requirementId": "REQ-008",
      "storyId": "US-008",
      "acceptanceCriterionId": "AC-008-01",
      "testCaseId": "TC-022",
      "sourceRef": "SRC-008",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-008",
      "obligationId": "OBL-008",
      "requirementId": "REQ-008",
      "storyId": "US-008",
      "acceptanceCriterionId": "AC-008-02",
      "testCaseId": "TC-023",
      "sourceRef": "SRC-008",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-008",
      "obligationId": "OBL-008",
      "requirementId": "REQ-008",
      "storyId": "US-008",
      "acceptanceCriterionId": "AC-008-03",
      "testCaseId": "TC-024",
      "sourceRef": "SRC-008",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-009",
      "obligationId": "OBL-009",
      "requirementId": "REQ-009",
      "storyId": "US-009",
      "acceptanceCriterionId": "AC-009-01",
      "testCaseId": "TC-025",
      "sourceRef": "SRC-009",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-009",
      "obligationId": "OBL-009",
      "requirementId": "REQ-009",
      "storyId": "US-009",
      "acceptanceCriterionId": "AC-009-02",
      "testCaseId": "TC-026",
      "sourceRef": "SRC-009",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-009",
      "obligationId": "OBL-009",
      "requirementId": "REQ-009",
      "storyId": "US-009",
      "acceptanceCriterionId": "AC-009-03",
      "testCaseId": "TC-027",
      "sourceRef": "SRC-009",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-010",
      "obligationId": "OBL-010",
      "requirementId": "REQ-010",
      "storyId": "US-010",
      "acceptanceCriterionId": "AC-010-01",
      "testCaseId": "TC-028",
      "sourceRef": "SRC-010",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-010",
      "obligationId": "OBL-010",
      "requirementId": "REQ-010",
      "storyId": "US-010",
      "acceptanceCriterionId": "AC-010-02",
      "testCaseId": "TC-029",
      "sourceRef": "SRC-010",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-010",
      "obligationId": "OBL-010",
      "requirementId": "REQ-010",
      "storyId": "US-010",
      "acceptanceCriterionId": "AC-010-03",
      "testCaseId": "TC-030",
      "sourceRef": "SRC-010",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-011",
      "obligationId": "OBL-011",
      "requirementId": "REQ-011",
      "storyId": "US-011",
      "acceptanceCriterionId": "AC-011-01",
      "testCaseId": "TC-031",
      "sourceRef": "SRC-011",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-011",
      "obligationId": "OBL-011",
      "requirementId": "REQ-011",
      "storyId": "US-011",
      "acceptanceCriterionId": "AC-011-02",
      "testCaseId": "TC-032",
      "sourceRef": "SRC-011",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-011",
      "obligationId": "OBL-011",
      "requirementId": "REQ-011",
      "storyId": "US-011",
      "acceptanceCriterionId": "AC-011-03",
      "testCaseId": "TC-033",
      "sourceRef": "SRC-011",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-012",
      "obligationId": "OBL-012",
      "requirementId": "REQ-012",
      "storyId": "US-012",
      "acceptanceCriterionId": "AC-012-01",
      "testCaseId": "TC-034",
      "sourceRef": "SRC-012",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-012",
      "obligationId": "OBL-012",
      "requirementId": "REQ-012",
      "storyId": "US-012",
      "acceptanceCriterionId": "AC-012-02",
      "testCaseId": "TC-035",
      "sourceRef": "SRC-012",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-012",
      "obligationId": "OBL-012",
      "requirementId": "REQ-012",
      "storyId": "US-012",
      "acceptanceCriterionId": "AC-012-03",
      "testCaseId": "TC-036",
      "sourceRef": "SRC-012",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-013",
      "obligationId": "OBL-013",
      "requirementId": "REQ-013",
      "storyId": "US-013",
      "acceptanceCriterionId": "AC-013-01",
      "testCaseId": "TC-037",
      "sourceRef": "SRC-013",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-013",
      "obligationId": "OBL-013",
      "requirementId": "REQ-013",
      "storyId": "US-013",
      "acceptanceCriterionId": "AC-013-02",
      "testCaseId": "TC-038",
      "sourceRef": "SRC-013",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-013",
      "obligationId": "OBL-013",
      "requirementId": "REQ-013",
      "storyId": "US-013",
      "acceptanceCriterionId": "AC-013-03",
      "testCaseId": "TC-039",
      "sourceRef": "SRC-013",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-014",
      "obligationId": "OBL-014",
      "requirementId": "REQ-014",
      "storyId": "US-014",
      "acceptanceCriterionId": "AC-014-01",
      "testCaseId": "TC-040",
      "sourceRef": "SRC-014",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-014",
      "obligationId": "OBL-014",
      "requirementId": "REQ-014",
      "storyId": "US-014",
      "acceptanceCriterionId": "AC-014-02",
      "testCaseId": "TC-041",
      "sourceRef": "SRC-014",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-014",
      "obligationId": "OBL-014",
      "requirementId": "REQ-014",
      "storyId": "US-014",
      "acceptanceCriterionId": "AC-014-03",
      "testCaseId": "TC-042",
      "sourceRef": "SRC-014",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-015",
      "obligationId": "OBL-015",
      "requirementId": "REQ-015",
      "storyId": "US-015",
      "acceptanceCriterionId": "AC-015-01",
      "testCaseId": "TC-043",
      "sourceRef": "SRC-015",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-015",
      "obligationId": "OBL-015",
      "requirementId": "REQ-015",
      "storyId": "US-015",
      "acceptanceCriterionId": "AC-015-02",
      "testCaseId": "TC-044",
      "sourceRef": "SRC-015",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-015",
      "obligationId": "OBL-015",
      "requirementId": "REQ-015",
      "storyId": "US-015",
      "acceptanceCriterionId": "AC-015-03",
      "testCaseId": "TC-045",
      "sourceRef": "SRC-015",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-016",
      "obligationId": "OBL-016",
      "requirementId": "REQ-016",
      "storyId": "US-016",
      "acceptanceCriterionId": "AC-016-01",
      "testCaseId": "TC-046",
      "sourceRef": "SRC-016",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-016",
      "obligationId": "OBL-016",
      "requirementId": "REQ-016",
      "storyId": "US-016",
      "acceptanceCriterionId": "AC-016-02",
      "testCaseId": "TC-047",
      "sourceRef": "SRC-016",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-016",
      "obligationId": "OBL-016",
      "requirementId": "REQ-016",
      "storyId": "US-016",
      "acceptanceCriterionId": "AC-016-03",
      "testCaseId": "TC-048",
      "sourceRef": "SRC-016",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-017",
      "obligationId": "OBL-017",
      "requirementId": "REQ-017",
      "storyId": "US-017",
      "acceptanceCriterionId": "AC-017-01",
      "testCaseId": "TC-049",
      "sourceRef": "SRC-017",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-017",
      "obligationId": "OBL-017",
      "requirementId": "REQ-017",
      "storyId": "US-017",
      "acceptanceCriterionId": "AC-017-02",
      "testCaseId": "TC-050",
      "sourceRef": "SRC-017",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-017",
      "obligationId": "OBL-017",
      "requirementId": "REQ-017",
      "storyId": "US-017",
      "acceptanceCriterionId": "AC-017-03",
      "testCaseId": "TC-051",
      "sourceRef": "SRC-017",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-018",
      "obligationId": "OBL-018",
      "requirementId": "REQ-018",
      "storyId": "US-018",
      "acceptanceCriterionId": "AC-018-01",
      "testCaseId": "TC-052",
      "sourceRef": "SRC-018",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-018",
      "obligationId": "OBL-018",
      "requirementId": "REQ-018",
      "storyId": "US-018",
      "acceptanceCriterionId": "AC-018-02",
      "testCaseId": "TC-053",
      "sourceRef": "SRC-018",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-018",
      "obligationId": "OBL-018",
      "requirementId": "REQ-018",
      "storyId": "US-018",
      "acceptanceCriterionId": "AC-018-03",
      "testCaseId": "TC-054",
      "sourceRef": "SRC-018",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-019",
      "obligationId": "OBL-019",
      "requirementId": "REQ-019",
      "storyId": "US-019",
      "acceptanceCriterionId": "AC-019-01",
      "testCaseId": "TC-055",
      "sourceRef": "SRC-019",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-019",
      "obligationId": "OBL-019",
      "requirementId": "REQ-019",
      "storyId": "US-019",
      "acceptanceCriterionId": "AC-019-02",
      "testCaseId": "TC-056",
      "sourceRef": "SRC-019",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-019",
      "obligationId": "OBL-019",
      "requirementId": "REQ-019",
      "storyId": "US-019",
      "acceptanceCriterionId": "AC-019-03",
      "testCaseId": "TC-057",
      "sourceRef": "SRC-019",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-020",
      "obligationId": "OBL-020",
      "requirementId": "REQ-020",
      "storyId": "US-020",
      "acceptanceCriterionId": "AC-020-01",
      "testCaseId": "TC-058",
      "sourceRef": "SRC-020",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-020",
      "obligationId": "OBL-020",
      "requirementId": "REQ-020",
      "storyId": "US-020",
      "acceptanceCriterionId": "AC-020-02",
      "testCaseId": "TC-059",
      "sourceRef": "SRC-020",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-020",
      "obligationId": "OBL-020",
      "requirementId": "REQ-020",
      "storyId": "US-020",
      "acceptanceCriterionId": "AC-020-03",
      "testCaseId": "TC-060",
      "sourceRef": "SRC-020",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-021",
      "obligationId": "OBL-021",
      "requirementId": "REQ-021",
      "storyId": "US-021",
      "acceptanceCriterionId": "AC-021-01",
      "testCaseId": "TC-061",
      "sourceRef": "SRC-020",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-021",
      "obligationId": "OBL-021",
      "requirementId": "REQ-021",
      "storyId": "US-021",
      "acceptanceCriterionId": "AC-021-02",
      "testCaseId": "TC-062",
      "sourceRef": "SRC-020",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-021",
      "obligationId": "OBL-021",
      "requirementId": "REQ-021",
      "storyId": "US-021",
      "acceptanceCriterionId": "AC-021-03",
      "testCaseId": "TC-063",
      "sourceRef": "SRC-020",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-022",
      "obligationId": "OBL-022",
      "requirementId": "REQ-022",
      "storyId": "US-022",
      "acceptanceCriterionId": "AC-022-01",
      "testCaseId": "TC-064",
      "sourceRef": "SRC-021",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-022",
      "obligationId": "OBL-022",
      "requirementId": "REQ-022",
      "storyId": "US-022",
      "acceptanceCriterionId": "AC-022-02",
      "testCaseId": "TC-065",
      "sourceRef": "SRC-021",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-022",
      "obligationId": "OBL-022",
      "requirementId": "REQ-022",
      "storyId": "US-022",
      "acceptanceCriterionId": "AC-022-03",
      "testCaseId": "TC-066",
      "sourceRef": "SRC-021",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-023",
      "obligationId": "OBL-023",
      "requirementId": "REQ-023",
      "storyId": "US-023",
      "acceptanceCriterionId": "AC-023-01",
      "testCaseId": "TC-067",
      "sourceRef": "SRC-022",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-023",
      "obligationId": "OBL-023",
      "requirementId": "REQ-023",
      "storyId": "US-023",
      "acceptanceCriterionId": "AC-023-02",
      "testCaseId": "TC-068",
      "sourceRef": "SRC-022",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-023",
      "obligationId": "OBL-023",
      "requirementId": "REQ-023",
      "storyId": "US-023",
      "acceptanceCriterionId": "AC-023-03",
      "testCaseId": "TC-069",
      "sourceRef": "SRC-022",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-024",
      "obligationId": "OBL-024",
      "requirementId": "REQ-024",
      "storyId": "US-024",
      "acceptanceCriterionId": "AC-024-01",
      "testCaseId": "TC-070",
      "sourceRef": "SRC-023",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-024",
      "obligationId": "OBL-024",
      "requirementId": "REQ-024",
      "storyId": "US-024",
      "acceptanceCriterionId": "AC-024-02",
      "testCaseId": "TC-071",
      "sourceRef": "SRC-023",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-024",
      "obligationId": "OBL-024",
      "requirementId": "REQ-024",
      "storyId": "US-024",
      "acceptanceCriterionId": "AC-024-03",
      "testCaseId": "TC-072",
      "sourceRef": "SRC-023",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-025",
      "obligationId": "OBL-025",
      "requirementId": "REQ-025",
      "storyId": "US-025",
      "acceptanceCriterionId": "AC-025-01",
      "testCaseId": "TC-073",
      "sourceRef": "SRC-024",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-025",
      "obligationId": "OBL-025",
      "requirementId": "REQ-025",
      "storyId": "US-025",
      "acceptanceCriterionId": "AC-025-02",
      "testCaseId": "TC-074",
      "sourceRef": "SRC-024",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-025",
      "obligationId": "OBL-025",
      "requirementId": "REQ-025",
      "storyId": "US-025",
      "acceptanceCriterionId": "AC-025-03",
      "testCaseId": "TC-075",
      "sourceRef": "SRC-024",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-026",
      "obligationId": "OBL-026",
      "requirementId": "REQ-026",
      "storyId": "US-026",
      "acceptanceCriterionId": "AC-026-01",
      "testCaseId": "TC-076",
      "sourceRef": "SRC-025",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-026",
      "obligationId": "OBL-026",
      "requirementId": "REQ-026",
      "storyId": "US-026",
      "acceptanceCriterionId": "AC-026-02",
      "testCaseId": "TC-077",
      "sourceRef": "SRC-025",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-026",
      "obligationId": "OBL-026",
      "requirementId": "REQ-026",
      "storyId": "US-026",
      "acceptanceCriterionId": "AC-026-03",
      "testCaseId": "TC-078",
      "sourceRef": "SRC-025",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-027",
      "obligationId": "OBL-027",
      "requirementId": "REQ-027",
      "storyId": "US-027",
      "acceptanceCriterionId": "AC-027-01",
      "testCaseId": "TC-079",
      "sourceRef": "SRC-026",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-027",
      "obligationId": "OBL-027",
      "requirementId": "REQ-027",
      "storyId": "US-027",
      "acceptanceCriterionId": "AC-027-02",
      "testCaseId": "TC-080",
      "sourceRef": "SRC-026",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-027",
      "obligationId": "OBL-027",
      "requirementId": "REQ-027",
      "storyId": "US-027",
      "acceptanceCriterionId": "AC-027-03",
      "testCaseId": "TC-081",
      "sourceRef": "SRC-026",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-028",
      "obligationId": "OBL-028",
      "requirementId": "REQ-028",
      "storyId": "US-028",
      "acceptanceCriterionId": "AC-028-01",
      "testCaseId": "TC-082",
      "sourceRef": "SRC-027",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-028",
      "obligationId": "OBL-028",
      "requirementId": "REQ-028",
      "storyId": "US-028",
      "acceptanceCriterionId": "AC-028-02",
      "testCaseId": "TC-083",
      "sourceRef": "SRC-027",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-028",
      "obligationId": "OBL-028",
      "requirementId": "REQ-028",
      "storyId": "US-028",
      "acceptanceCriterionId": "AC-028-03",
      "testCaseId": "TC-084",
      "sourceRef": "SRC-027",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-029",
      "obligationId": "OBL-029",
      "requirementId": "REQ-029",
      "storyId": "US-029",
      "acceptanceCriterionId": "AC-029-01",
      "testCaseId": "TC-085",
      "sourceRef": "SRC-028",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-029",
      "obligationId": "OBL-029",
      "requirementId": "REQ-029",
      "storyId": "US-029",
      "acceptanceCriterionId": "AC-029-02",
      "testCaseId": "TC-086",
      "sourceRef": "SRC-028",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-029",
      "obligationId": "OBL-029",
      "requirementId": "REQ-029",
      "storyId": "US-029",
      "acceptanceCriterionId": "AC-029-03",
      "testCaseId": "TC-087",
      "sourceRef": "SRC-028",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-030",
      "obligationId": "OBL-030",
      "requirementId": "REQ-030",
      "storyId": "US-030",
      "acceptanceCriterionId": "AC-030-01",
      "testCaseId": "TC-088",
      "sourceRef": "SRC-029",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-030",
      "obligationId": "OBL-030",
      "requirementId": "REQ-030",
      "storyId": "US-030",
      "acceptanceCriterionId": "AC-030-02",
      "testCaseId": "TC-089",
      "sourceRef": "SRC-029",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-030",
      "obligationId": "OBL-030",
      "requirementId": "REQ-030",
      "storyId": "US-030",
      "acceptanceCriterionId": "AC-030-03",
      "testCaseId": "TC-090",
      "sourceRef": "SRC-029",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-031",
      "obligationId": "OBL-031",
      "requirementId": "REQ-031",
      "storyId": "US-031",
      "acceptanceCriterionId": "AC-031-01",
      "testCaseId": "TC-091",
      "sourceRef": "SRC-030",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-031",
      "obligationId": "OBL-031",
      "requirementId": "REQ-031",
      "storyId": "US-031",
      "acceptanceCriterionId": "AC-031-02",
      "testCaseId": "TC-092",
      "sourceRef": "SRC-030",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-031",
      "obligationId": "OBL-031",
      "requirementId": "REQ-031",
      "storyId": "US-031",
      "acceptanceCriterionId": "AC-031-03",
      "testCaseId": "TC-093",
      "sourceRef": "SRC-030",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-032",
      "obligationId": "OBL-032",
      "requirementId": "REQ-032",
      "storyId": "US-032",
      "acceptanceCriterionId": "AC-032-01",
      "testCaseId": "TC-094",
      "sourceRef": "SRC-031",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-032",
      "obligationId": "OBL-032",
      "requirementId": "REQ-032",
      "storyId": "US-032",
      "acceptanceCriterionId": "AC-032-02",
      "testCaseId": "TC-095",
      "sourceRef": "SRC-031",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    },
    {
      "businessId": "BR-032",
      "obligationId": "OBL-032",
      "requirementId": "REQ-032",
      "storyId": "US-032",
      "acceptanceCriterionId": "AC-032-03",
      "testCaseId": "TC-096",
      "sourceRef": "SRC-031",
      "requirementStatus": "Draft",
      "caseStatus": "Draft",
      "executionStatus": "Not Run",
      "runId": "",
      "evidenceRef": "",
      "defectId": ""
    }
  ],
  "sources": [
    {
      "id": "SRC-001",
      "path": "pentascope-be/lib/account-auth.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "18b3ae3eb13ae79750016b44dd2f7821cf1cde522d9760deef11402c7ee30efb",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-002",
      "path": "pentascope-be/app/api/account-mfa/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "e4d19912dc3de584e95bdf439f895e1edcd9eb907aa6685c2fe57d8f892f7135",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-003",
      "path": "pentascope-be/app/api/account-projects/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "48cebaed198a18ffb2b61021bb81ad77c80c569a82e08b46c12e0470bfdc3431",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-004",
      "path": "pentascope-be/app/api/project-members/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "cc1b80c3e526be48413e5a694b540cf92d2f314bf287e276d0f2829edc908254",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-005",
      "path": "pentascope-be/db/runtime.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "1cd5989e74ae610d7a3d25caf92e77a63b7d25f852b5c2dfadda2ca13ecc9a72",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-006",
      "path": "pentascope-be/app/api/project-documents/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "6b7295446abea7b2f8e9b21704611317a7c9b7c5fa83eca5fcdbdeb016ec8582",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-007",
      "path": "pentascope-be/lib/analysis-job-queue.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "b5340516ccabab64deb8468d9ac5935b1b1de982c4fd0c1840e0bc8c78f10fa1",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-008",
      "path": "pentascope-be/lib/document-analysis-policy.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "4ba36d6c5722e46e17116820679ceaf7d3a84bd2dc35408d161744c208b6c2b0",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-009",
      "path": "pentascope-be/skills/pentascope-requirements-to-quality/references/stage-contracts.md",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "dffb5d4942d7890ac6ba12a3644e0a373e0fefc616ebe8baad7a061a82b57243",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-010",
      "path": "pentascope-be/app/api/requirements-management/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "bfb98ee6aec17f7b69600a4fbfa56610c601011002cddcec25569687cc7e358b",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-011",
      "path": "pentascope-be/app/api/project-traceability/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "d5f100b447e0681acdff7b4b4c4dd371315f74454439ee18b765698e1c9996c4",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-012",
      "path": "pentascope-be/app/api/story-translate/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "9f710b21615c93ba6a348a22c9756292b21cd9e9fcf4a2d3465f1ed612ae01ca",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-013",
      "path": "pentascope-be/lib/phase1-quality.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "e1cc98c1e27e5e73b01c8a0f2d261aabb20f4ea737ee6d02cbb3b4879344f690",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-014",
      "path": "pentascope-be/app/api/story-test-generation/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "917038a27f049017b744643d3b045d3e7e3122e99b5714ae9301d0e571db8419",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-015",
      "path": "pentascope-be/lib/test-library.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "b35b7ee74138f5b03b4b517480fc2abd2407fdfeeb21b616826994b203fc78e6",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-016",
      "path": "pentascope-be/app/api/execution-previews/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "e98757cc95255bd4d8a17b2ee2cd2c7927084f8b021aeee9c8d4419c52cdcb9d",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-017",
      "path": "pentascope-be/app/api/project-credentials/[id]/lease/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "392901d14473abcbf686ef9d729af86417b2a13c9b3a530f144a4278c2064ce8",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-018",
      "path": "pentascope-be/lib/test-command-service.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "0f4bda2ce25378629d8900a596fab4d5432069b88e407b3c8d87e58b115dae89",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-019",
      "path": "pentascope-be/lib/execution-evidence.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "9dde5f1ebfbed2ded7b5ff20e7ed1cd3109597873289e7749b06e98fd21b5020",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-020",
      "path": "pentascope-be/app/api/issues/[id]/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "a6fefd6b954dd43c5772586eb4962e8e657e4c20bf5c269cefd460d4fe091d6f",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-021",
      "path": "pentascope-be/lib/project-impact-engine.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "999789984921391d051749e52942a271fc7714de1f45c7dd4c3b5dc91dd9fc4e",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-022",
      "path": "pentascope-be/app/api/lifecycle/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "d2aae501bf85773afd0ef91fec76320288eb606dc5d99a880933180d1fed7739",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-023",
      "path": "pentascope-be/app/api/validation-transfer/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "bf8a09da14fc78fadd5b010cbae701e089755a10b52fd8a64e0d11ec6dec2183",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-024",
      "path": "pentascope-be/app/api/test-schedules/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "022c5b20f683db9edff8dd3cafb54b11132a8993ddb7b604465cea8ade2a7e3c",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-025",
      "path": "pentascope-be/lib/webhook-delivery.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "df6b662d02c8af6a346d7de33b22818c9cd2484163bd4f0604463fbf5feba52b",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-026",
      "path": "pentascope-be/app/api/agent/plan/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "21ae82979e4344df6a9a18fdae118228a78b263fecb62c4c50121291eb32fdb4",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-027",
      "path": "pentascope-be/lib/ai-task-registry.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "a9e7bea8fa7cd29f667b03ee98a12891175b71abb18d5d1af0da874a3be3a9c2",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-028",
      "path": "pentascope-be/app/api/ai-images/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "1dc6075789a250742e14d21eedae32cd6c6031c8c6e56e00546bb56bf8f7e4a7",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-029",
      "path": "pentascope-fe/lib/localized-route.mjs",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "60734b073849843ee364de919174e72bcac57a8bcfd7d06c951644b5ecb589b4",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-030",
      "path": "pentascope-be/app/api/ready/route.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "cc13f72a42399bca5165c938abdf6abe05eb0ed6b94ecec1138685005d05a250",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    },
    {
      "id": "SRC-031",
      "path": "pentascope-be/lib/system-log.ts",
      "version": "local working-tree snapshot 2026-09-08",
      "sha256": "399d8c57b28cb432242a8a443fc773dd27a21b9399a5fea2371e918ae5d94b43",
      "locator": "Whole file; inspect named feature/function before adopting",
      "classification": "sourced",
      "statement": "This local file exists and defines or documents the referenced product surface. File presence does not prove runtime acceptance."
    }
  ],
  "obligations": [
    {
      "id": "OBL-001",
      "businessId": "BR-001",
      "sourceLocator": "BRD.md#BR-001",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-001"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-002",
      "businessId": "BR-002",
      "sourceLocator": "BRD.md#BR-002",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-002"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-003",
      "businessId": "BR-003",
      "sourceLocator": "BRD.md#BR-003",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-003"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-004",
      "businessId": "BR-004",
      "sourceLocator": "BRD.md#BR-004",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-004"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-005",
      "businessId": "BR-005",
      "sourceLocator": "BRD.md#BR-005",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-005"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-006",
      "businessId": "BR-006",
      "sourceLocator": "BRD.md#BR-006",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-006"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-007",
      "businessId": "BR-007",
      "sourceLocator": "BRD.md#BR-007",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-007"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-008",
      "businessId": "BR-008",
      "sourceLocator": "BRD.md#BR-008",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-008"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-009",
      "businessId": "BR-009",
      "sourceLocator": "BRD.md#BR-009",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-009"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-010",
      "businessId": "BR-010",
      "sourceLocator": "BRD.md#BR-010",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-010"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-011",
      "businessId": "BR-011",
      "sourceLocator": "BRD.md#BR-011",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-011"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-012",
      "businessId": "BR-012",
      "sourceLocator": "BRD.md#BR-012",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-012"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-013",
      "businessId": "BR-013",
      "sourceLocator": "BRD.md#BR-013",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-013"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-014",
      "businessId": "BR-014",
      "sourceLocator": "BRD.md#BR-014",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-014"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-015",
      "businessId": "BR-015",
      "sourceLocator": "BRD.md#BR-015",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-015"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-016",
      "businessId": "BR-016",
      "sourceLocator": "BRD.md#BR-016",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-016"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-017",
      "businessId": "BR-017",
      "sourceLocator": "BRD.md#BR-017",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-017"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-018",
      "businessId": "BR-018",
      "sourceLocator": "BRD.md#BR-018",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-018"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-019",
      "businessId": "BR-019",
      "sourceLocator": "BRD.md#BR-019",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-019"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-020",
      "businessId": "BR-020",
      "sourceLocator": "BRD.md#BR-020",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-020"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-021",
      "businessId": "BR-021",
      "sourceLocator": "BRD.md#BR-021",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-021"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-022",
      "businessId": "BR-022",
      "sourceLocator": "BRD.md#BR-022",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-022"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-023",
      "businessId": "BR-023",
      "sourceLocator": "BRD.md#BR-023",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-023"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-024",
      "businessId": "BR-024",
      "sourceLocator": "BRD.md#BR-024",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-024"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-025",
      "businessId": "BR-025",
      "sourceLocator": "BRD.md#BR-025",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-025"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-026",
      "businessId": "BR-026",
      "sourceLocator": "BRD.md#BR-026",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-026"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-027",
      "businessId": "BR-027",
      "sourceLocator": "BRD.md#BR-027",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-027"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-028",
      "businessId": "BR-028",
      "sourceLocator": "BRD.md#BR-028",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-028"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-029",
      "businessId": "BR-029",
      "sourceLocator": "BRD.md#BR-029",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-029"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-030",
      "businessId": "BR-030",
      "sourceLocator": "BRD.md#BR-030",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-030"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-031",
      "businessId": "BR-031",
      "sourceLocator": "BRD.md#BR-031",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-031"
      ],
      "status": "Draft",
      "reviewDecision": null
    },
    {
      "id": "OBL-032",
      "businessId": "BR-032",
      "sourceLocator": "BRD.md#BR-032",
      "disposition": "formal requirement",
      "requirementIds": [
        "REQ-032"
      ],
      "status": "Draft",
      "reviewDecision": null
    }
  ],
  "nfrs": [
    {
      "id": "NFR-001",
      "title": "Security and isolation",
      "criterion": "Zero unauthorized reads or mutations in the adopted role/project test matrix.",
      "requirementIds": [
        "REQ-003",
        "REQ-004",
        "REQ-005",
        "REQ-017",
        "REQ-019"
      ],
      "classification": "Derived proposed criterion; requires real execution",
      "status": "Draft"
    },
    {
      "id": "NFR-002",
      "title": "Source and result truthfulness",
      "criterion": "Zero invented source facts, approval decisions, execution observations or pass counts in reviewed artifacts.",
      "requirementIds": [
        "REQ-008",
        "REQ-009",
        "REQ-014",
        "REQ-019",
        "REQ-023",
        "REQ-027"
      ],
      "classification": "Recommendation for acceptance",
      "status": "Draft"
    },
    {
      "id": "NFR-003",
      "title": "Privacy",
      "criterion": "Zero raw credentials, recovery codes, provider secrets or source bodies in reviewed usage receipts, public exports and frontend storage.",
      "requirementIds": [
        "REQ-002",
        "REQ-017",
        "REQ-024",
        "REQ-028",
        "REQ-032"
      ],
      "classification": "Derived proposed criterion",
      "status": "Draft"
    },
    {
      "id": "NFR-004",
      "title": "Reliability",
      "criterion": "No duplicate authoritative completion in the prescribed concurrent-claim and retry fixtures; interrupted work remains visibly unresolved.",
      "requirementIds": [
        "REQ-007",
        "REQ-018",
        "REQ-025",
        "REQ-026"
      ],
      "classification": "Recommendation for acceptance",
      "status": "Draft"
    },
    {
      "id": "NFR-005",
      "title": "Usability and localization",
      "criterion": "The prescribed English/Arabic journey works at 375 and 1440 CSS pixels with visible keyboard focus and no inaccessible core action.",
      "requirementIds": [
        "REQ-030"
      ],
      "classification": "Recommended fixture sizes; formal conformance unresolved in GAP-006",
      "status": "Draft"
    },
    {
      "id": "NFR-006",
      "title": "Performance and capacity",
      "criterion": "Measure p50/p95/p99 latency, errors and resource use for a sponsor-approved workload; compare only against approved numeric thresholds.",
      "requirementIds": [
        "REQ-031"
      ],
      "classification": "Gap: target/load/duration pending GAP-003; no performance acceptance executed",
      "status": "Draft"
    },
    {
      "id": "NFR-007",
      "title": "Recovery",
      "criterion": "Restore a consistent sandbox database/object set; record actual recovery time and data cutoff against approved RPO/RTO.",
      "requirementIds": [
        "REQ-031"
      ],
      "classification": "Gap: quantitative RPO/RTO pending GAP-004",
      "status": "Draft"
    },
    {
      "id": "NFR-008",
      "title": "Observability",
      "criterion": "Every prescribed business decision and terminal job/run outcome is reconcilable by project, actor or service identity, operation, reference and time.",
      "requirementIds": [
        "REQ-007",
        "REQ-018",
        "REQ-020",
        "REQ-021",
        "REQ-032"
      ],
      "classification": "Derived proposed criterion",
      "status": "Draft"
    }
  ],
  "gaps": [
    {
      "id": "GAP-001",
      "title": "Business authority and scope approval",
      "owner": "Product owner",
      "severity": "Blocking",
      "detail": "These are synthetic proposed acceptance obligations. Supply project-owned BRD/SRS references and approve the adopted scope before any real project artifact is Approved.",
      "status": "Open"
    },
    {
      "id": "GAP-002",
      "title": "Target build, routes and credentials",
      "owner": "Test lead",
      "severity": "Blocking",
      "detail": "Record the actual frontend/backend URLs, build revisions, authorized route map, environment, memberships and secret-store references. Sample IDs and placeholder URLs are not runnable targets.",
      "status": "Open"
    },
    {
      "id": "GAP-003",
      "title": "Performance and capacity",
      "owner": "Product owner / operations",
      "severity": "Blocking for performance sign-off",
      "detail": "Choose workload, data volume, concurrency, latency percentiles, measurement duration and resource limits. No production performance target is claimed here.",
      "status": "Open"
    },
    {
      "id": "GAP-004",
      "title": "Availability and recovery objectives",
      "owner": "Operations / sponsor",
      "severity": "Blocking for operations sign-off",
      "detail": "Approve RPO/RTO, maintenance expectations, backup frequency and restore responsibility, then measure a real sandbox restore.",
      "status": "Open"
    },
    {
      "id": "GAP-005",
      "title": "Retention and deletion rules",
      "owner": "Data owner",
      "severity": "Blocking for privacy sign-off",
      "detail": "Define per-entity retention, evidence expiry, export retention, deletion/restore behavior and applicable data obligations. This pack invents no legal policy.",
      "status": "Open"
    },
    {
      "id": "GAP-006",
      "title": "Accessibility acceptance standard",
      "owner": "Product owner / accessibility lead",
      "severity": "Blocking for accessibility sign-off",
      "detail": "Confirm formal conformance level, assistive technologies, supported browsers and devices. Keyboard and narrow-screen cases are concrete checks, not a certification.",
      "status": "Open"
    },
    {
      "id": "GAP-007",
      "title": "Execution safety and external services",
      "owner": "Test lead / environment owner",
      "severity": "Blocking",
      "detail": "Approve safe target/data/action scope, forbidden actions, concurrency, cleanup, email sink, outbound fixture policy and permitted AI spend. This pack requires local fixtures by default.",
      "status": "Open"
    },
    {
      "id": "GAP-008",
      "title": "Reviewer separation and capabilities",
      "owner": "Product owner / security owner",
      "severity": "Blocking",
      "detail": "Confirm the current permission/decision policy including requirements:manage, reviewer assignment and any single-manager exception. Reviewer is a responsibility, not a membership role.",
      "status": "Open"
    },
    {
      "id": "GAP-009",
      "title": "Execution evidence and release decision",
      "owner": "Release owner",
      "severity": "Blocking",
      "detail": "There are no observed runs, defects, fixes or release decisions in this pack. Obtain real signed/attributable receipts and review every critical criterion before sign-off.",
      "status": "Open"
    },
    {
      "id": "GAP-010",
      "title": "Adoption into runtime import schema",
      "owner": "Business analyst / test lead",
      "severity": "Blocking for import",
      "detail": "JSON and CSV are reference interchange formats, not a promised direct API payload. Use typed source intake in a disposable approved project, inspect its normalization diff and map IDs before using generated runtime records.",
      "status": "Open"
    }
  ],
  "coverage": {
    "businessRequirements": 32,
    "requirements": 32,
    "stories": 32,
    "acceptanceCriteria": 96,
    "designedCases": 96,
    "designedCriteria": 96,
    "approvedCases": 0,
    "executedCases": 0,
    "passedCases": 0,
    "observedDefects": 0,
    "evidenceFiles": 0,
    "designLinkCoveragePercent": 100,
    "approvalCoveragePercent": 0,
    "executionCoveragePercent": 0,
    "passingCoveragePercent": 0,
    "scope": "Only the authored synthetic functional criteria in this pack; not completeness of deployed PentaScope and not quantitative NFR coverage",
    "status": "Draft; not release-ready"
  },
  "executionManifest": {
    "id": "MANIFEST-TEMPLATE-001",
    "status": "Draft",
    "projectId": null,
    "adoptedSampleProjectId": "SAMPLE-PENTASCOPE-MASTER",
    "frontendUrl": null,
    "backendUrl": null,
    "targetBaseUrl": null,
    "frontendBuild": null,
    "backendBuild": null,
    "targetBuild": null,
    "environment": null,
    "browserAndVersion": null,
    "locale": null,
    "timezone": "UTC for evidence; record UI zone separately",
    "executor": null,
    "reviewer": null,
    "approvedScope": null,
    "approvedCaseVersions": [],
    "secretStoreRefs": [],
    "safeModePolicy": null,
    "forbiddenActions": [],
    "dataNamespace": null,
    "fixtureVersions": [],
    "concurrencyLimit": null,
    "cleanupOwner": null,
    "rollbackPlan": null,
    "evidenceLocation": null,
    "startAt": null,
    "endAt": null
  }
}
