{
  "caseVersion": "2026.08.31-practice-3",
  "caseTitle": "BlueMesa checkout release",
  "disclosure": "This is a fictional, sanitized software-quality case. All systems, users, transactions, and records are fabricated; testing remains authorized and bounded and provides no security, legal, accessibility, or defect-free guarantee.",
  "caseBrief": "BlueMesa is a fictional business-to-business storefront preparing release 4.8 of its checkout. The approved requirement says authenticated buyers may purchase approved catalog items up to their account credit limit, apply one active contract discount, choose an allowed shipping method, and receive an accessible confirmation. The release candidate is build 4.8.17 in staging. Six browsers and two mobile devices are in scope, but the test plan lists only the latest desktop Chrome. A sample account has a $10,000 credit limit and an existing $9,600 open balance. The cart contains a $700 item, a 10 percent contract discount, $55 shipping, and an 8.25 percent tax rule. The product owner expects the order to be blocked, while the developer says discounts should be considered before the credit check; the requirement does not state calculation order. In preliminary testing, the keyboard focus disappears after the shipping modal closes, the error summary is not announced by the screen reader, and refreshing after payment timeout sometimes creates a second pending order. Logs show the same idempotency key on both requests, but the payment sandbox returns different response identifiers. The tax service was upgraded after the last regression baseline. A defect titled checkout broken includes no build, data, steps, expected result, actual result, or evidence. Marketing already announced Friday availability, and the release manager proposes accepting all medium defects. Learners must define risk and acceptance, control environments, write reproducible tests, explore edge cases within authority, classify defects, and make an evidence-bounded release recommendation. They must not conduct unapproved security testing or claim exhaustive coverage.",
  "facts": [
    {
      "id": "F01",
      "confidence": "confirmed",
      "record": "The release candidate is build 4.8.17 in staging."
    },
    {
      "id": "F02",
      "confidence": "confirmed",
      "record": "Six browsers and two mobile devices are in scope, while the plan covers one desktop browser."
    },
    {
      "id": "F03",
      "confidence": "confirmed",
      "record": "The sample account has a $10,000 limit and a $9,600 open balance."
    },
    {
      "id": "F04",
      "confidence": "confirmed",
      "record": "The cart includes a $700 item, ten-percent discount, $55 shipping, and 8.25-percent tax rule."
    },
    {
      "id": "F05",
      "confidence": "conflicting",
      "record": "Product and development owners disagree about the credit-check calculation order."
    },
    {
      "id": "F06",
      "confidence": "unknown",
      "record": "The approved requirement does not define the calculation order."
    },
    {
      "id": "F07",
      "confidence": "confirmed",
      "record": "Keyboard focus disappears after the shipping modal closes."
    },
    {
      "id": "F08",
      "confidence": "confirmed",
      "record": "The error summary is not announced by the screen reader."
    },
    {
      "id": "F09",
      "confidence": "confirmed",
      "record": "Refreshing after payment timeout can create a second pending order."
    },
    {
      "id": "F10",
      "confidence": "conflicting",
      "record": "Duplicate requests share an idempotency key but receive different sandbox response identifiers."
    },
    {
      "id": "F11",
      "confidence": "confirmed",
      "record": "The tax service changed after the prior regression baseline."
    },
    {
      "id": "F12",
      "confidence": "confirmed",
      "record": "The existing checkout-broken defect lacks reproducibility and expected-result evidence."
    }
  ],
  "challenges": [
    {
      "module": 1,
      "title": "Define acceptance and risk",
      "prompt": "Translate the requirement and known uncertainty into testable criteria and release risks.",
      "deliverable": "An acceptance-criteria table and quality-risk register.",
      "evidenceCriteria": [
        "Identifies the missing calculation-order decision as a requirement gap",
        "Ranks payment duplication, credit enforcement, tax, and accessibility risks",
        "Names the authorized owner for expected-behavior decisions",
        "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them"
      ],
      "taskMode": "bounded-case-starter",
      "providedInputs": [
        {
          "id": "M01-I01",
          "kind": "case-fact",
          "sourceFactIds": [
            "F03"
          ],
          "confidence": "confirmed",
          "record": "The sample account has a $10,000 limit and a $9,600 open balance."
        },
        {
          "id": "M01-I02",
          "kind": "case-fact",
          "sourceFactIds": [
            "F04"
          ],
          "confidence": "confirmed",
          "record": "The cart includes a $700 item, ten-percent discount, $55 shipping, and 8.25-percent tax rule."
        },
        {
          "id": "M01-I03",
          "kind": "case-fact",
          "sourceFactIds": [
            "F05"
          ],
          "confidence": "conflicting",
          "record": "Product and development owners disagree about the credit-check calculation order."
        },
        {
          "id": "M01-I04",
          "kind": "case-fact",
          "sourceFactIds": [
            "F06"
          ],
          "confidence": "unknown",
          "record": "The approved requirement does not define the calculation order."
        },
        {
          "id": "M01-I05",
          "kind": "case-fact",
          "sourceFactIds": [
            "F07"
          ],
          "confidence": "confirmed",
          "record": "Keyboard focus disappears after the shipping modal closes."
        },
        {
          "id": "M01-I06",
          "kind": "case-fact",
          "sourceFactIds": [
            "F08"
          ],
          "confidence": "confirmed",
          "record": "The error summary is not announced by the screen reader."
        },
        {
          "id": "M01-I07",
          "kind": "case-fact",
          "sourceFactIds": [
            "F09"
          ],
          "confidence": "confirmed",
          "record": "Refreshing after payment timeout can create a second pending order."
        },
        {
          "id": "M01-B01",
          "kind": "case-brief",
          "sourceFactIds": [],
          "sourceRecordIds": [
            "CB01"
          ],
          "confidence": "mixed",
          "record": "Use CB01, the full versioned case brief printed once at the start of this packet, as a citable narrative source for details not normalized into F01–F12. Preserve its uncertainty language and do not treat narrative detail as approval, complete operational records, or professional judgment."
        },
        {
          "id": "M01-S01",
          "kind": "assignment-scope",
          "sourceFactIds": [
            "F03",
            "F04",
            "F05",
            "F06",
            "F07",
            "F08",
            "F09"
          ],
          "confidence": "instruction",
          "record": "Build a starter version of “An acceptance-criteria table and quality-risk register.” from the listed case facts. Treat requested structures, controls, questions, calculations, and templates as learner-designed proposals. Where an operational record or result is absent, add a gap entry naming the missing evidence and authorized owner instead of fabricating it."
        }
      ],
      "completionBoundary": "Complete a bounded starter and gap analysis using only CB01, F03, F04, F05, F06, F07, F08, F09, and the assignment-scope record below. Populate supported fields, label every unavailable field “not supplied,” and cite the input ID for each material statement. You may design a proposed template, control, question, or decision rule, but must label it as a learner proposal rather than observed case evidence. Do not contact people, access live systems, run tests, sign records, claim approval, or invent names, dates, quotations, transactions, results, or source documents.",
      "starterSchema": {
        "id": "M01-W02",
        "title": "Define acceptance and risk guided artifact-build sheet",
        "columns": [
          "Component ID",
          "Requested artifact component",
          "Evidence criterion to test",
          "Supplied input IDs",
          "Supported entry",
          "Not-supplied gap or learner proposal",
          "Authorized owner or reviewer",
          "Status"
        ],
        "rows": [
          {
            "id": "M01-A01",
            "component": "Acceptance-criteria table",
            "criterion": "Identifies the missing calculation-order decision as a requirement gap | Names the authorized owner for expected-behavior decisions | Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them",
            "suppliedInputIds": [
              "M01-I01",
              "M01-I03",
              "M01-I04",
              "M01-I06",
              "M01-I02",
              "M01-I05",
              "M01-I07"
            ]
          },
          {
            "id": "M01-A02",
            "component": "Quality-risk register",
            "criterion": "Ranks payment duplication, credit enforcement, tax, and accessibility risks",
            "suppliedInputIds": [
              "M01-I02",
              "M01-I05",
              "M01-I07"
            ]
          }
        ]
      },
      "workbookPlan": {
        "id": "M01-WP01",
        "version": "2026.09.01-workbook-plan-2",
        "contextInputIds": [
          "M01-B01",
          "M01-S01"
        ],
        "criterionCatalog": [
          {
            "id": "M01-EC01",
            "text": "Identifies the missing calculation-order decision as a requirement gap"
          },
          {
            "id": "M01-EC02",
            "text": "Ranks payment duplication, credit enforcement, tax, and accessibility risks"
          },
          {
            "id": "M01-EC03",
            "text": "Names the authorized owner for expected-behavior decisions"
          },
          {
            "id": "M01-EC04",
            "text": "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them"
          }
        ],
        "artifacts": [
          {
            "id": "M01-A01",
            "title": "Acceptance-criteria table",
            "type": "matrix",
            "purpose": "Produce a bounded, reviewable acceptance-criteria table from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Criterion ID",
              "Given state",
              "Action",
              "Expected observable result",
              "Formula or rounding rule",
              "Environment",
              "Source IDs",
              "Requirement status",
              "Owner",
              "Test status"
            ],
            "rowPlan": {
              "count": 6,
              "prefix": "01A01R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M01:A01",
            "criterionIds": [
              "M01-EC01",
              "M01-EC03",
              "M01-EC04"
            ],
            "inputIds": [
              "M01-I01",
              "M01-I03",
              "M01-I04",
              "M01-I06",
              "M01-I02",
              "M01-I05",
              "M01-I07"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M01-I01, M01-I03, M01-I04, M01-I06).",
              "Every mapped rubric criterion (M01-EC01, M01-EC03, M01-EC04) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          },
          {
            "id": "M01-A02",
            "title": "Quality-risk register",
            "type": "register",
            "purpose": "Produce a bounded, reviewable quality-risk register from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Entry ID",
              "Issue or event",
              "Evidence and source ID",
              "Risk or impact",
              "Owner",
              "Bounded next step",
              "Review point",
              "Status"
            ],
            "rowPlan": {
              "count": 2,
              "prefix": "01A02R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M01:A02",
            "criterionIds": [
              "M01-EC02"
            ],
            "inputIds": [
              "M01-I02",
              "M01-I05",
              "M01-I07"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M01-I02, M01-I05, M01-I07).",
              "Every mapped rubric criterion (M01-EC02) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          }
        ],
        "quantityContracts": [
          {
            "artifactId": "M01-A01",
            "rowCount": 6,
            "rowPrefix": "01A01R"
          },
          {
            "artifactId": "M01-A02",
            "rowCount": 2,
            "rowPrefix": "01A02R"
          }
        ],
        "workedStarter": {
          "artifactId": "M01-A01",
          "criterionId": "M01-EC01",
          "inputId": "M01-I01",
          "supportedValue": "The sample account has a $10,000 limit and a $9,600 open balance.",
          "application": "Place the supplied condition in the appropriate comparison row and leave every unsupplied requirement visibly open. Cite M01-I01 (F03) in the row.",
          "boundary": "This is one evidence-backed starter entry, not a completed acceptance-criteria table or an operational result."
        },
        "knownGap": {
          "artifactId": "M01-A01",
          "criterionId": "M01-EC01",
          "missingEvidence": "The packet does not supply the complete live records, approvals, or execution results needed to finish the acceptance-criteria table.",
          "whyItMatters": "Without that evidence, the learner cannot truthfully satisfy M01-EC01 or represent this artifact as complete.",
          "ownerRole": "Product owner, QA lead, or release authority",
          "boundedNextStep": "Record the missing evidence in M01-A01, name the authorized reviewer, and leave the outcome pending; do not obtain or simulate the live record in this exercise.",
          "status": "Open — not supplied"
        },
        "decisionPrompt": {
          "inputId": "M01-I07",
          "prompt": "What bounded decision can the Product owner, QA lead, or release authority make from M01-I07, and what must remain pending until the missing evidence or approval is supplied?"
        },
        "instructionalGuide": {
          "version": "2026.09.01-academy-workbook-instruction-bank-1",
          "principalArtifactId": "M01-A01",
          "prerequisiteCheck": [
            "Confirm F03-F09; record that the approved credit-check order, expected duplicate-request behavior, complete accessibility acceptance standard, and release decision are not supplied.",
            "STOP. If calculation order, duplicate-request behavior, accessibility acceptance, or the release decision is missing or conflicts across F03–F09, route the criterion to authorized product, payments/finance, engineering, accessibility, and QA owners; do not claim acceptance approval, test execution, pass/fail, or release."
          ],
          "operatingSteps": [
            "Capture account, cart, tax, requirement-conflict, accessibility, and duplicate-order facts with source IDs.",
            "Separate supplied observations from proposed acceptance rules.",
            "Write each criterion as observable given/when/then behavior with a single pass condition.",
            "Show formula operands and rounding points, but keep the expected credit decision pending because calculation order is undefined.",
            "Add keyboard-focus, screen-reader-summary, and timeout-refresh criteria.",
            "Assign product, engineering, accessibility, payments, and QA reviewers to unresolved decisions.",
            "Final-QC for traceability, ambiguity, negative paths, environment assumptions, and no invented pass result."
          ],
          "fieldGuidance": {
            "Criterion ID": "Assign a stable training criterion ID linked to one supplied requirement, observation, or decision gap.",
            "Given state": "State only packet-supplied preconditions and values.",
            "Action": "Describe one bounded user/system action to be tested; do not claim execution.",
            "Expected observable result": "State the observable pass condition or explicitly record a decision gap when the requirement is unresolved.",
            "Formula or rounding rule": "Show supplied operands and the approved rule; use Not supplied when order or rounding is undefined.",
            "Environment": "Record a supplied environment or Not supplied; do not invent browser, device, or build evidence.",
            "Source IDs": "Cite exact module input and fact IDs supporting the criterion.",
            "Requirement status": "Use Confirmed, Conflicting, Not supplied, or Proposed — review pending.",
            "Owner": "Name the authorized product, engineering, accessibility, payments, or QA role.",
            "Test status": "Use Not run, Blocked, Draft, or another evidence-backed state; never invent a pass."
          },
          "completedExampleRow": {
            "Criterion ID": "AC-CREDIT-01",
            "Given state": "$10,000 limit; $9,600 open balance; cart has a $700 item, ten-percent discount, $55 shipping, and an 8.25-percent tax rule.",
            "Action": "Learner-proposed check of the credit decision using an approved calculation sequence.",
            "Expected observable result": "Decision gap — expected approval/decline result cannot be fixed until the calculation order is approved.",
            "Formula or rounding rule": "Operands are supplied; calculation order and rounding points are not supplied because product/development disagree and the requirement is undefined.",
            "Environment": "Not supplied",
            "Source IDs": "M01-I01 (F03); M01-I02 (F04); M01-I03 (F05); M01-I04 (F06)",
            "Requirement status": "Conflicting / not supplied",
            "Owner": "Product owner with engineering and QA review",
            "Test status": "Blocked — requirement decision pending"
          },
          "completedKnownGapRow": {
            "Criterion ID": "AC-FOCUS-02",
            "Given state": "Keyboard focus disappears after the shipping modal closes.",
            "Action": "Close the shipping modal using a keyboard in an approved test environment.",
            "Expected observable result": "Approved focus-return target and observable focus state are not supplied.",
            "Formula or rounding rule": "Not applicable",
            "Environment": "Browser, OS/device, viewport, input method, and build evidence not supplied.",
            "Source IDs": "M01-I05 (F07)",
            "Requirement status": "Observed defect; acceptance target incomplete",
            "Owner": "Accessibility reviewer and frontend engineering owner",
            "Test status": "Not run — environment and expected target pending"
          },
          "supportingArtifacts": [
            {
              "artifactId": "M01-A02",
              "artifactTitle": "Quality-risk register",
              "criterionIds": [
                "M01-EC02"
              ],
              "exampleType": "completed-supporting-artifact-row",
              "rationale": "The canonical M01-A02 route maps M01-EC02. This single risk-register row ranks all four named risk families from the supplied observations and labels the priority order as a learner proposal pending authorized review.",
              "finalColumns": [
                "Entry ID",
                "Issue or event",
                "Evidence and source ID",
                "Risk or impact",
                "Owner",
                "Bounded next step",
                "Review point",
                "Status"
              ],
              "row": {
                "Entry ID": "QRISK-01",
                "Issue or event": "Learner-proposed ranking: Priority 1 payment/order duplication; Priority 2 credit-enforcement and tax-calculation uncertainty; Priority 3 keyboard and screen-reader accessibility failure.",
                "Evidence and source ID": "M01-I07 (F09); M01-I01 (F03), M01-I02 (F04), M01-I03 (F05), and M01-I04 (F06); M01-I05 (F07) and M01-I06 (F08)",
                "Risk or impact": "A refresh can create a second pending order; undefined calculation order can produce an unsupported credit or tax decision; missing focus and error announcement can block keyboard and screen-reader users. Relative likelihood, severity, and owner acceptance are not supplied.",
                "Owner": "Product, payments, tax/finance, accessibility, engineering, and QA owners",
                "Bounded next step": "Have authorized owners confirm severity and order, resolve the calculation oracle, and approve safe evidence-based tests; do not process a real payment in this exercise.",
                "Review point": "Before release approval and before any live payment test",
                "Status": "Draft ranking — owner review and test evidence pending"
              },
              "status": "normalized"
            }
          ],
          "decisionRule": {
            "stop": "Stop pass/fail or release claims when the requirement, formula, environment, or expected state is disputed or absent.",
            "go": "Proceed to test design when each criterion has cited inputs, observable behavior, and an authorized owner for gaps.",
            "escalate": "Escalate money calculations, duplicate-order behavior, and accessibility acceptance to product, finance/payments, engineering, and accessibility owners."
          },
          "completionTest": [
            "Money, accessibility, duplicate, and recovery criteria are observable and traceable.",
            "Disputed calculation order remains an explicit blocker.",
            "No test result or product approval is fabricated."
          ],
          "criterionSatisfiability": [
            {
              "criterionId": "M01-EC01",
              "criterionOrdinal": 1,
              "criterionText": "Identifies the missing calculation-order decision as a requirement gap",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            },
            {
              "criterionId": "M01-EC02",
              "criterionOrdinal": 2,
              "criterionText": "Ranks payment duplication, credit enforcement, tax, and accessibility risks",
              "currentSatisfiable": false,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The current canonical principal-artifact route or schema cannot visibly satisfy this criterion without the listed fact-routing and/or artifact-spec repair; the learner must record the gap rather than claim completion."
            },
            {
              "criterionId": "M01-EC03",
              "criterionOrdinal": 3,
              "criterionText": "Names the authorized owner for expected-behavior decisions",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            },
            {
              "criterionId": "M01-EC04",
              "criterionOrdinal": 4,
              "criterionText": "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            }
          ]
        }
      }
    },
    {
      "module": 2,
      "title": "Control test conditions",
      "prompt": "Design an environment and data matrix that represents the approved scope and dependencies.",
      "deliverable": "A test-plan matrix with builds, devices, browsers, roles, data, services, and reset method.",
      "evidenceCriteria": [
        "Covers all scoped browser and mobile classes using risk-based rationale",
        "Versions the payment and tax dependencies",
        "Provides repeatable data setup and cleanup without real payment data",
        "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them"
      ],
      "taskMode": "bounded-case-starter",
      "providedInputs": [
        {
          "id": "M02-I01",
          "kind": "case-fact",
          "sourceFactIds": [
            "F01"
          ],
          "confidence": "confirmed",
          "record": "The release candidate is build 4.8.17 in staging."
        },
        {
          "id": "M02-I02",
          "kind": "case-fact",
          "sourceFactIds": [
            "F02"
          ],
          "confidence": "confirmed",
          "record": "Six browsers and two mobile devices are in scope, while the plan covers one desktop browser."
        },
        {
          "id": "M02-I03",
          "kind": "case-fact",
          "sourceFactIds": [
            "F11"
          ],
          "confidence": "confirmed",
          "record": "The tax service changed after the prior regression baseline."
        },
        {
          "id": "M02-B01",
          "kind": "case-brief",
          "sourceFactIds": [],
          "sourceRecordIds": [
            "CB01"
          ],
          "confidence": "mixed",
          "record": "Use CB01, the full versioned case brief printed once at the start of this packet, as a citable narrative source for details not normalized into F01–F12. Preserve its uncertainty language and do not treat narrative detail as approval, complete operational records, or professional judgment."
        },
        {
          "id": "M02-S01",
          "kind": "assignment-scope",
          "sourceFactIds": [
            "F01",
            "F02",
            "F11"
          ],
          "confidence": "instruction",
          "record": "Build a starter version of “A test-plan matrix with builds, devices, browsers, roles, data, services, and reset method.” from the listed case facts. Treat requested structures, controls, questions, calculations, and templates as learner-designed proposals. Where an operational record or result is absent, add a gap entry naming the missing evidence and authorized owner instead of fabricating it."
        }
      ],
      "completionBoundary": "Complete a bounded starter and gap analysis using only CB01, F01, F02, F11, and the assignment-scope record below. Populate supported fields, label every unavailable field “not supplied,” and cite the input ID for each material statement. You may design a proposed template, control, question, or decision rule, but must label it as a learner proposal rather than observed case evidence. Do not contact people, access live systems, run tests, sign records, claim approval, or invent names, dates, quotations, transactions, results, or source documents.",
      "starterSchema": {
        "id": "M02-W02",
        "title": "Control test conditions guided artifact-build sheet",
        "columns": [
          "Component ID",
          "Requested artifact component",
          "Evidence criterion to test",
          "Supplied input IDs",
          "Supported entry",
          "Not-supplied gap or learner proposal",
          "Authorized owner or reviewer",
          "Status"
        ],
        "rows": [
          {
            "id": "M02-A01",
            "component": "Cross-environment test-plan matrix",
            "criterion": "Covers all scoped browser and mobile classes using risk-based rationale | Versions the payment and tax dependencies | Provides repeatable data setup and cleanup without real payment data | Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them",
            "suppliedInputIds": [
              "M02-I01",
              "M02-I02",
              "M02-I03"
            ]
          }
        ]
      },
      "workbookPlan": {
        "id": "M02-WP01",
        "version": "2026.09.01-workbook-plan-2",
        "contextInputIds": [
          "M02-B01",
          "M02-S01"
        ],
        "criterionCatalog": [
          {
            "id": "M02-EC01",
            "text": "Covers all scoped browser and mobile classes using risk-based rationale"
          },
          {
            "id": "M02-EC02",
            "text": "Versions the payment and tax dependencies"
          },
          {
            "id": "M02-EC03",
            "text": "Provides repeatable data setup and cleanup without real payment data"
          },
          {
            "id": "M02-EC04",
            "text": "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them"
          }
        ],
        "artifacts": [
          {
            "id": "M02-A01",
            "title": "Cross-environment test-plan matrix",
            "type": "matrix",
            "purpose": "Produce a bounded, reviewable cross-environment test-plan matrix from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Environment ID",
              "Build",
              "Browser/version",
              "OS/device",
              "Viewport/input",
              "Assistive technology",
              "Locale/network",
              "Dependency version",
              "Risk coverage",
              "Evidence location",
              "Owner",
              "Status"
            ],
            "rowPlan": {
              "count": 8,
              "prefix": "02A01R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M02:A01",
            "criterionIds": [
              "M02-EC01",
              "M02-EC02",
              "M02-EC03",
              "M02-EC04"
            ],
            "inputIds": [
              "M02-I01",
              "M02-I02",
              "M02-I03"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M02-I01, M02-I02, M02-I03).",
              "Every mapped rubric criterion (M02-EC01, M02-EC02, M02-EC03, M02-EC04) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          }
        ],
        "quantityContracts": [
          {
            "artifactId": "M02-A01",
            "rowCount": 8,
            "rowPrefix": "02A01R"
          }
        ],
        "workedStarter": {
          "artifactId": "M02-A01",
          "criterionId": "M02-EC01",
          "inputId": "M02-I01",
          "supportedValue": "The release candidate is build 4.8.17 in staging.",
          "application": "Place the supplied condition in the appropriate comparison row and leave every unsupplied requirement visibly open. Cite M02-I01 (F01) in the row.",
          "boundary": "This is one evidence-backed starter entry, not a completed cross-environment test-plan matrix or an operational result."
        },
        "knownGap": {
          "artifactId": "M02-A01",
          "criterionId": "M02-EC01",
          "missingEvidence": "The packet does not supply the complete live records, approvals, or execution results needed to finish the cross-environment test-plan matrix.",
          "whyItMatters": "Without that evidence, the learner cannot truthfully satisfy M02-EC01 or represent this artifact as complete.",
          "ownerRole": "Product owner, QA lead, or release authority",
          "boundedNextStep": "Record the missing evidence in M02-A01, name the authorized reviewer, and leave the outcome pending; do not obtain or simulate the live record in this exercise.",
          "status": "Open — not supplied"
        },
        "decisionPrompt": {
          "inputId": "M02-I03",
          "prompt": "What bounded decision can the Product owner, QA lead, or release authority make from M02-I03, and what must remain pending until the missing evidence or approval is supplied?"
        },
        "instructionalGuide": {
          "version": "2026.09.01-academy-workbook-instruction-bank-1",
          "principalArtifactId": "M02-A01",
          "prerequisiteCheck": [
            "Confirm F01, F02, and F11; record that browser/device versions, operating systems, assistive-technology combinations, test accounts, data reset method, and approved coverage priority are not supplied.",
            "STOP. If environment versions, assistive-technology coverage, test accounts, data reset, or coverage priority is missing or conflicts with F01/F02/F11, route the matrix to authorized QA, product, and accessibility owners; do not claim coverage approval or execute testing."
          ],
          "operatingSteps": [
            "Freeze build 4.8.17 as the version under design review.",
            "Enumerate all six browser and two mobile-device slots instead of collapsing them into one desktop row.",
            "Add operating system, viewport/input method, assistive technology, locale, and network-state fields as not supplied where absent.",
            "Map checkout risks to each proposed environment using a risk-based rationale.",
            "Include the changed tax service as a dependency and baseline-reset trigger.",
            "Define setup, data reset, evidence capture, and blocked-environment handling.",
            "Final-QC coverage counts, version traceability, dependency state, owners, and pending execution."
          ],
          "fieldGuidance": {
            "Environment ID": "Assign one stable row ID per planned environment slot.",
            "Build": "Record the supplied build identifier and source ID or Not supplied.",
            "Browser/version": "Record the approved browser/version or Not supplied; do not invent scope values.",
            "OS/device": "Record the approved OS/device combination or Not supplied.",
            "Viewport/input": "Record viewport and keyboard/touch/pointer coverage or Not supplied.",
            "Assistive technology": "Record the approved assistive-technology/version pairing or Not supplied.",
            "Locale/network": "Record locale and network condition or Not supplied.",
            "Dependency version": "Record material dependency/baseline versions, including tax-service status, or Not supplied.",
            "Risk coverage": "Map the row to a cited scope/risk and state what remains uncovered.",
            "Evidence location": "Name the planned evidence location; leave it pending because tests were not run.",
            "Owner": "Name the authorized QA or specialist-review role.",
            "Status": "Use Planned — approval pending, Blocked, or Not supplied; never claim execution."
          },
          "completedExampleRow": {
            "Environment ID": "ENV-01",
            "Build": "4.8.17 staging — M02-I01 (F01)",
            "Browser/version": "Not supplied",
            "OS/device": "Desktop combination not supplied",
            "Viewport/input": "Keyboard coverage proposed; viewport not supplied",
            "Assistive technology": "Not supplied",
            "Locale/network": "Not supplied",
            "Dependency version": "Tax service changed after the prior baseline — M02-I03 (F11)",
            "Risk coverage": "One of at least eight planned slots; exact six-browser/two-mobile combinations remain unspecified — M02-I02 (F02).",
            "Evidence location": "Pending — test execution is outside this exercise",
            "Owner": "QA lead",
            "Status": "Draft — environment details not supplied"
          },
          "completedKnownGapRow": {
            "Environment ID": "ENV-02",
            "Build": "4.8.17 staging — M02-I01 (F01)",
            "Browser/version": "Not supplied",
            "OS/device": "Mobile device model and OS not supplied",
            "Viewport/input": "Touch and responsive viewport details not supplied",
            "Assistive technology": "Not supplied",
            "Locale/network": "Not supplied",
            "Dependency version": "Current tax-service version not supplied",
            "Risk coverage": "Mobile scope exists, but the approved pairing and expected results are not supplied — M02-I02 (F02).",
            "Evidence location": "Not supplied",
            "Owner": "QA lead and accessibility reviewer",
            "Status": "Blocked — environment definition pending"
          },
          "supportingArtifacts": [],
          "decisionRule": {
            "stop": "Stop execution or coverage claims when build, environment, dependency, test data, or evidence-capture state is unknown.",
            "go": "Proceed when every in-scope slot has a reproducible setup and risk rationale.",
            "escalate": "Escalate inaccessible environments, dependency drift, and scope reductions to QA/product/accessibility owners."
          },
          "completionTest": [
            "Six browser and two mobile-device slots are explicitly represented.",
            "Build and tax-service versions are controlled.",
            "No environment is represented as executed."
          ],
          "criterionSatisfiability": [
            {
              "criterionId": "M02-EC01",
              "criterionOrdinal": 1,
              "criterionText": "Covers all scoped browser and mobile classes using risk-based rationale",
              "currentSatisfiable": false,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The current canonical principal-artifact route or schema cannot visibly satisfy this criterion without the listed fact-routing and/or artifact-spec repair; the learner must record the gap rather than claim completion."
            },
            {
              "criterionId": "M02-EC02",
              "criterionOrdinal": 2,
              "criterionText": "Versions the payment and tax dependencies",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            },
            {
              "criterionId": "M02-EC03",
              "criterionOrdinal": 3,
              "criterionText": "Provides repeatable data setup and cleanup without real payment data",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            },
            {
              "criterionId": "M02-EC04",
              "criterionOrdinal": 4,
              "criterionText": "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            }
          ]
        }
      }
    },
    {
      "module": 3,
      "title": "Write reproducible evidence",
      "prompt": "Create tests for credit calculation, payment timeout, and accessible error handling.",
      "deliverable": "Six test-case designs, two evidence starters for the observed accessibility and duplicate-order issues, and result-pending fields for every unexecuted case.",
      "evidenceCriteria": [
        "Each design states source, precondition, data, steps, expected result, environment, and evidence to capture without inventing actual results or timestamps",
        "Uses supplied calculation inputs and known request-identifier facts only where available",
        "Uses accessible names and defines observable assistive-technology outcomes while leaving execution pending"
      ],
      "taskMode": "bounded-case-starter",
      "providedInputs": [
        {
          "id": "M03-I01",
          "kind": "case-fact",
          "sourceFactIds": [
            "F03"
          ],
          "confidence": "confirmed",
          "record": "The sample account has a $10,000 limit and a $9,600 open balance."
        },
        {
          "id": "M03-I02",
          "kind": "case-fact",
          "sourceFactIds": [
            "F04"
          ],
          "confidence": "confirmed",
          "record": "The cart includes a $700 item, ten-percent discount, $55 shipping, and 8.25-percent tax rule."
        },
        {
          "id": "M03-I03",
          "kind": "case-fact",
          "sourceFactIds": [
            "F05"
          ],
          "confidence": "conflicting",
          "record": "Product and development owners disagree about the credit-check calculation order."
        },
        {
          "id": "M03-I04",
          "kind": "case-fact",
          "sourceFactIds": [
            "F06"
          ],
          "confidence": "unknown",
          "record": "The approved requirement does not define the calculation order."
        },
        {
          "id": "M03-I05",
          "kind": "case-fact",
          "sourceFactIds": [
            "F07"
          ],
          "confidence": "confirmed",
          "record": "Keyboard focus disappears after the shipping modal closes."
        },
        {
          "id": "M03-I06",
          "kind": "case-fact",
          "sourceFactIds": [
            "F08"
          ],
          "confidence": "confirmed",
          "record": "The error summary is not announced by the screen reader."
        },
        {
          "id": "M03-I07",
          "kind": "case-fact",
          "sourceFactIds": [
            "F09"
          ],
          "confidence": "confirmed",
          "record": "Refreshing after payment timeout can create a second pending order."
        },
        {
          "id": "M03-I08",
          "kind": "case-fact",
          "sourceFactIds": [
            "F10"
          ],
          "confidence": "conflicting",
          "record": "Duplicate requests share an idempotency key but receive different sandbox response identifiers."
        },
        {
          "id": "M03-I09",
          "kind": "case-fact",
          "sourceFactIds": [
            "F12"
          ],
          "confidence": "confirmed",
          "record": "The existing checkout-broken defect lacks reproducibility and expected-result evidence."
        },
        {
          "id": "M03-B01",
          "kind": "case-brief",
          "sourceFactIds": [],
          "sourceRecordIds": [
            "CB01"
          ],
          "confidence": "mixed",
          "record": "Use CB01, the full versioned case brief printed once at the start of this packet, as a citable narrative source for details not normalized into F01–F12. Preserve its uncertainty language and do not treat narrative detail as approval, complete operational records, or professional judgment."
        },
        {
          "id": "M03-S01",
          "kind": "assignment-scope",
          "sourceFactIds": [
            "F03",
            "F04",
            "F05",
            "F06",
            "F07",
            "F08",
            "F09",
            "F10",
            "F12"
          ],
          "confidence": "instruction",
          "record": "Build a starter version of “Six test-case designs, two evidence starters for the observed accessibility and duplicate-order issues, and result-pending fields for every unexecuted case.” from the listed case facts. Treat requested structures, controls, questions, calculations, and templates as learner-designed proposals. Where an operational record or result is absent, add a gap entry naming the missing evidence and authorized owner instead of fabricating it."
        }
      ],
      "completionBoundary": "Complete a bounded starter and gap analysis using only CB01, F03, F04, F05, F06, F07, F08, F09, F10, F12, and the assignment-scope record below. Populate supported fields, label every unavailable field “not supplied,” and cite the input ID for each material statement. You may design a proposed template, control, question, or decision rule, but must label it as a learner proposal rather than observed case evidence. Do not contact people, access live systems, run tests, sign records, claim approval, or invent names, dates, quotations, transactions, results, or source documents.",
      "starterSchema": {
        "id": "M03-W02",
        "title": "Write reproducible evidence guided artifact-build sheet",
        "columns": [
          "Component ID",
          "Requested artifact component",
          "Evidence criterion to test",
          "Supplied input IDs",
          "Supported entry",
          "Not-supplied gap or learner proposal",
          "Authorized owner or reviewer",
          "Status"
        ],
        "rows": [
          {
            "id": "M03-A01",
            "component": "Six test-case designs",
            "criterion": "Each design states source, precondition, data, steps, expected result, environment, and evidence to capture without inventing actual results or timestamps",
            "suppliedInputIds": [
              "M03-I01",
              "M03-I05",
              "M03-I06",
              "M03-I09",
              "M03-I02",
              "M03-I03",
              "M03-I04",
              "M03-I07",
              "M03-I08"
            ]
          },
          {
            "id": "M03-A02",
            "component": "Accessibility evidence starter",
            "criterion": "Uses supplied calculation inputs and known request-identifier facts only where available",
            "suppliedInputIds": [
              "M03-I02",
              "M03-I04"
            ]
          },
          {
            "id": "M03-A03",
            "component": "Duplicate-order evidence starter",
            "criterion": "Uses accessible names and defines observable assistive-technology outcomes while leaving execution pending",
            "suppliedInputIds": [
              "M03-I03",
              "M03-I07",
              "M03-I08"
            ]
          }
        ]
      },
      "workbookPlan": {
        "id": "M03-WP01",
        "version": "2026.09.01-workbook-plan-2",
        "contextInputIds": [
          "M03-B01",
          "M03-S01"
        ],
        "criterionCatalog": [
          {
            "id": "M03-EC01",
            "text": "Each design states source, precondition, data, steps, expected result, environment, and evidence to capture without inventing actual results or timestamps"
          },
          {
            "id": "M03-EC02",
            "text": "Uses supplied calculation inputs and known request-identifier facts only where available"
          },
          {
            "id": "M03-EC03",
            "text": "Uses accessible names and defines observable assistive-technology outcomes while leaving execution pending"
          }
        ],
        "artifacts": [
          {
            "id": "M03-A01",
            "title": "Six test-case designs",
            "type": "worksheet",
            "purpose": "Produce a bounded, reviewable six test-case designs from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Test ID",
              "Requirement/risk",
              "Preconditions",
              "Test data",
              "Ordered steps",
              "Expected result or decision gap",
              "Environment",
              "Evidence to capture",
              "Reviewer",
              "Result",
              "Status"
            ],
            "rowPlan": {
              "count": 6,
              "prefix": "TEST",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M03:A01",
            "criterionIds": [
              "M03-EC01"
            ],
            "inputIds": [
              "M03-I01",
              "M03-I05",
              "M03-I06",
              "M03-I09",
              "M03-I02",
              "M03-I03",
              "M03-I04",
              "M03-I07",
              "M03-I08"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M03-I01, M03-I05, M03-I06, M03-I09).",
              "Every mapped rubric criterion (M03-EC01) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          },
          {
            "id": "M03-A02",
            "title": "Accessibility evidence starter",
            "type": "record",
            "purpose": "Produce a bounded, reviewable accessibility evidence starter from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Record ID",
              "Supported facts",
              "Source input ID",
              "Decision or action pending",
              "Owner or reviewer",
              "Evidence needed",
              "Status"
            ],
            "rowPlan": {
              "count": 1,
              "prefix": "03A02R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M03:A02",
            "criterionIds": [
              "M03-EC02"
            ],
            "inputIds": [
              "M03-I02",
              "M03-I04"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M03-I02, M03-I04).",
              "Every mapped rubric criterion (M03-EC02) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          },
          {
            "id": "M03-A03",
            "title": "Duplicate-order evidence starter",
            "type": "record",
            "purpose": "Produce a bounded, reviewable duplicate-order evidence starter from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Record ID",
              "Supported facts",
              "Source input ID",
              "Decision or action pending",
              "Owner or reviewer",
              "Evidence needed",
              "Status"
            ],
            "rowPlan": {
              "count": 1,
              "prefix": "03A03R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M03:A03",
            "criterionIds": [
              "M03-EC03"
            ],
            "inputIds": [
              "M03-I03",
              "M03-I07",
              "M03-I08"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M03-I03, M03-I07, M03-I08).",
              "Every mapped rubric criterion (M03-EC03) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          }
        ],
        "quantityContracts": [
          {
            "artifactId": "M03-A01",
            "rowCount": 6,
            "rowPrefix": "TEST"
          }
        ],
        "workedStarter": {
          "artifactId": "M03-A01",
          "criterionId": "M03-EC01",
          "inputId": "M03-I01",
          "supportedValue": "The sample account has a $10,000 limit and a $9,600 open balance.",
          "application": "Use the supplied value or condition as the first traceable worksheet entry; do not calculate a result unless every required operand is supplied. Cite M03-I01 (F03) in the row.",
          "boundary": "This is one evidence-backed starter entry, not a completed six test-case designs or an operational result."
        },
        "knownGap": {
          "artifactId": "M03-A01",
          "criterionId": "M03-EC01",
          "missingEvidence": "The packet does not supply the complete live records, approvals, or execution results needed to finish the six test-case designs.",
          "whyItMatters": "Without that evidence, the learner cannot truthfully satisfy M03-EC01 or represent this artifact as complete.",
          "ownerRole": "Product owner, QA lead, or release authority",
          "boundedNextStep": "Record the missing evidence in M03-A01, name the authorized reviewer, and leave the outcome pending; do not obtain or simulate the live record in this exercise.",
          "status": "Open — not supplied"
        },
        "decisionPrompt": {
          "inputId": "M03-I07",
          "prompt": "What bounded decision can the Product owner, QA lead, or release authority make from M03-I07, and what must remain pending until the missing evidence or approval is supplied?"
        },
        "instructionalGuide": {
          "version": "2026.09.01-academy-workbook-instruction-bank-1",
          "principalArtifactId": "M03-A01",
          "prerequisiteCheck": [
            "Confirm F03-F10 and F12; record that approved formula order, precise environments, complete steps, expected duplicate behavior, timestamps, screenshots/logs, and execution results are absent.",
            "STOP. If formula order, environment, reproducible steps, expected duplicate behavior, or evidence method is missing or conflicts with F03–F10/F12, route the design to authorized product, payments, accessibility, and QA reviewers; do not claim test approval, execution, pass/fail, or a defect conclusion."
          ],
          "operatingSteps": [
            "Create exactly six stable test-case IDs spanning money boundary, calculation ambiguity, keyboard focus, screen-reader summary, timeout refresh, and idempotency.",
            "Write preconditions and test data directly from supplied facts without inventing credentials or records.",
            "Express each action sequence as a learner-proposed reproducible method.",
            "State the expected result only where approved evidence exists; otherwise name the pending product decision.",
            "Specify environment and evidence capture, marking absent versions, timestamps, logs, and screenshots not supplied.",
            "Route requirement, accessibility, and payments questions to qualified reviewers before execution.",
            "Final-QC IDs, sources, preconditions, steps, expected results, negative paths, and pending status."
          ],
          "fieldGuidance": {
            "Test ID": "Use one stable ID for each of the six designed cases.",
            "Requirement/risk": "Name the cited requirement, observation, or unresolved oracle addressed by the case.",
            "Preconditions": "State only supplied setup conditions; mark unavailable data Not supplied.",
            "Test data": "Use the exact supplied values or a clearly labeled learner-proposed safe value.",
            "Ordered steps": "Write reproducible numbered actions without claiming they were executed.",
            "Expected result or decision gap": "State the approved observable result or the precise missing decision that blocks it.",
            "Environment": "Name the supplied environment or Not supplied.",
            "Evidence to capture": "List the planned screenshots, logs, network records, accessibility tree, or identifiers; evidence remains pending.",
            "Reviewer": "Name the qualified product, engineering, accessibility, payments, or QA role.",
            "Result": "Use Not run or Blocked unless the packet supplies a result.",
            "Status": "Use Draft, Ready after approval, or Blocked."
          },
          "completedExampleRow": {
            "Test ID": "TEST-01",
            "Requirement/risk": "Credit-decision arithmetic is disputed — M03-I03 (F05); approved order is absent — M03-I04 (F06).",
            "Preconditions": "Sample account has $10,000 limit and $9,600 open balance — M03-I01 (F03).",
            "Test data": "$700 item, ten-percent discount, $55 shipping, 8.25-percent tax rule — M03-I02 (F04).",
            "Ordered steps": "1) Load approved safe account; 2) enter supplied cart values; 3) submit only after the calculation rule is approved; 4) capture operands and decision trace.",
            "Expected result or decision gap": "Blocked — calculation order, rounding points, and expected credit decision are not supplied.",
            "Environment": "Not supplied",
            "Evidence to capture": "Calculation trace, displayed totals, decision message, request/response IDs, and timestamp.",
            "Reviewer": "Product owner, engineering owner, and QA lead",
            "Result": "Not run",
            "Status": "Draft — oracle decision pending"
          },
          "completedKnownGapRow": {
            "Test ID": "TEST-02",
            "Requirement/risk": "Refresh after payment timeout can create a second pending order — M03-I07 (F09); duplicate requests share a key but sandbox IDs differ — M03-I08 (F10).",
            "Preconditions": "Approved safe payment sandbox account and timeout setup are not supplied.",
            "Test data": "Payment payload, idempotency-key generation rule, and expected record state are not supplied.",
            "Ordered steps": "Learner-proposed sequence: submit, induce approved timeout, refresh once, and compare order/request records.",
            "Expected result or decision gap": "Expected duplicate-request and order-state behavior requires authorized product/payments decision.",
            "Environment": "Not supplied",
            "Evidence to capture": "Request IDs, key, response IDs, order IDs/statuses, timestamps, and logs.",
            "Reviewer": "Payments engineer, product owner, and QA lead",
            "Result": "Not run",
            "Status": "Blocked — safe setup and oracle not supplied"
          },
          "supportingArtifacts": [
            {
              "artifactId": "M03-A02",
              "artifactTitle": "Accessibility evidence starter",
              "criterionIds": [
                "M03-EC02"
              ],
              "exampleType": "completed-supporting-artifact-row",
              "rationale": "The canonical workbook maps M03-EC02 to M03-A02. The row uses only the supplied numeric operands and known idempotency/response-identifier facts, preserves the undefined calculation order as a gap, and claims no test result.",
              "finalColumns": [
                "Record ID",
                "Supported facts",
                "Source input ID",
                "Decision or action pending",
                "Owner or reviewer",
                "Evidence needed",
                "Status"
              ],
              "row": {
                "Record ID": "CALC-TRACE-01",
                "Supported facts": "The sample account has a $10,000 limit and $9,600 open balance; the cart has a $700 item, 10-percent discount, $55 shipping, and an 8.25-percent tax rule. The calculation order is disputed and undefined. Duplicate requests share an idempotency key while sandbox response identifiers differ.",
                "Source input ID": "M03-I01 (F03), M03-I02 (F04), M03-I03 (F05), M03-I04 (F06), and M03-I08 (F10)",
                "Decision or action pending": "Approve the calculation sequence, rounding points, expected credit decision, and request-identifier correlation rule before executing or grading the case.",
                "Owner or reviewer": "Product owner, finance/payments owner, engineering owner, and QA reviewer",
                "Evidence needed": "Approved requirement; safe environment; calculation trace; request, response, idempotency, order, and timestamp identifiers; and authorized expected-result oracle.",
                "Status": "Design only — calculation oracle and execution evidence not supplied"
              },
              "status": "normalized"
            }
          ],
          "decisionRule": {
            "stop": "Stop execution or defect conclusions when expected behavior, environment, safe test data, or evidence method is missing.",
            "go": "Proceed when all six designs are reproducible and unresolved expected outcomes are explicitly assigned.",
            "escalate": "Escalate formula and duplicate-state ambiguity to product/payments; accessibility expectations to the accessibility owner."
          },
          "completionTest": [
            "Exactly six distinct risk-based designs are present.",
            "Each case has traceable data, method, expected-state boundary, reviewer, and evidence plan.",
            "No execution result is implied."
          ],
          "criterionSatisfiability": [
            {
              "criterionId": "M03-EC01",
              "criterionOrdinal": 1,
              "criterionText": "Each design states source, precondition, data, steps, expected result, environment, and evidence to capture without inventing actual results or timestamps",
              "currentSatisfiable": false,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The current canonical principal-artifact route or schema cannot visibly satisfy this criterion without the listed fact-routing and/or artifact-spec repair; the learner must record the gap rather than claim completion."
            },
            {
              "criterionId": "M03-EC02",
              "criterionOrdinal": 2,
              "criterionText": "Uses supplied calculation inputs and known request-identifier facts only where available",
              "currentSatisfiable": false,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The current canonical principal-artifact route or schema cannot visibly satisfy this criterion without the listed fact-routing and/or artifact-spec repair; the learner must record the gap rather than claim completion."
            },
            {
              "criterionId": "M03-EC03",
              "criterionOrdinal": 3,
              "criterionText": "Uses accessible names and defines observable assistive-technology outcomes while leaving execution pending",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            }
          ]
        }
      }
    },
    {
      "module": 4,
      "title": "Explore bounded edge cases",
      "prompt": "Charter an authorized exploration of retries, boundaries, navigation, interruption, and recovery.",
      "deliverable": "A sixty-minute exploratory charter, pre-session coverage map, note template, and new-risk hypothesis list; no exploratory session or finding is represented as completed.",
      "evidenceCriteria": [
        "Defines mission, techniques, time, prohibited actions, and evidence",
        "Exercises boundary values and state transitions rather than random clicking",
        "Stops and escalates any security or production-impact question outside authorization",
        "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them"
      ],
      "taskMode": "bounded-case-starter",
      "providedInputs": [
        {
          "id": "M04-I01",
          "kind": "case-fact",
          "sourceFactIds": [
            "F03"
          ],
          "confidence": "confirmed",
          "record": "The sample account has a $10,000 limit and a $9,600 open balance."
        },
        {
          "id": "M04-I02",
          "kind": "case-fact",
          "sourceFactIds": [
            "F04"
          ],
          "confidence": "confirmed",
          "record": "The cart includes a $700 item, ten-percent discount, $55 shipping, and 8.25-percent tax rule."
        },
        {
          "id": "M04-I03",
          "kind": "case-fact",
          "sourceFactIds": [
            "F05"
          ],
          "confidence": "conflicting",
          "record": "Product and development owners disagree about the credit-check calculation order."
        },
        {
          "id": "M04-I04",
          "kind": "case-fact",
          "sourceFactIds": [
            "F06"
          ],
          "confidence": "unknown",
          "record": "The approved requirement does not define the calculation order."
        },
        {
          "id": "M04-I05",
          "kind": "case-fact",
          "sourceFactIds": [
            "F07"
          ],
          "confidence": "confirmed",
          "record": "Keyboard focus disappears after the shipping modal closes."
        },
        {
          "id": "M04-I06",
          "kind": "case-fact",
          "sourceFactIds": [
            "F08"
          ],
          "confidence": "confirmed",
          "record": "The error summary is not announced by the screen reader."
        },
        {
          "id": "M04-I07",
          "kind": "case-fact",
          "sourceFactIds": [
            "F09"
          ],
          "confidence": "confirmed",
          "record": "Refreshing after payment timeout can create a second pending order."
        },
        {
          "id": "M04-I08",
          "kind": "case-fact",
          "sourceFactIds": [
            "F10"
          ],
          "confidence": "conflicting",
          "record": "Duplicate requests share an idempotency key but receive different sandbox response identifiers."
        },
        {
          "id": "M04-B01",
          "kind": "case-brief",
          "sourceFactIds": [],
          "sourceRecordIds": [
            "CB01"
          ],
          "confidence": "mixed",
          "record": "Use CB01, the full versioned case brief printed once at the start of this packet, as a citable narrative source for details not normalized into F01–F12. Preserve its uncertainty language and do not treat narrative detail as approval, complete operational records, or professional judgment."
        },
        {
          "id": "M04-S01",
          "kind": "assignment-scope",
          "sourceFactIds": [
            "F03",
            "F04",
            "F05",
            "F06",
            "F07",
            "F08",
            "F09",
            "F10"
          ],
          "confidence": "instruction",
          "record": "Build a starter version of “A sixty-minute exploratory charter, pre-session coverage map, note template, and new-risk hypothesis list; no exploratory session or finding is represented as completed.” from the listed case facts. Treat requested structures, controls, questions, calculations, and templates as learner-designed proposals. Where an operational record or result is absent, add a gap entry naming the missing evidence and authorized owner instead of fabricating it."
        }
      ],
      "completionBoundary": "Complete a bounded starter and gap analysis using only CB01, F03, F04, F05, F06, F07, F08, F09, F10, and the assignment-scope record below. Populate supported fields, label every unavailable field “not supplied,” and cite the input ID for each material statement. You may design a proposed template, control, question, or decision rule, but must label it as a learner proposal rather than observed case evidence. Do not contact people, access live systems, run tests, sign records, claim approval, or invent names, dates, quotations, transactions, results, or source documents.",
      "starterSchema": {
        "id": "M04-W02",
        "title": "Explore bounded edge cases guided artifact-build sheet",
        "columns": [
          "Component ID",
          "Requested artifact component",
          "Evidence criterion to test",
          "Supplied input IDs",
          "Supported entry",
          "Not-supplied gap or learner proposal",
          "Authorized owner or reviewer",
          "Status"
        ],
        "rows": [
          {
            "id": "M04-A01",
            "component": "Exploratory test charter",
            "criterion": "Defines mission, techniques, time, prohibited actions, and evidence",
            "suppliedInputIds": [
              "M04-I01",
              "M04-I05",
              "M04-I06",
              "M04-I07",
              "M04-I08",
              "M04-I02",
              "M04-I03",
              "M04-I04"
            ]
          },
          {
            "id": "M04-A02",
            "component": "Pre-session coverage map",
            "criterion": "Exercises boundary values and state transitions rather than random clicking",
            "suppliedInputIds": [
              "M04-I02"
            ]
          },
          {
            "id": "M04-A03",
            "component": "Exploratory note template",
            "criterion": "Stops and escalates any security or production-impact question outside authorization",
            "suppliedInputIds": [
              "M04-I03"
            ]
          },
          {
            "id": "M04-A04",
            "component": "New-risk hypothesis list",
            "criterion": "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them",
            "suppliedInputIds": [
              "M04-I04"
            ]
          }
        ]
      },
      "workbookPlan": {
        "id": "M04-WP01",
        "version": "2026.09.01-workbook-plan-2",
        "contextInputIds": [
          "M04-B01",
          "M04-S01"
        ],
        "criterionCatalog": [
          {
            "id": "M04-EC01",
            "text": "Defines mission, techniques, time, prohibited actions, and evidence"
          },
          {
            "id": "M04-EC02",
            "text": "Exercises boundary values and state transitions rather than random clicking"
          },
          {
            "id": "M04-EC03",
            "text": "Stops and escalates any security or production-impact question outside authorization"
          },
          {
            "id": "M04-EC04",
            "text": "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them"
          }
        ],
        "artifacts": [
          {
            "id": "M04-A01",
            "title": "Exploratory test charter",
            "type": "brief",
            "purpose": "Produce a bounded, reviewable exploratory test charter from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Section",
              "Supported statement",
              "Source input ID",
              "Assumption or gap",
              "Decision requested",
              "Reviewer",
              "Status"
            ],
            "rowPlan": {
              "count": 12,
              "prefix": "04A01R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M04:A01",
            "criterionIds": [
              "M04-EC01"
            ],
            "inputIds": [
              "M04-I01",
              "M04-I05",
              "M04-I06",
              "M04-I07",
              "M04-I08",
              "M04-I02",
              "M04-I03",
              "M04-I04"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M04-I01, M04-I05, M04-I06, M04-I07, M04-I08).",
              "Every mapped rubric criterion (M04-EC01) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          },
          {
            "id": "M04-A02",
            "title": "Pre-session coverage map",
            "type": "map",
            "purpose": "Produce a bounded, reviewable pre-session coverage map from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Element",
              "From or trigger",
              "To or outcome",
              "Evidence and source ID",
              "Owner",
              "Open question",
              "Status"
            ],
            "rowPlan": {
              "count": 2,
              "prefix": "04A02R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M04:A02",
            "criterionIds": [
              "M04-EC02"
            ],
            "inputIds": [
              "M04-I02"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M04-I02).",
              "Every mapped rubric criterion (M04-EC02) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          },
          {
            "id": "M04-A03",
            "title": "Exploratory note template",
            "type": "template",
            "purpose": "Produce a bounded, reviewable exploratory note template from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Section or field",
              "Purpose",
              "Supported entry",
              "Source input ID",
              "Gap or learner proposal",
              "Owner or reviewer",
              "Status"
            ],
            "rowPlan": {
              "count": 2,
              "prefix": "04A03R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M04:A03",
            "criterionIds": [
              "M04-EC03"
            ],
            "inputIds": [
              "M04-I03"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M04-I03).",
              "Every mapped rubric criterion (M04-EC03) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          },
          {
            "id": "M04-A04",
            "title": "New-risk hypothesis list",
            "type": "register",
            "purpose": "Produce a bounded, reviewable new-risk hypothesis list from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Entry ID",
              "Issue or event",
              "Evidence and source ID",
              "Risk or impact",
              "Owner",
              "Bounded next step",
              "Review point",
              "Status"
            ],
            "rowPlan": {
              "count": 2,
              "prefix": "04A04R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M04:A04",
            "criterionIds": [
              "M04-EC04"
            ],
            "inputIds": [
              "M04-I04"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M04-I04).",
              "Every mapped rubric criterion (M04-EC04) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          }
        ],
        "quantityContracts": [
          {
            "artifactId": "M04-A01",
            "rowCount": 12,
            "rowPrefix": "04A01R"
          },
          {
            "artifactId": "M04-A02",
            "rowCount": 2,
            "rowPrefix": "04A02R"
          },
          {
            "artifactId": "M04-A03",
            "rowCount": 2,
            "rowPrefix": "04A03R"
          },
          {
            "artifactId": "M04-A04",
            "rowCount": 2,
            "rowPrefix": "04A04R"
          }
        ],
        "workedStarter": {
          "artifactId": "M04-A01",
          "criterionId": "M04-EC01",
          "inputId": "M04-I01",
          "supportedValue": "The sample account has a $10,000 limit and a $9,600 open balance.",
          "application": "State the supplied condition with its limitation and frame the decision that an authorized reviewer must make. Cite M04-I01 (F03) in the row.",
          "boundary": "This is one evidence-backed starter entry, not a completed exploratory test charter or an operational result."
        },
        "knownGap": {
          "artifactId": "M04-A02",
          "criterionId": "M04-EC02",
          "missingEvidence": "The packet does not supply the complete live records, approvals, or execution results needed to finish the pre-session coverage map.",
          "whyItMatters": "Without that evidence, the learner cannot truthfully satisfy M04-EC02 or represent this artifact as complete.",
          "ownerRole": "Product owner, QA lead, or release authority",
          "boundedNextStep": "Record the missing evidence in M04-A02, name the authorized reviewer, and leave the outcome pending; do not obtain or simulate the live record in this exercise.",
          "status": "Open — not supplied"
        },
        "decisionPrompt": {
          "inputId": "M04-I07",
          "prompt": "What bounded decision can the Product owner, QA lead, or release authority make from M04-I07, and what must remain pending until the missing evidence or approval is supplied?"
        },
        "instructionalGuide": {
          "version": "2026.09.01-academy-workbook-instruction-bank-1",
          "principalArtifactId": "M04-A01",
          "prerequisiteCheck": [
            "Confirm F03-F10; record that session duration, tester, approved oracle, browser/device allocation, data-reset method, log access, and actual observations beyond the supplied facts are absent.",
            "STOP. If the session scope, tester, oracle, environment allocation, data reset, or log access is missing or conflicts across F03–F10, route the charter to the authorized QA, product, and accessibility reviewers; do not claim charter approval, execute exploration, or report a finding or severity."
          ],
          "operatingSteps": [
            "State one bounded mission around checkout money, accessibility, and duplicate-order risk.",
            "List supplied starting observations separately from learner-designed hypotheses.",
            "Choose tours for boundary arithmetic, modal focus, announced errors, timeout refresh, and repeated idempotency.",
            "Define what to vary and what to hold constant for each tour.",
            "Specify notes, timestamps, screenshots, accessibility output, request IDs, and state transitions to capture.",
            "Add pause and escalation rules for unsafe payment behavior, sensitive data, environment drift, and ambiguous requirements.",
            "Final-QC mission, scope, exclusions, timebox, oracle gaps, evidence plan, owner, and unexecuted status."
          ],
          "fieldGuidance": {
            "Section": "Name the brief section or decision topic this row resolves. Module use: Use the charter to explore bounded checkout risks without substituting exploration for approved requirements or reproducible evidence.",
            "Supported statement": "Write a bounded statement supported by cited packet facts. Module use: Use the charter to explore bounded checkout risks without substituting exploration for approved requirements or reproducible evidence.",
            "Source input ID": "Cite the exact Fxx or module input ID supporting the entry. Module use: Use the charter to explore bounded checkout risks without substituting exploration for approved requirements or reproducible evidence.",
            "Assumption or gap": "Separate a provisional assumption from evidence that is absent. Module use: Use the charter to explore bounded checkout risks without substituting exploration for approved requirements or reproducible evidence.",
            "Decision requested": "Frame the exact approval, clarification, or risk decision needed. Module use: Use the charter to explore bounded checkout risks without substituting exploration for approved requirements or reproducible evidence.",
            "Reviewer": "Name the qualified review role and leave approval pending. Module use: Use the charter to explore bounded checkout risks without substituting exploration for approved requirements or reproducible evidence.",
            "Status": "Use a truthful state such as draft, open—not supplied, review pending, or blocked. Module use: Use the charter to explore bounded checkout risks without substituting exploration for approved requirements or reproducible evidence."
          },
          "completedExampleRow": {
            "Section": "Mission and risk focus",
            "Supported statement": "Explore how build 4.8.17 handles money boundaries, focus/announcement, timeout refresh, and repeated idempotency using safe staging data.",
            "Source input ID": "F03, F07, F08, F09, F10",
            "Assumption or gap": "Exact timebox, environments, safe account, and approved expected results are not supplied.",
            "Decision requested": "Approve charter scope and evidence method before a session.",
            "Reviewer": "QA lead with product, payments, and accessibility reviewers",
            "Status": "Draft - session not run"
          },
          "completedKnownGapRow": {
            "Section": "Oracle and stopping conditions",
            "Supported statement": "Product/development disagree and the requirement does not define calculation order.",
            "Source input ID": "F05, F06",
            "Assumption or gap": "A pass oracle cannot be created for the credit calculation.",
            "Decision requested": "Obtain an authorized product/finance decision; explore only observable differences meanwhile.",
            "Reviewer": "Product and finance/payments owners",
            "Status": "Blocked for pass/fail conclusion"
          },
          "supportingArtifacts": [
            {
              "artifactId": "M04-A02",
              "artifactTitle": "Pre-session coverage map",
              "criterionIds": [
                "M04-EC02"
              ],
              "exampleType": "completed-supporting-artifact-row",
              "rationale": "The canonical M04-A02 route maps M04-EC02. The row specifies purposeful boundary and transition coverage instead of random clicking while leaving the session and observed results unclaimed.",
              "finalColumns": [
                "Element",
                "From or trigger",
                "To or outcome",
                "Evidence and source ID",
                "Owner",
                "Open question",
                "Status"
              ],
              "row": {
                "Element": "Boundary-value and state-transition coverage path",
                "From or trigger": "Account and cart values around the credit limit, followed by payment submission, timeout, refresh, and repeated idempotent request states.",
                "To or outcome": "Learner-proposed coverage: exercise below/equal/above decision boundaries and trace idle to submitted to timed-out to refreshed states while checking for one logical order.",
                "Evidence and source ID": "M04-I01 (F03), M04-I02 (F04), M04-I07 (F09), and M04-I08 (F10)",
                "Owner": "QA lead with product, payments, and engineering reviewers",
                "Open question": "Approved calculation order, rounding points, expected state transitions, safe account, timeout method, and test environment are not supplied.",
                "Status": "Learner-proposed coverage — exploratory session not run"
              },
              "status": "normalized"
            }
          ],
          "decisionRule": {
            "stop": "Pause for unsafe payment side effects, sensitive data, environment drift, or an absent oracle required for a conclusion.",
            "go": "Proceed only with approved safe data, bounded scope, evidence capture, and explicit unknowns.",
            "escalate": "Escalate new severe risks immediately and requirement ambiguity before assigning severity or pass/fail."
          },
          "completionTest": [
            "Mission, tours, variables, evidence, timebox gap, and stop conditions are explicit.",
            "Known observations are separated from hypotheses.",
            "No exploratory session or finding is fabricated."
          ],
          "criterionSatisfiability": [
            {
              "criterionId": "M04-EC01",
              "criterionOrdinal": 1,
              "criterionText": "Defines mission, techniques, time, prohibited actions, and evidence",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            },
            {
              "criterionId": "M04-EC02",
              "criterionOrdinal": 2,
              "criterionText": "Exercises boundary values and state transitions rather than random clicking",
              "currentSatisfiable": false,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The current canonical principal-artifact route or schema cannot visibly satisfy this criterion without the listed fact-routing and/or artifact-spec repair; the learner must record the gap rather than claim completion."
            },
            {
              "criterionId": "M04-EC03",
              "criterionOrdinal": 3,
              "criterionText": "Stops and escalates any security or production-impact question outside authorization",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            },
            {
              "criterionId": "M04-EC04",
              "criterionOrdinal": 4,
              "criterionText": "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            }
          ]
        }
      }
    },
    {
      "module": 5,
      "title": "Make defects actionable",
      "prompt": "Rewrite and classify the known failures using impact and reproducibility evidence.",
      "deliverable": "Two defect-report starters for the observed accessibility and duplicate-order issues, one incomplete-evidence remediation record for F12, and a severity-versus-priority decision proposal.",
      "evidenceCriteria": [
        "Separates supplied user-impact evidence from the proposed repair order",
        "Uses reliable reproduction only where the packet supports it and explicitly leaves F12 reproduction and expected-result evidence incomplete",
        "Links the accessibility and duplicate-order observations to affected-user and business-impact questions without inventing test results"
      ],
      "taskMode": "bounded-case-starter",
      "providedInputs": [
        {
          "id": "M05-I01",
          "kind": "case-fact",
          "sourceFactIds": [
            "F07"
          ],
          "confidence": "confirmed",
          "record": "Keyboard focus disappears after the shipping modal closes."
        },
        {
          "id": "M05-I02",
          "kind": "case-fact",
          "sourceFactIds": [
            "F08"
          ],
          "confidence": "confirmed",
          "record": "The error summary is not announced by the screen reader."
        },
        {
          "id": "M05-I03",
          "kind": "case-fact",
          "sourceFactIds": [
            "F09"
          ],
          "confidence": "confirmed",
          "record": "Refreshing after payment timeout can create a second pending order."
        },
        {
          "id": "M05-I04",
          "kind": "case-fact",
          "sourceFactIds": [
            "F10"
          ],
          "confidence": "conflicting",
          "record": "Duplicate requests share an idempotency key but receive different sandbox response identifiers."
        },
        {
          "id": "M05-I05",
          "kind": "case-fact",
          "sourceFactIds": [
            "F12"
          ],
          "confidence": "confirmed",
          "record": "The existing checkout-broken defect lacks reproducibility and expected-result evidence."
        },
        {
          "id": "M05-B01",
          "kind": "case-brief",
          "sourceFactIds": [],
          "sourceRecordIds": [
            "CB01"
          ],
          "confidence": "mixed",
          "record": "Use CB01, the full versioned case brief printed once at the start of this packet, as a citable narrative source for details not normalized into F01–F12. Preserve its uncertainty language and do not treat narrative detail as approval, complete operational records, or professional judgment."
        },
        {
          "id": "M05-S01",
          "kind": "assignment-scope",
          "sourceFactIds": [
            "F07",
            "F08",
            "F09",
            "F10",
            "F12"
          ],
          "confidence": "instruction",
          "record": "Build a starter version of “Two defect-report starters for the observed accessibility and duplicate-order issues, one incomplete-evidence remediation record for F12, and a severity-versus-priority decision proposal.” from the listed case facts. Treat requested structures, controls, questions, calculations, and templates as learner-designed proposals. Where an operational record or result is absent, add a gap entry naming the missing evidence and authorized owner instead of fabricating it."
        }
      ],
      "completionBoundary": "Complete a bounded starter and gap analysis using only CB01, F07, F08, F09, F10, F12, and the assignment-scope record below. Populate supported fields, label every unavailable field “not supplied,” and cite the input ID for each material statement. You may design a proposed template, control, question, or decision rule, but must label it as a learner proposal rather than observed case evidence. Do not contact people, access live systems, run tests, sign records, claim approval, or invent names, dates, quotations, transactions, results, or source documents.",
      "starterSchema": {
        "id": "M05-W02",
        "title": "Make defects actionable guided artifact-build sheet",
        "columns": [
          "Component ID",
          "Requested artifact component",
          "Evidence criterion to test",
          "Supplied input IDs",
          "Supported entry",
          "Not-supplied gap or learner proposal",
          "Authorized owner or reviewer",
          "Status"
        ],
        "rows": [
          {
            "id": "M05-A01",
            "component": "Accessibility defect-report starter",
            "criterion": "Links the accessibility and duplicate-order observations to affected-user and business-impact questions without inventing test results",
            "suppliedInputIds": [
              "M05-I01",
              "M05-I02"
            ]
          },
          {
            "id": "M05-A02",
            "component": "Duplicate-order defect-report starter",
            "criterion": "Separates supplied user-impact evidence from the proposed repair order | Links the accessibility and duplicate-order observations to affected-user and business-impact questions without inventing test results",
            "suppliedInputIds": [
              "M05-I03",
              "M05-I04"
            ]
          },
          {
            "id": "M05-A03",
            "component": "Incomplete-evidence remediation record",
            "criterion": "Uses reliable reproduction only where the packet supports it and explicitly leaves F12 reproduction and expected-result evidence incomplete",
            "suppliedInputIds": [
              "M05-I05"
            ]
          },
          {
            "id": "M05-A04",
            "component": "Severity-versus-priority decision",
            "criterion": "Separates supplied user-impact evidence from the proposed repair order",
            "suppliedInputIds": [
              "M05-I03"
            ]
          }
        ]
      },
      "workbookPlan": {
        "id": "M05-WP01",
        "version": "2026.09.01-workbook-plan-2",
        "contextInputIds": [
          "M05-B01",
          "M05-S01"
        ],
        "criterionCatalog": [
          {
            "id": "M05-EC01",
            "text": "Separates supplied user-impact evidence from the proposed repair order"
          },
          {
            "id": "M05-EC02",
            "text": "Uses reliable reproduction only where the packet supports it and explicitly leaves F12 reproduction and expected-result evidence incomplete"
          },
          {
            "id": "M05-EC03",
            "text": "Links the accessibility and duplicate-order observations to affected-user and business-impact questions without inventing test results"
          }
        ],
        "artifacts": [
          {
            "id": "M05-A01",
            "title": "Accessibility defect-report starter",
            "type": "record",
            "purpose": "Produce a bounded, reviewable accessibility defect-report starter from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Defect ID",
              "Build/environment",
              "Preconditions",
              "Ordered steps",
              "Expected result",
              "Actual supplied observation",
              "User impact",
              "Evidence attachments/status",
              "Severity decision",
              "Priority decision",
              "Owner",
              "Status"
            ],
            "rowPlan": {
              "count": 1,
              "prefix": "05A01R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M05:A01",
            "criterionIds": [
              "M05-EC03"
            ],
            "inputIds": [
              "M05-I01",
              "M05-I02"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M05-I01, M05-I04).",
              "Every mapped rubric criterion (M05-EC03) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          },
          {
            "id": "M05-A02",
            "title": "Duplicate-order defect-report starter",
            "type": "record",
            "purpose": "Produce a bounded, reviewable duplicate-order defect-report starter from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Record ID",
              "Supported facts",
              "Source input ID",
              "Decision or action pending",
              "Owner or reviewer",
              "Evidence needed",
              "Status"
            ],
            "rowPlan": {
              "count": 1,
              "prefix": "05A02R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M05:A02",
            "criterionIds": [
              "M05-EC01",
              "M05-EC03"
            ],
            "inputIds": [
              "M05-I03",
              "M05-I04"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M05-I02).",
              "Every mapped rubric criterion (M05-EC01, M05-EC03) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          },
          {
            "id": "M05-A03",
            "title": "Incomplete-evidence remediation record",
            "type": "record",
            "purpose": "Produce a bounded, reviewable incomplete-evidence remediation record from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Record ID",
              "Supported facts",
              "Source input ID",
              "Decision or action pending",
              "Owner or reviewer",
              "Evidence needed",
              "Status"
            ],
            "rowPlan": {
              "count": 1,
              "prefix": "05A03R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M05:A03",
            "criterionIds": [
              "M05-EC02"
            ],
            "inputIds": [
              "M05-I05"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M05-I05).",
              "Every mapped rubric criterion (M05-EC02) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          },
          {
            "id": "M05-A04",
            "title": "Severity-versus-priority decision",
            "type": "decision",
            "purpose": "Produce a bounded, reviewable severity-versus-priority decision from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Decision",
              "Evidence for",
              "Evidence against",
              "Options and tradeoffs",
              "Decision owner",
              "Required approval",
              "Status"
            ],
            "rowPlan": {
              "count": 1,
              "prefix": "05A04R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M05:A04",
            "criterionIds": [
              "M05-EC01"
            ],
            "inputIds": [
              "M05-I03"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M05-I03).",
              "Every mapped rubric criterion (M05-EC01) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          }
        ],
        "quantityContracts": [],
        "workedStarter": {
          "artifactId": "M05-A01",
          "criterionId": "M05-EC03",
          "inputId": "M05-I01",
          "supportedValue": "Keyboard focus disappears after the shipping modal closes.",
          "application": "Enter the supplied condition as the factual basis of the record and preserve the pending decision or evidence gap. Cite M05-I01 (F07) in the row.",
          "boundary": "This is one evidence-backed starter entry, not a completed accessibility defect-report starter or an operational result."
        },
        "knownGap": {
          "artifactId": "M05-A04",
          "criterionId": "M05-EC01",
          "missingEvidence": "The packet does not supply the complete live records, approvals, or execution results needed to finish the severity-versus-priority decision.",
          "whyItMatters": "Without that evidence, the learner cannot truthfully satisfy M05-EC01 or represent this artifact as complete.",
          "ownerRole": "Product owner, QA lead, or release authority",
          "boundedNextStep": "Record the missing evidence in M05-A04, name the authorized reviewer, and leave the outcome pending; do not obtain or simulate the live record in this exercise.",
          "status": "Open — not supplied"
        },
        "decisionPrompt": {
          "inputId": "M05-I03",
          "prompt": "What bounded decision can the Product owner, QA lead, or release authority make from M05-I03, and what must remain pending until the missing evidence or approval is supplied?"
        },
        "instructionalGuide": {
          "version": "2026.09.01-academy-workbook-instruction-bank-1",
          "principalArtifactId": "M05-A01",
          "prerequisiteCheck": [
            "Confirm F07 and F08; record that exact reproduction steps, environment, approved focus target, assistive-technology version, timestamps, screenshots, recordings, logs, severity, priority, and remediation decision are absent.",
            "STOP. If reproduction steps, environment, expected focus target, assistive-technology version, or supporting evidence is missing or conflicts with F07/F08, route the report to authorized accessibility, product, engineering, and QA owners; do not claim reproduction approval, execution, severity, priority, remediation, closure, or release impact."
          ],
          "operatingSteps": [
            "Create a stable defect ID and concise observed-behavior title.",
            "Record build and environment only if supplied; otherwise mark them not supplied.",
            "Separate the disappearing-focus and unannounced-error observations into reproducible expected-versus-actual statements.",
            "Draft minimal reproduction steps as a learner proposal and identify missing setup details.",
            "Name accessibility evidence to capture without fabricating attachments.",
            "Keep severity separate from priority and route both decisions to authorized roles.",
            "Final-QC source IDs, reproducibility gaps, user impact boundary, evidence request, owner, and pending status."
          ],
          "fieldGuidance": {
            "Defect ID": "Assign a stable training defect ID.",
            "Build/environment": "Record exact supplied build/environment or Not supplied.",
            "Preconditions": "State the required starting UI/account state without inventing it.",
            "Ordered steps": "Write a bounded reproducibility sequence and keep execution pending.",
            "Expected result": "State an approved observable accessibility behavior or mark it Not supplied.",
            "Actual supplied observation": "Quote or paraphrase only the packet-supplied observation with source IDs.",
            "User impact": "Describe the bounded accessibility/business impact question; do not invent affected-user counts.",
            "Evidence attachments/status": "List required captures and mark them Not supplied or Pending.",
            "Severity decision": "Leave severity pending for authorized review unless the packet supplies a decision.",
            "Priority decision": "Leave priority pending and distinguish it from severity.",
            "Owner": "Name the accessibility, engineering, product, or QA role.",
            "Status": "Use Open, Blocked, or Draft; never claim reproduction or repair."
          },
          "completedExampleRow": {
            "Defect ID": "A11Y-01",
            "Build/environment": "Not supplied",
            "Preconditions": "Shipping modal is open; exact page/account state is not supplied.",
            "Ordered steps": "Learner-proposed: navigate by keyboard, close the modal, inspect focus, then trigger the validation error and observe screen-reader announcement.",
            "Expected result": "Approved focus-return target and error-summary announcement behavior are not supplied.",
            "Actual supplied observation": "Focus disappears after modal close and the error summary is not announced — M05-I01 (F07); M05-I02 (F08).",
            "User impact": "Keyboard and screen-reader users may lose location or error context; affected-user count is not supplied.",
            "Evidence attachments/status": "Steps, browser/OS, assistive technology, recording, accessibility tree, and timestamp are pending.",
            "Severity decision": "Pending authorized accessibility review",
            "Priority decision": "Pending product/engineering triage",
            "Owner": "Accessibility reviewer and frontend engineering owner",
            "Status": "Open — reproduction evidence pending"
          },
          "completedKnownGapRow": {
            "Defect ID": "A11Y-GAP-02",
            "Build/environment": "Not supplied",
            "Preconditions": "Existing checkout-broken defect record; reproducible setup is not supplied.",
            "Ordered steps": "Not supplied",
            "Expected result": "Not supplied",
            "Actual supplied observation": "Existing defect lacks reproducibility and expected-result evidence — M05-I05 (F12).",
            "User impact": "Not supplied; must not be inferred from the defect title.",
            "Evidence attachments/status": "Safe account, environment, steps, expected target, capture files, and execution result are not supplied.",
            "Severity decision": "Blocked — evidence incomplete",
            "Priority decision": "Blocked — evidence incomplete",
            "Owner": "QA lead and accessibility reviewer",
            "Status": "Blocked — setup and oracle not supplied"
          },
          "supportingArtifacts": [],
          "decisionRule": {
            "stop": "Stop closure, severity, priority, or release claims when reproducibility, expected behavior, or accessibility evidence is absent.",
            "go": "Proceed to qualified review when the report separates observed facts, proposed steps, expected-state gap, and requested evidence.",
            "escalate": "Escalate keyboard and screen-reader barriers to accessibility and product owners; release impact remains their decision."
          },
          "completionTest": [
            "Observed behavior, proposed reproduction, expected-state gap, impact boundary, and evidence request are distinct.",
            "F07 and F08 are both cited.",
            "No reproduction, severity, remediation, or closure is fabricated."
          ],
          "criterionSatisfiability": [
            {
              "criterionId": "M05-EC01",
              "criterionOrdinal": 1,
              "criterionText": "Separates supplied user-impact evidence from the proposed repair order",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            },
            {
              "criterionId": "M05-EC02",
              "criterionOrdinal": 2,
              "criterionText": "Uses reliable reproduction only where the packet supports it and explicitly leaves F12 reproduction and expected-result evidence incomplete",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            },
            {
              "criterionId": "M05-EC03",
              "criterionOrdinal": 3,
              "criterionText": "Links the accessibility and duplicate-order observations to affected-user and business-impact questions without inventing test results",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            }
          ]
        }
      }
    },
    {
      "module": 6,
      "title": "Recommend release truthfully",
      "prompt": "Design focused regression and a conditional release-evidence process; do not run tests or record owner approval.",
      "deliverable": "A regression manifest proposal, traceability matrix starter, accessibility-summary template, and conditional release-evidence brief with results and approval pending.",
      "evidenceCriteria": [
        "Covers the changed dependency and critical checkout paths as planned scope",
        "Discloses untested scope, unresolved barriers, and proposed exception fields without claiming acceptance",
        "Avoids bug-free, fully accessible, secure, exhaustive, passed, or approved claims",
        "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them"
      ],
      "taskMode": "bounded-case-starter",
      "providedInputs": [
        {
          "id": "M06-I01",
          "kind": "case-fact",
          "sourceFactIds": [
            "F01"
          ],
          "confidence": "confirmed",
          "record": "The release candidate is build 4.8.17 in staging."
        },
        {
          "id": "M06-I02",
          "kind": "case-fact",
          "sourceFactIds": [
            "F02"
          ],
          "confidence": "confirmed",
          "record": "Six browsers and two mobile devices are in scope, while the plan covers one desktop browser."
        },
        {
          "id": "M06-I03",
          "kind": "case-fact",
          "sourceFactIds": [
            "F07"
          ],
          "confidence": "confirmed",
          "record": "Keyboard focus disappears after the shipping modal closes."
        },
        {
          "id": "M06-I04",
          "kind": "case-fact",
          "sourceFactIds": [
            "F08"
          ],
          "confidence": "confirmed",
          "record": "The error summary is not announced by the screen reader."
        },
        {
          "id": "M06-I05",
          "kind": "case-fact",
          "sourceFactIds": [
            "F09"
          ],
          "confidence": "confirmed",
          "record": "Refreshing after payment timeout can create a second pending order."
        },
        {
          "id": "M06-I06",
          "kind": "case-fact",
          "sourceFactIds": [
            "F11"
          ],
          "confidence": "confirmed",
          "record": "The tax service changed after the prior regression baseline."
        },
        {
          "id": "M06-I07",
          "kind": "case-fact",
          "sourceFactIds": [
            "F12"
          ],
          "confidence": "confirmed",
          "record": "The existing checkout-broken defect lacks reproducibility and expected-result evidence."
        },
        {
          "id": "M06-B01",
          "kind": "case-brief",
          "sourceFactIds": [],
          "sourceRecordIds": [
            "CB01"
          ],
          "confidence": "mixed",
          "record": "Use CB01, the full versioned case brief printed once at the start of this packet, as a citable narrative source for details not normalized into F01–F12. Preserve its uncertainty language and do not treat narrative detail as approval, complete operational records, or professional judgment."
        },
        {
          "id": "M06-S01",
          "kind": "assignment-scope",
          "sourceFactIds": [
            "F01",
            "F02",
            "F07",
            "F08",
            "F09",
            "F11",
            "F12"
          ],
          "confidence": "instruction",
          "record": "Build a starter version of “A regression manifest proposal, traceability matrix starter, accessibility-summary template, and conditional release-evidence brief with results and approval pending.” from the listed case facts. Treat requested structures, controls, questions, calculations, and templates as learner-designed proposals. Where an operational record or result is absent, add a gap entry naming the missing evidence and authorized owner instead of fabricating it."
        }
      ],
      "completionBoundary": "Complete a bounded starter and gap analysis using only CB01, F01, F02, F07, F08, F09, F11, F12, and the assignment-scope record below. Populate supported fields, label every unavailable field “not supplied,” and cite the input ID for each material statement. You may design a proposed template, control, question, or decision rule, but must label it as a learner proposal rather than observed case evidence. Do not contact people, access live systems, run tests, sign records, claim approval, or invent names, dates, quotations, transactions, results, or source documents.",
      "starterSchema": {
        "id": "M06-W02",
        "title": "Recommend release truthfully guided artifact-build sheet",
        "columns": [
          "Component ID",
          "Requested artifact component",
          "Evidence criterion to test",
          "Supplied input IDs",
          "Supported entry",
          "Not-supplied gap or learner proposal",
          "Authorized owner or reviewer",
          "Status"
        ],
        "rows": [
          {
            "id": "M06-A01",
            "component": "Regression manifest",
            "criterion": "Covers the changed dependency and critical checkout paths as planned scope",
            "suppliedInputIds": [
              "M06-I02",
              "M06-I05",
              "M06-I06",
              "M06-I07",
              "M06-I01",
              "M06-I03",
              "M06-I04"
            ]
          },
          {
            "id": "M06-A02",
            "component": "Requirement traceability matrix",
            "criterion": "Discloses untested scope, unresolved barriers, and proposed exception fields without claiming acceptance",
            "suppliedInputIds": [
              "M06-I02"
            ]
          },
          {
            "id": "M06-A03",
            "component": "Accessibility summary",
            "criterion": "Avoids bug-free, fully accessible, secure, exhaustive, passed, or approved claims",
            "suppliedInputIds": [
              "M06-I03",
              "M06-I04"
            ]
          },
          {
            "id": "M06-A04",
            "component": "Conditional release-evidence brief",
            "criterion": "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them",
            "suppliedInputIds": [
              "M06-I01"
            ]
          }
        ]
      },
      "workbookPlan": {
        "id": "M06-WP01",
        "version": "2026.09.01-workbook-plan-2",
        "contextInputIds": [
          "M06-B01",
          "M06-S01"
        ],
        "criterionCatalog": [
          {
            "id": "M06-EC01",
            "text": "Covers the changed dependency and critical checkout paths as planned scope"
          },
          {
            "id": "M06-EC02",
            "text": "Discloses untested scope, unresolved barriers, and proposed exception fields without claiming acceptance"
          },
          {
            "id": "M06-EC03",
            "text": "Avoids bug-free, fully accessible, secure, exhaustive, passed, or approved claims"
          },
          {
            "id": "M06-EC04",
            "text": "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them"
          }
        ],
        "artifacts": [
          {
            "id": "M06-A01",
            "title": "Regression manifest",
            "type": "index",
            "purpose": "Produce a bounded, reviewable regression manifest from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Item",
              "Source or location",
              "Version or date",
              "Owner",
              "Access or review status",
              "Gap"
            ],
            "rowPlan": {
              "count": 22,
              "prefix": "06A01R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M06:A01",
            "criterionIds": [
              "M06-EC01"
            ],
            "inputIds": [
              "M06-I02",
              "M06-I05",
              "M06-I06",
              "M06-I07",
              "M06-I01",
              "M06-I03",
              "M06-I04"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M06-I02, M06-I05, M06-I06, M06-I07).",
              "Every mapped rubric criterion (M06-EC01) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          },
          {
            "id": "M06-A02",
            "title": "Requirement traceability matrix",
            "type": "matrix",
            "purpose": "Produce a bounded, reviewable requirement traceability matrix from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Item ID",
              "Supported evidence",
              "Source input ID",
              "Criterion or required state",
              "Gap or learner proposal",
              "Owner or reviewer",
              "Status"
            ],
            "rowPlan": {
              "count": 2,
              "prefix": "06A02R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M06:A02",
            "criterionIds": [
              "M06-EC02"
            ],
            "inputIds": [
              "M06-I02"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M06-I02).",
              "Every mapped rubric criterion (M06-EC02) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          },
          {
            "id": "M06-A03",
            "title": "Accessibility summary",
            "type": "brief",
            "purpose": "Produce a bounded, reviewable accessibility summary from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Section",
              "Supported statement",
              "Source input ID",
              "Assumption or gap",
              "Decision requested",
              "Reviewer",
              "Status"
            ],
            "rowPlan": {
              "count": 1,
              "prefix": "06A03R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M06:A03",
            "criterionIds": [
              "M06-EC03"
            ],
            "inputIds": [
              "M06-I03",
              "M06-I04"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M06-I03, M06-I04).",
              "Every mapped rubric criterion (M06-EC03) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          },
          {
            "id": "M06-A04",
            "title": "Conditional release-evidence brief",
            "type": "decision",
            "purpose": "Produce a bounded, reviewable conditional release-evidence brief from cited packet evidence while exposing unsupported fields and required approvals.",
            "instructions": "Use only the scoped case-fact inputs below. Cite an input ID for each supported statement; label proposed structures “learner proposal” and unavailable evidence “not supplied.”",
            "columns": [
              "Decision",
              "Evidence for",
              "Evidence against",
              "Options and tradeoffs",
              "Decision owner",
              "Required approval",
              "Status"
            ],
            "rowPlan": {
              "count": 1,
              "prefix": "06A04R",
              "blankState": "Not supplied / learner to complete"
            },
            "reviewedMappingId": "software-qa:M06:A04",
            "criterionIds": [
              "M06-EC04"
            ],
            "inputIds": [
              "M06-I01"
            ],
            "completionChecks": [
              "Every supported entry identifies and cites at least one applicable scoped case-fact input (M06-I01).",
              "Every mapped rubric criterion (M06-EC04) is addressed in the artifact or a named evidence gap.",
              "Unsupported fields remain “not supplied” or are explicitly labeled as a learner proposal.",
              "The Product owner, QA lead, or release authority is named for decisions or review; no approval or execution is implied."
            ]
          }
        ],
        "quantityContracts": [
          {
            "artifactId": "M06-A01",
            "rowCount": 22,
            "rowPrefix": "06A01R"
          },
          {
            "artifactId": "M06-A02",
            "rowCount": 2,
            "rowPrefix": "06A02R"
          }
        ],
        "workedStarter": {
          "artifactId": "M06-A01",
          "criterionId": "M06-EC01",
          "inputId": "M06-I02",
          "supportedValue": "Six browsers and two mobile devices are in scope, while the plan covers one desktop browser.",
          "application": "Create a traceable index entry for the supplied source and mark location, version, access, and review details pending when absent. Cite M06-I02 (F02) in the row.",
          "boundary": "This is one evidence-backed starter entry, not a completed regression manifest or an operational result."
        },
        "knownGap": {
          "artifactId": "M06-A01",
          "criterionId": "M06-EC01",
          "missingEvidence": "The packet does not supply the complete live records, approvals, or execution results needed to finish the regression manifest.",
          "whyItMatters": "Without that evidence, the learner cannot truthfully satisfy M06-EC01 or represent this artifact as complete.",
          "ownerRole": "Product owner, QA lead, or release authority",
          "boundedNextStep": "Record the missing evidence in M06-A01, name the authorized reviewer, and leave the outcome pending; do not obtain or simulate the live record in this exercise.",
          "status": "Open — not supplied"
        },
        "decisionPrompt": {
          "inputId": "M06-I05",
          "prompt": "What bounded decision can the Product owner, QA lead, or release authority make from M06-I05, and what must remain pending until the missing evidence or approval is supplied?"
        },
        "instructionalGuide": {
          "version": "2026.09.01-academy-workbook-instruction-bank-1",
          "principalArtifactId": "M06-A01",
          "prerequisiteCheck": [
            "Confirm F01, F02, F07-F09, F11, and F12; record that controlled test assets, requirement versions, environment details, accessibility evidence, tax baseline, defect links, execution records, and release authorization are absent.",
            "STOP. If controlled assets, versions, environments, accessibility evidence, tax baseline, defect links, or execution records are missing or conflict with F01/F02/F07–F09/F11/F12, route the manifest to authorized release, product, accessibility, payments, and dependency owners; do not claim regression execution, release recommendation approval, or authorization."
          ],
          "operatingSteps": [
            "Index build 4.8.17 and every controlled requirement, test, environment, data, dependency, defect, and evidence item needed for regression.",
            "Record source/location and version/date only when supplied; otherwise write not supplied.",
            "Link the six-browser/two-device scope and accessibility checks to the relevant test assets.",
            "Treat the tax-service change as a baseline invalidation requiring an approved new reference.",
            "Include duplicate-order and incomplete-defect remediation artifacts without claiming closure.",
            "Assign access/review owners and identify stale, missing, or blocked items.",
            "Final-QC item uniqueness, version integrity, traceability, access status, gaps, and no release claim."
          ],
          "fieldGuidance": {
            "Item": "Use only a supplied value or a clearly labeled learner proposal; expose missing evidence. Module use: Use the manifest as the controlled index behind a conditional release recommendation, not as evidence that regression passed.",
            "Source or location": "Name the controlled source or mark its location not supplied. Module use: Use the manifest as the controlled index behind a conditional release recommendation, not as evidence that regression passed.",
            "Version or date": "Use supplied version/date only; otherwise mark not supplied. Module use: Use the manifest as the controlled index behind a conditional release recommendation, not as evidence that regression passed.",
            "Owner": "Name the authorized operating or specialist role. Module use: Use the manifest as the controlled index behind a conditional release recommendation, not as evidence that regression passed.",
            "Access or review status": "State whether review/access evidence is supplied, pending, or blocked. Module use: Use the manifest as the controlled index behind a conditional release recommendation, not as evidence that regression passed.",
            "Gap": "Name the missing artifact, result, version, or approval. Module use: Use the manifest as the controlled index behind a conditional release recommendation, not as evidence that regression passed."
          },
          "completedExampleRow": {
            "Item": "Release candidate build",
            "Source or location": "Staging build record; exact controlled location not supplied.",
            "Version or date": "4.8.17; date not supplied",
            "Owner": "QA/release owner",
            "Access or review status": "Build identity supplied; access and integrity review pending.",
            "Gap": "Commit/hash, deployment timestamp, configuration, and access evidence are not supplied."
          },
          "completedKnownGapRow": {
            "Item": "Accessibility regression evidence",
            "Source or location": "Controlled location not supplied.",
            "Version or date": "Date/version not supplied",
            "Owner": "Accessibility and QA reviewers",
            "Access or review status": "Blocked - review record absent.",
            "Gap": "F07/F08 observations require approved cases, environment coverage, capture files, and results; none are supplied."
          },
          "supportingArtifacts": [],
          "decisionRule": {
            "stop": "Stop release recommendation when a critical manifest item, version, environment, dependency baseline, trace link, or result is missing or stale.",
            "go": "Proceed to review when every required item is indexed, accessible to the authorized reviewer, and version-controlled.",
            "escalate": "Escalate missing critical evidence and baseline drift to release, product, accessibility, payments, and dependency owners."
          },
          "completionTest": [
            "Build, requirements, cases, environments, data, dependency, defects, accessibility, and results are indexed.",
            "F01/F07/F08/F09/F11 drive explicit entries.",
            "The recommendation remains conditional and no regression result is invented."
          ],
          "criterionSatisfiability": [
            {
              "criterionId": "M06-EC01",
              "criterionOrdinal": 1,
              "criterionText": "Covers the changed dependency and critical checkout paths as planned scope",
              "currentSatisfiable": false,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The current canonical principal-artifact route or schema cannot visibly satisfy this criterion without the listed fact-routing and/or artifact-spec repair; the learner must record the gap rather than claim completion."
            },
            {
              "criterionId": "M06-EC02",
              "criterionOrdinal": 2,
              "criterionText": "Discloses untested scope, unresolved barriers, and proposed exception fields without claiming acceptance",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            },
            {
              "criterionId": "M06-EC03",
              "criterionOrdinal": 3,
              "criterionText": "Avoids bug-free, fully accessible, secure, exhaustive, passed, or approved claims",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            },
            {
              "criterionId": "M06-EC04",
              "criterionOrdinal": 4,
              "criterionText": "Cites the supplied input IDs for material statements and marks omitted operational records or results “not supplied” rather than fabricating them",
              "currentSatisfiable": true,
              "afterProposedRepairsSatisfiable": true,
              "finding": "The criterion is teachable through the bounded instructions and artifact row, but operational evidence, execution, and reviewer acceptance remain pending."
            }
          ]
        }
      }
    }
  ],
  "ambiguities": [
    {
      "issue": "Expected credit behavior is disputed and the approved requirement omits calculation order.",
      "judgmentRequired": "Pause the affected pass-fail decision and obtain an authorized product and finance clarification before codifying a test oracle.",
      "doNotAssume": "Do not treat current implementation, developer preference, or product-owner expectation as the approved requirement."
    },
    {
      "issue": "The duplicate order may involve application retry handling, the sandbox, or both.",
      "judgmentRequired": "Preserve identifiers and isolate components without claiming root cause prematurely.",
      "doNotAssume": "Do not assign fault from timing correlation or one unsuccessful reproduction."
    }
  ],
  "debrief": {
    "principle": "There is no universal release answer or complete test set. Strong QA states the tested scope, source of expected behavior, consequence of gaps, and authority for exceptions.",
    "moduleGuides": [
      {
        "module": 1,
        "reasoning": "Missing expected behavior is a requirement defect, not a reason for QA to invent a rule. Risk ranking should emphasize user and business consequence, detectability, and reversibility.",
        "strongEvidence": [
          "Source-linked acceptance criteria",
          "Owner-assigned risk register"
        ]
      },
      {
        "module": 2,
        "reasoning": "Environment diversity should follow the declared scope and risk. Versioning external services matters because a changed dependency can invalidate prior regression evidence.",
        "strongEvidence": [
          "Configuration and dependency matrix",
          "Repeatable synthetic test data"
        ]
      },
      {
        "module": 3,
        "reasoning": "A screenshot alone cannot prove a result. Reproducible evidence connects approved expectations and exact conditions to observed behavior another reviewer can verify.",
        "strongEvidence": [
          "Complete test record",
          "Request, calculation, and accessibility evidence"
        ]
      },
      {
        "module": 4,
        "reasoning": "Exploration is bounded investigation with a mission and evidence trail. It supplements repeatable tests while respecting authorization and production-safety boundaries.",
        "strongEvidence": [
          "Time-boxed charter and notes",
          "Coverage and newly discovered risk map"
        ]
      },
      {
        "module": 5,
        "reasoning": "Duplicate orders can be high severity even when intermittent. Priority remains an authorized business decision, and every classification needs stated evidence and consequence.",
        "strongEvidence": [
          "Reproducible or occurrence-based defect evidence",
          "Severity and priority rationale"
        ]
      },
      {
        "module": 6,
        "reasoning": "Marketing dates do not override release criteria. The recommendation should disclose barriers, scope, and exceptions so the authorized owner can make an informed decision.",
        "strongEvidence": [
          "Requirement-to-test traceability",
          "Signed exception and release record"
        ]
      }
    ],
    "specialistEscalations": [
      {
        "trigger": "Unclear financial calculation, tax treatment, contract pricing, or credit-policy requirement",
        "specialist": "Authorized product, finance, tax, legal, or accounting owner as applicable",
        "boundary": "QA identifies ambiguity and tests approved behavior but does not make the policy decision."
      },
      {
        "trigger": "Security testing, payment handling, production data, accessibility conformance, or unresolved duplicate transaction risk",
        "specialist": "Authorized security, payment, accessibility, engineering, and release owners",
        "boundary": "The learner remains within the approved environment and does not claim certification or security assurance."
      }
    ]
  },
  "caseBriefId": "CB01"
}
