---
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
finding_evidence:
  - finding: FND-COM-FUL-001
    source: 'services-commerce:docs/milestones/README.md'
  - finding: FND-COM-FUL-002
    source: 'services-commerce:docs/milestones/COMM-M2-take-a-staff-order.md'
  - finding: FND-COM-FUL-003
    source: >-
      react-console@3912337e0747cb79ee94a7a1914c1ba2f7806eb3:acceptance/commerce/inventory/capabilities.json
  - finding: FND-COM-FUL-004
    source: >-
      services-commerce:docs/milestones/README.md (COMM-M5 row);
      react-console:app/(console)/console/[tenantId]/orders/ (three pages);
      lib/authz/permissions.ts (orders.inventory, orders.shipping-zones)
  - finding: FND-COM-FUL-005
    source: 'react-console:lib/commerce/order-flows/live.ts:printLabel'
  - finding: FND-COM-FUL-006
    source: >-
      react-console:lib/commerce/operations/rules.ts:interventionDetails;
      services-commerce:modules/operations/services/interventions/operations-interventions.ts:acknowledgeExceptionByStaff
  - finding: FND-COM-FUL-007
    source: 'react-console:lib/commerce/operations/live.ts'
  - finding: FND-COM-FUL-008
    source: >-
      services-commerce:modules/fulfillment/db/operational-exceptions.table.ts:OPERATIONAL_EXCEPTION_KINDS;
      modules/inventory/db/inventory-exceptions.table.ts:INVENTORY_EXCEPTION_KINDS;
      react-console:lib/commerce/operations/live.ts (kind map)
  - finding: FND-COM-FUL-009
    source: >-
      services-commerce:modules/operations/services/reconciler/reconciler.ts
      (the waiting checks)
  - finding: FND-COM-FUL-010
    source: >-
      services-commerce:modules/fulfillment/services/register/intervention-audit.ts
  - finding: FND-COM-FUL-011
    source: >-
      services-commerce:modules/fulfillment/services/facts/financial-facts-port.ts
  - finding: FND-COM-FUL-012
    source: >-
      services-commerce:modules/fulfillment/services/policies/retroactive-policy.ts
  - finding: FND-COM-FUL-013
    source: 'services-commerce:docs/migrations/obligation-register/README.md#D-P4-06'
  - finding: FND-COM-FUL-014
    source: >-
      services-commerce:modules/fulfillment/services/register/obligation-worker.ts
  - finding: FND-COM-FUL-015
    source: >-
      services-commerce:docs/migrations/operations/README.md#2026-10-18 —
      Progress checkpoint (section 5 of the 14-section walk: the register,
      enforcement, adjustments and the operations area)
  - finding: FND-COM-FUL-016
    source: >-
      services-commerce:docs/migrations/shipping/README.md#2026-10-18 — Progress
      checkpoint (section 9 of the 14-section walk: shipping, purchasing and
      cost)
  - finding: FND-COM-FUL-017
    source: >-
      services-commerce:docs/migrations/shipping/README.md#2026-10-18 — Progress
      checkpoint (section 9 of the 14-section walk: shipping, purchasing and
      cost)
  - finding: FND-COM-FUL-018
    source: >-
      services-commerce:modules/shipping/services/returns/return-receiving.ts:dispositionReturnReceipt
  - finding: FND-COM-FUL-019
    source: >-
      specs/PRODUCT-AREAS.md (MOD-COM-ORD row);
      services-commerce:modules/shipping/services/cost/cost-relief-port.ts;
      modules/inventory/services/stock/transfer-stock.ts
  - finding: FND-COM-FUL-020
    source: >-
      services-commerce:aws/commerce.service.ts (the shipping, pick-list,
      return-receipt and fulfilment-policy groups)
  - finding: FND-COM-FUL-021
    source: >-
      services-commerce:modules/fulfillment/services/register/register-sweeper.ts
      (header, D-P4-02)
  - finding: FND-COM-FUL-022
    source: >-
      services-commerce:modules/fulfillment/services/policies/policy-resolution.ts:pickPolicy
  - finding: FND-COM-FUL-023
    source: 'services-commerce:modules/operations/db/idempotency-keys.table.ts'
  - finding: FND-COM-FUL-024
    source: 'react-console:lib/commerce/operations/live.ts:EXCEPTION_LIST_CAP'
  - finding: FND-COM-FUL-025
    source: 'react-console:lib/commerce/order-flows/live.ts:obligationRoutes'
  - finding: FND-COM-FUL-026
    source: specs/PRODUCT-AREAS.md (MOD-COM-FUL row)
  - finding: FND-COM-FUL-027
    source: >-
      react-console master has no Commerce Playwright journeys (see the
      acceptance inventory finding)
  - finding: FND-COM-FUL-028
    source: >-
      services-commerce:modules/data-operations/aws/api/data-operations.routes.ts:DATA_JOB_COLLECTIONS
  - finding: FND-COM-FUL-029
    source: 'rhythm-v2-docs:specs/commerce/fulfillment/design/tests/'
  - finding: FND-COM-FUL-030
    source: >-
      rhythm-v2-docs:briefs/planning/commerce-fulfillment.brief.md (absent at
      25e61d56bc834e75c390e7f5b18ed6ce27faa23f)
  - finding: FND-COM-FUL-031
    source: >-
      services-commerce:modules/fulfillment/services/register/register-sweeper.ts:sweepRegister;
      modules/fulfillment/services/persistence/obligations.ts:listPendingObligationsOfScope;
      modules/fulfillment/services/policies/retroactive-policy.ts:applyPolicyRetroactively
  - finding: FND-COM-FUL-032
    source: >-
      services-commerce:modules/operations/services/reconciler/reconciler.ts:RECONCILER_CHECKS;
      modules/shipping/services/cost/cost-relief-port.ts:commerceCostReliefPort
  - finding: FND-COM-FUL-033
    source: >-
      services-commerce:modules/fulfillment/services/policies/evaluate-gate.ts:evaluateGate;
      modules/fulfillment/tests/unit/policies/evaluate-gate.spec.js
  - finding: FND-COM-FUL-034
    source: >-
      services-commerce:modules/fulfillment/services/register/register-sweeper.ts:sweepRegister;
      modules/fulfillment/services/persistence/obligations.ts:redispatchAuthorization;
      modules/merchandise/services/participant/merchandise-participant.ts:MERCHANDISE_ACKNOWLEDGEMENT_SLA_SECONDS;
      modules/shipping/services/fulfillment/handoff.ts:obligationsOfUnits
      (inferred; no test drives a unit past two deadlines)
  - finding: FND-COM-FUL-035
    source: >-
      services-commerce:modules/shipping/services/returns/return-receiving.ts:receiveReturn,dispositionReturnReceipt;
      modules/orders/services/returns/return-workflow.ts:followReturnReceipt;
      modules/operations/services/reconciler/reconciler.ts (returns_overdue
      skipped)
  - finding: FND-COM-FUL-036
    source: >-
      react-console:components/commerce/order-flows/create-shipment-dialog.tsx:CreateShipmentDialog;
      lib/commerce/order-flows/live.ts:createShipment;
      services-commerce:modules/shipping/aws/api/shipping.schemas.ts:createShipmentRequestSchema
  - finding: FND-COM-FUL-037
    source: >-
      services-commerce:db/migrations (only
      commerce.refuse_obligation_regression guards a lifecycle);
      modules/shipping/services/fulfillment/*.ts (state checks in the workflows)
  - finding: FND-COM-FUL-038
    source: >-
      services-commerce:modules/fulfillment/db/intervention-logs.table.ts:INTERVENTION_KINDS;
      modules/fulfillment/db/operational-exceptions.table.ts;
      modules/operations/services/interventions/operations-interventions.ts
  - finding: FND-COM-FUL-039
    source: >-
      rhythm-v2-docs:specs/CONVENTIONS.md#9.8;
      specs/commerce/fulfillment/MODULE.md
  - finding: FND-COM-FUL-040
    source: >-
      services-commerce:AGENTS.md (the standards are read from
      services-platform, which this job's credential does not reach)
  - finding: FND-COM-FUL-041
    source: >-
      react-console:lib/commerce/operations/rules.ts:interventionDetails.releaseHold
  - finding: FND-COM-FUL-042
    source: >-
      services-commerce:AGENTS.md#Commerce ("change events, record history ...
      None of them exists in Commerce yet");
      modules/fulfillment/services/register/register-events.ts
  - finding: FND-COM-FUL-043
    source: >-
      services-commerce:modules/shipping/services/rating/zone-strategy-rating-port.ts
  - finding: FND-COM-FUL-044
    source: >-
      services-commerce:modules/fulfillment/aws/api/fulfillment.routes.ts:fulfillmentModuleRoutes;
      package-lock.json:@rhythmsoftware/macroservice-http;
      node_modules/@rhythmsoftware/macroservice-http/dist/health-route.js:healthRoute
  - finding: FND-COM-FUL-045
    source: >-
      services-commerce:modules/shipping/db/packages.table.ts:PACKAGE_STATES;
      modules/shipping/db/carrier-labels.table.ts:CARRIER_LABEL_STATES;
      modules/shipping/services/fulfillment/labels.ts:purchaseLabelForPackage
  - finding: FND-COM-FUL-046
    source: >-
      services-commerce:modules/fulfillment/services/register/obligation-worker.ts:workObligationItem,settleEnforcement;
      modules/fulfillment/services/register/obligation-interventions.ts:reauthorizeObligationByStaff;
      modules/fulfillment/services/persistence/enforcements.ts:ENFORCEMENT_TRANSITIONS
  - finding: FND-COM-FUL-047
    source: >-
      services-commerce:modules/shipping/services/fulfillment/handoff.ts:obligationsOfUnits,handOver;
      modules/inventory/services/persistence/inventory-allocations.ts:shipUnits
  - finding: FND-COM-FUL-048
    source: >-
      services-commerce:modules/shipping/aws/api/shipping.schemas.ts:shippingZoneReplacementSchema,carrierAccountReplacementSchema,shippingStrategyReplacementSchema
  - finding: FND-COM-FUL-049
    source: >-
      services-commerce:modules/fulfillment/services/register/register-sweeper.ts:sweepRegister;
      modules/fulfillment/services/policies/retroactive-policy.ts:applyPolicyRetroactively;
      rhythm-v2-docs:specs/commerce/fulfillment/FINDINGS.md:FND-COM-FUL-031
  - finding: FND-COM-FUL-050
    source: >-
      services-commerce:modules/fulfillment/services/register/obligation-dispatcher.ts;
      rhythm-v2-docs:specs/CONVENTIONS.md:4
  - finding: FND-COM-FUL-051
    source: >-
      services-commerce:modules/shipping/services/fulfillment/picking.ts:createPickListForWarehouse;
      modules/shipping/db/pick-list-lines.table.ts:pick_list_lines_shipment_line_uq
  - finding: FND-COM-FUL-052
    source: >-
      services-commerce:modules/fulfillment/services/enforcement/enforcement-handler.ts:enforceReversal,restoreObligation,dispatchEnforcement
  - finding: FND-COM-FUL-056
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-001-decide-when-each-sold-line-may-be-delivered.md
  - finding: FND-COM-FUL-057
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-002-open-delivery-as-soon-as-its-conditions-are-met.md
  - finding: FND-COM-FUL-058
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-003-hold-a-line-priced-by-a-same-order-membership-until-the.md
  - finding: FND-COM-FUL-059
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-004-deliver-each-authorized-obligation-through-the-application.md
  - finding: FND-COM-FUL-060
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-005-follow-an-order-s-obligations-and-step-in-by-hand.md
  - finding: FND-COM-FUL-061
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-006-respond-to-reversed-money-on-delivered-lines.md
  - finding: FND-COM-FUL-062
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-007-finish-the-money-side-of-a-post-sale-change-step-by-step.md
  - finding: FND-COM-FUL-063
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-008-work-the-operations-queue.md
  - finding: FND-COM-FUL-064
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-009-find-stuck-missing-and-inconsistent-work-automatically.md
  - finding: FND-COM-FUL-065
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-010-set-up-where-the-workspace-ships-how-it-charges-and-which.md
  - finding: FND-COM-FUL-066
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-011-offer-shipping-options-and-charges-for-a-cart.md
  - finding: FND-COM-FUL-067
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-012-turn-paid-orders-into-shipments-and-work-them-through-the.md
  - finding: FND-COM-FUL-068
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-013-buy-void-and-track-carrier-labels-without-buying-twice.md
  - finding: FND-COM-FUL-069
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-014-hand-shipments-to-the-carrier-or-the-buyer-and-record-what.md
  - finding: FND-COM-FUL-070
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-015-receive-inspect-and-disposition-returned-goods.md
  - finding: FND-COM-FUL-071
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-016-keep-warehouses-and-stock-locations.md
  - finding: FND-COM-FUL-072
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-017-record-stock-that-comes-in-moves-and-goes-out.md
  - finding: FND-COM-FUL-073
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-018-reserve-and-commit-stock-for-buyers-and-say-what-is.md
  - finding: FND-COM-FUL-074
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-019-count-shelves-and-investigate-stock-findings.md
  - finding: FND-COM-FUL-075
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-020-load-a-workspace-s-rhythm-1-0-commerce-records-and-check.md
  - finding: FND-COM-FUL-076
    source:
      - >-
        services-commerce:modules/shipping/tests/integration/services/fulfillment/shipping-flow.integration.spec.js#refuses
        a second handover (not packed any more) and the cancellation of a
        collected shipment
  - finding: FND-COM-FUL-077
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/FAS-COM-FUL-01-delivery-rules-and-the-obligation-register.md
  - finding: FND-COM-FUL-078
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/FAS-COM-FUL-02-operations-queue-and-post-sale-follow-up.md
  - finding: FND-COM-FUL-079
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/FAS-COM-FUL-03-shipping-and-warehouse-fulfilment.md
  - finding: FND-COM-FUL-080
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/FAS-COM-FUL-04-stock-and-warehouses.md
  - finding: FND-COM-FUL-081
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/FAS-COM-FUL-05-rhythm-1-0-commerce-migration.md
control_backfill_evidence:
  - finding: FND-COM-FUL-053
    controls:
      - TC-LOG-001
      - TC-AZ-005
    provenance: observed
    source:
      - >-
        services-commerce:modules/fulfillment/services/register/intervention-audit.ts#platformInterventionAudit
      - >-
        services-commerce:aws/cdk/commerce.function-environment.ts#applyCommerceFunctionEnvironment
    related_findings:
      - FND-COM-FUL-042
  - finding: FND-COM-FUL-054
    controls:
      - TC-AVL-004
      - TC-PI-004
      - TC-LOG-001
    provenance: observed
    source:
      - >-
        services-commerce:modules/fulfillment/services/register/obligation-callbacks.ts#completeObligation
      - >-
        services-commerce:modules/fulfillment/services/register/obligation-callbacks.ts#failObligation
    related_findings:
      - FND-COM-FUL-046
  - finding: FND-COM-FUL-055
    controls:
      - TC-PI-003
    provenance: observed
    source:
      - >-
        services-commerce:modules/shipping/services/fulfillment/picking.ts#createPickListForWarehouse
      - 'services-commerce:modules/shipping/db/pick-list-lines.table.ts'
    related_findings:
      - FND-COM-FUL-051
testing_backfill:
  - id: FND-COM-FUL-056
    severity: medium
    statement: >-
      Detailed proof remains incomplete for choose delivery conditions for sold
      items. Missing category cases, unmapped lifecycle edges and individual
      permission checks require follow-up; unbound scenarios remain proposals.
    affects:
      - CAP-COM-FUL-001
      - ATS-COM-FUL-001-08
      - ATS-COM-FUL-001-10
      - ATS-COM-FUL-001-11
      - INV-DOM-COM-FUL-001-12
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-001-decide-when-each-sold-line-may-be-delivered.md
    missing_categories:
      - failure
    unproved_rules: []
    unbound_scenarios:
      - ATS-COM-FUL-001-08
      - ATS-COM-FUL-001-10
      - ATS-COM-FUL-001-11
    transition_edges: []
    permissions:
      - commerce.fulfillment-policies.read
      - commerce.fulfillment-policies.create
      - commerce.fulfillment-policies.update
      - commerce.fulfillment-policies.delete
      - commerce.fulfillment-policies.apply
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-001-12
  - id: FND-COM-FUL-057
    severity: medium
    statement: >-
      Detailed proof remains incomplete for authorize delivery from current
      order facts. Missing category cases, unmapped lifecycle edges and
      individual permission checks require follow-up; unbound scenarios remain
      proposals.
    affects:
      - CAP-COM-FUL-002
      - BR-CAP-COM-FUL-002-08
      - BR-CAP-COM-FUL-002-13
      - ATS-COM-FUL-002-10
      - ATS-COM-FUL-002-11
      - ATS-COM-FUL-002-12
      - ATS-COM-FUL-002-15
      - INV-DOM-COM-FUL-001-12
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-002-open-delivery-as-soon-as-its-conditions-are-met.md
    missing_categories:
      - validation
      - invariant
    unproved_rules:
      - BR-CAP-COM-FUL-002-08
      - BR-CAP-COM-FUL-002-13
    unbound_scenarios:
      - ATS-COM-FUL-002-10
      - ATS-COM-FUL-002-11
      - ATS-COM-FUL-002-12
      - ATS-COM-FUL-002-15
    transition_edges:
      - model: STATE-COM-FUL-001
        from: pending
        to: eligible
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:openGate
        coverage: 'gap: FND-COM-FUL-057'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: blocked
        to: eligible
        source: >-
          services-commerce:modules/fulfillment/services/register/gate-evaluation.ts
        coverage: 'gap: FND-COM-FUL-057'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: eligible
        to: authorized
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:openGate
        coverage: 'gap: FND-COM-FUL-057'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: pending
        to: blocked
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordGateEvaluation,placeStaffHold
        coverage: 'gap: FND-COM-FUL-057'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: pending
        to: cancelled
        source: >-
          services-commerce:docs/migrations/obligation-register/README.md#D-P4-03
        coverage: 'gap: FND-COM-FUL-057'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: blocked
        to: cancelled
        source: >-
          services-commerce:docs/migrations/obligation-register/README.md#D-P4-03
        coverage: 'gap: FND-COM-FUL-057'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: eligible
        to: cancelled
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:OBLIGATION_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-057'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: authorized
        to: in_progress
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordObligationOutcome
        coverage: 'gap: FND-COM-FUL-057'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: authorized
        to: completed
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordObligationOutcome,completeObligationManually
        coverage: 'gap: FND-COM-FUL-057'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: in_progress
        to: failed
        source: >-
          services-commerce:modules/fulfillment/services/register/register-sweeper.ts:sweepRegister
        coverage: 'gap: FND-COM-FUL-057'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: failed
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/register/obligation-interventions.ts:resolveObligationByStaff
        coverage: 'gap: FND-COM-FUL-057'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: completed
        to: superseded
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:OBLIGATION_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-057'
        scenarios: []
    permissions: []
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-001-12
  - id: FND-COM-FUL-058
    severity: medium
    statement: >-
      Detailed proof remains incomplete for protect a member-priced purchase
      until its membership arrives. Missing category cases, unmapped lifecycle
      edges and individual permission checks require follow-up; unbound
      scenarios remain proposals.
    affects:
      - CAP-COM-FUL-003
      - BR-CAP-COM-FUL-003-08
      - ATS-COM-FUL-003-07
      - INV-DOM-COM-FUL-001-12
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-003-hold-a-line-priced-by-a-same-order-membership-until-the.md
    missing_categories:
      - validation
      - permission
      - boundary
      - concurrency
      - invariant
    unproved_rules:
      - BR-CAP-COM-FUL-003-08
    unbound_scenarios:
      - ATS-COM-FUL-003-07
    transition_edges:
      - model: STATE-COM-FUL-001
        from: pending
        to: eligible
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:openGate
        coverage: 'gap: FND-COM-FUL-058'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: blocked
        to: eligible
        source: >-
          services-commerce:modules/fulfillment/services/register/gate-evaluation.ts
        coverage: 'gap: FND-COM-FUL-058'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: eligible
        to: authorized
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:openGate
        coverage: 'gap: FND-COM-FUL-058'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: pending
        to: blocked
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordGateEvaluation,placeStaffHold
        coverage: 'gap: FND-COM-FUL-058'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: pending
        to: cancelled
        source: >-
          services-commerce:docs/migrations/obligation-register/README.md#D-P4-03
        coverage: 'gap: FND-COM-FUL-058'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: blocked
        to: cancelled
        source: >-
          services-commerce:docs/migrations/obligation-register/README.md#D-P4-03
        coverage: 'gap: FND-COM-FUL-058'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: eligible
        to: cancelled
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:OBLIGATION_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-058'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: authorized
        to: in_progress
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordObligationOutcome
        coverage: 'gap: FND-COM-FUL-058'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: authorized
        to: completed
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordObligationOutcome,completeObligationManually
        coverage: 'gap: FND-COM-FUL-058'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: in_progress
        to: failed
        source: >-
          services-commerce:modules/fulfillment/services/register/register-sweeper.ts:sweepRegister
        coverage: 'gap: FND-COM-FUL-058'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: failed
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/register/obligation-interventions.ts:resolveObligationByStaff
        coverage: 'gap: FND-COM-FUL-058'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: completed
        to: superseded
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:OBLIGATION_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-058'
        scenarios: []
    permissions:
      - commerce.obligations.read
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-001-12
  - id: FND-COM-FUL-059
    severity: medium
    statement: >-
      Detailed proof remains incomplete for carry authorized work to its
      delivering application. Missing category cases, unmapped lifecycle edges
      and individual permission checks require follow-up; unbound scenarios
      remain proposals.
    affects:
      - CAP-COM-FUL-004
      - BR-CAP-COM-FUL-004-12
      - BR-CAP-COM-FUL-004-13
      - ATS-COM-FUL-004-13
      - INV-DOM-COM-FUL-001-12
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-004-deliver-each-authorized-obligation-through-the-application.md
    missing_categories:
      - rule
      - validation
      - concurrency
    unproved_rules:
      - BR-CAP-COM-FUL-004-12
      - BR-CAP-COM-FUL-004-13
    unbound_scenarios:
      - ATS-COM-FUL-004-13
    transition_edges:
      - model: STATE-COM-FUL-001
        from: pending
        to: eligible
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:openGate
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: blocked
        to: eligible
        source: >-
          services-commerce:modules/fulfillment/services/register/gate-evaluation.ts
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: eligible
        to: authorized
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:openGate
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: pending
        to: blocked
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordGateEvaluation,placeStaffHold
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: pending
        to: cancelled
        source: >-
          services-commerce:docs/migrations/obligation-register/README.md#D-P4-03
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: blocked
        to: cancelled
        source: >-
          services-commerce:docs/migrations/obligation-register/README.md#D-P4-03
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: eligible
        to: cancelled
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:OBLIGATION_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: authorized
        to: in_progress
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordObligationOutcome
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: authorized
        to: completed
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordObligationOutcome,completeObligationManually
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: in_progress
        to: failed
        source: >-
          services-commerce:modules/fulfillment/services/register/register-sweeper.ts:sweepRegister
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: failed
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/register/obligation-interventions.ts:resolveObligationByStaff
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: completed
        to: superseded
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:OBLIGATION_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: pending
        to: resolved
        source: >-
          services-commerce:modules/operations/services/interventions/operations-interventions.ts
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: pending
        to: restored
        source: >-
          services-commerce:modules/fulfillment/services/register/obligation-worker.ts:settleEnforcement
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: dispatched
        to: failed
        source: >-
          services-commerce:modules/fulfillment/services/register/register-sweeper.ts:sweepRegister
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: dispatched
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/persistence/enforcements.ts:ENFORCEMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: failed
        to: dispatched
        source: >-
          services-commerce:modules/fulfillment/services/persistence/enforcements.ts:ENFORCEMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: failed
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/persistence/enforcements.ts:ENFORCEMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: completed
        to: restored
        source: >-
          services-commerce:modules/fulfillment/services/register/obligation-worker.ts:settleEnforcement
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: completed
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/persistence/enforcements.ts:ENFORCEMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: resolved
        to: restored
        source: >-
          services-commerce:modules/fulfillment/services/register/obligation-worker.ts:settleEnforcement
        coverage: 'gap: FND-COM-FUL-059'
        scenarios: []
    permissions:
      - commerce.obligations.callback
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-001-12
  - id: FND-COM-FUL-060
    severity: medium
    statement: >-
      Detailed proof remains incomplete for understand and intervene in an
      order's delivery. Missing category cases, unmapped lifecycle edges and
      individual permission checks require follow-up; unbound scenarios remain
      proposals.
    affects:
      - CAP-COM-FUL-005
      - BR-CAP-COM-FUL-005-09
      - ATS-COM-FUL-005-07
      - ATS-COM-FUL-005-08
      - ATS-COM-FUL-005-09
      - ATS-COM-FUL-005-11
      - INV-DOM-COM-FUL-001-12
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-005-follow-an-order-s-obligations-and-step-in-by-hand.md
    missing_categories:
      - edge
      - failure
      - boundary
      - invariant
    unproved_rules:
      - BR-CAP-COM-FUL-005-09
    unbound_scenarios:
      - ATS-COM-FUL-005-07
      - ATS-COM-FUL-005-08
      - ATS-COM-FUL-005-09
      - ATS-COM-FUL-005-11
    transition_edges:
      - model: STATE-COM-FUL-001
        from: pending
        to: eligible
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:openGate
        coverage: 'gap: FND-COM-FUL-060'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: blocked
        to: eligible
        source: >-
          services-commerce:modules/fulfillment/services/register/gate-evaluation.ts
        coverage: 'gap: FND-COM-FUL-060'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: eligible
        to: authorized
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:openGate
        coverage: 'gap: FND-COM-FUL-060'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: pending
        to: blocked
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordGateEvaluation,placeStaffHold
        coverage: 'gap: FND-COM-FUL-060'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: pending
        to: cancelled
        source: >-
          services-commerce:docs/migrations/obligation-register/README.md#D-P4-03
        coverage: 'gap: FND-COM-FUL-060'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: blocked
        to: cancelled
        source: >-
          services-commerce:docs/migrations/obligation-register/README.md#D-P4-03
        coverage: 'gap: FND-COM-FUL-060'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: eligible
        to: cancelled
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:OBLIGATION_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-060'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: authorized
        to: in_progress
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordObligationOutcome
        coverage: 'gap: FND-COM-FUL-060'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: authorized
        to: completed
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordObligationOutcome,completeObligationManually
        coverage: 'gap: FND-COM-FUL-060'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: in_progress
        to: failed
        source: >-
          services-commerce:modules/fulfillment/services/register/register-sweeper.ts:sweepRegister
        coverage: 'gap: FND-COM-FUL-060'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: failed
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/register/obligation-interventions.ts:resolveObligationByStaff
        coverage: 'gap: FND-COM-FUL-060'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: completed
        to: superseded
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:OBLIGATION_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-060'
        scenarios: []
    permissions:
      - commerce.obligations.read
      - commerce.obligations.approve
      - commerce.obligations.override
      - commerce.obligations.reauthorize
      - commerce.obligations.resolve
      - commerce.obligations.hold
      - commerce.obligations.complete-manually
      - orders.obligations.view
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-001-12
  - id: FND-COM-FUL-061
    severity: medium
    statement: >-
      Detailed proof remains incomplete for handle financial reversals after
      delivery. Missing category cases, unmapped lifecycle edges and individual
      permission checks require follow-up; unbound scenarios remain proposals.
    affects:
      - CAP-COM-FUL-006
      - BR-CAP-COM-FUL-006-05
      - BR-CAP-COM-FUL-006-11
      - INV-DOM-COM-FUL-001-12
      - INV-DOM-COM-FUL-003-07
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-006-respond-to-reversed-money-on-delivered-lines.md
    missing_categories:
      - validation
      - failure
      - boundary
      - concurrency
    unproved_rules:
      - BR-CAP-COM-FUL-006-05
      - BR-CAP-COM-FUL-006-11
    unbound_scenarios: []
    transition_edges:
      - model: STATE-COM-FUL-002
        from: pending
        to: resolved
        source: >-
          services-commerce:modules/operations/services/interventions/operations-interventions.ts
        coverage: 'gap: FND-COM-FUL-061'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: pending
        to: restored
        source: >-
          services-commerce:modules/fulfillment/services/register/obligation-worker.ts:settleEnforcement
        coverage: 'gap: FND-COM-FUL-061'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: dispatched
        to: failed
        source: >-
          services-commerce:modules/fulfillment/services/register/register-sweeper.ts:sweepRegister
        coverage: 'gap: FND-COM-FUL-061'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: dispatched
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/persistence/enforcements.ts:ENFORCEMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-061'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: failed
        to: dispatched
        source: >-
          services-commerce:modules/fulfillment/services/persistence/enforcements.ts:ENFORCEMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-061'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: failed
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/persistence/enforcements.ts:ENFORCEMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-061'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: completed
        to: restored
        source: >-
          services-commerce:modules/fulfillment/services/register/obligation-worker.ts:settleEnforcement
        coverage: 'gap: FND-COM-FUL-061'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: completed
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/persistence/enforcements.ts:ENFORCEMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-061'
        scenarios: []
      - model: STATE-COM-FUL-002
        from: resolved
        to: restored
        source: >-
          services-commerce:modules/fulfillment/services/register/obligation-worker.ts:settleEnforcement
        coverage: 'gap: FND-COM-FUL-061'
        scenarios: []
    permissions:
      - commerce.enforcements.read
      - commerce.enforcements.resolve
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-001-12
      - INV-DOM-COM-FUL-003-07
  - id: FND-COM-FUL-062
    severity: medium
    statement: >-
      Detailed proof remains incomplete for complete the financial work
      requested by a post-sale document. Missing category cases, unmapped
      lifecycle edges and individual permission checks require follow-up;
      unbound scenarios remain proposals.
    affects:
      - CAP-COM-FUL-007
      - BR-CAP-COM-FUL-007-07
      - BR-CAP-COM-FUL-007-12
      - ATS-COM-FUL-007-09
      - INV-DOM-COM-FUL-003-07
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-007-finish-the-money-side-of-a-post-sale-change-step-by-step.md
    missing_categories:
      - edge
      - boundary
      - concurrency
    unproved_rules:
      - BR-CAP-COM-FUL-007-07
      - BR-CAP-COM-FUL-007-12
    unbound_scenarios:
      - ATS-COM-FUL-007-09
    transition_edges:
      - model: STATE-COM-FUL-003
        from: pending
        to: in_progress
        source: >-
          services-commerce:modules/fulfillment/services/adjustments/adjustment-worker.ts:executeAdjustment
        coverage: 'gap: FND-COM-FUL-062'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: pending
        to: completed
        source: >-
          services-commerce:modules/fulfillment/services/persistence/financial-adjustments.ts:ADJUSTMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-062'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: in_progress
        to: completed
        source: 'services-commerce:docs/milestones/COMM-M1-repairs-6-report.md#R6-2'
        coverage: 'gap: FND-COM-FUL-062'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: in_progress
        to: failed
        source: >-
          services-commerce:modules/fulfillment/services/adjustments/adjustment-worker.ts
        coverage: 'gap: FND-COM-FUL-062'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: pending
        to: failed
        source: >-
          services-commerce:modules/fulfillment/services/persistence/financial-adjustments.ts:ADJUSTMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-062'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: failed
        to: pending
        source: >-
          services-commerce:modules/fulfillment/services/persistence/financial-adjustments.ts:retryFinancialAdjustment
        coverage: 'gap: FND-COM-FUL-062'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: failed
        to: resolved
        source: >-
          services-commerce:modules/operations/services/interventions/operations-interventions.ts
        coverage: 'gap: FND-COM-FUL-062'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: pending
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/persistence/financial-adjustments.ts:ADJUSTMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-062'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: in_progress
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/persistence/financial-adjustments.ts:ADJUSTMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-062'
        scenarios: []
    permissions:
      - commerce.adjustments.read
      - commerce.adjustments.retry
      - commerce.adjustments.resolve
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-003-07
  - id: FND-COM-FUL-063
    severity: medium
    statement: >-
      Detailed proof remains incomplete for review and resolve operations
      findings. Missing category cases, unmapped lifecycle edges and individual
      permission checks require follow-up; unbound scenarios remain proposals.
    affects:
      - CAP-COM-FUL-008
      - BR-CAP-COM-FUL-008-05
      - BR-CAP-COM-FUL-008-09
      - BR-CAP-COM-FUL-008-10
      - BR-CAP-COM-FUL-008-11
      - ATS-COM-FUL-008-06
      - ATS-COM-FUL-008-07
      - ATS-COM-FUL-008-09
      - ATS-COM-FUL-008-12
      - INV-DOM-COM-FUL-003-07
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-008-work-the-operations-queue.md
    missing_categories:
      - rule
      - transition
      - edge
      - failure
      - concurrency
    unproved_rules:
      - BR-CAP-COM-FUL-008-05
      - BR-CAP-COM-FUL-008-09
      - BR-CAP-COM-FUL-008-10
      - BR-CAP-COM-FUL-008-11
    unbound_scenarios:
      - ATS-COM-FUL-008-06
      - ATS-COM-FUL-008-07
      - ATS-COM-FUL-008-09
      - ATS-COM-FUL-008-12
    transition_edges:
      - model: STATE-COM-FUL-004
        from: open
        to: acknowledged
        source: >-
          services-commerce:modules/operations/services/interventions/operations-interventions.ts:acknowledgeExceptionByStaff
        coverage: 'gap: FND-COM-FUL-063'
        scenarios: []
      - model: STATE-COM-FUL-004
        from: acknowledged
        to: resolved
        source: >-
          services-commerce:modules/operations/services/interventions/operations-interventions.ts:resolveExceptionByStaff
        coverage: 'gap: FND-COM-FUL-063'
        scenarios: []
      - model: STATE-COM-FUL-004
        from: open
        to: open
        source: 'services-commerce:docs/migrations/operations/README.md#D-P5-08'
        coverage: 'gap: FND-COM-FUL-063'
        scenarios: []
      - model: STATE-COM-FUL-004
        from: acknowledged
        to: acknowledged
        source: >-
          services-commerce:modules/fulfillment/services/persistence/operational-exceptions.ts
        coverage: 'gap: FND-COM-FUL-063'
        scenarios: []
    permissions:
      - commerce.exceptions.read
      - commerce.exceptions.acknowledge
      - commerce.exceptions.resolve
      - orders.operations.view
      - orders.operations.intervene
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-003-07
  - id: FND-COM-FUL-064
    severity: medium
    statement: >-
      Detailed proof remains incomplete for detect stalled and inconsistent
      order work. Missing category cases, unmapped lifecycle edges and
      individual permission checks require follow-up; unbound scenarios remain
      proposals.
    affects:
      - CAP-COM-FUL-009
      - BR-CAP-COM-FUL-009-06
      - BR-CAP-COM-FUL-009-08
      - BR-CAP-COM-FUL-009-10
      - INV-DOM-COM-FUL-003-07
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-009-find-stuck-missing-and-inconsistent-work-automatically.md
    missing_categories:
      - rule
      - transition
      - validation
      - edge
      - concurrency
    unproved_rules:
      - BR-CAP-COM-FUL-009-06
      - BR-CAP-COM-FUL-009-08
      - BR-CAP-COM-FUL-009-10
    unbound_scenarios: []
    transition_edges:
      - model: STATE-COM-FUL-003
        from: pending
        to: in_progress
        source: >-
          services-commerce:modules/fulfillment/services/adjustments/adjustment-worker.ts:executeAdjustment
        coverage: 'gap: FND-COM-FUL-064'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: pending
        to: completed
        source: >-
          services-commerce:modules/fulfillment/services/persistence/financial-adjustments.ts:ADJUSTMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-064'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: in_progress
        to: completed
        source: 'services-commerce:docs/milestones/COMM-M1-repairs-6-report.md#R6-2'
        coverage: 'gap: FND-COM-FUL-064'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: in_progress
        to: failed
        source: >-
          services-commerce:modules/fulfillment/services/adjustments/adjustment-worker.ts
        coverage: 'gap: FND-COM-FUL-064'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: pending
        to: failed
        source: >-
          services-commerce:modules/fulfillment/services/persistence/financial-adjustments.ts:ADJUSTMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-064'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: failed
        to: pending
        source: >-
          services-commerce:modules/fulfillment/services/persistence/financial-adjustments.ts:retryFinancialAdjustment
        coverage: 'gap: FND-COM-FUL-064'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: failed
        to: resolved
        source: >-
          services-commerce:modules/operations/services/interventions/operations-interventions.ts
        coverage: 'gap: FND-COM-FUL-064'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: pending
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/persistence/financial-adjustments.ts:ADJUSTMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-064'
        scenarios: []
      - model: STATE-COM-FUL-003
        from: in_progress
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/persistence/financial-adjustments.ts:ADJUSTMENT_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-064'
        scenarios: []
      - model: STATE-COM-FUL-004
        from: open
        to: acknowledged
        source: >-
          services-commerce:modules/operations/services/interventions/operations-interventions.ts:acknowledgeExceptionByStaff
        coverage: 'gap: FND-COM-FUL-064'
        scenarios: []
      - model: STATE-COM-FUL-004
        from: acknowledged
        to: resolved
        source: >-
          services-commerce:modules/operations/services/interventions/operations-interventions.ts:resolveExceptionByStaff
        coverage: 'gap: FND-COM-FUL-064'
        scenarios: []
      - model: STATE-COM-FUL-004
        from: open
        to: open
        source: 'services-commerce:docs/migrations/operations/README.md#D-P5-08'
        coverage: 'gap: FND-COM-FUL-064'
        scenarios: []
      - model: STATE-COM-FUL-004
        from: acknowledged
        to: acknowledged
        source: >-
          services-commerce:modules/fulfillment/services/persistence/operational-exceptions.ts
        coverage: 'gap: FND-COM-FUL-064'
        scenarios: []
    permissions: []
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-003-07
  - id: FND-COM-FUL-065
    severity: medium
    statement: >-
      Detailed proof remains incomplete for configure shipping coverage and
      collection options. Missing category cases, unmapped lifecycle edges and
      individual permission checks require follow-up; unbound scenarios remain
      proposals.
    affects:
      - CAP-COM-FUL-010
      - ATS-COM-FUL-010-06
      - ATS-COM-FUL-010-07
      - ATS-COM-FUL-010-08
      - INV-DOM-COM-FUL-004-01
      - INV-DOM-COM-FUL-004-02
      - INV-DOM-COM-FUL-004-07
      - INV-DOM-COM-FUL-004-09
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-010-set-up-where-the-workspace-ships-how-it-charges-and-which.md
    missing_categories:
      - rule
      - transition
      - edge
      - failure
      - boundary
    unproved_rules: []
    unbound_scenarios:
      - ATS-COM-FUL-010-06
      - ATS-COM-FUL-010-07
      - ATS-COM-FUL-010-08
    transition_edges: []
    permissions:
      - commerce.shipping-zones.read
      - commerce.shipping-zones.create
      - commerce.shipping-zones.update
      - commerce.shipping-zones.delete
      - commerce.shipping-strategies.read
      - commerce.shipping-strategies.create
      - commerce.shipping-strategies.update
      - commerce.shipping-strategies.delete
      - commerce.carrier-accounts.read
      - commerce.carrier-accounts.create
      - commerce.carrier-accounts.update
      - commerce.carrier-accounts.delete
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-004-01
      - INV-DOM-COM-FUL-004-02
      - INV-DOM-COM-FUL-004-07
      - INV-DOM-COM-FUL-004-09
  - id: FND-COM-FUL-066
    severity: medium
    statement: >-
      Detailed proof remains incomplete for quote shipping and pickup choices
      for a cart. Missing category cases, unmapped lifecycle edges and
      individual permission checks require follow-up; unbound scenarios remain
      proposals.
    affects:
      - CAP-COM-FUL-011
      - ATS-COM-FUL-011-10
      - INV-DOM-COM-FUL-004-01
      - INV-DOM-COM-FUL-004-02
      - INV-DOM-COM-FUL-004-07
      - INV-DOM-COM-FUL-004-09
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-011-offer-shipping-options-and-charges-for-a-cart.md
    missing_categories:
      - concurrency
      - invariant
    unproved_rules: []
    unbound_scenarios:
      - ATS-COM-FUL-011-10
    transition_edges: []
    permissions: []
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-004-01
      - INV-DOM-COM-FUL-004-02
      - INV-DOM-COM-FUL-004-07
      - INV-DOM-COM-FUL-004-09
  - id: FND-COM-FUL-067
    severity: medium
    statement: >-
      Detailed proof remains incomplete for prepare an order's goods for
      dispatch. Missing category cases, unmapped lifecycle edges and individual
      permission checks require follow-up; unbound scenarios remain proposals.
    affects:
      - CAP-COM-FUL-012
      - BR-CAP-COM-FUL-012-10
      - BR-CAP-COM-FUL-012-12
      - ATS-COM-FUL-012-05
      - ATS-COM-FUL-012-08
      - ATS-COM-FUL-012-13
      - INV-DOM-COM-FUL-004-01
      - INV-DOM-COM-FUL-004-02
      - INV-DOM-COM-FUL-004-07
      - INV-DOM-COM-FUL-004-09
      - INV-DOM-COM-FUL-005-12
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-012-turn-paid-orders-into-shipments-and-work-them-through-the.md
    missing_categories:
      - validation
      - concurrency
    unproved_rules:
      - BR-CAP-COM-FUL-012-10
      - BR-CAP-COM-FUL-012-12
    unbound_scenarios:
      - ATS-COM-FUL-012-05
      - ATS-COM-FUL-012-08
      - ATS-COM-FUL-012-13
    transition_edges:
      - model: STATE-COM-FUL-005
        from: open
        to: released
        source: >-
          services-commerce:modules/shipping/services/fulfillment/shipment-creation.ts:releaseShipment
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: released
        to: picking
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:createPickListForWarehouse
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: picked
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:recordPickOnList
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picked
        to: packing
        source: >-
          services-commerce:modules/shipping/services/fulfillment/packing.ts:packShipment
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picked
        to: packed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/packing.ts:packShipment
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packing
        to: packed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/packing.ts:packShipment
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packed
        to: labelled
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:purchaseLabelForPackage
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: labelled
        to: packed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:voidLabelOfPackage
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: labelled
        to: manifested
        source: >-
          services-commerce:modules/shipping/services/fulfillment/handoff.ts:manifestShipment
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packed
        to: collected
        source: 'services-commerce:docs/migrations/shipping/README.md#D-P8S-14'
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: handed_to_carrier
        to: delivered
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: handed_to_carrier
        to: exception
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: handed_to_carrier
        to: returned_to_sender
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: open
        to: cancelled
        source: >-
          services-commerce:modules/shipping/services/fulfillment/shipment-creation.ts:cancelShipment
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: manifested
        to: cancelled
        source: >-
          services-commerce:modules/shipping/services/fulfillment/cancellation-fence.ts:cancelFencedShipmentLines
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: allocated
        to: released_to_warehouse
        source: >-
          services-commerce:modules/shipping/services/fulfillment/shipment-creation.ts:releaseShipment
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: released_to_warehouse
        to: picking
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:createPickListForWarehouse
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: picked
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:recordPickOnList
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: short
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:recordPickOnList
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: released_to_warehouse
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:cancelPickList
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: allocated
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: released_to_warehouse
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picked
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packing
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packed
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: labelled
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: manifested
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: short
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: cancellation_pending
        to: cancelled
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:cancelFencedLines
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-007
        from: open
        to: claimed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:claimPickList
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-007
        from: claimed
        to: completed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:completePickList
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-007
        from: open
        to: completed
        source: >-
          services-commerce:modules/shipping/services/persistence/pick-lists.ts:completePickList
          (open or claimed)
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-007
        from: open
        to: cancelled
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:cancelPickList
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
      - model: STATE-COM-FUL-007
        from: claimed
        to: cancelled
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:cancelPickList
        coverage: 'gap: FND-COM-FUL-067'
        scenarios: []
    permissions:
      - commerce.shipments.read
      - commerce.shipments.create
      - commerce.shipments.update
      - commerce.shipments.cancel
      - commerce.pick-lists.read
      - commerce.pick-lists.create
      - commerce.pick-lists.update
      - orders.orders.ship
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-004-01
      - INV-DOM-COM-FUL-004-02
      - INV-DOM-COM-FUL-004-07
      - INV-DOM-COM-FUL-004-09
  - id: FND-COM-FUL-068
    severity: medium
    statement: >-
      Detailed proof remains incomplete for purchase and follow carrier labels
      safely. Missing category cases, unmapped lifecycle edges and individual
      permission checks require follow-up; unbound scenarios remain proposals.
    affects:
      - CAP-COM-FUL-013
      - BR-CAP-COM-FUL-013-08
      - BR-CAP-COM-FUL-013-12
      - ATS-COM-FUL-013-03
      - ATS-COM-FUL-013-09
      - ATS-COM-FUL-013-11
      - INV-DOM-COM-FUL-004-01
      - INV-DOM-COM-FUL-004-02
      - INV-DOM-COM-FUL-004-07
      - INV-DOM-COM-FUL-004-09
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-013-buy-void-and-track-carrier-labels-without-buying-twice.md
    missing_categories:
      - rule
      - boundary
      - concurrency
      - invariant
    unproved_rules:
      - BR-CAP-COM-FUL-013-08
      - BR-CAP-COM-FUL-013-12
    unbound_scenarios:
      - ATS-COM-FUL-013-03
      - ATS-COM-FUL-013-09
      - ATS-COM-FUL-013-11
    transition_edges:
      - model: STATE-COM-FUL-005
        from: open
        to: released
        source: >-
          services-commerce:modules/shipping/services/fulfillment/shipment-creation.ts:releaseShipment
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: released
        to: picking
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:createPickListForWarehouse
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: picked
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:recordPickOnList
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picked
        to: packing
        source: >-
          services-commerce:modules/shipping/services/fulfillment/packing.ts:packShipment
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picked
        to: packed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/packing.ts:packShipment
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packing
        to: packed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/packing.ts:packShipment
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packed
        to: labelled
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:purchaseLabelForPackage
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: labelled
        to: packed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:voidLabelOfPackage
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: labelled
        to: manifested
        source: >-
          services-commerce:modules/shipping/services/fulfillment/handoff.ts:manifestShipment
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packed
        to: collected
        source: 'services-commerce:docs/migrations/shipping/README.md#D-P8S-14'
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: handed_to_carrier
        to: delivered
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: handed_to_carrier
        to: exception
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: handed_to_carrier
        to: returned_to_sender
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: open
        to: cancelled
        source: >-
          services-commerce:modules/shipping/services/fulfillment/shipment-creation.ts:cancelShipment
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: manifested
        to: cancelled
        source: >-
          services-commerce:modules/shipping/services/fulfillment/cancellation-fence.ts:cancelFencedShipmentLines
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: allocated
        to: released_to_warehouse
        source: >-
          services-commerce:modules/shipping/services/fulfillment/shipment-creation.ts:releaseShipment
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: released_to_warehouse
        to: picking
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:createPickListForWarehouse
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: picked
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:recordPickOnList
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: short
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:recordPickOnList
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: released_to_warehouse
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:cancelPickList
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: allocated
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: released_to_warehouse
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picked
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packing
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packed
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: labelled
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: manifested
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: short
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: cancellation_pending
        to: cancelled
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:cancelFencedLines
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: packed
        to: labelled
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:recordPurchaseOutcome,resolveLabelPurchase
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: packed
        to: packed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:purchaseLabelForPackage
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: labelled
        to: packed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:voidLabelOfPackage
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: labelled
        to: voided
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:voidLabelsOfShipment
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: labelled
        to: manifested
        source: >-
          services-commerce:modules/shipping/services/fulfillment/handoff.ts:manifestShipment
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: manifested
        to: handed_to_carrier
        source: >-
          services-commerce:modules/shipping/services/fulfillment/handoff.ts:handoffShipment
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: handed_to_carrier
        to: in_transit
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: in_transit
        to: delivered
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: in_transit
        to: exception
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: in_transit
        to: returned_to_sender
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: packed
        to: collected
        source: >-
          services-commerce:modules/shipping/services/fulfillment/handoff.ts:handoverShipment
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: packed
        to: voided
        source: >-
          services-commerce:modules/shipping/services/fulfillment/cancellation-fence.ts:cancelFencedShipmentLines
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: requested
        to: purchased
        source: >-
          services-commerce:modules/shipping/services/persistence/carrier-labels.ts:recordLabelOutcome
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: requested
        to: failed
        source: >-
          services-commerce:modules/shipping/services/persistence/carrier-labels.ts:recordLabelOutcome
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: purchased
        to: voided
        source: >-
          services-commerce:modules/shipping/services/persistence/carrier-labels.ts:recordLabelVoid
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: purchased
        to: void_failed
        source: >-
          services-commerce:modules/shipping/services/persistence/carrier-labels.ts:recordLabelVoid
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: void_failed
        to: voided
        source: >-
          services-commerce:modules/shipping/services/persistence/carrier-labels.ts:recordLabelVoid
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: void_failed
        to: void_failed
        source: >-
          services-commerce:modules/shipping/services/persistence/carrier-labels.ts:recordLabelVoid
        coverage: 'gap: FND-COM-FUL-068'
        scenarios: []
    permissions:
      - commerce.shipments.update
      - orders.shipments.printLabel
      - orders.shipments.voidLabel
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-004-01
      - INV-DOM-COM-FUL-004-02
      - INV-DOM-COM-FUL-004-07
      - INV-DOM-COM-FUL-004-09
  - id: FND-COM-FUL-069
    severity: medium
    statement: >-
      Detailed proof remains incomplete for record goods leaving with a carrier
      or collector. Missing category cases, unmapped lifecycle edges and
      individual permission checks require follow-up; unbound scenarios remain
      proposals.
    affects:
      - CAP-COM-FUL-014
      - BR-CAP-COM-FUL-014-10
      - INV-DOM-COM-FUL-001-12
      - INV-DOM-COM-FUL-004-01
      - INV-DOM-COM-FUL-004-02
      - INV-DOM-COM-FUL-004-07
      - INV-DOM-COM-FUL-004-09
      - INV-DOM-COM-FUL-005-12
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-014-hand-shipments-to-the-carrier-or-the-buyer-and-record-what.md
    missing_categories:
      - rule
      - transition
      - validation
      - edge
      - boundary
    unproved_rules:
      - BR-CAP-COM-FUL-014-10
    unbound_scenarios: []
    transition_edges:
      - model: STATE-COM-FUL-005
        from: open
        to: released
        source: >-
          services-commerce:modules/shipping/services/fulfillment/shipment-creation.ts:releaseShipment
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: released
        to: picking
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:createPickListForWarehouse
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: picked
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:recordPickOnList
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picked
        to: packing
        source: >-
          services-commerce:modules/shipping/services/fulfillment/packing.ts:packShipment
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picked
        to: packed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/packing.ts:packShipment
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packing
        to: packed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/packing.ts:packShipment
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packed
        to: labelled
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:purchaseLabelForPackage
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: labelled
        to: packed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:voidLabelOfPackage
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: labelled
        to: manifested
        source: >-
          services-commerce:modules/shipping/services/fulfillment/handoff.ts:manifestShipment
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packed
        to: collected
        source: 'services-commerce:docs/migrations/shipping/README.md#D-P8S-14'
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: handed_to_carrier
        to: delivered
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: handed_to_carrier
        to: exception
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: handed_to_carrier
        to: returned_to_sender
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: open
        to: cancelled
        source: >-
          services-commerce:modules/shipping/services/fulfillment/shipment-creation.ts:cancelShipment
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: manifested
        to: cancelled
        source: >-
          services-commerce:modules/shipping/services/fulfillment/cancellation-fence.ts:cancelFencedShipmentLines
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: allocated
        to: released_to_warehouse
        source: >-
          services-commerce:modules/shipping/services/fulfillment/shipment-creation.ts:releaseShipment
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: released_to_warehouse
        to: picking
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:createPickListForWarehouse
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: picked
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:recordPickOnList
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: short
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:recordPickOnList
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: released_to_warehouse
        source: >-
          services-commerce:modules/shipping/services/fulfillment/picking.ts:cancelPickList
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: allocated
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: released_to_warehouse
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picking
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: picked
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packing
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: packed
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: labelled
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: manifested
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: short
        to: cancellation_pending
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:fenceLinesForCancellation
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-005
        from: cancellation_pending
        to: cancelled
        source: >-
          services-commerce:modules/shipping/services/persistence/shipments.ts:cancelFencedLines
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: packed
        to: labelled
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:recordPurchaseOutcome,resolveLabelPurchase
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: packed
        to: packed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:purchaseLabelForPackage
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: labelled
        to: packed
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:voidLabelOfPackage
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: labelled
        to: voided
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:voidLabelsOfShipment
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: labelled
        to: manifested
        source: >-
          services-commerce:modules/shipping/services/fulfillment/handoff.ts:manifestShipment
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: manifested
        to: handed_to_carrier
        source: >-
          services-commerce:modules/shipping/services/fulfillment/handoff.ts:handoffShipment
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: handed_to_carrier
        to: in_transit
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: in_transit
        to: delivered
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: in_transit
        to: exception
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: in_transit
        to: returned_to_sender
        source: >-
          services-commerce:modules/shipping/services/fulfillment/labels.ts:trackPackage
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: packed
        to: collected
        source: >-
          services-commerce:modules/shipping/services/fulfillment/handoff.ts:handoverShipment
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: packed
        to: voided
        source: >-
          services-commerce:modules/shipping/services/fulfillment/cancellation-fence.ts:cancelFencedShipmentLines
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: requested
        to: purchased
        source: >-
          services-commerce:modules/shipping/services/persistence/carrier-labels.ts:recordLabelOutcome
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: requested
        to: failed
        source: >-
          services-commerce:modules/shipping/services/persistence/carrier-labels.ts:recordLabelOutcome
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: purchased
        to: voided
        source: >-
          services-commerce:modules/shipping/services/persistence/carrier-labels.ts:recordLabelVoid
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: purchased
        to: void_failed
        source: >-
          services-commerce:modules/shipping/services/persistence/carrier-labels.ts:recordLabelVoid
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: void_failed
        to: voided
        source: >-
          services-commerce:modules/shipping/services/persistence/carrier-labels.ts:recordLabelVoid
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-006
        from: void_failed
        to: void_failed
        source: >-
          services-commerce:modules/shipping/services/persistence/carrier-labels.ts:recordLabelVoid
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: held
        to: committed
        source: >-
          services-commerce:modules/inventory/db/inventory-allocations.table.ts
          (commerce_commit_claims)
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: held
        to: released
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:expireHolds
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: committed
        to: picked
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:pickUnitsOfLine
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: backordered
        to: committed
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:fillBackorders
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: picked
        to: shipped
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:shipUnits
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: committed
        to: released
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:releaseFencedUnitsOfLine
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: picked
        to: released
        source: >-
          services-commerce:docs/migrations/inventory/README.md (D-P7-24
          amendment of D-P8I-13)
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: backordered
        to: released
        source: >-
          services-commerce:modules/inventory/db/inventory-allocations.table.ts
          (commerce_release_claims)
        coverage: 'gap: FND-COM-FUL-069'
        scenarios: []
    permissions:
      - commerce.shipments.handoff
      - commerce.shipments.handover
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-001-12
      - INV-DOM-COM-FUL-004-01
      - INV-DOM-COM-FUL-004-02
      - INV-DOM-COM-FUL-004-07
      - INV-DOM-COM-FUL-004-09
  - id: FND-COM-FUL-070
    severity: medium
    statement: >-
      Detailed proof remains incomplete for process returned goods through
      inspection and disposition. Missing category cases, unmapped lifecycle
      edges and individual permission checks require follow-up; unbound
      scenarios remain proposals.
    affects:
      - CAP-COM-FUL-015
      - BR-CAP-COM-FUL-015-10
      - ATS-COM-FUL-015-08
      - ATS-COM-FUL-015-09
      - ATS-COM-FUL-015-10
      - INV-DOM-COM-FUL-004-01
      - INV-DOM-COM-FUL-004-02
      - INV-DOM-COM-FUL-004-07
      - INV-DOM-COM-FUL-004-09
      - INV-DOM-COM-FUL-005-12
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-015-receive-inspect-and-disposition-returned-goods.md
    missing_categories:
      - edge
      - failure
      - concurrency
    unproved_rules:
      - BR-CAP-COM-FUL-015-10
    unbound_scenarios:
      - ATS-COM-FUL-015-08
      - ATS-COM-FUL-015-09
      - ATS-COM-FUL-015-10
    transition_edges:
      - model: STATE-COM-FUL-008
        from: received
        to: inspected
        source: >-
          services-commerce:modules/shipping/services/returns/return-receiving.ts:inspectReturnReceipt
        coverage: 'gap: FND-COM-FUL-070'
        scenarios: []
      - model: STATE-COM-FUL-008
        from: received
        to: dispositioned
        source: >-
          services-commerce:modules/shipping/services/returns/return-receiving.ts:dispositionReturnReceipt
        coverage: 'gap: FND-COM-FUL-070'
        scenarios: []
    permissions:
      - commerce.return-receipts.read
      - commerce.return-receipts.create
      - commerce.return-receipts.update
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-004-01
      - INV-DOM-COM-FUL-004-02
      - INV-DOM-COM-FUL-004-07
      - INV-DOM-COM-FUL-004-09
  - id: FND-COM-FUL-071
    severity: medium
    statement: >-
      Detailed proof remains incomplete for organize warehouses and stock
      locations. Missing category cases, unmapped lifecycle edges and individual
      permission checks require follow-up; unbound scenarios remain proposals.
    affects:
      - CAP-COM-FUL-016
      - BR-CAP-COM-FUL-016-08
      - ATS-COM-FUL-016-06
      - ATS-COM-FUL-016-07
      - ATS-COM-FUL-016-09
      - INV-DOM-COM-FUL-005-12
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-016-keep-warehouses-and-stock-locations.md
    missing_categories:
      - transition
      - edge
      - failure
      - boundary
      - invariant
    unproved_rules:
      - BR-CAP-COM-FUL-016-08
    unbound_scenarios:
      - ATS-COM-FUL-016-06
      - ATS-COM-FUL-016-07
      - ATS-COM-FUL-016-09
    transition_edges: []
    permissions:
      - commerce.inventory.read
      - commerce.inventory.create
      - commerce.inventory.update
      - commerce.inventory.delete
    invariants_without_scenarios: []
  - id: FND-COM-FUL-072
    severity: medium
    statement: >-
      Detailed proof remains incomplete for keep stock movements and transfers
      accountable. Missing category cases, unmapped lifecycle edges and
      individual permission checks require follow-up; unbound scenarios remain
      proposals.
    affects:
      - CAP-COM-FUL-017
      - ATS-COM-FUL-017-08
      - ATS-COM-FUL-017-09
      - ATS-COM-FUL-017-10
      - ATS-COM-FUL-017-11
      - INV-DOM-COM-FUL-005-12
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-017-record-stock-that-comes-in-moves-and-goes-out.md
    missing_categories:
      - rule
      - transition
      - failure
      - boundary
      - concurrency
    unproved_rules: []
    unbound_scenarios:
      - ATS-COM-FUL-017-08
      - ATS-COM-FUL-017-09
      - ATS-COM-FUL-017-10
      - ATS-COM-FUL-017-11
    transition_edges:
      - model: STATE-COM-FUL-009
        from: held
        to: committed
        source: >-
          services-commerce:modules/inventory/db/inventory-allocations.table.ts
          (commerce_commit_claims)
        coverage: 'gap: FND-COM-FUL-072'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: held
        to: released
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:expireHolds
        coverage: 'gap: FND-COM-FUL-072'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: committed
        to: picked
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:pickUnitsOfLine
        coverage: 'gap: FND-COM-FUL-072'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: backordered
        to: committed
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:fillBackorders
        coverage: 'gap: FND-COM-FUL-072'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: picked
        to: shipped
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:shipUnits
        coverage: 'gap: FND-COM-FUL-072'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: committed
        to: released
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:releaseFencedUnitsOfLine
        coverage: 'gap: FND-COM-FUL-072'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: picked
        to: released
        source: >-
          services-commerce:docs/migrations/inventory/README.md (D-P7-24
          amendment of D-P8I-13)
        coverage: 'gap: FND-COM-FUL-072'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: backordered
        to: released
        source: >-
          services-commerce:modules/inventory/db/inventory-allocations.table.ts
          (commerce_release_claims)
        coverage: 'gap: FND-COM-FUL-072'
        scenarios: []
    permissions:
      - commerce.inventory.read
      - commerce.inventory.create
      - commerce.inventory.update
    invariants_without_scenarios: []
  - id: FND-COM-FUL-073
    severity: medium
    statement: >-
      Detailed proof remains incomplete for allocate stock and explain what
      buyers can obtain. Missing category cases, unmapped lifecycle edges and
      individual permission checks require follow-up; unbound scenarios remain
      proposals.
    affects:
      - CAP-COM-FUL-018
      - BR-CAP-COM-FUL-018-10
      - ATS-COM-FUL-018-11
      - ATS-COM-FUL-018-12
      - ATS-COM-FUL-018-13
      - ATS-COM-FUL-018-14
      - INV-DOM-COM-FUL-005-12
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-018-reserve-and-commit-stock-for-buyers-and-say-what-is.md
    missing_categories:
      - validation
      - permission
      - edge
      - boundary
    unproved_rules:
      - BR-CAP-COM-FUL-018-10
    unbound_scenarios:
      - ATS-COM-FUL-018-11
      - ATS-COM-FUL-018-12
      - ATS-COM-FUL-018-13
      - ATS-COM-FUL-018-14
    transition_edges:
      - model: STATE-COM-FUL-009
        from: held
        to: committed
        source: >-
          services-commerce:modules/inventory/db/inventory-allocations.table.ts
          (commerce_commit_claims)
        coverage: 'gap: FND-COM-FUL-073'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: held
        to: released
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:expireHolds
        coverage: 'gap: FND-COM-FUL-073'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: committed
        to: picked
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:pickUnitsOfLine
        coverage: 'gap: FND-COM-FUL-073'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: backordered
        to: committed
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:fillBackorders
        coverage: 'gap: FND-COM-FUL-073'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: picked
        to: shipped
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:shipUnits
        coverage: 'gap: FND-COM-FUL-073'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: committed
        to: released
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:releaseFencedUnitsOfLine
        coverage: 'gap: FND-COM-FUL-073'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: picked
        to: released
        source: >-
          services-commerce:docs/migrations/inventory/README.md (D-P7-24
          amendment of D-P8I-13)
        coverage: 'gap: FND-COM-FUL-073'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: backordered
        to: released
        source: >-
          services-commerce:modules/inventory/db/inventory-allocations.table.ts
          (commerce_release_claims)
        coverage: 'gap: FND-COM-FUL-073'
        scenarios: []
    permissions:
      - commerce.inventory.read
    invariants_without_scenarios: []
  - id: FND-COM-FUL-074
    severity: medium
    statement: >-
      Detailed proof remains incomplete for reconcile shelf counts and stock
      findings. Missing category cases, unmapped lifecycle edges and individual
      permission checks require follow-up; unbound scenarios remain proposals.
    affects:
      - CAP-COM-FUL-019
      - BR-CAP-COM-FUL-019-09
      - ATS-COM-FUL-019-07
      - ATS-COM-FUL-019-09
      - INV-DOM-COM-FUL-005-12
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-019-count-shelves-and-investigate-stock-findings.md
    missing_categories:
      - rule
      - edge
      - failure
      - concurrency
    unproved_rules:
      - BR-CAP-COM-FUL-019-09
    unbound_scenarios:
      - ATS-COM-FUL-019-07
      - ATS-COM-FUL-019-09
    transition_edges:
      - model: STATE-COM-FUL-009
        from: held
        to: committed
        source: >-
          services-commerce:modules/inventory/db/inventory-allocations.table.ts
          (commerce_commit_claims)
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: held
        to: released
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:expireHolds
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: committed
        to: picked
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:pickUnitsOfLine
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: backordered
        to: committed
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:fillBackorders
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: picked
        to: shipped
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:shipUnits
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: committed
        to: released
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:releaseFencedUnitsOfLine
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: picked
        to: released
        source: >-
          services-commerce:docs/migrations/inventory/README.md (D-P7-24
          amendment of D-P8I-13)
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: backordered
        to: released
        source: >-
          services-commerce:modules/inventory/db/inventory-allocations.table.ts
          (commerce_release_claims)
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
      - model: STATE-COM-FUL-010
        from: open
        to: completed
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-counts.ts:completeCount
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
      - model: STATE-COM-FUL-010
        from: open
        to: cancelled
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-counts.ts:cancelCount
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
      - model: STATE-COM-FUL-010
        from: open
        to: open
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-counts.ts:recordCountLines
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
      - model: STATE-COM-FUL-011
        from: open
        to: acknowledged
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-exceptions.ts:acknowledgeInventoryException
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
      - model: STATE-COM-FUL-011
        from: open
        to: resolved
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-exceptions.ts:resolveInventoryException
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
      - model: STATE-COM-FUL-011
        from: acknowledged
        to: resolved
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-exceptions.ts:resolveInventoryException
        coverage: 'gap: FND-COM-FUL-074'
        scenarios: []
    permissions:
      - commerce.inventory.read
      - commerce.inventory.create
      - commerce.inventory.update
    invariants_without_scenarios: []
  - id: FND-COM-FUL-075
    severity: medium
    statement: >-
      Detailed proof remains incomplete for import commerce history and
      reconcile source records. Missing category cases, unmapped lifecycle edges
      and individual permission checks require follow-up; unbound scenarios
      remain proposals.
    affects:
      - CAP-COM-FUL-020
      - BR-CAP-COM-FUL-020-01
      - BR-CAP-COM-FUL-020-13
      - ATS-COM-FUL-020-11
      - INV-DOM-COM-FUL-001-12
      - INV-DOM-COM-FUL-005-12
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/design/tests/ATS-COM-FUL-020-load-a-workspace-s-rhythm-1-0-commerce-records-and-check.md
    missing_categories:
      - rule
      - edge
      - concurrency
    unproved_rules:
      - BR-CAP-COM-FUL-020-01
      - BR-CAP-COM-FUL-020-13
    unbound_scenarios:
      - ATS-COM-FUL-020-11
    transition_edges:
      - model: STATE-COM-FUL-001
        from: pending
        to: eligible
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:openGate
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: blocked
        to: eligible
        source: >-
          services-commerce:modules/fulfillment/services/register/gate-evaluation.ts
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: eligible
        to: authorized
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:openGate
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: pending
        to: blocked
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordGateEvaluation,placeStaffHold
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: pending
        to: cancelled
        source: >-
          services-commerce:docs/migrations/obligation-register/README.md#D-P4-03
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: blocked
        to: cancelled
        source: >-
          services-commerce:docs/migrations/obligation-register/README.md#D-P4-03
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: eligible
        to: cancelled
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:OBLIGATION_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: authorized
        to: in_progress
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordObligationOutcome
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: authorized
        to: completed
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:recordObligationOutcome,completeObligationManually
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: in_progress
        to: failed
        source: >-
          services-commerce:modules/fulfillment/services/register/register-sweeper.ts:sweepRegister
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: failed
        to: resolved
        source: >-
          services-commerce:modules/fulfillment/services/register/obligation-interventions.ts:resolveObligationByStaff
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-001
        from: completed
        to: superseded
        source: >-
          services-commerce:modules/fulfillment/services/persistence/obligations.ts:OBLIGATION_TRANSITIONS
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: held
        to: committed
        source: >-
          services-commerce:modules/inventory/db/inventory-allocations.table.ts
          (commerce_commit_claims)
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: held
        to: released
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:expireHolds
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: committed
        to: picked
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:pickUnitsOfLine
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: backordered
        to: committed
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:fillBackorders
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: picked
        to: shipped
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:shipUnits
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: committed
        to: released
        source: >-
          services-commerce:modules/inventory/services/persistence/inventory-allocations.ts:releaseFencedUnitsOfLine
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: picked
        to: released
        source: >-
          services-commerce:docs/migrations/inventory/README.md (D-P7-24
          amendment of D-P8I-13)
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
      - model: STATE-COM-FUL-009
        from: backordered
        to: released
        source: >-
          services-commerce:modules/inventory/db/inventory-allocations.table.ts
          (commerce_release_claims)
        coverage: 'gap: FND-COM-FUL-075'
        scenarios: []
    permissions:
      - commerce.inventory.bulk
      - commerce.inventory.update
    invariants_without_scenarios:
      - INV-DOM-COM-FUL-001-12
  - id: FND-COM-FUL-076
    severity: low
    statement: >-
      The earlier cancellation scenario claims successful pre-departure
      cancellation from a test that only rejects cancellation after collection.
      The retained scenario now proves that refusal; successful cancellation has
      a separate proposed case.
    affects:
      - ATS-COM-FUL-012-06
      - ATS-COM-FUL-012-13
    kind: inconsistency
    source:
      - >-
        services-commerce:modules/shipping/tests/integration/services/fulfillment/shipping-flow.integration.spec.js#refuses
        a second handover (not packed any more) and the cancellation of a
        collected shipment
  - id: FND-COM-FUL-077
    severity: medium
    statement: >-
      Feature acceptance has proposed cases without a complete executable
      workflow. Capability-level bindings do not establish feature-wide
      execution or browser coverage.
    affects:
      - FAS-COM-FUL-01
      - FAS-COM-FUL-01-01
      - FAS-COM-FUL-01-04
      - FAS-COM-FUL-01-05
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/planning/acceptance/FAS-COM-FUL-01-delivery-rules-and-the-obligation-register.md
    unbound_scenarios:
      - FAS-COM-FUL-01-01
      - FAS-COM-FUL-01-04
      - FAS-COM-FUL-01-05
  - id: FND-COM-FUL-078
    severity: medium
    statement: >-
      Feature acceptance has proposed cases without a complete executable
      workflow. Capability-level bindings do not establish feature-wide
      execution or browser coverage.
    affects:
      - FAS-COM-FUL-02
      - FAS-COM-FUL-02-04
      - FAS-COM-FUL-02-05
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/planning/acceptance/FAS-COM-FUL-02-operations-queue-and-post-sale-follow-up.md
    unbound_scenarios:
      - FAS-COM-FUL-02-04
      - FAS-COM-FUL-02-05
  - id: FND-COM-FUL-079
    severity: medium
    statement: >-
      Feature acceptance has proposed cases without a complete executable
      workflow. Capability-level bindings do not establish feature-wide
      execution or browser coverage.
    affects:
      - FAS-COM-FUL-03
      - FAS-COM-FUL-03-02
      - FAS-COM-FUL-03-04
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/planning/acceptance/FAS-COM-FUL-03-shipping-and-warehouse-fulfilment.md
    unbound_scenarios:
      - FAS-COM-FUL-03-02
      - FAS-COM-FUL-03-04
  - id: FND-COM-FUL-080
    severity: medium
    statement: >-
      Feature acceptance has proposed cases without a complete executable
      workflow. Capability-level bindings do not establish feature-wide
      execution or browser coverage.
    affects:
      - FAS-COM-FUL-04
      - FAS-COM-FUL-04-02
      - FAS-COM-FUL-04-03
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/planning/acceptance/FAS-COM-FUL-04-stock-and-warehouses.md
    unbound_scenarios:
      - FAS-COM-FUL-04-02
      - FAS-COM-FUL-04-03
  - id: FND-COM-FUL-081
    severity: medium
    statement: >-
      Feature acceptance has proposed cases without a complete executable
      workflow. Capability-level bindings do not establish feature-wide
      execution or browser coverage.
    affects:
      - FAS-COM-FUL-05
      - FAS-COM-FUL-05-03
      - FAS-COM-FUL-05-04
    kind: coverage-gap
    source:
      - >-
        rhythm-v2-docs:specs/commerce/fulfillment/planning/acceptance/FAS-COM-FUL-05-rhythm-1-0-commerce-migration.md
    unbound_scenarios:
      - FAS-COM-FUL-05-03
      - FAS-COM-FUL-05-04
---

# Fulfillment Examination Findings and Product Questions

Findings distinguish observed defects, conflicting evidence, undocumented behavior and delivery debt. Product questions reserve decisions that determine the planning boundary or authority. Source locators are retained in frontmatter.

## Findings

| Id | Severity | Statement | Affects | Kind |
|---|---|---|---|---|
| `FND-COM-FUL-001` | high | The delivery-coordination and physical-goods milestones remain proposed, while the realignment document proposes new milestone numbering. Implementation and section walkthroughs do not establish Product acceptance for the module; capability intent remains proposed except where the staff-order decision supplies authority. | MOD-COM-FUL, OQ-COM-FUL-001 | inconsistency |
| `FND-COM-FUL-002` | medium | The staff-order plan still labels itself proposed even though the milestone index records approval and the milestone record says Andrew requested the recommended options. Its header conflicts with those authority records. | CAP-COM-FUL-002, CAP-COM-FUL-003, BR-CAP-COM-FUL-002-06 | inconsistency |
| `FND-COM-FUL-003` | medium | The Commerce acceptance seed inventory belongs to another console branch and is absent from the pinned commit. Its historical identifiers support supersession tracing but do not provide pinned executable proof. | MOD-COM-FUL | undocumented |
| `FND-COM-FUL-004` | high | The pinned console lacks the complete policy, shipping-configuration, warehouse, picking, packing, handover, receiving and stock-management workflows. Service operations establish those capabilities, while the available order cards provide only limited entry points. | CAP-COM-FUL-001, CAP-COM-FUL-010, CAP-COM-FUL-012, CAP-COM-FUL-013, CAP-COM-FUL-014, CAP-COM-FUL-015, CAP-COM-FUL-016, CAP-COM-FUL-017, CAP-COM-FUL-019, BR-CAP-COM-FUL-016-08 | debt |
| `FND-COM-FUL-005` | medium | Order 360 requests a label without manual tracking or cost details and offers no packing workflow. Its manual-carrier path therefore cannot complete ordinary label preparation from that card alone. | CAP-COM-FUL-012, CAP-COM-FUL-013, BR-CAP-COM-FUL-012-12 | inconsistency |
| `FND-COM-FUL-006` | medium | The acknowledgement dialog describes application receipt of an authorization, but the service records staff awareness of an exception. The screen explanation misstates the action's effect. | CAP-COM-FUL-008, BR-CAP-COM-FUL-008-03 | inconsistency |
| `FND-COM-FUL-007` | medium | Several displayed interventions lack service routes or an appropriate subject route. Choosing these unavailable actions cannot perform tender retry, mirror reconciliation, label void, return receipt or reservation release. | CAP-COM-FUL-008, BR-CAP-COM-FUL-008-08 | debt |
| `FND-COM-FUL-008` | high | Inventory retains stock and shipping problems in its own findings list, which Operations does not read. Operations also groups several declared kinds that no scoped producer raises, leaving warehouse problems outside the visible queue. | CAP-COM-FUL-008, CAP-COM-FUL-012, CAP-COM-FUL-013, CAP-COM-FUL-019, OQ-COM-FUL-004 | inconsistency |
| `FND-COM-FUL-009` | medium | The reconciler continues to skip scheduled amendments, overdue returns and inventory balances as later-phase work. Inventory now performs a separate nightly balance check, but the declared operations checks remain placeholders. | CAP-COM-FUL-009, BR-CAP-COM-FUL-009-10 | debt |
| `FND-COM-FUL-010` | high | The selected Platform audit provider logs intervention events instead of storing them in Platform because its writer is absent. Commerce's append-only intervention ledger remains the durable attribution record, and the declared Platform action list covers only part of Commerce's catalogue. | CAP-COM-FUL-005, CAP-COM-FUL-008, BR-CAP-COM-FUL-005-09 | undocumented |
| `FND-COM-FUL-011` | medium | The financial position provider supplies no approved-customer-terms fact. The console billed-on-terms rule supplies a separate approval path, leaving the general customer-terms policy setting without that Accounting evidence. | CAP-COM-FUL-002, BR-CAP-COM-FUL-002-13, BR-CAP-COM-FUL-002-06 | inconsistency |
| `FND-COM-FUL-012` | low | Some migration and policy comments retain the older order-type terminology even though their implementation now uses ordering profiles. These comments need alignment with the current selection model. | CAP-COM-FUL-001, CAP-COM-FUL-020 | inconsistency |
| `FND-COM-FUL-013` | low | Policy application is an explicit bounded service intervention rather than a tracked data job. It provides no job-level progress record for large scopes, and continuation limitations are recorded separately. | CAP-COM-FUL-001, BR-CAP-COM-FUL-001-08 | debt |
| `FND-COM-FUL-014` | medium | Terminate and allocation-release operations remain in the delivery vocabulary, but the worker acknowledges them with a warning instead of invoking an application. No scoped document currently produces those instructions. | CAP-COM-FUL-004, BR-CAP-COM-FUL-004-13 | undocumented |
| `FND-COM-FUL-015` | low | The obligation dead-letter queue has no consumer or implemented redrive workflow. Reconciliation measures its depth and does not turn that measurement into an operational finding. | CAP-COM-FUL-004, CAP-COM-FUL-009 | debt |
| `FND-COM-FUL-016` | medium | Carrier tracking runs only on request. Scheduled tracking, carrier notifications, stored label files, Accounting posting of carrier cost and returned-to-sender receiving are not established by the scoped implementation. | CAP-COM-FUL-013, CAP-COM-FUL-015, BR-CAP-COM-FUL-013-12 | debt |
| `FND-COM-FUL-017` | medium | The shipping record reports that a live UPS call was not tested and that the deployed platform transport was unconfigured. Local gateway and scripted-carrier tests establish fixture behavior without establishing live carrier operation. | CAP-COM-FUL-011, CAP-COM-FUL-013 | undocumented |
| `FND-COM-FUL-018` | medium | Return disposition rejects replacement while replacement obligations are unavailable. Exchanges therefore remain outside the supported physical return outcome. | CAP-COM-FUL-015, BR-CAP-COM-FUL-015-07 | debt |
| `FND-COM-FUL-019` | medium | Purchasing and cost records are registered with Orders even though stock transfer, shipment departure, return disposition and inventory reconciliation invoke cost behavior. Product needs to settle the ownership boundary before design divides these coupled operations. | CAP-COM-FUL-014, CAP-COM-FUL-017, CAP-COM-FUL-019, OQ-COM-FUL-002 | inconsistency |
| `FND-COM-FUL-020` | low | Ten declared permissions have no requiring route: the bulk permissions for policies, zones, strategies, accounts, shipments, pick lists and return receipts, plus deletion of shipments, pick lists and return receipts. Permission declaration does not establish an available operation. | MOD-COM-FUL | debt |
| `FND-COM-FUL-021` | low | The register's stale-work and acknowledgement passes run through the Orders checkout sweep. Scheduling responsibility and specification ownership therefore cross the registered module boundary. | CAP-COM-FUL-002, CAP-COM-FUL-004 | inconsistency |
| `FND-COM-FUL-022` | medium | Policy resolution does not use the contract's tender-requirement default selection. An ordering profile without its own configured policy falls back to workspace or built-in full-payment behavior instead. | CAP-COM-FUL-001 | undocumented |
| `FND-COM-FUL-023` | low | The operations module declares the idempotency ledger used across Commerce. Its physical placement does not establish exclusive operations ownership of request replay. | CAP-COM-FUL-008 | debt |
| `FND-COM-FUL-024` | low | Operations loads no more than 1,000 findings into a view and then searches and sorts that collection locally. Service responses do not expose the total or perform those search and sorting choices. | CAP-COM-FUL-008, BR-CAP-COM-FUL-008-10 | debt |
| `FND-COM-FUL-025` | medium | Order 360 exposes recovery, resolution, hold release and override, while approval, hold placement and manual completion remain service-only. Staff cannot assume every intervention exists on the delivery card. | CAP-COM-FUL-005, BR-CAP-COM-FUL-005-10 | inconsistency |
| `FND-COM-FUL-026` | low | The module registry now names the Operations components, adapters and authorization files reached from its owned page. The corrected scope distinguishes that page from Order 360, whose delivery and shipment cards are hosted evidence. | MOD-COM-FUL | undocumented |
| `FND-COM-FUL-027` | low | No pinned browser test proves the complete module journeys. Service end-to-end tests and console library tests provide partial evidence, and the required browser acceptance scenario remains proposed. | JNY-COM-FUL-001, JNY-COM-FUL-002, JNY-COM-FUL-003, JNY-COM-FUL-004 | debt |
| `FND-COM-FUL-028` | medium | The data-job workflow loads collections owned by several Commerce modules under their collection authorities. Only warehouse, location and stock records are clearly within this module's physical-stock ownership, leaving import ownership for Product to settle. | CAP-COM-FUL-020, OQ-COM-FUL-003 | undocumented |
| `FND-COM-FUL-029` | medium | The console intervention rule, shipment-permission rule and in-flight manual-label resolution rule retain unbound proposed acceptance work. Existing tests do not establish all their stated outcomes, and fractional rounding and the complete browser workflow add further proposed proof. | CAP-COM-FUL-005, CAP-COM-FUL-012, CAP-COM-FUL-013 | debt |
| `FND-COM-FUL-030` | medium | The requested authoring brief is absent from the starting documentation commit. Examination cannot establish additional scope or decisions from that missing input. | MOD-COM-FUL | undocumented |
| `FND-COM-FUL-031` | high | Stale-obligation recovery reads bounded pages and excludes blocked dependents, so it does not guarantee recovery within ten minutes or recover every failed prerequisite settlement. Policy application repeatedly reads its first pending page without a cursor, allowing unchanged entries to obstruct examination of later entries. | CAP-COM-FUL-001, CAP-COM-FUL-002, CAP-COM-FUL-003 | defect |
| `FND-COM-FUL-032` | high | The draft conflates some metrics, fixtures and workflow outcomes with stronger evidence. Direct checks show no dead-letter exception, earlier blocked-billing findings and a reversal backstop without cancellation-document inspection; deferred cost fixtures and library tests also do not prove actual costing or complete browser behavior. | CAP-COM-FUL-009, CAP-COM-FUL-014, JNY-COM-FUL-001, JNY-COM-FUL-002 | inconsistency |
| `FND-COM-FUL-033` | medium | Percentage eligibility rounds upward in code, while the cited unit examples have integral thresholds. The proposed fractional-boundary scenario needs a new executable test before its proof can be relied on. | BR-CAP-COM-FUL-002-14, ATS-COM-FUL-002-10 | debt |
| `FND-COM-FUL-034` | high | After authorization, a physical unit's delivery waits in progress under a 24-hour acknowledgement deadline. The register sweep re-sends it once and fails it as acknowledgement lost at the next deadline. Goods still in the warehouse after about two days (a backorder, a slow second wave) therefore fail delivery, and the handoff refuses them until staff re-authorize. Inferred from the code; no test drives a unit past two deadlines. | WF-COM-FUL-003, WF-COM-FUL-012, STATE-COM-FUL-001, CAP-COM-FUL-004, CAP-COM-FUL-012, OQ-COM-FUL-005 | defect |
| `FND-COM-FUL-035` | medium | Receiving and disposition commit the warehouse's rows and then run the return document's money step. If that step fails, nothing retries it: a repeated receipt returns the recorded one, a repeated disposition is refused, and the reconciler's returns check is skipped. A dispositioned return can be left without its credit memo or refund, and no finding is raised. | WF-COM-FUL-014, CAP-COM-FUL-015, BR-CAP-COM-FUL-015-08 | defect |
| `FND-COM-FUL-036` | medium | The Create Shipment dialog asks for per-line quantities, a carrier, the ship-to, a ship date, tracking, a weight and whether to e-mail the customer. Its request carries only the chosen lines and the notes. The service ships every committed unit of each chosen line from one warehouse with the order's own carrier and address, and the other values are dropped without saying so. | SCR-COM-FUL-004, CAP-COM-FUL-012 | inconsistency |
| `FND-COM-FUL-037` | medium | Only the obligation lifecycle is guarded by the database. Shipment, shipment line, parcel, pick list, return receipt, allocation, count and finding states are checked by the workflows and by conditional updates. A write outside those workflows could move them in ways their state models forbid. | STATE-COM-FUL-005, STATE-COM-FUL-006, STATE-COM-FUL-007, STATE-COM-FUL-008, STATE-COM-FUL-009, STATE-COM-FUL-010 | debt |
| `FND-COM-FUL-038` | medium | The intervention ledger and the operational exceptions are declared by the fulfillment module but are also written by Orders (a void, cancellation, amendment and return approvals, entitlement grants, a staff-applied promotion) and by the operations module. No contract names who may write them or which vocabulary each writer owns. | DOM-COM-FUL-001, DOM-COM-FUL-003, ADR-COM-FUL-001, OQ-COM-FUL-006 | undocumented |
| `FND-COM-FUL-039` | low | The module asks no model a question, so it has no inference directory. The conventions require the module charter to say so in one sentence, and the approved charter does not; adding it is a planning correction. | MOD-COM-FUL | undocumented |
| `FND-COM-FUL-040` | medium | The architecture package and the Platform standards the code follows live in a repository this draft could not read. The design names the standard each mechanism follows from the code's own references (queued work, jobs, persistence, indexing, row-level security, time), and the verification pass should confirm them against the standards themselves. | ADR-COM-FUL-003, ADR-COM-FUL-004, ADR-COM-FUL-005, ADR-COM-FUL-013, ADR-COM-FUL-020 | undocumented |
| `FND-COM-FUL-041` | low | The intervention dialog says Release Hold "releases the held stock or seats so they can be sold again". On an obligation the action releases a staff hold on delivery and moves no stock. | SCR-COM-FUL-001, SCR-COM-FUL-002, CAP-COM-FUL-005 | inconsistency |
| `FND-COM-FUL-042` | low | No module of this area publishes change events. Other applications learn about delivery through the calls they receive, Platform's record history sees none of these records, and the register's history is kept in Commerce's own append-only logs and the order's history. | SVC-COM-FUL-fulfillment, SVC-COM-FUL-shipping, SVC-COM-FUL-inventory, ADR-COM-FUL-022 | debt |
| `FND-COM-FUL-043` | low | A carrier's live rate at checkout is asked from the workspace's first active warehouse, with the whole weight as one parcel. The shipment may later leave from another warehouse in several parcels, so the charge a buyer pays and the carrier's cost can differ. | WF-COM-FUL-010, CAP-COM-FUL-011 | undocumented |
| `FND-COM-FUL-044` | low | The draft inferred the four health operation names from another module. Examination of the installed shared route factory confirms those names and public access; this evidence gap is closed. | SVC-COM-FUL-fulfillment, SVC-COM-FUL-shipping, SVC-COM-FUL-inventory, SVC-COM-FUL-operations | undocumented |

| `FND-COM-FUL-045` | medium | The parcel model invents a label-requested parcel state. Purchase intent belongs to the carrier-label attempt, while the parcel remains packed until purchase succeeds. | STATE-COM-FUL-006, WF-COM-FUL-011 | inconsistency |
| `FND-COM-FUL-046` | high | Delivery outcomes commit before some history, exception and enforcement writes. Failure afterwards can leave a terminal obligation without those records, and queue redelivery treats it as stale. Re-authorizing a failed enforce obligation also leaves its enforcement failed, where a completed outcome cannot settle it. | WF-COM-FUL-003, STATE-COM-FUL-002 | defect |
| `FND-COM-FUL-047` | high | Handoff rejects matching obligations outside the in-flight states but does not compare their count or unit indexes with every allocation being shipped. Missing obligation rows can therefore escape that check; the design must not promise complete authorization coverage from this function alone. | DOM-COM-FUL-004, WF-COM-FUL-012, BR-CAP-COM-FUL-014-02 | defect |
| `FND-COM-FUL-048` | medium | Complete-payload validation is a proposed design extension. Shipping replacement schemas require identity, version and active status but retain optional properties, so the draft incorrectly describes every incomplete replacement as refused. | ADR-COM-FUL-019, SVC-COM-FUL-shipping | inconsistency |
| `FND-COM-FUL-049` | medium | Several draft workflows promise recovery within ten minutes or continuation on repeated policy application. The planning layer already limits recovery to bounded pending scans and records policy application rereading its first page; the design now reflects those limits. | WF-COM-FUL-001, WF-COM-FUL-002, WF-COM-FUL-004, WF-COM-FUL-008 | inconsistency |
| `FND-COM-FUL-050` | medium | The dispatch decision claimed confirmed authority from a Platform standard that neither draft nor examiner can inspect in the available repositories. Code establishes the mechanism, so its design intent is proposed pending an accessible authority record. | ADR-COM-FUL-004, FND-COM-FUL-040 | undocumented |
| `FND-COM-FUL-051` | high | Pick-list creation checks for existing open-list membership before insertion. Database uniqueness applies within each list, so concurrent creations can include the same shipment line on different live lists; the draft exclusion guarantee is stronger than the implementation. | WF-COM-FUL-010, STATE-COM-FUL-007, BR-CAP-COM-FUL-012-04 | defect |
| `FND-COM-FUL-052` | high | Enforcement creation commits before dispatch or staff-review creation. Event redelivery skips an enforcement that already exists, so a failure between those writes can strand a pending enforcement without its instruction or review finding. | WF-COM-FUL-005, SVC-COM-FUL-fulfillment | defect |

| `FND-COM-FUL-053` | medium | Delivery and operations interventions retain local records, but their selected shared audit provider only logs the event; it supplies no durable publication to the shared audit store. | `CAP-COM-FUL-001`, `CAP-COM-FUL-005`, `CAP-COM-FUL-006`, `CAP-COM-FUL-007`, `CAP-COM-FUL-008`, `WF-COM-FUL-008`, `WF-COM-FUL-009`, `SVC-COM-FUL-fulfillment`, `SVC-COM-FUL-operations` | control-gap |
| `FND-COM-FUL-054` | high | A delivery outcome can commit before its history and follow-up writes; repeated callbacks skip the applied outcome and do not reconstruct all omitted records, leaving durable work without complete recovery. | `CAP-COM-FUL-004`, `WF-COM-FUL-003`, `SVC-COM-FUL-fulfillment` | control-gap |
| `FND-COM-FUL-055` | high | Pick-list creation checks existing live-list membership before insertion without excluding another concurrent creation; the same shipment line can enter two active lists without a conflict. | `CAP-COM-FUL-012`, `WF-COM-FUL-010`, `SVC-COM-FUL-shipping` | control-gap |
| `FND-COM-FUL-056` | medium | Detailed proof remains incomplete for choose delivery conditions for sold items. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-001`, `ATS-COM-FUL-001-08`, `ATS-COM-FUL-001-10`, `ATS-COM-FUL-001-11` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-057` | medium | Detailed proof remains incomplete for authorize delivery from current order facts. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-002`, `BR-CAP-COM-FUL-002-08`, `BR-CAP-COM-FUL-002-13`, `ATS-COM-FUL-002-10`, `ATS-COM-FUL-002-11`, `ATS-COM-FUL-002-12`, `ATS-COM-FUL-002-15` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-058` | medium | Detailed proof remains incomplete for protect a member-priced purchase until its membership arrives. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-003`, `BR-CAP-COM-FUL-003-08`, `ATS-COM-FUL-003-07` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-059` | medium | Detailed proof remains incomplete for carry authorized work to its delivering application. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-004`, `BR-CAP-COM-FUL-004-12`, `BR-CAP-COM-FUL-004-13`, `ATS-COM-FUL-004-13` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-060` | medium | Detailed proof remains incomplete for understand and intervene in an order's delivery. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-005`, `BR-CAP-COM-FUL-005-09`, `ATS-COM-FUL-005-07`, `ATS-COM-FUL-005-08`, `ATS-COM-FUL-005-09`, `ATS-COM-FUL-005-11` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-061` | medium | Detailed proof remains incomplete for handle financial reversals after delivery. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-006`, `BR-CAP-COM-FUL-006-05`, `BR-CAP-COM-FUL-006-11` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-062` | medium | Detailed proof remains incomplete for complete the financial work requested by a post-sale document. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-007`, `BR-CAP-COM-FUL-007-07`, `BR-CAP-COM-FUL-007-12`, `ATS-COM-FUL-007-09` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-063` | medium | Detailed proof remains incomplete for review and resolve operations findings. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-008`, `BR-CAP-COM-FUL-008-05`, `BR-CAP-COM-FUL-008-09`, `BR-CAP-COM-FUL-008-10`, `BR-CAP-COM-FUL-008-11`, `ATS-COM-FUL-008-06`, `ATS-COM-FUL-008-07`, `ATS-COM-FUL-008-09`, `ATS-COM-FUL-008-12` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-064` | medium | Detailed proof remains incomplete for detect stalled and inconsistent order work. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-009`, `BR-CAP-COM-FUL-009-06`, `BR-CAP-COM-FUL-009-08`, `BR-CAP-COM-FUL-009-10` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-065` | medium | Detailed proof remains incomplete for configure shipping coverage and collection options. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-010`, `BR-CAP-COM-FUL-010-10`, `ATS-COM-FUL-010-06`, `ATS-COM-FUL-010-07`, `ATS-COM-FUL-010-08` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-066` | medium | Detailed proof remains incomplete for quote shipping and pickup choices for a cart. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-011`, `ATS-COM-FUL-011-10` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-067` | medium | Detailed proof remains incomplete for prepare an order's goods for dispatch. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-012`, `BR-CAP-COM-FUL-012-07`, `BR-CAP-COM-FUL-012-10`, `BR-CAP-COM-FUL-012-12`, `ATS-COM-FUL-012-05`, `ATS-COM-FUL-012-08`, `ATS-COM-FUL-012-13` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-068` | medium | Detailed proof remains incomplete for purchase and follow carrier labels safely. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-013`, `BR-CAP-COM-FUL-013-08`, `BR-CAP-COM-FUL-013-12`, `ATS-COM-FUL-013-03`, `ATS-COM-FUL-013-09`, `ATS-COM-FUL-013-11` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-069` | medium | Detailed proof remains incomplete for record goods leaving with a carrier or collector. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-014`, `BR-CAP-COM-FUL-014-10` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-070` | medium | Detailed proof remains incomplete for process returned goods through inspection and disposition. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-015`, `BR-CAP-COM-FUL-015-10`, `ATS-COM-FUL-015-08`, `ATS-COM-FUL-015-09`, `ATS-COM-FUL-015-10` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-071` | medium | Detailed proof remains incomplete for organize warehouses and stock locations. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-016`, `BR-CAP-COM-FUL-016-08`, `ATS-COM-FUL-016-06`, `ATS-COM-FUL-016-07`, `ATS-COM-FUL-016-09` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-072` | medium | Detailed proof remains incomplete for keep stock movements and transfers accountable. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-017`, `ATS-COM-FUL-017-08`, `ATS-COM-FUL-017-09`, `ATS-COM-FUL-017-10`, `ATS-COM-FUL-017-11` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-073` | medium | Detailed proof remains incomplete for allocate stock and explain what buyers can obtain. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-018`, `BR-CAP-COM-FUL-018-10`, `ATS-COM-FUL-018-11`, `ATS-COM-FUL-018-12`, `ATS-COM-FUL-018-13`, `ATS-COM-FUL-018-14` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-074` | medium | Detailed proof remains incomplete for reconcile shelf counts and stock findings. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-019`, `BR-CAP-COM-FUL-019-09`, `ATS-COM-FUL-019-07`, `ATS-COM-FUL-019-09` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-075` | medium | Detailed proof remains incomplete for import commerce history and reconcile source records. Missing category cases, unmapped lifecycle edges and individual permission checks require follow-up; unbound scenarios remain proposals. | `CAP-COM-FUL-020`, `BR-CAP-COM-FUL-020-01`, `BR-CAP-COM-FUL-020-13`, `ATS-COM-FUL-020-11` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-076` | low | The earlier cancellation scenario claims successful pre-departure cancellation from a test that only rejects cancellation after collection. The retained scenario now proves that refusal; successful cancellation has a separate proposed case. | `ATS-COM-FUL-012-06`, `ATS-COM-FUL-012-13` | Frontmatter evidence | inconsistency |
| `FND-COM-FUL-077` | medium | Feature acceptance has proposed cases without a complete executable workflow. Capability-level bindings do not establish feature-wide execution or browser coverage. | `FAS-COM-FUL-01`, `FAS-COM-FUL-01-01`, `FAS-COM-FUL-01-04`, `FAS-COM-FUL-01-05` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-078` | medium | Feature acceptance has proposed cases without a complete executable workflow. Capability-level bindings do not establish feature-wide execution or browser coverage. | `FAS-COM-FUL-02`, `FAS-COM-FUL-02-04`, `FAS-COM-FUL-02-05` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-079` | medium | Feature acceptance has proposed cases without a complete executable workflow. Capability-level bindings do not establish feature-wide execution or browser coverage. | `FAS-COM-FUL-03`, `FAS-COM-FUL-03-02`, `FAS-COM-FUL-03-04` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-080` | medium | Feature acceptance has proposed cases without a complete executable workflow. Capability-level bindings do not establish feature-wide execution or browser coverage. | `FAS-COM-FUL-04`, `FAS-COM-FUL-04-02`, `FAS-COM-FUL-04-03` | Frontmatter evidence | coverage-gap |
| `FND-COM-FUL-081` | medium | Feature acceptance has proposed cases without a complete executable workflow. Capability-level bindings do not establish feature-wide execution or browser coverage. | `FAS-COM-FUL-05`, `FAS-COM-FUL-05-03`, `FAS-COM-FUL-05-04` | Frontmatter evidence | coverage-gap |

## Open Questions

| Id | Question | Why It Matters | Options | Recommendation | Affects |
|---|---|---|---|---|---|
| `OQ-COM-FUL-001` | Which section verdicts or milestone decisions should confirm this module's delivery and warehouse rules? | Design needs a reliable distinction between observed implementation and approved product behavior. | Confirm section verdict coverage; approve the owning milestone plans; or decide rule-by-rule in a module walkthrough. | The product should record rule-level decisions in a walkthrough and carry them into the owning plans. | MOD-COM-FUL |
| `OQ-COM-FUL-002` | Where should purchasing and inventory costing be owned in the specification? | Physical stock operations and monetary relief interact within the same transaction boundaries. | Move them into fulfillment; retain Orders ownership with an explicit contract; or establish a separate purchasing and costing module. | The product should group purchasing and costing with stock unless a deliberate separate boundary is approved. | CAP-COM-FUL-014, CAP-COM-FUL-017, CAP-COM-FUL-019 |
| `OQ-COM-FUL-003` | Should each migration import belong to the module owning the loaded collection? | A shared data-job workflow currently spans several record owners and risks duplicating product facts. | Keep all imports here; assign collection-specific behavior to its owner; or establish a Commerce migration module. | The product should specify each import with its record owner and retain Platform ownership of the shared engine. | CAP-COM-FUL-020 |
| `OQ-COM-FUL-004` | How should staff discover warehouse and carrier findings alongside order problems? | The current Operations collection does not include inventory findings. | Read both finding lists in one queue; build a warehouse queue; or keep warehouse investigation service-only. | The product should provide a shared attention workflow with a warehouse filter. | CAP-COM-FUL-008, CAP-COM-FUL-019 |
| `OQ-COM-FUL-005` | How long may a physical unit wait in the warehouse before its delivery is treated as lost? | Today a backordered or slow unit fails its delivery after about two days, and staff must re-authorize it before the goods can leave. | Keep the deadline and the staff re-authorization; let the merchandise application renew the deadline while the unit is waiting in the warehouse; or exempt physical units from the acknowledgement deadline and rely on warehouse findings. | The product should exempt physical units that are still on the shelf from the acknowledgement deadline and raise a warehouse finding for an overdue shipment instead. | CAP-COM-FUL-004, CAP-COM-FUL-012, FND-COM-FUL-034 |
| `OQ-COM-FUL-006` | Which module owns the intervention ledger and the operational exceptions that several Commerce modules write? | One ledger serves every staff intervention in Commerce. Until its owner and its writers are named, a change made for one module can break another's history. | Keep both in Fulfillment and name every writer in its contract; move them to an Operations module that owns the queue and the reconciler; or give each module its own ledger and read them together. | The product should keep them in Fulfillment and record each writing module and its intervention kinds in the service contract. | DOM-COM-FUL-001, DOM-COM-FUL-003, FND-COM-FUL-038 |
| `OQ-COM-FUL-007` | Should the policy, shipping configuration, warehouse, picking, packing, receiving and stock screens be specified now, before any exists in the console? | The design layer can describe only the screens that exist. Warehouse and administrator journeys run through service operations alone. | Specify them now from the service contracts; wait for a ticket that builds each; or keep them service-only. | The product should specify them when a ticket builds them, from the service contracts, with v0 for the new screens. | CAP-COM-FUL-001, CAP-COM-FUL-010, CAP-COM-FUL-012, CAP-COM-FUL-015, CAP-COM-FUL-016, CAP-COM-FUL-019, FND-COM-FUL-004 |
