{
  "version": 1,
  "synthetic": true,
  "frozen_at": "2026-07-22",
  "question": "Which behavior and owner must move together when this business rule changes?",
  "owners": {
    "ordering": "Order Product and Engineering",
    "pricing": "Pricing Product and Engineering",
    "fulfilment": "Fulfilment Operations and Engineering",
    "payments": "Payments Product and Engineering",
    "platform": "Application Platform",
    "unresolved": null
  },
  "components": [
    { "id": "order-http", "layer": "api", "entity": "order", "capability": "ordering", "data_owner": "ordering" },
    { "id": "cancel-order", "layer": "application", "entity": "order", "capability": "ordering", "data_owner": "ordering" },
    { "id": "order-policy", "layer": "domain", "entity": "order", "capability": "ordering", "data_owner": "ordering" },
    { "id": "orders-store", "layer": "persistence", "entity": "order", "capability": "ordering", "data_owner": "ordering" },
    { "id": "quote-http", "layer": "api", "entity": "product", "capability": "pricing", "data_owner": "pricing" },
    { "id": "calculate-quote", "layer": "application", "entity": "promotion", "capability": "pricing", "data_owner": "pricing" },
    { "id": "pricing-policy", "layer": "domain", "entity": "promotion", "capability": "pricing", "data_owner": "pricing" },
    { "id": "pricing-store", "layer": "persistence", "entity": "product", "capability": "pricing", "data_owner": "pricing" },
    { "id": "shipment-http", "layer": "api", "entity": "shipment", "capability": "fulfilment", "data_owner": "fulfilment" },
    { "id": "allocate-shipment", "layer": "application", "entity": "shipment", "capability": "fulfilment", "data_owner": "fulfilment" },
    { "id": "allocation-policy", "layer": "domain", "entity": "shipment", "capability": "fulfilment", "data_owner": "fulfilment" },
    { "id": "fulfilment-store", "layer": "persistence", "entity": "shipment", "capability": "fulfilment", "data_owner": "fulfilment" },
    { "id": "payment-webhook", "layer": "api", "entity": "payment", "capability": "payments", "data_owner": "payments" },
    { "id": "process-refund", "layer": "application", "entity": "payment", "capability": "payments", "data_owner": "payments" },
    { "id": "refund-policy", "layer": "domain", "entity": "payment", "capability": "payments", "data_owner": "payments" },
    { "id": "payments-store", "layer": "persistence", "entity": "payment", "capability": "payments", "data_owner": "payments" }
  ],
  "candidate_partitions": [
    { "id": "technical-layers", "basis": "layer", "state": "candidate", "defined_from": "discovery" },
    { "id": "entity-crud", "basis": "entity", "state": "candidate", "defined_from": "discovery" },
    { "id": "business-capabilities", "basis": "capability", "state": "candidate", "defined_from": "discovery" },
    { "id": "undivided-application", "basis": "application", "state": "current", "defined_from": "discovery" }
  ],
  "coupling_edges": [
    { "id": "EDGE-01", "from": "order-policy", "to": "orders-store", "kind": "transactional", "state": "current", "evidence": ["CHG-01", "CHG-08", "CHG-15"], "owner": "ordering" },
    { "id": "EDGE-02", "from": "order-policy", "to": "allocation-policy", "kind": "semantic", "state": "current", "evidence": ["CHG-06", "CHG-23"], "owner": "unresolved" },
    { "id": "EDGE-03", "from": "cancel-order", "to": "allocate-shipment", "kind": "temporal", "state": "current", "evidence": ["CHG-23"], "owner": "unresolved" },
    { "id": "EDGE-04", "from": "orders-store", "to": "payments-store", "kind": "data", "state": "current", "evidence": ["CHG-07", "CHG-16"], "owner": "unresolved" },
    { "id": "EDGE-05", "from": "cancel-order", "to": "process-refund", "kind": "release", "state": "current", "evidence": ["CHG-07", "CHG-16"], "owner": "unresolved" },
    { "id": "EDGE-06", "from": "cancel-order", "to": "allocate-shipment", "kind": "operational", "state": "current", "evidence": ["CHG-06", "CHG-23"], "owner": "unresolved" },
    { "id": "EDGE-07", "from": "pricing-policy", "to": "allocation-policy", "kind": "semantic", "state": "unresolved", "evidence": ["CHG-18"], "owner": "unresolved" }
  ],
  "boundary_readiness": [
    { "capability": "ordering", "state": "as_is", "current_boundary": "module", "semantic_owner": "ordering", "data_owner": "ordering", "build_test_owner": "ordering", "independent_release": false, "independent_scaling": false, "failure_containment": false, "on_call_owner": "unresolved", "decision": "module", "missing_evidence": ["independent release need", "separate on-call owner"] },
    { "capability": "pricing", "state": "as_is", "current_boundary": "module", "semantic_owner": "pricing", "data_owner": "pricing", "build_test_owner": "pricing", "independent_release": false, "independent_scaling": false, "failure_containment": false, "on_call_owner": "unresolved", "decision": "module", "missing_evidence": ["independent release need", "failure-containment need", "separate on-call owner"] },
    { "capability": "fulfilment", "state": "as_is", "current_boundary": "module", "semantic_owner": "fulfilment", "data_owner": "fulfilment", "build_test_owner": "fulfilment", "independent_release": false, "independent_scaling": true, "failure_containment": false, "on_call_owner": "fulfilment", "decision": "module", "missing_evidence": ["independent release need", "failure-containment contract"] },
    { "capability": "payments", "state": "as_is", "current_boundary": "module", "semantic_owner": "payments", "data_owner": "payments", "build_test_owner": "payments", "independent_release": true, "independent_scaling": false, "failure_containment": true, "on_call_owner": "payments", "decision": "service-candidate", "missing_evidence": ["distributed transaction and latency comparison in SVC-02"] }
  ],
  "candidate_dispositions": [
    { "candidate": "technical-layers", "status": "rejected", "reason": "Business changes cross layers and split atomic capability transactions.", "evidence": ["CHG-01", "CHG-03", "CHG-04", "CHG-19", "CHG-21", "CHG-22"] },
    { "candidate": "entity-crud", "status": "rejected", "reason": "Promotion capacity is one Pricing invariant split between Product and Promotion entities.", "evidence": ["CHG-09"] },
    { "candidate": "business-capabilities", "status": "selected-cohesion", "reason": "It preserves atomic invariants and explains discovery and holdout changes while retaining legitimate cross-capability workflows.", "evidence": ["CHG-01", "CHG-02", "CHG-03", "CHG-04", "CHG-19", "CHG-20", "CHG-21", "CHG-22", "CHG-23"] },
    { "candidate": "undivided-application", "status": "control", "reason": "It crosses no internal boundary but provides no independent ownership or release seam.", "evidence": ["CHG-06", "CHG-07", "CHG-16", "CHG-23"] }
  ],
  "changes": [
    { "id": "CHG-01", "date": "2026-01-08", "set": "discovery", "kind": "business", "reason": "Refuse cancellation after warehouse handoff.", "before": "Handoff does not affect cancellation.", "after": "Handed-off orders are refused.", "components": ["order-http", "cancel-order", "order-policy", "orders-store"], "decisions": ["cancellation-eligibility"], "reads": ["orders"], "writes": ["orders"], "transaction": "single-order", "effects": ["cancellation-refused"], "decision_owner": "ordering", "release": "order behavior", "source": "synthetic accepted change" },
    { "id": "CHG-02", "date": "2026-01-15", "set": "discovery", "kind": "business", "reason": "Explain promotion rejection.", "before": "Quote has no rejection reason.", "after": "Quote returns an owned reason.", "components": ["quote-http", "calculate-quote", "pricing-policy", "pricing-store"], "decisions": ["promotion-eligibility"], "reads": ["price-rules"], "writes": [], "transaction": "read-only", "effects": [], "decision_owner": "pricing", "release": "quote contract", "source": "synthetic accepted change" },
    { "id": "CHG-03", "date": "2026-01-22", "set": "discovery", "kind": "business", "reason": "Allocate oldest expiring stock first.", "before": "Allocation ignores expiry.", "after": "Allocation uses FEFO.", "components": ["shipment-http", "allocate-shipment", "allocation-policy", "fulfilment-store"], "decisions": ["stock-allocation"], "reads": ["stock-lots"], "writes": ["allocations"], "transaction": "allocation-and-stock", "effects": ["shipment-ready"], "decision_owner": "fulfilment", "release": "warehouse behavior", "source": "synthetic accepted change" },
    { "id": "CHG-04", "date": "2026-02-02", "set": "discovery", "kind": "business", "reason": "Reject duplicate refund outcomes.", "before": "A replay can apply twice.", "after": "Provider event identity is idempotent.", "components": ["payment-webhook", "process-refund", "refund-policy", "payments-store"], "decisions": ["refund-application"], "reads": ["refund-events"], "writes": ["refund-events", "payments"], "transaction": "refund-and-inbox", "effects": ["refund-recorded"], "decision_owner": "payments", "release": "payment behavior", "source": "synthetic incident correction" },
    { "id": "CHG-05", "date": "2026-02-11", "set": "discovery", "kind": "business", "reason": "Apply regional rounding to quotes.", "before": "All quotes use one rounding rule.", "after": "Region selects rounding policy.", "components": ["quote-http", "calculate-quote", "pricing-policy", "pricing-store"], "decisions": ["quote-rounding"], "reads": ["price-rules"], "writes": [], "transaction": "read-only", "effects": [], "decision_owner": "pricing", "release": "quote behavior", "source": "synthetic accepted change" },
    { "id": "CHG-06", "date": "2026-02-19", "set": "discovery", "kind": "business", "reason": "Release allocation after cancellation.", "before": "Cancellation leaves stock allocated.", "after": "Accepted cancellation requests allocation release.", "components": ["cancel-order", "order-policy", "orders-store", "allocate-shipment", "allocation-policy", "fulfilment-store"], "decisions": ["cancellation-eligibility", "allocation-release"], "reads": ["orders", "allocations"], "writes": ["orders", "allocations"], "transaction": "workflow-not-atomic", "effects": ["cancellation-accepted", "allocation-release-requested"], "decision_owner": "unresolved", "release": "coordinated contract", "source": "synthetic cross-capability change" },
    { "id": "CHG-07", "date": "2026-02-27", "set": "discovery", "kind": "business", "reason": "Refund captured payment after cancellation.", "before": "Cancellation does not request refund.", "after": "Accepted cancellation requests an idempotent refund.", "components": ["cancel-order", "order-policy", "orders-store", "process-refund", "refund-policy", "payments-store"], "decisions": ["cancellation-eligibility", "refund-request"], "reads": ["orders", "payments"], "writes": ["orders", "refunds"], "transaction": "workflow-not-atomic", "effects": ["refund-requested"], "decision_owner": "unresolved", "release": "coordinated contract", "source": "synthetic cross-capability change" },
    { "id": "CHG-08", "date": "2026-03-05", "set": "discovery", "kind": "business", "reason": "Store cancellation reason.", "before": "Reason is transient.", "after": "Accepted reason is durable.", "components": ["order-http", "cancel-order", "order-policy", "orders-store"], "decisions": ["cancellation-record"], "reads": ["orders"], "writes": ["orders"], "transaction": "single-order", "effects": [], "decision_owner": "ordering", "release": "order schema", "source": "synthetic accepted change" },
    { "id": "CHG-09", "date": "2026-03-14", "set": "discovery", "kind": "business", "reason": "Reserve promotion usage atomically.", "before": "Concurrent quotes exceed campaign limit.", "after": "Usage and quote commit together.", "components": ["calculate-quote", "pricing-policy", "pricing-store"], "decisions": ["promotion-capacity"], "reads": ["promotion-usage"], "writes": ["promotion-usage"], "transaction": "promotion-usage-atomic", "effects": [], "decision_owner": "pricing", "release": "pricing schema and behavior", "source": "synthetic incident correction" },
    { "id": "CHG-10", "date": "2026-03-23", "set": "discovery", "kind": "technical", "reason": "Upgrade HTTP framework.", "before": "Old framework version.", "after": "Supported framework version.", "components": ["order-http", "quote-http", "shipment-http", "payment-webhook"], "decisions": [], "reads": [], "writes": [], "transaction": "none", "effects": [], "decision_owner": "platform", "release": "application-wide", "source": "synthetic mechanical maintenance" },
    { "id": "CHG-11", "date": "2026-04-01", "set": "discovery", "kind": "business", "reason": "Refuse allocation for blocked locations.", "before": "Blocked location can allocate.", "after": "Allocation refuses with reason.", "components": ["shipment-http", "allocate-shipment", "allocation-policy", "fulfilment-store"], "decisions": ["location-eligibility"], "reads": ["locations", "stock-lots"], "writes": ["allocations"], "transaction": "allocation-and-stock", "effects": [], "decision_owner": "fulfilment", "release": "warehouse behavior", "source": "synthetic accepted change" },
    { "id": "CHG-12", "date": "2026-04-09", "set": "discovery", "kind": "business", "reason": "Distinguish refund reversal.", "before": "Reversal is generic failure.", "after": "Reversal is quarantined for decision.", "components": ["payment-webhook", "process-refund", "refund-policy", "payments-store"], "decisions": ["refund-outcome"], "reads": ["refund-events"], "writes": ["refund-events"], "transaction": "refund-and-inbox", "effects": ["refund-quarantined"], "decision_owner": "payments", "release": "payment contract", "source": "synthetic accepted change" },
    { "id": "CHG-13", "date": "2026-04-18", "set": "discovery", "kind": "ambiguous", "reason": "Show landed cost on order detail.", "before": "Order detail omits it.", "after": "Ownership of calculation is disputed.", "components": ["order-http", "quote-http", "calculate-quote", "pricing-policy"], "decisions": ["landed-cost-presentation"], "reads": ["orders", "price-rules"], "writes": [], "transaction": "read-only", "effects": [], "decision_owner": "unresolved", "release": "unresolved", "source": "synthetic unresolved proposal" },
    { "id": "CHG-14", "date": "2026-04-27", "set": "discovery", "kind": "technical", "reason": "Add covering index for order lookup.", "before": "Lookup scans date range.", "after": "Index serves lookup.", "components": ["orders-store"], "decisions": [], "reads": ["orders"], "writes": [], "transaction": "none", "effects": [], "decision_owner": "ordering", "release": "order schema", "source": "synthetic measured maintenance" },
    { "id": "CHG-15", "date": "2026-05-06", "set": "discovery", "kind": "business", "reason": "Refuse order admission below minimum value.", "before": "Any positive order is accepted.", "after": "Market minimum is enforced.", "components": ["order-http", "cancel-order", "order-policy", "orders-store"], "decisions": ["order-admission"], "reads": ["orders"], "writes": ["orders"], "transaction": "single-order", "effects": ["order-refused"], "decision_owner": "ordering", "release": "order behavior", "source": "synthetic accepted change" },
    { "id": "CHG-16", "date": "2026-05-15", "set": "discovery", "kind": "business", "reason": "Capture payment once per order acceptance.", "before": "Capture identity follows request.", "after": "Capture identity follows accepted order.", "components": ["cancel-order", "orders-store", "process-refund", "payments-store"], "decisions": ["payment-capture-identity"], "reads": ["orders", "payments"], "writes": ["payments"], "transaction": "workflow-not-atomic", "effects": ["capture-requested"], "decision_owner": "payments", "release": "order-payment contract", "source": "synthetic cross-capability change" },
    { "id": "CHG-17", "date": "2026-05-24", "set": "discovery", "kind": "business", "reason": "Expose allocation refusal reason.", "before": "Caller receives generic conflict.", "after": "Owned reason is returned.", "components": ["shipment-http", "allocate-shipment", "allocation-policy"], "decisions": ["allocation-refusal"], "reads": ["allocations"], "writes": [], "transaction": "read-only", "effects": [], "decision_owner": "fulfilment", "release": "shipment contract", "source": "synthetic accepted change" },
    { "id": "CHG-18", "date": "2026-06-02", "set": "discovery", "kind": "ambiguous", "reason": "Decide who owns delivery discount.", "before": "No delivery discount.", "after": "Pricing and Fulfilment claims conflict.", "components": ["calculate-quote", "pricing-policy", "allocate-shipment", "allocation-policy"], "decisions": ["delivery-discount"], "reads": ["price-rules", "shipment-options"], "writes": [], "transaction": "read-only", "effects": [], "decision_owner": "unresolved", "release": "unresolved", "source": "synthetic unresolved proposal" },
    { "id": "CHG-19", "date": "2026-06-10", "set": "holdout", "kind": "business", "reason": "Add cancellation evidence deadline.", "before": "Evidence has no deadline.", "after": "Late evidence is refused.", "components": ["order-http", "cancel-order", "order-policy", "orders-store"], "decisions": ["cancellation-evidence"], "reads": ["orders"], "writes": ["orders"], "transaction": "single-order", "effects": [], "decision_owner": "ordering", "release": "order behavior", "source": "synthetic holdout change" },
    { "id": "CHG-20", "date": "2026-06-18", "set": "holdout", "kind": "business", "reason": "Cap promotion discount by market.", "before": "One global cap.", "after": "Market cap applies.", "components": ["quote-http", "calculate-quote", "pricing-policy", "pricing-store"], "decisions": ["promotion-cap"], "reads": ["price-rules"], "writes": [], "transaction": "read-only", "effects": [], "decision_owner": "pricing", "release": "pricing behavior", "source": "synthetic holdout change" },
    { "id": "CHG-21", "date": "2026-06-26", "set": "holdout", "kind": "business", "reason": "Split shipment across locations.", "before": "One location must fulfil.", "after": "Allocation may split with limit.", "components": ["shipment-http", "allocate-shipment", "allocation-policy", "fulfilment-store"], "decisions": ["split-allocation"], "reads": ["stock-lots"], "writes": ["allocations"], "transaction": "allocation-and-stock", "effects": ["shipment-ready"], "decision_owner": "fulfilment", "release": "warehouse behavior", "source": "synthetic holdout change" },
    { "id": "CHG-22", "date": "2026-07-03", "set": "holdout", "kind": "business", "reason": "Quarantine currency-mismatched refund.", "before": "Mismatch is generic failure.", "after": "Mismatch has terminal reason.", "components": ["payment-webhook", "process-refund", "refund-policy", "payments-store"], "decisions": ["refund-money-match"], "reads": ["payments"], "writes": ["refund-events"], "transaction": "refund-and-inbox", "effects": ["refund-quarantined"], "decision_owner": "payments", "release": "payment behavior", "source": "synthetic holdout change" },
    { "id": "CHG-23", "date": "2026-07-11", "set": "holdout", "kind": "business", "reason": "Release allocation only after durable cancellation.", "before": "Release can race cancellation commit.", "after": "Release follows durable fact.", "components": ["cancel-order", "orders-store", "allocate-shipment", "fulfilment-store"], "decisions": ["cancellation-commit", "allocation-release"], "reads": ["orders", "allocations"], "writes": ["orders", "allocations"], "transaction": "workflow-not-atomic", "effects": ["allocation-release-requested"], "decision_owner": "unresolved", "release": "coordinated contract", "source": "synthetic holdout cross-capability change" },
    { "id": "CHG-24", "date": "2026-07-19", "set": "holdout", "kind": "technical", "reason": "Format PHP source mechanically.", "before": "Old formatter output.", "after": "New formatter output.", "components": ["cancel-order", "calculate-quote", "allocate-shipment", "process-refund"], "decisions": [], "reads": [], "writes": [], "transaction": "none", "effects": [], "decision_owner": "platform", "release": "application-wide", "source": "synthetic mechanical maintenance" }
  ]
}
