☰ Contents
AISA v2.0 / Technical documentation / case-journeys.json

case-journeys.json

JSON · 1452 lines · 76,251 bytes · wiki path 10 Architecture/ui/case-journeys.json · download the raw file · cited from Case journeys — testing the architecture with real work

Same folder: case-runtime-traces.json · gen_wireframes.py

{
  "schema_version": 1,
  "status": "Design walkthrough; historical evidence remains in the catalogues; no live case execution.",
  "cases": [
    {
      "id": "DC-01",
      "title": "Stuck or failed IPAL→INSIS transfer",
      "mode": "data",
      "profiles": [
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1566",
        "SD-1704",
        "SD-1717",
        "SD-1754",
        "SD-1779",
        "SD-2129",
        "SD-1466",
        "SD-1557",
        "SD-1941"
      ],
      "investigate": "Read the policy/annex state, transfer request and MIGR_LOG together; discriminate validation failure, stale request, lost link and infrastructure outage.",
      "execute": "Repair only the proven stale state, then perform the authorised UI transfer; a validation exception uses the temporary-change path.",
      "verify": "Mapped policy ids and states agree across IPAL and INSIS; the intended policy prints. Reconcile a timed-out transfer before retry.",
      "learn": "Record the verified transfer mechanism and trigger; propose a missing diagnostic branch.",
      "next": "Fetch current transfer evidence before selecting the known branch; do not reset a still-running request.",
      "falsifier": "A REQUESTED row is still active: refuse a blind state flip or second transfer."
    },
    {
      "id": "DC-02",
      "title": "Multi-year 4704 family repair",
      "mode": "data",
      "profiles": [
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1602",
        "SD-1736",
        "SD-1933",
        "SD-2111",
        "SD-1552",
        "SD-1598",
        "SD-1638",
        "SD-1763",
        "SD-1783",
        "SD-1867",
        "SD-1986",
        "SD-2073",
        "SD-2199",
        "SD-1556",
        "SD-1815",
        "SD-1554",
        "SD-1784",
        "SD-1642",
        "SD-1525",
        "SD-1818",
        "SD-2066"
      ],
      "investigate": "Enumerate periods 1…N in IPAL, INSIS and MYR_POLICY. Compare states, original ids, register completeness and object pointers; select the evidenced variant.",
      "execute": "Apply the smallest variant-specific repair in ordered system-local operations; any revive owned by Bulstrad IT becomes an external obligation.",
      "verify": "Every period has the required mapped policy/register/object relationships and prints as required; preserve cancelled history and unaffected periods.",
      "learn": "Record the variant discriminator and full family assertion pack; link confirmed revert-cascade recurrences to Development.",
      "next": "Run the family inventory first; use the published variant only if its current preconditions match.",
      "falsifier": "The last period remains absent although the master prints: the family is not verified."
    },
    {
      "id": "DC-03",
      "title": "User account create, repair, deactivate",
      "mode": "external",
      "profiles": [
        "support.investigator.access"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1531",
        "SD-1549",
        "SD-1613",
        "SD-1641",
        "SD-1690",
        "SD-1729",
        "SD-1775",
        "SD-2171",
        "SD-1696"
      ],
      "investigate": "Resolve the person handle across LDAP, customer master and login layers; check the one-account constraint, branch and lock state.",
      "execute": "Perform authorised IPAL provisioning; ask the designated customer to log in in their own session. LDAP work outside scope waits on its owner.",
      "verify": "Correct account/branch/role mapping and a successful customer login; no duplicate person account or credential sharing.",
      "learn": "Record which layer was missing and any checklist correction; a routine result can justify no new article.",
      "next": "Recheck account existence and branch membership before reuse; existing identity becomes repair rather than create.",
      "falsifier": "LDAP exists but the IPAL account does not: do not report access restored."
    },
    {
      "id": "DC-04",
      "title": "ИП agent, broker, office provisioning and bulk product roles",
      "mode": "external",
      "profiles": [
        "support.investigator.access",
        "support.investigator.master_data"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1534",
        "SD-1603",
        "SD-1710",
        "SD-1714",
        "SD-2011",
        "SD-1353",
        "SD-1830",
        "SD-1988"
      ],
      "investigate": "Compare approved office/agent setup with INSIS agent/office records, IPAL branch/account roles and numbering prerequisites.",
      "execute": "Wait for Bulstrad IT's missing INSIS or sequence step; then apply scoped IPAL provisioning and exact role assignments.",
      "verify": "Broker appears under the intended office and product; numbering/issuance proof uses separately authorised effects.",
      "learn": "Retain the complete provisioning dependency checklist, with actor ownership and scope.",
      "next": "Inspect all prerequisite layers and the effective product roles; reuse cannot authorise another employee.",
      "falsifier": "A new office exists but has no usable sequence: no completed provisioning verdict."
    },
    {
      "id": "DC-05",
      "title": "Cargo framework 1101 extension and date drift",
      "mode": "external",
      "profiles": [
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1594",
        "SD-1605",
        "SD-1650",
        "SD-1832",
        "SD-1930",
        "SD-1998",
        "SD-2005",
        "SD-1811",
        "SD-1847",
        "SD-1858"
      ],
      "investigate": "Inventory framework dates across INSIS, IPAL's six layers and cache; establish the approved new end date and selector window.",
      "execute": "Obtain the INSIS owner's change when required, then reconcile each IPAL layer in declared order; refresh the cache through a registered effect.",
      "verify": "Every required date relationship holds, the framework appears in the selector, and the declared child-issue proof is obtained under its own authority.",
      "learn": "Retain the full date matrix and selector predicate; distinguish expiry from synchronisation failure.",
      "next": "Read the current framework and approved dates, including the selector's lookahead; never choose the largest date as business authority.",
      "falsifier": "Four date layers match but two and the cache remain stale: fail completion."
    },
    {
      "id": "DC-06",
      "title": "Cargo framework sync or repoint so a child can issue",
      "mode": "data",
      "profiles": [
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1561",
        "SD-1564",
        "SD-1617",
        "SD-1748",
        "SD-1841"
      ],
      "investigate": "Identify migration-import versus fresh-proposal variant, the authoritative INSIS master, covers, rate dimensions and duplicate applications.",
      "execute": "Repoint the approved IPAL family to the confirmed master; stop for the owner's decision on any duplicate. Do not force another transfer.",
      "verify": "Header, annex, covers, participants, rate triad and cache satisfy the framework checklist; authorised child issuance works.",
      "learn": "Record the discriminator and duplicate-handling boundary in the existing sync skill.",
      "next": "Re-run the discriminator and full diff before reusing the small repoint operation.",
      "falsifier": "A matching policy number points to a different INSIS master: refuse the shortcut."
    },
    {
      "id": "DC-07",
      "title": "Cargo 1103 statement and 1102/1100 certificate corrections",
      "mode": "data",
      "profiles": [
        "support.investigator.transfers",
        "support.investigator.pricing"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1514",
        "SD-1530",
        "SD-1636",
        "SD-1643",
        "SD-1705",
        "SD-1731",
        "SD-1772",
        "SD-1852",
        "SD-1922",
        "SD-2209",
        "00102569"
      ],
      "investigate": "Clarify proposal versus issued policy; inspect claim/payment locks, premium currency, FX basis and transfer status.",
      "execute": "Choose the authorised correction/recalculation sequence or external-owner step; record temporary state flips and their restoration.",
      "verify": "Requested amounts with currency reconcile on both sides; original dates/state are restored as required and the exact document reprints.",
      "learn": "Retain procedure preconditions and the intent discriminator; correct a misleading restore path immediately.",
      "next": "Check paid/claimed state, currency and current procedure behaviour before using the past sequence.",
      "falsifier": "Customer wanted an application, not a revived policy: ask before any state transition."
    },
    {
      "id": "DC-08",
      "title": "Party and participant repair",
      "mode": "data",
      "profiles": [
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1568",
        "SD-1595",
        "SD-1653",
        "SD-1702",
        "SD-1718",
        "SD-1787",
        "SD-1821",
        "SD-1898",
        "SD-2111"
      ],
      "investigate": "Compare participant roles, ownership shares, bank linkage, source ids and annex propagation across both systems.",
      "execute": "Correct only the authorised participant relationships, using the appropriate annex or guarded row change.",
      "verify": "Policy and debit note show the intended parties; ownership does not exceed the expected total and obsolete active links are absent.",
      "learn": "Retain the propagation mechanism and an executable participant comparison.",
      "next": "Rebuild the participant graph from current evidence; do not copy a previous person's ids.",
      "falsifier": "One owner prints correctly but a second active owner leaves 200% ownership: fail."
    },
    {
      "id": "DC-09",
      "title": "Installment plan and due dates",
      "mode": "data",
      "profiles": [
        "support.investigator.pricing",
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1532",
        "SD-1602",
        "SD-1732",
        "SD-1781",
        "SD-1914",
        "SD-1929",
        "SD-1933",
        "SD-2186",
        "SD-2196"
      ],
      "investigate": "Read independent IPAL splitting and INSIS PREM_INST/PREM_INST_FRACT dates, payment state and residual annexes.",
      "execute": "Apply the approved installment operation and any required counterpart update; protect paid installments and enumerate all date columns.",
      "verify": "Amounts sum to the premium in its currency; all required dates align, paid items are preserved and the payment-plan screen works.",
      "learn": "Retain the distinction between the two splitters and the complete date assertion pack.",
      "next": "Recompute the live payment state and scope; a prior four-installment example is not a ready row set.",
      "falsifier": "INSIS changed but IPAL still shows the old plan: no completion."
    },
    {
      "id": "DC-10",
      "title": "Discount, loading, deductible on one policy, and „why this premium\"",
      "mode": "answer",
      "profiles": [
        "support.investigator.pricing"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1611",
        "SD-1694",
        "SD-1786",
        "SD-1897",
        "SD-2118",
        "SD-2137",
        "00092847",
        "00098744"
      ],
      "investigate": "Reconstruct the fed factors, rating output, loading/discount and recorded premium; replay the current rating request.",
      "execute": "Deliver a checked explanation when the result is correct; otherwise branch to a scoped data correction or Configuration handover.",
      "verify": "Expected premium and currency reconcile with the actual factors; a correction also requires the affected print/surface.",
      "learn": "Record applied-versus-fed factor distinctions and supported calculation examples.",
      "next": "Recheck current tariff/version and inputs before relying on the previous explanation.",
      "falsifier": "Treating POL_PREM_RATE as the fed factor yields the wrong cause: reject the answer."
    },
    {
      "id": "DC-11",
      "title": "Vehicle data correction (VIN, reg-no, type)",
      "mode": "data",
      "profiles": [
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "00080729",
        "SD-1700",
        "SD-1707",
        "SD-1724",
        "SD-1737",
        "SD-1861",
        "SD-2154"
      ],
      "investigate": "Resolve the vehicle handle across every OBJ_CAR version, SR_OBJECTS mapping and INSIS O_CAR; exclude plate-keyed grafts.",
      "execute": "Apply a chain-scoped correction or the authorised annex path; treat any registry update as separately owned work.",
      "verify": "The chain-aware IPAL/INSIS comparison has zero relevant differences and the requested print/registry outcome is evidenced.",
      "learn": "Retain the chain traversal and collision discriminators without personal or vehicle identifiers.",
      "next": "Enumerate the current chain again; reusing one row id is never the skill.",
      "falsifier": "Only the latest vehicle row is changed while an earlier consumed version remains wrong: fail."
    },
    {
      "id": "DC-12",
      "title": "Restore a policy cancelled by mistake",
      "mode": "external",
      "profiles": [
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1689",
        "SD-1756",
        "SD-1784",
        "SD-1877",
        "SD-2181",
        "SD-2195",
        "SD-1636"
      ],
      "investigate": "Determine intended application/active state, regulatory ties, payments and whole-family cancellation effects.",
      "execute": "Choose the permitted restoration path; where Bulstrad IT must revive INSIS, send a scoped instruction and wait for evidence.",
      "verify": "The intended business state is consistent across the family and both systems; the relevant customer action/print succeeds.",
      "learn": "Record restoration path preconditions and the original cancellation trigger.",
      "next": "Recheck external registration/payment constraints and the requested end state before proposing a known path.",
      "falsifier": "External owner says done without the required state/readback: remain waiting for verification."
    },
    {
      "id": "DC-13",
      "title": "IPAL↔INSIS status or period desync after a cancel, a termination or a one-sided correction",
      "mode": "external",
      "profiles": [
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1991",
        "SD-2003",
        "SD-2033",
        "SD-2139",
        "SD-2153",
        "SD-2176"
      ],
      "investigate": "Classify direction of status/period drift and enumerate all affected header, annex and date layers.",
      "execute": "Have the designated owner correct its system, then apply the approved counterpart reconciliation; preserve the original evidence.",
      "verify": "Mapped states and periods agree on both sides and on the printed document, with every declared layer checked.",
      "learn": "Retain the desynchronisation class and the missing propagation edge.",
      "next": "Determine which side changed first from current evidence; never pick a system solely because it was authoritative last time.",
      "falsifier": "One-sided period fix leaves the consuming print hierarchy stale: fail."
    },
    {
      "id": "DC-14",
      "title": "„Куха полица\" (4710 ГФ / GFIRM timeout)",
      "mode": "data",
      "profiles": [
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1773",
        "SD-1846",
        "SD-1882",
        "00101947",
        "00101951",
        "00100274"
      ],
      "investigate": "Deduplicate the OTRS/mail/Jira aliases; identify the real INSIS policy versus its sibling/orphan after GFIRM timeout.",
      "execute": "Reconcile the IPAL header, period hierarchy and integration caches to the proven master, or deliver the scoped external packet.",
      "verify": "IPAL search shows the intended active policy, all three layers agree and the required registry status is evidenced.",
      "learn": "Record the timeout mechanism and three-layer assertion pack once per canonical request.",
      "next": "Retrieve through the customer's Bulgarian phrase and trigger, then find the live authoritative sibling again.",
      "falsifier": "The Jira mirror and notification count as two clean uses, or only the header is fixed: reject."
    },
    {
      "id": "DC-15",
      "title": "ГФ / ЕИСОУКР status, duplicate MTPL, green card and sticker validity",
      "mode": "answer",
      "profiles": [
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1479",
        "SD-1684",
        "SD-1738",
        "SD-2076",
        "SD-2114",
        "SD-2152"
      ],
      "investigate": "Decode the actual registry response and compare MTPL/green-card/sticker periods and current status.",
      "execute": "Send a supported explanation or owner instruction; a necessary period correction branches to its exact gated operation.",
      "verify": "The answer reflects current registry evidence; operational resolution requires the promised issue/status outcome.",
      "learn": "Retain the response-code discriminator and its observed system version.",
      "next": "Query current status and recheck code meaning; do not infer today's insurance state from an older answer.",
      "falsifier": "A stale response is reused as current cover/validity proof: reject."
    },
    {
      "id": "DC-16",
      "title": "Commission and self-retention",
      "mode": "external",
      "profiles": [
        "support.investigator.pricing",
        "support.investigator.access"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1542",
        "SD-1628",
        "SD-1676",
        "SD-1871",
        "SD-1961",
        "SD-2006"
      ],
      "investigate": "Compare IPAL agent attributes, INSIS commission rows, rate rules and the relevant update predicate.",
      "execute": "Apply authorised policy-specific commission correction or wait for the owning party; a permanent rule gap goes to Configuration.",
      "verify": "Recomputed commission/self-retention amounts with currency match the approved rule and affected policy records.",
      "learn": "Record whether the cause was data, missing rule or propagation code; link its durable correction.",
      "next": "Recheck current agent contract/rate and policy state before using the formula.",
      "falsifier": "A copied percentage fixes one row but violates the effective rule: fail."
    },
    {
      "id": "DC-17",
      "title": "The print is right, the data is wrong",
      "mode": "data",
      "profiles": [
        "support.investigator.printing"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1720",
        "SD-1736",
        "SD-1759",
        "SD-1917",
        "SD-1969",
        "SD-2068",
        "SD-2144",
        "SD-2159"
      ],
      "investigate": "Prove the print engine was invoked; inspect exact parameters, INSIS data, currency rate, register readiness and template version.",
      "execute": "Repair the proven data gap; configuration registration goes to Configuration and an external BI template stays with its owner.",
      "verify": "Reproduce the exact requested document, with the expected limit/office/rate and no unintended extra documents.",
      "learn": "Retain invocation-first diagnostics and route the recurring data-population defect to its owner.",
      "next": "Check invocation and current data before considering a template fix.",
      "falsifier": "The template is blamed while required source data is absent: reject the route."
    },
    {
      "id": "DC-18",
      "title": "Master-data adds: BSO ranges, vehicle make/model, LOV and pricing-factor values, авариен комисар, НКИД",
      "mode": "data",
      "profiles": [
        "support.investigator.master_data"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1446",
        "SD-1591",
        "SD-1593",
        "SD-1627",
        "SD-1740",
        "SD-1814",
        "SD-1944",
        "SD-2036",
        "SD-2183",
        "00080821",
        "00090023",
        "00081358"
      ],
      "investigate": "Check existing values, business keys, dependent catalogues, label scope and applicable external nomenclatures.",
      "execute": "Use the published BSO/car skill where applicable; product-factor semantics route to Configuration. Shared additions require their full scope gate.",
      "verify": "The intended value appears under the correct dependency and works in the consuming action; duplicates are absent.",
      "learn": "Record catalogue dependencies and any missing check in the owned skill.",
      "next": "Search by business key and context first; an already-present value may need visibility repair, not insertion.",
      "falsifier": "The label exists but the dependent value is invisible or wrong for another product: fail."
    },
    {
      "id": "DC-19",
      "title": "Validation threshold relax and revert — the desk-executed configuration cell",
      "mode": "temporary",
      "profiles": [
        "support.resolution"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1570",
        "SD-1577",
        "SD-1584",
        "SD-1592",
        "SD-1614",
        "SD-1669",
        "SD-1764",
        "SD-1903",
        "SD-2199"
      ],
      "investigate": "Identify the actual blocking IPAL/ABACUS rule and its full audience, including existing bypasses.",
      "execute": "Persist and review the relax/action/restore chain before applying; await the operator's authorised transfer and restore under H7.",
      "verify": "The intended action succeeds and the original baseline is restored; verify the twin rule and any shared impact.",
      "learn": "Record the repeated rule/trigger and link a proposed permanent Configuration or Development correction.",
      "next": "Check earlier exceptions and their permanent-fix status; do not silently accumulate another indefinite relaxation.",
      "falsifier": "Deadline expires or the customer disappears: restoration remains a live obligation."
    },
    {
      "id": "DC-20",
      "title": "Customer master duplicate and person data",
      "mode": "data",
      "profiles": [
        "support.investigator.master_data"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1757",
        "SD-1817",
        "SD-1935",
        "SD-1999"
      ],
      "investigate": "Read the full customer footprint and consuming seek query; distinguish a real duplicate from a harmless INSIS mirror.",
      "execute": "Propose the minimal authorised merge/delete only after dependency counts and survivor identity are proved.",
      "verify": "The consuming search returns the right business entity and no dangling references or unintended deletions remain.",
      "learn": "Retain the footprint-first procedure and any changed duplicate discriminator.",
      "next": "Requery the footprint; an INSIS merge is evidence, not an instruction to mirror deletion blindly.",
      "falsifier": "Zero local footprint or a changed dependent count invalidates the old packet."
    },
    {
      "id": "DC-21",
      "title": "Routine transfer and backlog reconciliation",
      "mode": "external",
      "profiles": [
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1754"
      ],
      "investigate": "Classify each backlog item as routine second signature, active transfer, validation failure or outage residue.",
      "execute": "Ask the authorised operator to perform routine UI transfers; isolate exceptions into their appropriate repair path.",
      "verify": "Per-item transfer and target-policy proof; already-completed items are not transferred again.",
      "learn": "Record the backlog classifications and per-item outcome; routine success can teach nothing new.",
      "next": "Retrieve the classifier and recheck every current item, rather than applying one batch state flip.",
      "falsifier": "One success is used to close all 45 items: reject."
    },
    {
      "id": "DC-22",
      "title": "Answers from memory: how-to, cannot reproduce, explanation, lookup",
      "mode": "answer",
      "profiles": [
        "support.resolution"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1599",
        "SD-1606",
        "SD-1619",
        "SD-1745",
        "SD-1826",
        "SD-1942",
        "SD-2200"
      ],
      "investigate": "Retrieve the relevant active precedent and check the current system/version and the exact customer question.",
      "execute": "Deliver the checked answer through the send gate; if a customer action is required, persist its waiting/proof obligation.",
      "verify": "The answer's current factual basis is retained; action requests additionally require the declared outcome evidence.",
      "learn": "Record successful use or contradiction and a justified no-new-knowledge decision where appropriate.",
      "next": "Start with the reviewed precedent, then repeat the smallest necessary staleness check.",
      "falsifier": "The old article is found but its current precondition is false: investigate instead."
    },
    {
      "id": "DC-23",
      "title": "Repair after a Beth-executed change",
      "mode": "data",
      "profiles": [
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1719",
        "SD-1870",
        "SD-1976",
        "SD-1982",
        "SD-2185"
      ],
      "investigate": "Inspect the Beth operation batch, completed steps and missing downstream work; determine what already landed.",
      "execute": "Repair only the missing step under its own permission; replay nothing merely because the earlier automation stopped.",
      "verify": "The promised annex, print or commission result exists; earlier successful steps were not duplicated.",
      "learn": "Record the automation's partial-effect mechanism and the missing completion assertion.",
      "next": "Reconcile the actual operation log before selecting a recovery step.",
      "falsifier": "Re-running the whole batch duplicates an existing document or registration: reject."
    },
    {
      "id": "DC-24",
      "title": "Aftermath of an infrastructure incident",
      "mode": "data",
      "profiles": [
        "support.investigator.transfers"
      ],
      "source": "40 Support/Typical Cases.md",
      "evidence": [
        "SD-1937",
        "SD-1965",
        "SD-2177"
      ],
      "investigate": "Confirm infrastructure recovery through its owner and classify per-policy partial effects from the outage.",
      "execute": "Wait for healthy dependencies, then repair each affected policy/workflow using current preconditions and its own effect identity.",
      "verify": "Every declared item has policy/workflow and customer-surface proof; service health alone does not satisfy it.",
      "learn": "Retain the incident trigger and recovery classifier; keep infrastructure and per-policy outcomes distinct.",
      "next": "Check current incident state and reconcile each item before applying the recovery skill.",
      "falsifier": "A green service probe closes half-written policies without reconciliation: reject."
    },
    {
      "id": "DV-01",
      "title": "Product process (BPMN + user tasks) for a new or changed product",
      "mode": "source",
      "profiles": [
        "source.camunda_developer",
        "source.implementer.serdica-backend"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [
        "00085986",
        "SD-1699",
        "SD-2007"
      ],
      "investigate": "Pin the product's actual process, user-task code, deployed BPMN and both repository lineages; identify the Configuration dependency.",
      "execute": "Implement and test the process change, review the commit series, deploy the declared Core image/BPMN set and record the job identity.",
      "verify": "The target serves the expected process version and an authorised test instance reaches the requested stage; old in-flight instances are accounted for.",
      "learn": "Retain process placement and deployment/version traps under the backend owner; propose missing process checks.",
      "next": "Inspect the live process and branch counterpart before adapting the previous implementation.",
      "falsifier": "The image is new but Camunda still serves the old process: no delivery."
    },
    {
      "id": "DV-02",
      "title": "Print-document rules and BI Publisher parameters",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-backend",
        "source.implementer.db-plsql"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [
        "SD-593",
        "SD-526",
        "SD-1863",
        "SD-1823"
      ],
      "investigate": "Separate print-registration rows, C# selection, shared library, POLQRY and externally owned BI template behaviour.",
      "execute": "Use coordinated Configuration/Development work and external template obligations; release in the compatibility order of the exact components.",
      "verify": "The exact document and parameters are correct on target; negative selectors do not produce unwanted documents and the deployed package is not a stub.",
      "learn": "Retain selector/registration boundaries and fail-open counterexamples; record missing release components.",
      "next": "Check current invocation and all component versions before using the old print pattern.",
      "falsifier": "C# is deployed but a configuration toggle, PL/SQL body or BI template is missing: fail."
    },
    {
      "id": "DV-03",
      "title": "The reinsurance stream — a customer-funded capability",
      "mode": "programme",
      "profiles": [
        "source.planner"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [],
      "investigate": "Record the reinsurance capability request and programme owner; distinguish a bounded defect from the ongoing module stream.",
      "execute": "Return an explicit programme referral with accountable ownership; accept only separately scoped implementation cases under the current charter.",
      "verify": "The referral/scope decision is acknowledged; no claim that facultative, treaty, reports and e-mail capability have been delivered.",
      "learn": "Retain intake/placement evidence for bounded future slices, not a fictional completed-module example.",
      "next": "Route a new bounded reinsurance fix normally; recognise another programme-scale request before implementation.",
      "falsifier": "84 commits are treated as one small extension with one generic done test: reject scope."
    },
    {
      "id": "DV-04",
      "title": "A premium or cover computation rule for a product family (2200 / 2222, 2215, 47xx, 36xx)",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-backend"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [
        "SD-1442",
        "SD-1703",
        "SD-1964",
        "SD-2063",
        "SD-1550"
      ],
      "investigate": "Reproduce the product-family premium/cover rule and inspect plugin versus shared-service placement on each actual lineage.",
      "execute": "Implement at the approved seam; package changed libraries and rebuild all declared consumers with companion rows where needed.",
      "verify": "Worked quotes cover affected products, boundaries and unchanged siblings; ABACUS and INSIS reconcile with the intended rule.",
      "learn": "Retain family-specific calculation examples and lineage placement, including approved shared-code debt.",
      "next": "Re-run the reproducer on current source and pricing versions before reusing code or examples.",
      "falsifier": "NuGet is published but an active consumer still runs the old rule: fail."
    },
    {
      "id": "DV-05",
      "title": "Partner registration API hardening (Bul SI, RegisterPolicy)",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-backend"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [],
      "investigate": "Pin the partner request contract, registration plugin, identity-client configuration and required database schema.",
      "execute": "Implement the bounded API change with its schema/identity dependencies; deploy only to the explicitly requested partner target.",
      "verify": "The approved staging contract examples register, transfer and print; invalid and repeated requests follow the declared behaviour.",
      "learn": "Retain contract examples, validation failures and required release components; redact credentials and customer data.",
      "next": "Recheck the current partner contract and schema; do not reuse a past partner's credentials or launch authority.",
      "falsifier": "REST success precedes a failed transfer or missing print: no end-to-end result."
    },
    {
      "id": "DV-06",
      "title": "Customer and party data rules (custPid, contacts, names, addresses, LDAP accounts)",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-backend",
        "source.implementer.serdica-ui"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [
        "SD-1943"
      ],
      "investigate": "Reproduce customer/party validation in UI and backend, including LDAP and INSIS propagation; map the actual code paths.",
      "execute": "Implement the approved pair of changes plus identity dependencies and deploy them in the declared compatibility order.",
      "verify": "Create/edit the test customer on target and verify transferred participant data; check the prior valid cases still work.",
      "learn": "Retain the field/source-of-truth contract and negative identifier/optional-field examples.",
      "next": "Check both current client validation and server behaviour before applying the previous pattern.",
      "falsifier": "UI accepts a value that the active backend rejects: fail the pair."
    },
    {
      "id": "DV-07",
      "title": "Agent, office and commission code paths (посредник)",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-backend",
        "source.implementer.serdica-ui"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [
        "SD-1709",
        "SD-1511"
      ],
      "investigate": "Reproduce participant search/office/commission behaviour and establish which backend and UI halves are actually deployed.",
      "execute": "Implement and review the bounded feature or defect across its consumers; keep each target's missing half as a release obligation.",
      "verify": "Target participant search and commission defaults work together with the approved agent/office rules.",
      "learn": "Retain the cross-component contract and missing-backend-release counterexample.",
      "next": "Inspect serving versions first; the next ticket may be an undeployed half rather than a new defect.",
      "falsifier": "The UI reaches PROD but its required backend half remains on staging: reject delivery."
    },
    {
      "id": "DV-08",
      "title": "A regulatory cross-cutting change: the BGN → EUR changeover",
      "mode": "programme",
      "profiles": [
        "source.planner"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [
        "SD-1962",
        "SD-1855"
      ],
      "investigate": "Record the cross-product currency programme, affected seams and accountable coordination owner; identify any requested bounded slice.",
      "execute": "Refer the programme within the current charter; scoped currency fixes use ordinary source/configuration cases with explicit dependencies.",
      "verify": "A referral is labelled as such; a bounded slice proves current EUR behaviour and required legacy-currency cases with currency codes.",
      "learn": "Retain scoped regression examples and observed compatibility facts without claiming programme completion.",
      "next": "Separate new programme scope from a repeat defect and recheck the effective currency/version context.",
      "falsifier": "One successful EUR quote is treated as proof of every legacy policy, report and transfer: reject."
    },
    {
      "id": "DV-09",
      "title": "UI number, locale and field-validation behaviour for Bulgarian operators",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-ui"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [
        "SD-1950",
        "SD-1971",
        "SD-2138"
      ],
      "investigate": "Reproduce the exact Bulgarian input gesture, field validator and locale parsing on the active UI lineage.",
      "execute": "Change the narrow parser/validator path and review generated dependency changes; deploy the reviewed UI artifact.",
      "verify": "Real input sequences cover comma/dot, blur/re-entry and invalid values; client and server interpretations agree.",
      "learn": "Retain interaction-level regression cases and the exact locale/value boundary.",
      "next": "Replay the original gesture before altering shared parsing; search the accepted regression corpus.",
      "falsifier": "DOM text looks correct but the posted numeric value differs: fail."
    },
    {
      "id": "DV-10",
      "title": "Product object screens: dialogs, labels, tooltips, descriptions (the 2200 / 2222 wave)",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-ui"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [
        "SD-1839",
        "SD-1855",
        "SD-1857",
        "SD-1869",
        "SD-1953",
        "SD-1968",
        "SD-2138"
      ],
      "investigate": "Check whether the object dialog feature is absent, defective or simply not deployed; record target browser behaviour and serving revision.",
      "execute": "Implement or promote only the needed approved UI change, including labels and data-contract dependencies.",
      "verify": "The actual dialog opens, edits, validates and persists as requested; repeated navigation and relevant fields work.",
      "learn": "Retain the interaction regression and deployment-gap diagnosis in the UI domain.",
      "next": "Inspect deployed feature/version before reopening development; reuse the real interaction test.",
      "falsifier": "A code diff exists but the target still serves the older dialog: no completion."
    },
    {
      "id": "DV-11",
      "title": "Cargo and framework (11xx) contracts: FRAME types, group policies, master-policy objects",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-backend",
        "source.implementer.serdica-ui"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [
        "SD-2005",
        "SD-1485"
      ],
      "investigate": "Pin FRAME/contract-type schema, plugin, workflow and shared Annexes behaviour plus the expected configuration values.",
      "execute": "Coordinate code, schema and Configuration rows in a dependency graph; record both repository heads and all consumer images.",
      "verify": "The target can create the declared child under the correct framework; contract-type values are populated and consumed.",
      "learn": "Retain the schema-present-but-unused counterexample and mixed-release contract.",
      "next": "Recheck column support, row population and consumer behaviour before reusing the FRAME pattern.",
      "falsifier": "A new column exists on both environments but every required value is NULL: fail."
    },
    {
      "id": "DV-12",
      "title": "Motor (47xx) flow rules",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-backend"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [
        "SD-1862",
        "SD-1919",
        "SD-1987",
        "SD-1498",
        "SD-547"
      ],
      "investigate": "Reproduce the motor-flow rule with product/subtype, partner service response and process version; distinguish a waiting backlog request.",
      "execute": "Implement the scoped plugin/service/riskmodel change or keep Next Release waiting with its explicit trigger.",
      "verify": "The affected flow works for the requested subtype and relevant sibling products; external effects are separately permitted.",
      "learn": "Retain subtype discrimination, timeout classification and the narrow regression.",
      "next": "Check current service/flow version and outstanding release before proposing a second fix.",
      "falsifier": "A timeout is assumed to mean nothing landed and the action is retried blindly: reject."
    },
    {
      "id": "DV-13",
      "title": "ABACUS pricing pre- and post-filters (Python `riskmodel`)",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-backend"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [
        "SD-1526"
      ],
      "investigate": "Read the Python riskmodel pre/post-filter, chosen template and current target revision, including PROD-only reversals.",
      "execute": "Use the backend repository's Python toolchain; implement and test the filter, then deploy the declared anl-risk-model artifact.",
      "verify": "Current get_rates inputs produce expected per-cover premiums and template selection; unaffected cases remain valid.",
      "learn": "Retain input/output fixtures and the target-specific reversal; ownership stays with the repository profile.",
      "next": "Inspect the target's actual filter and prior reversal before using a staging implementation.",
      "falsifier": "A change deliberately reverted on PROD is restored by a routine port without review: reject."
    },
    {
      "id": "DV-14",
      "title": "INSIS transfer and revert-to-application handling (C# caller + PL/SQL)",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-backend",
        "source.implementer.db-plsql"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [],
      "investigate": "Reproduce the C# caller/PLSQL contract and transfer/revert behaviour; snapshot the live stored code and effect history.",
      "execute": "Deliver the caller and stored-code change in the compatible order; gate DDL and reconcile external effects after timeouts.",
      "verify": "The intended transfer/revert works on target without duplicate effects; the family invariants still hold after the sequence.",
      "learn": "Retain the confirmed triggering action and caller/database contract; link outstanding data workarounds.",
      "next": "Load current caller and package signatures before applying the regression; check whether the causal fix is already live.",
      "falsifier": "The C# side is deployed but the database still has the old contract: fail."
    },
    {
      "id": "DV-15",
      "title": "Configurable operator checks and messages with DB rows",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-backend"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [
        "00104150",
        "00103979",
        "00099893"
      ],
      "investigate": "Identify the generic code capability, its enabling configuration and message keys, across published package and serving consumers.",
      "execute": "Implement/release the library and explicitly deliver its required rows through Configuration or the scoped owner.",
      "verify": "Trigger the control on target; required invalid input is blocked, valid input passes and the Bulgarian message resolves.",
      "learn": "Retain code-plus-row dependency checks and the inert-toggle failure.",
      "next": "Check whether the code exists but lacks activation or messages before writing new code.",
      "falsifier": "A successful build with no enabling row is reported as a working control: reject."
    },
    {
      "id": "DV-16",
      "title": "Incident-driven robustness fix (clamp, index, error leak)",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-backend",
        "source.implementer.serdica-ui"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [],
      "investigate": "Use incident evidence to reproduce the bounded clamp/index/error defect and identify all consuming services.",
      "execute": "Implement the smallest approved robustness fix, test boundaries and rebuild/deploy declared consumers.",
      "verify": "The original failure and boundary workload pass on the target without masking valid results; relevant consumers show the new revision.",
      "learn": "Retain the bounded workload and failure injection as regression evidence.",
      "next": "Reproduce against the current deployed library and workload; a new outage is not automatically the same mechanism.",
      "falsifier": "An index is present but the affected query still scans or returns wrong results: fail."
    },
    {
      "id": "DV-17",
      "title": "Branch reconciliation and merge-from-master ports (flat-layout upkeep)",
      "mode": "source",
      "profiles": [
        "source.planner",
        "source.implementer.serdica-backend",
        "source.implementer.serdica-ui"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [],
      "investigate": "Pin source and target heads, actual layouts, target-only fixes and semantic correspondence; detect non-fast-forward history changes.",
      "execute": "Reapply the reviewed semantic change in the requested direction without discarding target-only work; review the resulting target diff.",
      "verify": "Target tests and explicit equivalence evidence cover the intended change; source subject matching is insufficient.",
      "learn": "Retain directional path maps, target-only exceptions and observed head relationships.",
      "next": "Measure current heads and differences again; a historic path map is only a hypothesis.",
      "falsifier": "Protected target history was rewritten after approval: invalidate preflight and re-review."
    },
    {
      "id": "DV-18",
      "title": "Pipeline, registry, dependency and tooling maintenance on the customer branch",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-backend",
        "source.implementer.serdica-ui"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [],
      "investigate": "Identify the failing build/runtime boundary, actual dependency graph, pipeline identity and generated outputs affected.",
      "execute": "Make the scoped tooling/dependency/pipeline change; review lockfiles, generated schemas and instruction files as relevant changes.",
      "verify": "A clean reproducible build and the declared runtime/job checks pass; image publication alone is not deployment proof.",
      "learn": "Retain toolchain compatibility and the reproducible failure/fix, with versions.",
      "next": "Reproduce on the current toolchain and inspect dependency changes before adopting the old command.",
      "falsifier": "Generated lock/schema changes are excluded from review and hide an incompatible dependency: reject."
    },
    {
      "id": "DV-19",
      "title": "`appsettings.json` as code",
      "mode": "source",
      "profiles": [
        "source.implementer.serdica-backend"
      ],
      "source": "30 Source/Typical Cases.md",
      "evidence": [],
      "investigate": "Compare environment-specific appsettings and runtime consumption; separate intended configuration from accidental local reset.",
      "execute": "Apply only approved target values through the declared config/image release; keep secrets in the existing secret store.",
      "verify": "The active service reads the intended route/setting and required integration works on its target.",
      "learn": "Retain the environment-specific setting contract and accidental-reset regression.",
      "next": "Read the effective setting and target lineage; never copy one environment's complete file.",
      "falsifier": "A local file reset overwrites unrelated target routes or secret references: reject."
    },
    {
      "id": "CF-01",
      "title": "Threshold or LOV relax for one policy, then revert",
      "mode": "temporary",
      "profiles": [
        "support.resolution"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "SD-1570",
        "SD-1669"
      ],
      "investigate": "Resolve the blocked policy and actual IPAL/ABACUS rule, its shared audience, current value and existing exceptions.",
      "execute": "Route the temporary exception to Data and Information; persist the relax/action/restore plan before the first gated change.",
      "verify": "The intended customer action succeeds and both baseline/any twin rule are restored under H7.",
      "learn": "Record recurring rule/trigger evidence and link the permanent fix instead of accumulating indefinite exceptions.",
      "next": "Look up previous exceptions and causal fixes, then re-read the live rule and its audience.",
      "falsifier": "A supposedly policy-specific threshold actually affects every policy using the shared row: require the full impact gate."
    },
    {
      "id": "CF-02",
      "title": "Permanent check: add, change or explain a control",
      "mode": "configuration",
      "profiles": [
        "configuration.ipal.stage",
        "configuration.abacus.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "00098632",
        "00099893",
        "00101281",
        "00101359",
        "00103979",
        "00104150",
        "00104195",
        "00104411",
        "00072908",
        "00061034",
        "SD-1678"
      ],
      "investigate": "Export the affected rule and test the requested condition against existing code capability, IPAL, ABACUS and INSIS behaviour.",
      "execute": "Change the relevant existing control; computed logic recruits Development and INSIS-owned work becomes an external dependency.",
      "verify": "Positive and negative examples prove when the rule fires; the requested target and all declared twins pass.",
      "learn": "Retain the condition-to-capability mapping, twin dependencies and examples.",
      "next": "Search prior rule changes, export current state and distinguish missing activation from missing code.",
      "falsifier": "The row exists but is OFF, or the INSIS twin is omitted: fail."
    },
    {
      "id": "CF-03",
      "title": "Who may bypass, who may see: overrule groups, per-user and per-agent lists, product roles",
      "mode": "configuration",
      "profiles": [
        "configuration.ipal.stage",
        "configuration.serdica.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "00081163",
        "00097807",
        "00099115",
        "SD-2140",
        "SD-1614"
      ],
      "investigate": "Resolve approved identity/group handles and compare effective bypass/visibility rights across both validation systems and product routes.",
      "execute": "Apply the explicit role/bypass delta under shared-impact and target gates; external identity administration stays with its owner.",
      "verify": "The intended identity can do the permitted action; an unlisted identity cannot, and unrelated roles remain unchanged.",
      "learn": "Retain the permission mapping and positive/negative role tests without personal identifiers.",
      "next": "Recheck current group membership, scope and requested authority; no previous approval is inherited.",
      "falsifier": "An overly broad group grants the exception to unlisted users: reject."
    },
    {
      "id": "CF-04",
      "title": "Tariff refresh on an existing product",
      "mode": "configuration",
      "profiles": [
        "configuration.abacus.stage",
        "configuration.ipal.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "00100873"
      ],
      "investigate": "Read the current tariff versions, effective dates, requested rates/limits and any consuming INSIS catalogue obligations.",
      "execute": "Create the selected version delta, compile under its declared effects and release only the requested target set.",
      "verify": "Worked examples at rate/effective-date boundaries pass for every changed template; downstream limits match where in scope.",
      "learn": "Retain reviewed rating examples and the actual target version matrix.",
      "next": "Check current effective versions and requested scope before importing another tariff.",
      "falsifier": "The new version is present but the engine still selects the old tariff: fail."
    },
    {
      "id": "CF-05",
      "title": "Broker, channel or partner rating template on an existing product",
      "mode": "configuration",
      "profiles": [
        "configuration.abacus.stage",
        "configuration.offer.stage",
        "configuration.serdica.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "SD-1443",
        "00097862",
        "00102031"
      ],
      "investigate": "List the exact broker/channel template keys, selectors, role visibility, effective dates and current rating/offer relationships.",
      "execute": "Fan out S2 work by template using single-template leaf specifications; join offer/role dependencies and compile/release each required item.",
      "verify": "Every selected template is exercised by its intended caller; default and unrelated callers keep their expected prices and visibility.",
      "learn": "Retain the selector-to-template matrix and per-template test cases; record missing or unreleased items explicitly.",
      "next": "Resolve the caller and active template first; reuse only compatible examples and create a new version delta.",
      "falsifier": "All templates compile but every caller falls back to the default: fail."
    },
    {
      "id": "CF-06",
      "title": "Discount, loading or deductible rule",
      "mode": "configuration",
      "profiles": [
        "configuration.abacus.stage",
        "configuration.ipal.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "00057910",
        "SD-1443"
      ],
      "investigate": "Reconcile the requested discount/loading/deductible across IPAL definitions, ABACUS rules and INSIS types/effective dates.",
      "execute": "Apply the stage delta and tracked INSIS-owner work; coordinate any code dependency before activating the rule.",
      "verify": "The same authorised scenario produces the intended amount, limit and deductible on every requested surface.",
      "learn": "Retain the three-system rule mapping and worked boundary examples.",
      "next": "Check existing partial delivery and active versions before adding duplicate definitions.",
      "falsifier": "Only HT_DISCOUNT_TYPE is installed while the operative rule is missing: no completion."
    },
    {
      "id": "CF-07",
      "title": "Pricing-factor LOV or dependent value add",
      "mode": "configuration",
      "profiles": [
        "configuration.ipal.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "SD-1627",
        "00076893",
        "00076960",
        "00080821"
      ],
      "investigate": "Export factor values/dependencies, global versus product scope, labels and INSIS/ABACUS codes.",
      "execute": "Apply only the approved business-key additions and labels, with shared scope gates; obtain any external twin from its owner.",
      "verify": "The value appears under the intended dependent selection and is correctly priced/transferred.",
      "learn": "Retain dependency and cross-code checks in the relevant existing skill.",
      "next": "Read current value and parent dependencies first; distinguish missing value from missing visibility.",
      "falsifier": "A new factor value is selectable but maps to the wrong INSIS code: fail."
    },
    {
      "id": "CF-08",
      "title": "Print template registration and document-set change",
      "mode": "configuration",
      "profiles": [
        "configuration.serdica.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [],
      "investigate": "Inspect the document registration, code selector, exact template parameters and external BI template version.",
      "execute": "Change the declared registration/document set; coordinate Development or BI-owner changes where the template contract differs.",
      "verify": "The intended document set and copy counts appear; invalid/negative selectors produce no extra documents.",
      "learn": "Retain the registration/selector assertion and repeated inert-cell evidence.",
      "next": "Probe invocation and current template parameters before editing the same cell again.",
      "falsifier": "A NULL/zero gate is interpreted as enabled and extra documents are emitted: reject."
    },
    {
      "id": "CF-09",
      "title": "Numbering: the yearly sequence roll, per-office rows, the INSIS sequence with grant and synonym",
      "mode": "external",
      "profiles": [
        "configuration.serdica.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "SD-1553"
      ],
      "investigate": "Read office/product/year numbering rows, current sequence state, grant and synonym existence; identify the authorised sequence owner.",
      "execute": "Coordinate row changes with the separately authorised DDL or external-owner sequence step; never reset an existing counter casually.",
      "verify": "The correct principal can allocate a unique number for the requested office/product/year under an approved effect test.",
      "learn": "Retain the complete row/sequence/grant/synonym checklist and yearly scope.",
      "next": "Inspect existing sequence and maximum issued values before applying a known creation pattern.",
      "falsifier": "The sequence exists but its synonym/grant is missing, or a reset would collide: fail."
    },
    {
      "id": "CF-10",
      "title": "Cover limit, deductible definition or sublimit on an existing product",
      "mode": "configuration",
      "profiles": [
        "configuration.ipal.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "SD-1822",
        "00104001",
        "00103956",
        "00061034"
      ],
      "investigate": "Compare current cover/deductible/sublimit definitions on every affected product and the requested INSIS counterpart.",
      "execute": "Apply the approved existing-product delta with explicit per-cover scope and external dependencies.",
      "verify": "Boundary quotes and requested target views enforce the intended limits while unaffected cover definitions remain.",
      "learn": "Retain the limit mapping and unchanged-cover regression set.",
      "next": "Export both targets, including PROD-only definitions, before changing one cover.",
      "falsifier": "Copying TEST's smaller deductible set removes valid PROD definitions: reject."
    },
    {
      "id": "CF-11",
      "title": "Label, translation or message fix",
      "mode": "configuration",
      "profiles": [
        "configuration.serdica.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "SD-1463"
      ],
      "investigate": "Resolve the message key, language, current texts, consumers and target cache behaviour.",
      "execute": "Apply the exact shared-label delta and authorised cache refresh, preserving unrelated language and product keys.",
      "verify": "The affected screen/document shows the intended text after refresh; unrelated consumers remain valid.",
      "learn": "Retain consumer/key mapping and a stale-cache example.",
      "next": "Check the current target key and cache before proposing another translation write.",
      "falsifier": "The row changes but the customer still sees cached text: no visible-result proof."
    },
    {
      "id": "CF-12",
      "title": "New clause or cover on an existing product",
      "mode": "configuration",
      "profiles": [
        "configuration.abacus.stage",
        "configuration.ipal.stage",
        "configuration.offer.stage",
        "configuration.serdica.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "00097807",
        "00102452",
        "00087147",
        "00104195"
      ],
      "investigate": "Map the new clause through catalogue, tariff, offer, limits, print and INSIS seam; establish which dependencies already exist.",
      "execute": "Run only affected stages and tracked external/Development work; join their signed results before target release.",
      "verify": "The clause can be selected, priced, transferred and printed on the declared target with the correct limits and LD.",
      "learn": "Retain the cross-stage clause checklist and changed-version dependency graph.",
      "next": "Export the current clause and related versions first; apply only the requested new delta.",
      "falsifier": "The cover prices correctly but has no INSIS mapping or print support: fail."
    },
    {
      "id": "CF-13",
      "title": "Package or offer change",
      "mode": "configuration",
      "profiles": [
        "configuration.offer.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [],
      "investigate": "Read the existing offer, covers, selection constraints and dependency rules; identify the required pricing baseline.",
      "execute": "Apply the approved package/offer delta while preserving unrelated packages and resolving any required tariff input from fresh evidence.",
      "verify": "Selection, mandatory/optional covers, conflicts and limits work for allowed and forbidden combinations.",
      "learn": "Retain offer-resolution examples and the associated tariff compatibility.",
      "next": "Re-evaluate the current offer and pricing versions before reusing its previous rule.",
      "falsifier": "The happy-path package works but a forbidden cover combination remains selectable: reject."
    },
    {
      "id": "CF-14",
      "title": "Questionnaire question, answer or object field",
      "mode": "external",
      "profiles": [
        "configuration.ipal.stage",
        "configuration.abacus.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [],
      "investigate": "Map the question/answer or field to its INSIS-native definition, IPAL factor and ABACUS consumption, with effective dates.",
      "execute": "Track INSIS-owner work and the affected IPAL/rating delta as separate obligations in the same requested delivery.",
      "verify": "The field/question is usable on every promised surface, mandatory conditions fire and rating receives the intended answer.",
      "learn": "Retain field-to-system mappings and the partial-delivery counterexample.",
      "next": "Inspect which twins already exist and their effective dates rather than restarting the whole request.",
      "falsifier": "INSIS shows the question but IPAL or rating still ignores it: remain partially delivered."
    },
    {
      "id": "CF-15",
      "title": "IPAL ↔ INSIS seam change for a changed or new product",
      "mode": "configuration",
      "profiles": [
        "configuration.ipal.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "SD-1980",
        "SD-2184"
      ],
      "investigate": "Export the actual covers/objects/LD/field seam and compare both system code sets and consuming transfer code.",
      "execute": "Apply the approved mapping delta; a missing code capability recruits Development rather than adding an inert mapping.",
      "verify": "Representative transfer values map correctly, including negative/unmapped inputs and unaffected siblings.",
      "learn": "Retain the seam mapping assertions and any code precondition.",
      "next": "Check current code and configuration together before treating a missing result as a missing row.",
      "falsifier": "The mapping row is present but the consumer never reads that column: reject."
    },
    {
      "id": "CF-16",
      "title": "Copy-of-product or variant",
      "mode": "configuration",
      "profiles": [
        "configuration.normalizer",
        "configuration.ipal.stage",
        "configuration.abacus.stage",
        "source.camunda_developer"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [],
      "investigate": "Inventory the donor and requested differences across the applicable parts; verify actual process reuse instead of assuming a complete clone.",
      "execute": "Clone only approved structures, build affected stage deltas and recruit Development for required process/user-task changes.",
      "verify": "The variant's own codes, rating, route, process, transfer and documents work on its target; donor behaviour stays intact.",
      "learn": "Retain donor suitability checks and the clone-plus-code dependency pattern.",
      "next": "Read the donor's current state and reject incompatible inherited fields or processes.",
      "falsifier": "Rows are cloned but the product starts the donor's wrong process or uses donor numbering: fail."
    },
    {
      "id": "CF-17",
      "title": "INSIS-native new product with ABACUS rating and an IPAL seam only",
      "mode": "external",
      "profiles": [
        "configuration.normalizer",
        "configuration.abacus.stage",
        "configuration.ipal.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [],
      "investigate": "Record an INSIS-native objective: INSIS product/rules, ABACUS rating and only the required IPAL seam; do not invent an IPAL sales catalogue.",
      "execute": "Coordinate the INSIS owner's product setup with selected rating/seam work; keep each target obligation visible until evidence returns.",
      "verify": "The INSIS-native sales flow receives correct rating and any promised seam behaviour; no false IPAL issuance claim.",
      "learn": "Retain the non-IPAL product variant and explicit owner/sign-out boundary.",
      "next": "Recognise the target administration at intake and select only its real stages.",
      "falsifier": "An ABACUS-only sign-out closes the request while the INSIS product remains unusable: reject."
    },
    {
      "id": "CF-18",
      "title": "Product re-upload or catalogue correction from a changed specification",
      "mode": "configuration",
      "profiles": [
        "configuration.normalizer",
        "configuration.estate_prober"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "00065573"
      ],
      "investigate": "Correlate related source requests and versions, preserve contradictions, and identify which approved requirement changed.",
      "execute": "Publish the amended S1 delta with H1a, invalidate dependent evidence and rerun affected stages/tests; retain valid prior work.",
      "verify": "All outputs consume the current approved requirement revision; superseded values no longer drive the target.",
      "learn": "Retain the ambiguity resolution and dependency invalidation example.",
      "next": "Retrieve the product's latest approved scope and change history before accepting another re-upload.",
      "falsifier": "An old H3 or preview approval is reused after the tariff/limit requirement changed: reject."
    },
    {
      "id": "CF-19",
      "title": "Promo or time-boxed campaign",
      "mode": "configuration",
      "profiles": [
        "configuration.abacus.stage",
        "configuration.offer.stage",
        "source.implementer.serdica-backend"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "SD-1524"
      ],
      "investigate": "Define campaign dates, eligibility, computed duration, offer behaviour and what happens to already issued policies.",
      "execute": "Coordinate code, rating, offer and labels; create durable stop-offering and later removal obligations with H7 before delivery.",
      "verify": "Boundary dates and eligibility pass; after expiry new sales stop as intended while issued policies retain their valid terms.",
      "learn": "Retain time-bound examples and separate commercial expiry from destructive removal.",
      "next": "Check current campaign and successor obligations before extending or recreating it.",
      "falsifier": "A closed browser/session cancels campaign retirement, or removal breaks issued policies: reject."
    },
    {
      "id": "CF-20",
      "title": "Product visibility: routes and roles",
      "mode": "configuration",
      "profiles": [
        "configuration.serdica.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "00099115"
      ],
      "investigate": "Read effective route/product roles in each target and the approved intended audience.",
      "execute": "Apply the exact visibility delta under the full shared-role/target authority and refresh the relevant projection/cache.",
      "verify": "Intended customer/agent roles see the product and an excluded role cannot access it; backend checks agree.",
      "learn": "Retain positive/negative audience tests and the target-specific role mapping.",
      "next": "Recheck live effective rights; TEST visibility does not prove PROD entitlement.",
      "falsifier": "The menu hides a route but the backend still permits an excluded role: fail."
    },
    {
      "id": "CF-21",
      "title": "Master-nomenclature reload",
      "mode": "configuration",
      "profiles": [
        "configuration.ipal.stage",
        "configuration.serdica.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "00080821",
        "SD-1446"
      ],
      "investigate": "Compare old/new nomenclature business keys, pricing dependencies, labels and historical consumers across systems.",
      "execute": "Apply only a reviewed compatible reload/mapping plan; unresolved tariff semantics become a business question, not a blind replacement.",
      "verify": "New selections price and transfer correctly, old policies remain interpretable and shared labels resolve.",
      "learn": "Retain compatibility mappings and forbidden wholesale-replacement examples.",
      "next": "Re-evaluate current pricing references and previously rejected scope before reusing a reload script.",
      "falsifier": "Replacing the catalogue changes the meaning of existing tariff keys: reject."
    },
    {
      "id": "CF-22",
      "title": "BSO blank batch",
      "mode": "data",
      "profiles": [
        "support.investigator.master_data"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [
        "SD-1591"
      ],
      "investigate": "Route BSO batch work to the existing Support skill; inspect exact ranges, ownership, duplicates and used/free lifecycle.",
      "execute": "Insert only the approved missing blank ranges under the declared scope; preserve used numbers and external registry ownership.",
      "verify": "Range counts and uniqueness reconcile; an authorised consuming action accepts the intended free blank.",
      "learn": "Record batch provenance and skill use without treating every blank as an independent training case.",
      "next": "Check overlap and lifecycle again; last month's range is not this month's authority.",
      "falsifier": "A repeated request would reinsert used or already allocated blanks: reject."
    },
    {
      "id": "CF-23",
      "title": "Commission rule set",
      "mode": "configuration",
      "profiles": [
        "configuration.ipal.stage"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [],
      "investigate": "Read the effective commission rule set, product/agent scope, dates and dependent policy calculations.",
      "execute": "Apply the approved rule delta and declared external counterpart; keep policy-specific repairs separate.",
      "verify": "Representative effective-date and participant cases produce the expected commission with currency; unaffected scopes stay unchanged.",
      "learn": "Retain rule-boundary examples and distinguish configuration changes from one-policy corrections.",
      "next": "Read the current effective rule and its affected scope before reusing the earlier expression.",
      "falsifier": "A new global expression changes historical or unrelated policies unexpectedly: fail."
    },
    {
      "id": "CF-24",
      "title": "Process or contract-type registration",
      "mode": "configuration",
      "profiles": [
        "configuration.ipal.stage",
        "source.camunda_developer",
        "source.implementer.serdica-backend"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [],
      "investigate": "Map contract-type/process registration to real schema support, configuration values, BPMN and code consumers.",
      "execute": "Coordinate the Configuration and Development results; deploy compatible schema/code before activating rows where required.",
      "verify": "The declared process/contract type is populated and actually selected by the target workflow, with an authorised test instance.",
      "learn": "Retain schema-plus-value-plus-consumer proof and the inert-registration counterexample.",
      "next": "Check all three layers before assuming a new field or registration row is sufficient.",
      "falsifier": "CONTRACT_TYPE is deployed but NULL and never consumed: no completion."
    },
    {
      "id": "CF-25",
      "title": "Environment reconciliation before configuring",
      "mode": "configuration",
      "profiles": [
        "configuration.estate_prober"
      ],
      "source": "20 Configuration/Typical Cases.md",
      "evidence": [],
      "investigate": "Compare only affected source/target groups in both directions, including columns, current rows, effective versions and consuming code.",
      "execute": "Produce a reviewed reconciliation delta or a report-only result as requested; do not synchronise environments wholesale.",
      "verify": "The report accounts for every selected difference, or the applied delta passes its target assertions while preserving accepted target-only work.",
      "learn": "Retain compatibility checks and directional drift classifications, with observation dates.",
      "next": "Re-measure affected groups; stored differences are historical evidence, never today's source of truth.",
      "falsifier": "A TEST-only UI_REQUIRED column is used in a PROD write packet: reject before dispatch."
    }
  ]
}