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."
}
]
}