☰ Contents
AISA v2.0 / Technical documentation / Customer-specific development module — typical cases

Customer-specific development module — typical cases

F verified factP decided planC open challenge

What this page is. The recurring shapes of customer-specific development on Bulstrad's line as the two repositories show them, not as the design assumed them. It complements Customer-Specific Development Module § 5, whose eight walks (C1–C8) were chosen to stress the architecture; here the only questions are how often does this happen, where in the tree does it land, how does it reach PROD, and what does the module do with it. Nineteen cases, ordered by frequency × pain; each names its commits, its tickets where any exist, its placement seam, its delivery shape and its walk through the stages of Customer-Specific Development Module § 1. Shape labels are heuristic — subject plus touched paths, spot-checked by hand — so neighbouring shapes may trade ± 10 %. As AISA v2.0 would run each of them: the interactive case walkthrough traces every case below on its actual module stages, with five adaptive screen patterns, endpoint payloads, stored records, selected agent prompts, separate recovery/learning and the variant that must fail; each case here links straight to its own journey (Case journeys, Case Protocol).

0. What the census says F

  1. The customer line is 300 backend and 134 UI non-merge commits since 01.06.2025 — about 19 and 8 a month, a 71-commit peak in 07.2025 and troughs of 4–5 — written directly on the environment branch: none of the 15 staging merges is a merge-request merge (all are push/pull syncs of the same branch), and the whole estate holds two SD-named branches (fix/SD-1709-broker-name-search, both repos, 05.2026; an older UI field-generator-fix-SD-405]-).
  2. Ticket traceability is 2.7 % (backend) and 8.2 % (UI) by commit message, 5.3 % and 12.7 % after hand-linking through the ticket analyses. The rest arrives as HDesk requests, as verbal asks („Client complains about this warning, so it is commented out", 17.07.2025) or as Ablera-internal streams.
  3. Customer-specific by path: 43 % of backend commits (90 plugin-, customer-service- or riskmodel-only, 39 mixed with shared code); a further 150 commits touch PAS services that exist as code only on the customer line — src/BusinessInsurance/* on master holds 319 files and no .cs, against 2 259 .cs on staging — so „core file" and „customer file" are not separable on the flat layout. The true customer share lies between 43 % and 93 %.
  4. The largest single stream is the reinsurance module: 84 commits (28 %), one author, 06.2025 → 08.2026, no ticket — a customer-funded module, which the module's charter („never new modules") excludes.
  5. Nothing reaches master by commit id (0 of 300, 0 of 134); 171 (57 %) backend and 91 (68 %) UI subjects reappear there by hand re-application, eleven master commits naming their staging source. Ports run in five directions — staging → master, staging → prod, master → staging (9), prod → staging (10 on 15.07.2025), and prod-only work — not the one the module draws. bulstrad-prod carries 52 re-applied and prod-only commits since the 21.01.2026 merge base.
  6. PROD gets a UI fix the same day as staging in 9 of 9 measured tickets, a backend fix the same day in 4 of 6 (36 days for SD-1863; never, as of 07.09.2026, for the SD-1709 backend half, the flat-rate change and the FRAME series). „Deploy and verify on staging, then cherry-pick" is nominal; H5 will be the first real gate.
  7. Ticket → staging commit is 0–1 day in 11 of 13 measured pairs (17 d for SD-1863; 385 d for SD-524). The eight tickets in status Next Release (SD-547 since 14.07.2025, SD-1161, SD-1618, SD-1702, SD-1873, SD-2007, SD-2138, SD-2143) have no matching commit — a queue the module never reads.
  8. A case is a series, not a commit. Seventeen exact-duplicate subjects (Add a call to DB function ANNEX_PPLAN.PP_generate() × 5 in one week), 43 subjects with series markers (part #2, Reupload, Reapply, Post port fixes, trigger rebuild × 5), 18 revert-type commits.
  9. Two estate facts the module page had wrong or missing. .claude/rules/code-changes.md is present on all four origin refs of both repositories (last touched 14.04.2026; the staging blob differs from master's) — the fix rule exists and is not practised; and bulstrad-test is the staging branch's former name (renamed 22.10.2025 in both repos; the backend one is an ancestor of staging, the UI one diverges on 29.10.2025 with two orphan commits). UI bulstrad-staging was force-rewritten on 04.09.2026 (backup/bulstrad-staging-pre-rewrite-20260904 kept, one commit dropped).
  10. Deployment is a manual job outside the repo. CI builds and pushes the image on push (branch = tag); .deploy_job runs the serdica-infrastructure Ansible playbook when: manual, and the staging configs/deploy-jobs.yml names only demo2 and marketing-demo — the Bulstrad targets live in serdica-infrastructure (consistent with D130). Only 3 of 300 commits carry a .sql file; the SR_MESSAGES, CFG_PRINT_DOCS and POLQRY rows the code expects are applied by hand.
serdica-backend shape n share ticketed (message / any) customer-only / mixed on master (subject) on prod
REINS-STREAM — reinsurance module 84 28 % 0 / 1 16 / 22 59 66
CUST-FEATURE — small extension, no ticket 51 17 % 0 / 3 9 / 3 36 38
DEFECT — fix, no ticket 37 12 % 0 / 1 8 / 1 22 26
PRINT — BstPrintDocuments, template selectors 20 7 % 7 / 7 13 / 1 16 15
PRICING-FILTER — riskmodel Python 15 5 % 0 / 1 15 / 0 11 14
PRODUCT-PROCESS — BPMN + user tasks 14 5 % 0 / 0 8 / 5 6 8
CI-PIPELINE 12 4 % 0 / 0 1 / 0 2 6
EURO-CURRENCY 11 4 % 0 / 0 6 / 0 7 11
BRANCH-RECONCILE (prod → staging) · PORT-FROM-MASTER · REVERT 10 · 9 · 8 9 % 0 0 · 0 · 1 10 · 7 · 5
INTEGRATION (INSIS, LDAP, Bul SI, IdentityServer) 8 3 % 0 / 1 6 / 1 3 7
CONFIG-APPSETTINGS only · PERF · DEPENDENCY · TOOLING · GRAPHQL-SCHEMA · DEFECT-SD 6 · 4 · 4 · 3 · 3 · 1 7 % 0 / 2
Total 300 8 / 16 90 / 39 (+7 by subject) 171 (57 %) 222 (74 %)
serdica-ui shape n share ticketed on master on prod
UI-DEFECT — fix, no ticket 41 31 % 0 / 1 34 40
UI-FEATURE — extension, no ticket 37 28 % 0 / 3 27 34
UI-LOCALE-NUMBER — bg number and decimal series 14 10 % 0 9 14
DEFECT-SD — ticket in the message 11 8 % 11 / 11 5 10
EURO-CURRENCY · TOOLING · I18N-LABEL 7 · 5 · 4 12 % 5 · 0 · 4 7 · 2 · 4
PORT · CI · INTEGRATION · REINS · PRINT · PERF · PRODUCT-PROCESS · RECONCILE 15 11 % 0 / 1 7 14
Total 134 11 / 17 91 (68 %) 125 (93 %)

Seam touches on the backend (a commit may touch several): PAS services 150 · Bulstrad plugins 88 · shared NuGet libraries 39 · platform services 36 · appsettings 34 · Bst* customer services 28 · CI 19 · riskmodel 18 · tests 16 · .sql 3. Product codes in subjects: 4710, 2200, 2222 (× 3 each), 3606, 4704 (× 2), 3408, 3635, 3443, 3607, 4711, 3400.

1. The eight walks, re-read against the census F

Case Verdict The real cases Evidence
C1 claims-search on bulstrad-qa architecture test — not a customer-line case DV-04 DV-11 Claims has no files on staging or prod; the QA line is master's health lineage. The mixed-seam shape it stresses is real (39 mixed backend commits) but arrives as DV-04 and DV-11, not as a QA feature
C2 SD-1863 POLQRY stub typical (seam 3) DV-02 DV-14 12 of the 39 code-defect tickets name a SRD_INTEGR package (SD-1550 INS_DM, SD-1574 / 1587 INS_BOF.Deductible, SD-1659, SD-1836 TR_LIB_PROP, SD-1838 cDuplicateMTPL, SD-1927 TR_AFTER_TRANSFER, SD-1964 / 2180 TR_ANNEX_MC, SD-1997, SD-2063 TR_LIB_ACC, SD-2151 ABC_LIB_MOTOR); the C# print half recurs as DV-02
C3 formly DEPENDENT_ON_FACTOR not a development case — the page says so itself DV-09 DV-10 field-generator.ts was touched seven times on staging; the recurring UI work is validators, dialogs and locale (DV-09, DV-10)
C4 port across layouts typical, not as written DV-17 0 of 434 commits reach master by id, 262 by hand; the example (38 files) is a plugin consolidation, the median port is 1–7 files, and ports also run master → staging (9), prod → staging (10), staging → prod (52 since 21.01.2026)
C5 per-branch appsettings.json typical as a side-effect DV-19 34 of 300 commits bundle it, 6 are appsettings-only; nobody asks for it
C6 Camunda process for a product typical DV-01 14 product-process commits, 168 .bpmn files on the branch; products 3606, 3635, 3408, 3443 / 3607, 3400, 2200 / 2222; four of them have no master counterpart; HDesk 00085986 „нов продукт" → SD-1699 open since 19.05.2026
C7 KI-044 six-owner fix set architecture test DV-16 the incident is real and „incident → clamp" recurs (DV-16, 6 commits); the six-owner matrix happened once
C8 clamp as a standard change typical delivery, rare content DV-16 DV-17 staging first, re-applied to master by the same author eleven days later without a GitLab-issue proposition, UI twin on a fix/ branch; PERF is 4 of 300

Four of the eight are typical, one typical in delivery only, two architecture tests, one configuration. The eight miss the seven most frequent real shapes (DV-01 … DV-07).

2. The cases

Format: ask · evidence · placement · delivery · verification · walk · variants · coverage today · journey. Seams as in Stage Planning § PL-1: 1 customer plugin · 2 customer service · 3 DB-resident PL/SQL · 4 core on the customer line; „flat-layout core edit" means the code sits in a PAS service that on master would be a plugin or PolicyAdministrationSystem/*. Each case ends with Journey: — the same case as AISA v2.0 would run it, in the interactive walkthrough: the selected module stages and checkpoints, each with the adaptive screen the person sees, the endpoint request and what it stores, the agent initialisation and task prompts, the gate, the execution, the reversal, and the variant that must fail. Case journeys states the rules those journeys obey and Case Protocol the service boundaries. Design specification, not a recorded run.

DV-01 — Product process (BPMN + user tasks) for a new or changed product. Ask: the Bulstrad product team via HDesk or Jira (00085986 „нов продукт" → SD-1699; SD-2007 „нов застрахован обект по 3618", Next Release). Evidence: 14 backend commits — c37e140c76 06.07.2026 (3606), 06cf05bf4e 02.09.2026 (3635 + 3606), 71e6418af4 04.09.2026 „Reupload Product 3408", 7a71135a66 05.03.2026 „Product Codes 3443 And 3607 Fix", 2faacd860b 15.09.2025 (2200 / 2222 steps), c0cd227fad 16.07.2025 (a 457-line fork for 3400), 7f0830ed93 renewal post-steps. Placement: seam 1, src/Core/Plugins/Core.Plugin.Bulstrad/Processes (+ SharedProcessServices); on master src/Serdica/Core/__Plugins. Delivery: direct commit → the Core restart uploads the BPMN → prod cherry-pick (8 of 14 on prod); no master port for four of them — „no master counterpart" is the norm here. Verification: start the product's issue process on staging; the Camunda deployment version bumps; a test policy reaches APPROVED. Variants: new product, step change, „Reupload" (the same file re-deployed), a product-code typo, an environment-specific override. Census coverage assessment: C6 (one instance), G24–G27. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-01 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Change the issue process for this product.

Specific failure illustrated

A product's process code is updated, but Camunda still runs the old BPMN version or the wrong product path.

Initial solution take

A product's process code is updated, but Camunda still runs the old BPMN version or the wrong product path.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. Core restart/upload behaviour is part of the BPMN release, not just the image build.
  2. The customer's process files and user-task code can live at different paths from master.
  3. Existing in-flight instances may continue on their original process version.

Return to solution take

Change the approved product process and release its compatible Core/BPMN components.

Reject this shortcut: The image is new but Camunda still serves the old process: no delivery.

Confirmation and application

  1. Pin the product process key, branch heads, BPMN and user-task code; confirm placement.
  2. Implement and test the requested path in isolated worktrees, including any Configuration registration dependency.
  3. Deploy the declared Core image and BPMN set, then start the permitted test instance.

Verification

  1. The target process definition/version is the intended one.
  2. A test instance reaches the requested stage with correct user tasks.
  3. Existing in-flight instances have an explicit treatment rather than being silently assumed migrated.

Recovery

Use the recorded prior image/process version and account for instances started under the new definition; a code rollback does not rewrite process history.

What is retained

Memory: Image publication and process-definition activation are distinct events.

Skill: Require process key/version and a real workflow transition in release proof.

Tool candidate: Automate source/BPMN/target-version comparison and capture the test instance's stage transitions.

Next request: Inspect the live process and branch counterpart before adapting the previous implementation.

Source basis: DV-01 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-02 — Print-document rules and BI Publisher parameters. Ask: the customer via Jira — the best-ticketed shape (19 PRINT tickets in the desk census; SD-593 / 434 / 433, SD-526 / 641, SD-1863, SD-1823). Evidence: 20 backend commits — 2336a6239c 04.06.2025 (CNT_COPY / CNT_DUPLICATE), c25dfc7cb4 29.07.2025, 337dd5ca20 + 2e9b508a0a 01 / 04.08.2025, edc22daf79 ChkCover 22.10.2025, 0561840d4f + 52de8b3721 SD-1863 19 / 21.07.2026; the template-selector series 4412bdf9ef → 6bff307d65 → 07207c3e94 → 7e56082620 (24.10–07.11.2025), a33dec52df / 2f3d2337ac EUR documents; UI aaa4c33d8, dcf0944f2. Placement: seam 2 Integrations/BstPrintDocuments (13 of 20 customer-only) + the shared Operations.PremiumCalculation library (selectors, NuGet) + CFG_PRINT_DOCS rows + POLQRY (seam 3) + BI templates outside git. Delivery: same-day prod (SD-593) or 36 days with a prod-side rewrite (SD-1863); on master 16 of 20, sometimes master-first. Verification: /print-policy on a staging test policy; the per-document printDocs[] log entry (KI-039); the gate fails open (KI-050). Variants: a new parameter, per-object expansion, a gate, the EUR suffix, bill suppression. Census coverage assessment: C2 (the PL/SQL half), C4 (the path fact), C5 (the bundled appsettings); the C# and template half is uncovered. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-02 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

The bank clause is missing from the printed document.

Specific failure illustrated

The bank-beneficiary print change is only half-promoted: the selector is enabled before its evaluator and data dependencies are ready.

Initial solution take

The bank-beneficiary print change is only half-promoted: the selector is enabled before its evaluator and data dependencies are ready.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. SD-1863's archived PROD review found missing configuration rows and an empty POLQRY.gINSIS_CREDITED_OBJ_IDS body.
  2. The unknown print token failed open, producing unwanted documents rather than safely suppressing them.
  3. C# selection, shared library, PL/SQL, registration rows and the external BI template must agree.

Return to solution take

Deliver the complete print contract in compatibility order and test both wanted and unwanted documents.

Reject this shortcut: C# is deployed but a configuration toggle, PL/SQL body or BI template is missing: fail.

Confirmation and application

  1. Reproduce per-object bank-beneficiary selection and inventory the exact C#/library/POLQRY/row/template versions.
  2. Prepare the reviewed code and stored-code change; join the Configuration and BI-owner obligations before enabling the selector.
  3. Promote the compatible set and invoke the exact credited/non-credited object examples.

Verification

  1. The requested bank clause contains the intended object and parameters.
  2. A non-credited object emits no unwanted bank document.
  3. POLQRY has the required implementation, and the target serves all declared components.

Recovery

Restore the compatible selector/evaluator/registration set; previously generated documents remain recorded external effects and may require separate handling.

What is retained

Memory: A fail-open print gate turns an incomplete release into extra output, not just a missing feature.

Skill: Never activate the new selector ahead of its evaluator, rows and template.

Tool candidate: Automate a print-release manifest plus positive/negative document-selection probes, including a stored-code-body capability check.

Next request: Check current invocation and all component versions before using the old print pattern.

Source basis: Case 4 / SD-1863: missing rows, POLQRY stub and fail-open print token — aisa-next/10 Architecture/40 Support/Case Studies.md; DV-02: code, library, PL/SQL, rows and BI-template release obligations — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-03 — The reinsurance stream — a customer-funded capability. Ask: the Bulstrad reinsurance department through Ablera's project management; no ticket in 84 commits. Evidence: 84 backend commits, one author, 06.2025 → 08.2026: facultative premium and claims, treaty, natcat, MDP and facultative reports, e-mailed reports, PasReinsurance.Processing.Plugin.CdPrems.Bulstrad touched 35 times, twenty-plus calculation plugins; UI reinsurance area 7 + 2; a prod-only e44c82a407 „Reins calc improvements" 01.09.2026. Placement: the PAS services PasReinsuranceProcessing / PasReinsurers / PasReinsurersIntegrations / PasReinsuranceReporting + Plugins/*.Bulstrad; on master relocated under src/Reinsurance/ (831 .cs); 59 of 84 subjects on master, 66 on prod. Delivery: direct iterative commits („fac premium updates" × 2, „treaty claims updates" × 2, „trigger rebuild" × 4), four appsettings edits, PDF generation touched ten times. Verification: the facultative / MDP Excel report and its e-mail on staging. Census coverage assessment: none; contradicts „never new modules". Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → Support closure. The outcome is scoped request/referral communication; no implementation is claimed. Journey: ▸ open the DV-03 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Build the reinsurance capability.

Specific failure illustrated

A request for a reinsurance capability is treated as one small fix despite programme-scale scope.

Initial solution take

A request for a reinsurance capability is treated as one small fix despite programme-scale scope.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. The catalogue describes facultative, treaty, claims and reporting work across many plugins and services.
  2. No single generic 'done' test can establish that entire capability.
  3. The current Development charter accepts bounded changes, not an unbounded new-module programme.

Return to solution take

Return a scoped programme referral with its accountable owner and separately definable implementation slices.

Reject this shortcut: 84 commits are treated as one small extension with one generic done test: reject scope.

Confirmation and application

  1. Identify the requested business capability, existing modules and the coordination owner.
  2. Separate bounded defects/extensions from the programme's deliverables and dependencies.
  3. Record the acknowledged scope/referral and any independently authorised slice.

Verification

  1. The owner and scope boundary are acknowledged.
  2. No claim says that all facultative/treaty/reporting capability is delivered.
  3. Any future slice has its own input, tests and delivery acceptance.

Recovery

Amend the scope/referral if it was wrong; there is no target rollback for a programme that was not implemented.

What is retained

Memory: A long commit stream is evidence of programme scope, not one completed small case.

Skill: Keep programme intake distinct from ordinary implementation tasks.

Tool candidate: Use a read-only component/dependency inventory to support scope assessment; do not invent an execution tool for an unapproved programme.

Next request: Route a new bounded reinsurance fix normally; recognise another programme-scale request before implementation.

Source basis: DV-03 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-04 — A premium or cover computation rule for a product family (2200 / 2222, 2215, 47xx, 36xx). Ask: the customer via Jira or HDesk, often verbal. Evidence: cff3e90e7b „Update the new 4704 requirements" 07.08.2025, af6dc9dd98 2200 / 2222 lrLimit, 8bf32b976c PML layer maximum 21.07.2025, b05b26f32f + f590bf87d7 „Fix IV calc" × 2, fad094dd51 AdjustIVAndDiscountFor2215, 0ba74477c4 preset depreciation factor, 68898c31e8 getRates rounding, 9c81503e62 non-selected cover auto-insertion, 537b754c97 + its revert, 91585166ff policy-level discounts (master port d4e42f1d4b), ae1a15ff58 FORMULA datatype, 9afe740ddf PremTypeTax, bf4a7c31bd „Client complains …"; tickets SD-1442, SD-1703, SD-1964, SD-2063, SD-1550 and the nine PRICING-FIX tickets of the desk census. Placement: mixed — Operations.PremiumCalculation.Bulstrad.Lob{Property,Person,Motor} (seam 1, NuGet) and PasPremium / PasPolicyCrud (a flat-layout core edit). Delivery: direct → prod the same day; master 60 % by subject. Verification: quote a test policy per product; compare with ABACUS and INSIS. Variants: limit or deductible rule, rounding, factor default, cover auto-insert, discount recording. Census coverage assessment: none (C8 is the generic sibling). Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-04 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Change this premium or cover calculation.

Specific failure illustrated

A premium-rule library is released, but an active consumer still computes the old result.

Initial solution take

A premium-rule library is released, but an active consumer still computes the old result.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. The rule may belong to a customer plugin or a shared service on the actual lineage.
  2. Publishing a NuGet version does not rebuild its consumers.
  3. A family calculation needs boundary examples and unchanged sibling products.

Return to solution take

Implement the agreed rule at its approved seam and release every required consumer.

Reject this shortcut: NuGet is published but an active consumer still runs the old rule: fail.

Confirmation and application

  1. Reproduce the exact product/cover rule with approved arithmetic and inspect actual placement.
  2. Implement the narrow change, test affected boundaries and review the package/row dependencies.
  3. Publish and rebuild/deploy all declared consumers, then repeat the worked quotes on target.

Verification

  1. The affected product/cover examples match the intended calculation and currency.
  2. Boundary and unchanged-sibling examples remain correct.
  3. Serving consumers use the reviewed package version.

Recovery

Roll back the compatible package/consumer set and account for quotes or policies already produced under the changed rule.

What is retained

Memory: A package release is not a deployed calculation change.

Skill: Keep the worked-example set and consumer manifest in the release packet.

Tool candidate: Automate package-to-serving-consumer version checks and replay the per-product arithmetic matrix.

Next request: Re-run the reproducer on current source and pricing versions before reusing code or examples.

Source basis: DV-04 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-05 — Partner registration API hardening (Bul SI, RegisterPolicy). Ask: Ablera's partner programme (/bulsi). Evidence: PasPolicyRegistration touched 21 times; 2dc2c946d6 27.03.2026 „Harden Bulstrad PasPolicy registration flow" (80 files, +6 578 lines, with 20260325_bulstrad_name_change_cust_details.sql), 22d367b8e9 23.07.2026 supplied policy number (master the same day, fea1848b2b), e5c12ffd2a / 7e8e395c35 endpoint rounding, 37a7e083bf 28.08.2025 Bul SI client (IdentityServer Config.cs), 39c4f21b32 flat rate + plugin consolidation (C4), UI 2e26768d5 flat-rate view. Placement: seam 1 PasPolicy/__Plugins/PasPolicy.Plugin.Bulstrad + PasPolicyRegistration + the IdentityServer client — the one area with unit tests (test/PasPolicy.Plugin.Registration.Bulstrad.Tests). Delivery: staging → master the same day, the author porting and naming the source id; prod when the partner goes live (the flat rate is not on prod). Verification: the Postman collection against the staging REST API; register → transfer → print. Census coverage assessment: C4 (layout), C1 (mixed seam) in part. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-05 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Harden the partner policy-registration API.

Specific failure illustrated

RegisterPolicy returns success, but the partner's policy later fails transfer or printing.

Initial solution take

RegisterPolicy returns success, but the partner's policy later fails transfer or printing.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. The registration plugin, identity client and database schema form one contract.
  2. Repeated requests and supplied policy numbers need declared idempotency/validation behaviour.
  3. The partner's requested target may be staging without a production release.

Return to solution take

Deliver the bounded registration-contract change with its schema and identity dependencies.

Reject this shortcut: REST success precedes a failed transfer or missing print: no end-to-end result.

Confirmation and application

  1. Pin the exact partner request examples, target and registration/identity/schema versions.
  2. Implement and test valid, invalid and repeated requests at the approved plugin seam.
  3. Deploy only the agreed target set and exercise register → transfer → print.

Verification

  1. Valid examples produce the intended policy and document.
  2. Invalid and repeated requests follow the approved response/effect behaviour.
  3. Transfer and print proof accompany REST success.

Recovery

Reconcile policies already registered before retry or compensation; preserve issued numbers and identity-client changes outside the packet.

What is retained

Memory: A successful HTTP response is not proof of completed registration delivery.

Skill: Use the approved partner collection as an end-to-end contract with negative and repeat examples.

Tool candidate: Automate request replay and downstream policy/transfer/print correlation, with credentials and customer identifiers excluded from retained fixtures.

Next request: Recheck the current partner contract and schema; do not reuse a past partner's credentials or launch authority.

Source basis: DV-05 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-06 — Customer and party data rules (custPid, contacts, names, addresses, LDAP accounts). Ask: the customer via Jira (PARTY 15, ACCESS-USER 26, CUSTOMER-DATA 4 tickets in the desk census) and operations. Evidence: c987780d56 + 5e2ef953d5 custPid 12–13.08.2025 (UI 06448c898 the same day), c80be54c90 + 5d41f24cd8 18.03.2026, 9938af5047 Preferable = Y, 67210f5cf0 SeekCustomerOperation 03.04.2026 (UI 0845c96f0 the same day), 9d9b6ae5f0 + 140a6fc56f LDAP 29.07.2025, 0c0875b60a IdentityServer user accounts; UI 52bbf4059 address optional, 41ab7d18d SD-1943. Placement: PasCustomerCrud / PasPolicyCrud (flat-layout core) + IdentityServer.Plugin.Bulstrad (absent on master) + UI customers. Delivery: UI + backend pairs the same day; master 50 %. Verification: register or edit a test client; INSIS P_PEOPLE after transfer. Census coverage assessment: none. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-06 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Correct how these customer details are handled.

Specific failure illustrated

The UI accepts party data that the active backend rejects or transfers differently.

Initial solution take

The UI accepts party data that the active backend rejects or transfers differently.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. Customer fields pass through UI validation, backend rules and INSIS propagation.
  2. custPid, optional addresses and account-related fields have distinct source/format rules.
  3. A same-day UI/backend pair can still be only partly deployed.

Return to solution take

Change and deliver the compatible field contract across the affected consumers.

Reject this shortcut: UI accepts a value that the active backend rejects: fail the pair.

Confirmation and application

  1. Reproduce create/edit with the exact valid and invalid field examples on the current target.
  2. Implement the narrow UI/backend/identity change at the approved seams.
  3. Deploy the compatible pair and inspect the resulting participant data after transfer.

Verification

  1. The UI and backend agree on valid and invalid input.
  2. The intended optional and required fields behave correctly.
  3. Transferred participant data matches the approved source meaning.

Recovery

Restore the compatible client/server contract; review records already saved or transferred under the changed rules before attempting data compensation.

What is retained

Memory: A UI validator change does not establish the server's field contract.

Skill: Keep source-of-truth and negative/optional-field examples with the paired release.

Tool candidate: Automate the UI-request-backend-target field comparison using sanitised fixtures.

Next request: Check both current client validation and server behaviour before applying the previous pattern.

Source basis: DV-06 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-07 — Agent, office and commission code paths (посредник). Ask: the customer (ACCESS-AGENT 9, COMMISSION 6 tickets; SD-1709 fixed in a day; SD-1511 Next Release) and /add-agent operations. Evidence: UI 08fdcf733 „Commissions rework" 30.07.2025 (9 files, −763 lines) + backend efe8ddcfff / ae78919a51 „New Endpoint and Bulstrad plugin for it" (PayablesAndCommissions plugin, 21 files), f0379031fd UR_EXCLUSIVE_AGENTS 20.01.2026, 8e485dcbaf „Fix adding agent office" 20.02.2026, befe3dc639 21.10.2025; UI 943e286b9, 4c9bdd467, d5963e608 / 465d5a5877 SD-1709. Placement: PayablesAndCommissions/Plugins (seam 1 inside a module), PasPolicyCrud, UI participants / agents-comm-defaults. Delivery: the one fix-branch example (SD-1709: staging, prod and master UI the same day; the backend half never on prod). Verification: participant search and the commission default on a test quote. Census coverage assessment: none. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-07 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Fix participant search and commission defaults.

Specific failure illustrated

The participant/commission UI reaches production while its required backend half remains on staging.

Initial solution take

The participant/commission UI reaches production while its required backend half remains on staging.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. The participant search and commission default depend on both UI and backend behaviour.
  2. The catalogue's SD-1709 example specifically exposes a missing backend promotion.
  3. Office/agent rules and downstream defaults must be checked together.

Return to solution take

Deliver the reviewed compatible UI/backend change and retain any missing half as an open obligation.

Reject this shortcut: The UI reaches PROD but its required backend half remains on staging: reject delivery.

Confirmation and application

  1. Reproduce the participant search/default and identify the actual serving revisions.
  2. Implement or promote only the required pair, including the declared plugin/consumer changes.
  3. Run the target search and a test quote with the approved intermediary/office scope.

Verification

  1. The intended participant is returned.
  2. Commission defaults follow the correct agent/office rule.
  3. Both serving halves match the release packet.

Recovery

Roll back the compatible pair, not only the visible UI, and account for quotes created with changed defaults.

What is retained

Memory: A green UI deployment can conceal an absent backend capability.

Skill: Make required client/server halves explicit in the release join.

Tool candidate: Automate a serving-capability/version check before the participant and commission regression probes.

Next request: Inspect serving versions first; the next ticket may be an undeployed half rather than a new defect.

Source basis: DV-07 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-08 — A regulatory cross-cutting change: the BGN → EUR changeover. Ask: regulation (euro adoption 01.01.2026), coordinated by Ablera. Evidence: 11 backend + 7 UI commits 07.2025 → 07.2026: 94e9720ff9 „Everywhere BGN -> EUR (or USD)" 07.11.2025 (23 files, DB models), 2f3d2337ac, a33dec52df, 5fa018f789, bd54f9f9b4, 966d7ae74f „bring back ConvertInsuredValuesToBGN" 11.12.2025, riskmodel e580c0d661 VX-46 _EUR template suffix + 835dd31c37 EUR filter (353 lines), 1bfda06407 SD-1962 country-aware rate; UI c899f4ad5 SD-1855, 371d1de5a, GetPremiumAndCurrency × 3 UI + backend 29–31.07.2025. Placement: every seam at once — plugins, shared DB models, riskmodel, print, UI pipes. Delivery: a five-month series with reverts; prod 11 of 11. Verification: quote, print and transfer in EUR and on legacy BGN policies. Census coverage assessment: none — a programme, not a case; the multi-placement matrix (G28) at programme scale. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → Support closure. The outcome is scoped request/referral communication; no implementation is claimed. Journey: ▸ open the DV-08 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Coordinate the currency change across products.

Specific failure illustrated

The BGN-to-EUR programme is compressed into one case and legacy-currency behaviour is lost.

Initial solution take

The BGN-to-EUR programme is compressed into one case and legacy-currency behaviour is lost.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. The change spans plugins, shared models, rating filters, printing and UI interpretation.
  2. The history contains reverts and restoration of conversion behaviour.
  3. A new EUR quote and a legacy BGN policy have different obligations.

Return to solution take

Refer the programme explicitly and accept only bounded currency slices with named dependencies.

Reject this shortcut: One successful EUR quote is treated as proof of every legacy policy, report and transfer: reject.

Confirmation and application

  1. Identify affected product/system seams and the accountable programme owner.
  2. Separate the requested slice from the cross-product programme; define both new-EUR and legacy cases for that slice.
  3. Record the scope decision or deliver only the separately approved slice.

Verification

  1. The referral is labelled as a referral, not a completed currency programme.
  2. Any implemented slice preserves the intended legacy interpretation.
  3. Its quote, transfer and print examples reconcile with currency displayed.

Recovery

Review conversion semantics and records already produced before reversing a slice; do not undo the programme with a bulk currency-string replacement.

What is retained

Memory: Currency code replacement is not the same as preserving monetary meaning.

Skill: Require paired new-currency/legacy-policy fixtures for every bounded slice.

Tool candidate: Automate a slice-specific quote/transfer/print comparison with explicit currency and conversion basis.

Next request: Separate new programme scope from a repeat defect and recheck the effective currency/version context.

Source basis: DV-08 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-09 — UI number, locale and field-validation behaviour for Bulgarian operators. Ask: the customer via Jira (SD-1950, SD-1971, SD-2138 / 2143 Next Release, KI-037) and UAT. Evidence: 14 locale commits (02.07–11.08.2025: the injection token, toNumberParser, decimal dot and comma, „bringing back previous behaviour"), validators 5fd5aceb2 + 4c837532d ЕГН, 1b71c75d2 bulstat warning, 35e48523e RCertif, 0f3c19120 no-dash, 9ca00e3d9 VIN upper-case; SD-2138 / 2143 (characters vs bytes) still open. Placement: libs/serdica-shared pipes, directives and validators + formly/field-generator.ts — a different path on master (serdica-utils, C3). Delivery: same day on staging, prod and master. Verification: DOM text through handles (G14) on the affected form. Census coverage assessment: C3 in part (the path-drift fact). Current illustrated path P: Support intake/classification → route → Assessment & Offers inside the same Support case: O1 Assess effort → O2 Prepare offer → O3 Customer decision → O4 Communicate decision → Support closure. The outcome is scoped request/referral communication; no implementation is claimed. Journey: ▸ open the DV-09 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations. The current AISA path is classification and commercial communication only. No offer, price or delivery date is invented.

Customer request

The number changes when I enter a comma.

Specific failure illustrated

A Bulgarian number field looks correct but submits a different numeric value after parsing or blur.

Initial solution take

A Bulgarian number field looks correct but submits a different numeric value after parsing or blur.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. The relevant path includes toNumberParser, form validation and the actual outgoing payload.
  2. Comma/dot entry, blur and reopening exercise different transitions.
  3. The correct master path may differ from the customer's serdica-shared/Formly lineage.

Return to solution take

Route this Core Development offer type into Assessment & Offers. Clarify the request, investigate required effort through scoped domain evidence, draft owner-backed terms, obtain customer approval and communicate the decision. No implementation follows from offer approval.

Reject this shortcut: An offer or acceptance starts Source implementation, or missing owner terms are presented as a committed delivery: fail.

Confirmation and application

  1. Clarify the exact requested shared behaviour and success examples with the customer.
  2. Assess the required work and dependencies using current source evidence and comparable cases; record uncertainty and separate active effort from external waiting.
  3. Prepare owner-backed scope/price/delivery terms, obtain the customer’s decision on the exact offer revision, and communicate it. Missing terms remain pending.

Verification

  1. The numeric-input gesture and posted value are attached to the owner brief.
  2. Every quoted offer or delivery term has an owner/source reference and its proposed/committed status.
  3. No Core implementation tasks or grants exist; absent commercial terms remain visible as pending.

Recovery

Correct the request or communicated terms through the same reviewed channel. There is no target code/data change to reverse.

What is retained

Memory: Retain the shared-versus-customer classification, reproducible evidence and the source of commercial/delivery terms; do not retain a fictitious executed repair.

Skill: Assess required work and craft a sourced offer; retain comparable effort evidence and the customer decision.

Tool candidate: Reuse the common request/packet and channel tools; this request does not justify a new code-execution tool.

Next request: Check whether the new request is the same shared behaviour or a customer-specific variant, then prepare a fresh owner brief and obtain current offer/delivery terms.

Source basis: DV-09 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-10 — Product object screens: dialogs, labels, tooltips, descriptions (the 2200 / 2222 wave). Ask: the customer via Jira — seven tickets in six weeks (SD-1839, SD-1855, SD-1857, SD-1869, SD-1953, SD-1968, SD-2138 / 2143). Evidence: 819319152, cb6145ed3, 929df1589, c0dc7192a, c899f4ad5 (all 07.2026, same day as the ticket); the description feature 8b96c4289 15.10.2025 → 63744bf9f + 1e8584276 07.04.2026 → SD-1839 25.06.2026 because it never reached prod. Placement: apps/serdica-ui/src/app/views/business/{quotes,policies,shared} (43 / 39 / 34 touches). Delivery: same day everywhere; the un-promoted feature became a ticket. Verification: open the object dialog on a staging policy. Census coverage assessment: none. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-10 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

The object dialog does not behave as requested.

Specific failure illustrated

The requested object-dialog behaviour already exists in source but the target serves an older version.

Initial solution take

The requested object-dialog behaviour already exists in source but the target serves an older version.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. Feature absence, a bug and a missing promotion require different work.
  2. The description/dialog history includes changes that did not reach production.
  3. Opening, editing and saving exercise more than the initial render.

Return to solution take

Implement only a missing approved capability, or promote the existing reviewed change when deployment is the gap.

Reject this shortcut: A code diff exists but the target still serves the older dialog: no completion.

Confirmation and application

  1. Compare the target interaction and serving UI revision with the known source change.
  2. Prepare the smallest required dialog/label/data-contract delta or promotion.
  3. Test open, edit, validate, save and repeated navigation on the target.

Verification

  1. The requested dialog or description feature is actually present on target.
  2. Edits persist with valid data-contract behaviour.
  3. Reopening and subsequent navigation remain usable.

Recovery

Restore the prior compatible UI/data-contract version and keep already-saved record changes explicit.

What is retained

Memory: Source presence does not prove user-visible availability.

Skill: Check the serving revision before treating a reported missing UI feature as new development.

Tool candidate: Automate the target-version check and a small dialog interaction/persistence regression.

Next request: Inspect deployed feature/version before reopening development; reuse the real interaction test.

Source basis: DV-10 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-11 — Cargo and framework (11xx) contracts: FRAME types, group policies, master-policy objects. Ask: the customer (33 CARGO tickets in the desk census; SD-2005 fixed in three days; SD-1485 / 1502 Next Release). Evidence: 64e5c8fc84 + 51a1da8885 04.09.2026 (32 files: Core.Plugin.Bulstrad 16, WorkflowEngine 4, Ablera.Serdica.Annexes 4) → master 797fdf3bfe the same day; UI 7bf871906 → 98c1616d4; 6a76d8df1 SD-2005; 472059643 / 62cff5a579 pcDescr / ObjDescr 23–26.09.2025. Placement: mixed — plugin + Core WorkflowEngine + the shared Annexes library. Delivery: a two-part series, UI + backend the same day, prod pending. Verification: create a 1102 / 1103 under a 1101 framework; the /sync-framework checklist. Census coverage assessment: none. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-11 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Support the framework contract type across the product.

Specific failure illustrated

A framework contract-type column exists, but required values are NULL or never selected by the process.

Initial solution take

A framework contract-type column exists, but required values are NULL or never selected by the process.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. Schema, configuration values, code/plugin and workflow are separate dependencies.
  2. Cargo FRAME/group-policy behaviour may touch shared Annexes consumers.
  3. A new column on both environments does not establish a working feature.

Return to solution take

Join the contract-type schema, values and consumers with the intended framework flow.

Reject this shortcut: A new column exists on both environments but every required value is NULL: fail.

Confirmation and application

  1. Pin actual schema, code and workflow versions and list the expected contract-type values.
  2. Implement the approved source changes and join the Configuration delta before activation.
  3. Create the permitted child under the intended framework and inspect the consumed contract type.

Verification

  1. The required values are populated and meaningful.
  2. The active consumer selects the declared FRAME/contract type.
  3. The child is created under the correct framework and unrelated contracts still work.

Recovery

Restore a compatible code/value set; account for children or process instances created under the new contract type.

What is retained

Memory: Schema presence, population and runtime consumption are three separate proofs.

Skill: Require the mixed code/configuration release and its consumer test.

Tool candidate: Automate schema/value/consumer checks and capture the framework/child linkage in the smoke test.

Next request: Recheck column support, row population and consumer behaviour before reusing the FRAME pattern.

Source basis: DV-11 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-12 — Motor (47xx) flow rules. Ask: the customer via Jira or HDesk (SD-1862 camper, SD-1919 getPriceByVin timeout KI-012, SD-1987 gadgets, SD-1498 / SD-547 Next Release). Evidence: e7b83d4fb5 + 003b87b1e2 TEMPPLATE 15–16.09.2025, d2a64a2b63 lessee 13.07.2026, 65d353d189 ГФ timeout 18.09.2025 (KI-031), 4a4f950c5a MTPL subtypes (riskmodel), UI 6f339d4de no documents on 4710 / 4711, 6d0f6ff92f. Placement: Core.Plugin.Bulstrad, BstPasPolicyService, PasPolicy.Plugin, riskmodel. Census coverage assessment: none; SD-547 has waited since 14.07.2025. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-12 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Correct this motor-policy flow.

Specific failure illustrated

A motor-flow change handles one subtype but retries an ambiguous partner timeout or breaks a sibling product.

Initial solution take

A motor-flow change handles one subtype but retries an ambiguous partner timeout or breaks a sibling product.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. Product/subtype and process version determine which rule executes.
  2. A timeout may follow a completed external effect.
  3. A Next Release wish is a waiting request, not an implicitly authorised deployment.

Return to solution take

Implement the bounded subtype rule or retain the explicit release wait, with timeout reconciliation preserved.

Reject this shortcut: A timeout is assumed to mean nothing landed and the action is retried blindly: reject.

Confirmation and application

  1. Reproduce the exact motor subtype, partner response and current process/riskmodel path.
  2. Implement the approved plugin/service/filter change and test affected plus sibling cases.
  3. Deploy only as authorised and reconcile an unknown external outcome before any retry.

Verification

  1. The requested subtype follows the intended flow.
  2. Sibling products and relevant negative responses remain valid.
  3. Ambiguous external effects are reconciled rather than repeated.

Recovery

Use the declared code/process reversal and reconcile external registrations or documents already produced.

What is retained

Memory: Timeout classification and subtype discrimination belong in the fix, not in an operator's memory.

Skill: Keep subtype, response and current-process inputs in the regression fixture.

Tool candidate: Automate subtype/response replay with explicit unknown-outcome checks instead of a blanket retry script.

Next request: Check current service/flow version and outstanding release before proposing a second fix.

Source basis: DV-12 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-13 — ABACUS pricing pre- and post-filters (Python riskmodel). Ask: Ablera's pricing team and customer tariff asks. Evidence: 15 commits, 33 .py files: 96b300b6d0 4710 post-filter 02.03.2026 (→ SD-1526 rounding 07.04.2026), 1c0cdeaea1 4710 / 4711 12.11.2025; eight by one author (1244cc5785 corrections overrider 21.05.2026, reverted on prod only by 22f9cd9ffe 18.06.2026; region map; EUR filter; default template). Placement: src/Analytics/riskmodel/App — customer-specific by construction, image anl-risk-model; master has 118 .py against 90. Delivery: direct; prod cherry-pick; a prod-only revert. Verification: ABACUS get_rates on staging against the expected premium. Census coverage assessment: only as a consult target in C1. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-13 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Correct the pricing pre/post-filter.

Specific failure illustrated

A routine port restores a pricing filter that was deliberately reversed on production.

Initial solution take

A routine port restores a pricing filter that was deliberately reversed on production.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. Python riskmodel pre/post-filters choose or transform rating inputs/results.
  2. Target-only reversals are part of the intended target state until reviewed.
  3. The deployed anl-risk-model artifact, not a source file alone, determines behaviour.

Return to solution take

Apply the reviewed target-specific filter change using the repository's Python toolchain.

Reject this shortcut: A change deliberately reverted on PROD is restored by a routine port without review: reject.

Confirmation and application

  1. Read the current pre/post-filter, selected template and source/target reversal history.
  2. Implement and test the approved input/output behaviour without restoring an excluded target change.
  3. Deploy the declared artifact and run current get_rates fixtures per cover and template.

Verification

  1. The intended template and per-cover premiums are selected.
  2. Unchanged cases retain their expected output.
  3. The target serves the approved filter revision, including its intentional exclusions.

Recovery

Restore the recorded prior filter/artifact with its target exceptions; do not use a generic port to erase a deliberate reversal.

What is retained

Memory: A target reversal is evidence of intended behaviour, not automatically a missing commit.

Skill: Keep target-specific exclusions and exact filter input/output fixtures.

Tool candidate: Automate per-cover filter regressions and compare the proposed port with recorded target-only reversals.

Next request: Inspect the target's actual filter and prior reversal before using a staging implementation.

Source basis: DV-13 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-14 — INSIS transfer and revert-to-application handling (C# caller + PL/SQL). Ask: the customer (29 TRANSFER-STUCK tickets). Evidence: 3ec124f482 / 4306d23b1a / a0f3102ea4 INSIS LOCK handling 24.06–02.07.2025, fe37f497be + 00e7828ae5 BstRevert pre-checks moved into the DB procedure 18.07.2025, a68b36b934 bst_integration_sync_to_external_pas 30.01.2026, 65d353d189; the PL/SQL-side tickets of C2's row. Placement: seam 2 BstIntegration / BstPasPolicyService + seam 3 SRD_INTEGR (not in git). Delivery: C# via the branch, PL/SQL by hand on the database — two half-cases. Verification: transfer a test policy; /check-transfer. Census coverage assessment: C2 covers the PL/SQL promotion; the C# ↔ PL/SQL split is not covered. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-14 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Fix the transfer and return-to-application behaviour.

Specific failure illustrated

The C# caller is promoted but the live PL/SQL still implements the old transfer/revert contract.

Initial solution take

The C# caller is promoted but the live PL/SQL still implements the old transfer/revert contract.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. Stored code may not be versioned in the repository alongside its caller.
  2. A return-to-application sequence can affect an entire multi-year family.
  3. Cross-system timeouts leave effects that must be reconciled before replay.

Return to solution take

Deliver the compatible caller and stored-code contract, then prove the transfer/revert sequence.

Reject this shortcut: The C# side is deployed but the database still has the old contract: fail.

Confirmation and application

  1. Reproduce the caller/database boundary and retain the current package body and effect evidence.
  2. Prepare the reviewed source and PL/SQL artifacts in compatible order, with declared effect/DDL gates.
  3. Run the authorised target sequence and compare family state before and after.

Verification

  1. The active caller and package implement the same contract.
  2. Transfer/revert completes without duplicate effects.
  3. Required family membership and state invariants still hold.

Recovery

Restore compatible caller/package versions and compensate only known landed data effects; a package rollback does not undo policy changes.

What is retained

Memory: Caller deployment and database-contract deployment must join before delivery.

Skill: Retain the triggering action, live package identity and whole-family regression.

Tool candidate: Automate caller/package capability checks and the journal-backed transfer/revert assertion sequence.

Next request: Load current caller and package signatures before applying the regression; check whether the causal fix is already live.

Source basis: DV-14 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-15 — Configurable operator checks and messages with DB rows. Ask: the customer via HDesk (00104150 anti-backdating 4704, 00103979 3636 start date, 00099893 — all 07–08.2026, after the generic commit). Evidence: c6e39ad5d6 17.07.2026 (+ 20260717_policy_date_operations_messages.sql), b26c4f3657 UPR (two .sql), 003b87b1e2, 1d2fb215ed, a5eaf1d903 + b1507c3b34 human-readable error arguments, 8f57105189, 4d0c87d902, d4dfadb1a5. Placement: the shared Ablera.Serdica.Operations.* NuGet + SR_MESSAGES and configuration rows; only 3 of 300 commits carry .sql — the rest of the DB side is applied outside git. Delivery: library release + consumer rebuild (G32); prod the same day. Verification: trigger the check on a staging quote; the message text in Bulgarian. Census coverage assessment: C8 / G32 in part. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-15 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Enable the new operator check and its message.

Specific failure illustrated

The new validation library builds successfully, but no enabling row or Bulgarian message reaches the target.

Initial solution take

The new validation library builds successfully, but no enabling row or Bulgarian message reaches the target.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. The generic Operations library, configuration activation and SR_MESSAGES are separate components.
  2. A package version is not enough if a consumer was not rebuilt.
  3. Human-readable error arguments are part of the operator-facing contract.

Return to solution take

Deliver the compatible library, consumers, enabling rows and message keys.

Reject this shortcut: A successful build with no enabling row is reported as a working control: reject.

Confirmation and application

  1. Identify the generic capability, required activation rows and message parameters.
  2. Implement/review the narrow change and join the Configuration or owner's row delivery.
  3. Rebuild the declared consumers and trigger valid/invalid examples on target.

Verification

  1. The invalid input is blocked by the intended control.
  2. A permitted policy start date still passes the enabled control.
  3. The Bulgarian message and its arguments resolve from the deployed code/row set.

Recovery

Restore compatible activation/message/library versions and account for cases already processed under the rule.

What is retained

Memory: A build can be green while a configurable control is inert.

Skill: Make code, enabling rows, message keys and consumer versions one release checklist.

Tool candidate: Automate capability/activation/message completeness checks and replay the invalid/valid operator examples.

Next request: Check whether the code exists but lacks activation or messages before writing new code.

Source basis: DV-15 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-16 — Incident-driven robustness fix (clamp, index, error leak). Ask: operations (a KI). Evidence: d7f8c72210 KI-044 → master a44b7e21c8 eleven days later, UI d2ec130b4 + fix/configuration-paging-collector; 0135c051c1 05.11.2025 and e8203dd01b 03.08.2026 numeric casts and index seek, 500dd218e0, 507568d56b chunks, a8838a2c1d; 054e4c1347 / 6d0f6ff92f operation-runner error leaks. Placement: shared libraries (CrudBaseServices, Operations.Runner) → NuGet + all consumers. Census coverage assessment: C7 / C8 — adequate. Current illustrated path P: Support intake/classification → route → Assessment & Offers inside the same Support case: O1 Assess effort → O2 Prepare offer → O3 Customer decision → O4 Communicate decision → Support closure. The outcome is scoped request/referral communication; no implementation is claimed. Journey: ▸ open the DV-16 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations. The current AISA path is classification and commercial communication only. No offer, price or delivery date is invented.

Customer request

Prevent this incident from recurring.

Specific failure illustrated

A robustness patch exists but the affected query still scans, truncates useful results or leaks the wrong error.

Initial solution take

A robustness patch exists but the affected query still scans, truncates useful results or leaks the wrong error.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. The original boundary workload determines whether the clamp/index fix is valid.
  2. An index's existence does not prove the query uses an appropriate predicate.
  3. Shared library fixes require all affected consumers to be rebuilt.

Return to solution take

Route this Core Development offer type into Assessment & Offers. Clarify the request, investigate required effort through scoped domain evidence, draft owner-backed terms, obtain customer approval and communicate the decision. No implementation follows from offer approval.

Reject this shortcut: An offer or acceptance starts Source implementation, or missing owner terms are presented as a committed delivery: fail.

Confirmation and application

  1. Clarify the exact requested shared behaviour and success examples with the customer.
  2. Assess the required work and dependencies using current source evidence and comparable cases; record uncertainty and separate active effort from external waiting.
  3. Prepare owner-backed scope/price/delivery terms, obtain the customer’s decision on the exact offer revision, and communicate it. Missing terms remain pending.

Verification

  1. The paging workload, shared cap/default semantics and affected consumers are attached to the owner brief.
  2. Every quoted offer or delivery term has an owner/source reference and its proposed/committed status.
  3. No Core implementation tasks or grants exist; absent commercial terms remain visible as pending.

Recovery

Correct the request or communicated terms through the same reviewed channel. There is no target code/data change to reverse.

What is retained

Memory: Retain the shared-versus-customer classification, reproducible evidence and the source of commercial/delivery terms; do not retain a fictitious executed repair.

Skill: Assess required work and craft a sourced offer; retain comparable effort evidence and the customer decision.

Tool candidate: Reuse the common request/packet and channel tools; this request does not justify a new code-execution tool.

Next request: Check whether the new request is the same shared behaviour or a customer-specific variant, then prepare a fresh owner brief and obtain current offer/delivery terms.

Source basis: DV-16 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-17 — Branch reconciliation and merge-from-master ports (flat-layout upkeep). Ask: nobody — the lineage forces it. Evidence: the 15.07.2025 series of ten prod → staging commits (fe12495778 … 4b993d3d43); master → staging 9e003a3056 / 05dd255502 / 05eb772fbf 13.06.2025, 6bff307d65 04.11.2025, d06220cbb7 „Equalize with master", 5ca7faf71c 18.02.2026, UI 229bfca3f; UI be8c611d7 „backport from production"; prod-only e80cb39847; the UI history rewrite of 04.09.2026. 27 of 300 backend commits (9 %) are branch plumbing. Census coverage assessment: C4 / G17 / G18 describe one direction; reconciliation from prod and merges from master are absent. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-17 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Port this change without losing target-only work.

Specific failure illustrated

A cross-branch port matches a commit subject but loses target-only behaviour or lands on the wrong layout.

Initial solution take

A cross-branch port matches a commit subject but loses target-only behaviour or lands on the wrong layout.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. Source and target paths can differ substantially.
  2. Target-only fixes and reversals must be preserved explicitly.
  3. A history rewrite invalidates previously reviewed head relationships.

Return to solution take

Port the reviewed semantic change in the requested direction against freshly pinned heads.

Reject this shortcut: Protected target history was rewritten after approval: invalidate preflight and re-review.

Confirmation and application

  1. Capture source/target heads, path correspondence and target-only exceptions.
  2. Apply the narrow semantic delta in an isolated target worktree and review the target diff.
  3. Run target tests and record equivalence evidence against the actual heads.

Verification

  1. The target behaviour implements the intended source change.
  2. Target-only accepted work remains intact.
  3. The reviewed heads still match before promotion; rewritten history forces new review.

Recovery

Use a reviewed revert/continuation on the target's actual history; do not reset away unrelated target work.

What is retained

Memory: Subject matching is retrieval help, not proof of an equivalent port.

Skill: Keep directional path maps and target exceptions with the port packet.

Tool candidate: Automate head/path/patch correspondence and flag target-only or rewritten-history conflicts for review.

Next request: Measure current heads and differences again; a historic path map is only a hypothesis.

Source basis: DV-17 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-18 — Pipeline, registry, dependency and tooling maintenance on the customer branch. Evidence: CI 12 (three on 29.07.2025; the GitLab server move 08–09.02.2026; 35bcd3d14c the staging environment 22.10.2025; 21c2545cc0 BOM; trigger rebuild × 5), DEPENDENCY 4 (33d4a6ed49 .NET 10, d4daeceb75 AutoMapper 15.1.1, ddaed4889e CVE-2026-48109, a5d6af3298 Maven / JRE), TOOLING 3 + 5 (.claude/ rewrite 13–14.04.2026), UI package-lock 7, GraphQL schema regeneration 3. Placement: .gitlab-ci, Dockerfiles, csproj / package.json. Census coverage assessment: G23 / D130 only. Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-18 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Repair this build or dependency problem.

Specific failure illustrated

The image is published after a tooling change, but a clean build or the actual deployment job still fails.

Initial solution take

The image is published after a tooling change, but a clean build or the actual deployment job still fails.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. CI configuration, runtime dependencies, lockfiles and generated schemas can change together.
  2. The job identity and target environment must be explicit.
  3. Generated artifacts or instruction files cannot be silently omitted from review.

Return to solution take

Fix the specific build/runtime boundary and prove the complete reproducible artifact/job path.

Reject this shortcut: Generated lock/schema changes are excluded from review and hide an incompatible dependency: reject.

Confirmation and application

  1. Reproduce the failing clean build or job with the pinned toolchain and dependency graph.
  2. Make the scoped CI/dependency/tooling change and review lock/schema/instruction changes with it.
  3. Run a clean build and the declared runtime/job checks, then verify target use if deployment was requested.

Verification

  1. The clean build is reproducible from the reviewed inputs.
  2. The intended job produces the correct artifact for the named target.
  3. Runtime/deployment proof accompanies registry publication where required.

Recovery

Restore compatible toolchain/config/lock versions; preserve produced artifacts and actual job effects for reconciliation.

What is retained

Memory: An image in a registry is not deployment or runtime acceptance.

Skill: Include generated and tooling-control files in the reviewable change.

Tool candidate: Automate a pinned clean-build/job/artifact verification run and report the exact failing boundary.

Next request: Reproduce on the current toolchain and inspect dependency changes before adopting the old command.

Source basis: DV-18 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

DV-19 — appsettings.json as code. Evidence: 34 commits bundle it, 6 are appsettings-only (8e89216d9b, 8ce2e2c2d5, 5a4c676b97, 4a2700a551, 2070e6e60d a RabbitMQ route, c557103374 „appsettings.json reset"). Census coverage assessment: C5 — adequate as written; add the „reset" pattern (a developer reverting local values). Current illustrated path P: Support intake/classification → route → accepted Development subcase: S1 Planning → S2 Approval → S3 Implementation → S4 Validation → S5 Release scripts → S6 Deploy approval → S7 Deploy and verify → Support closure. Journey: ▸ open the DV-19 case journey

Concrete sample content: request, evidence, action and learning P

Representative proposed run grounded in the documented case family. Findings and success states are scenario content, not new live observations.

Customer request

Correct this environment setting.

Specific failure illustrated

An appsettings reset overwrites an environment-specific route or secret reference.

Initial solution take

An appsettings reset overwrites an environment-specific route or secret reference.

The related procedure is a candidate until its current preconditions are checked.

Evidence to establish — investigation or the known skill’s preflight

  1. The active service may read values from a different source than the edited local file.
  2. Environment-specific routes are intentional differences until reviewed.
  3. Secret values must remain in the existing secret store, not copied into example configuration.

Return to solution take

Apply only the approved target setting delta through the actual configuration/image release path.

Reject this shortcut: A local file reset overwrites unrelated target routes or secret references: reject.

Confirmation and application

  1. Compare intended settings, local resets, target configuration sources and the consuming service.
  2. Prepare the minimal reviewed value/reference change while preserving unrelated target settings.
  3. Deploy through the declared path and exercise the integration that consumes the setting.

Verification

  1. The active service reads the intended target value.
  2. The required route/integration works.
  3. Unrelated routes and secret references are preserved.

Recovery

Restore the recorded prior target value/reference via the same release mechanism; never restore an entire developer-local file over the target.

What is retained

Memory: A local reset is not evidence that the target should match the developer's defaults.

Skill: Keep per-environment setting meaning and consumption in the deployment checklist.

Tool candidate: Automate a redacted target-setting diff and a focused consumption probe, showing references rather than secrets.

Next request: Read the effective setting and target lineage; never copy one environment's complete file.

Source basis: DV-19 evidence, mechanism and delivery census — aisa-next/10 Architecture/30 Source/Typical Cases.md

Census challenges

What the real changes ask of the module page and its stage pages. Each is a challenge to a written rule, with the rule the changes suggest; the design disposition is recorded below.

Sizing facts the estate should keep F. Backend 18.8 and UI 8.4 commits a month; ticket-traceable 3–8 %; customer-specific by path 43 % of backend commits; on prod 74 % / 93 %; on master 57 % / 68 % by subject and 0 by id; ticket → staging commit 0–1 day in 11 of 13 pairs.

Architecture disposition — 07.09.2026

P The case journeys and wire/protocol specification answer the census questions without expanding the module charter. The interactive walkthrough traces every case on this page through requests, records, prompts, messages, gates, execution, reversal and next-request learning. These are design decisions and offline acceptance criteria, not proof of deployed behaviour.

Census question Design disposition
Direct commits versus reviewed MR practice The module enforces the intended reviewed-MR path; historical direct commits are evidence of the gap, not inherited permission.
Series, reverts and paired components One case keeps the whole commit series and an explicit compatibility-ordered release graph, including database rows, packages, consumers and external templates.
Un-ticketed requests and Next Release Record verbal/internal asks through authorised intake. Support owns the waiting queue and recruits Development when the stored trigger fires.
Ports and rewritten refs Pin both heads, preserve target-only work and prove semantic equivalence in the requested direction. Ref rewrites invalidate affected evidence.
Deployment outside the source repo The existing infrastructure job remains the target executor; job result, serving versions and customer-surface proof are separate required observations.
Flat-layout placement and concentrated authorship Placement is per lineage; shared/core impact still requires its existing decision. One person may hold roles, but same authorship does not bypass them.
Programme-scale reinsurance/currency Explicit referral and accountable owner under N-8. Bounded implementation requests can use the current module; no capability-stream feature is added.
Generated artefacts Reject the suggestion to exclude them from review. Lockfiles, generated contracts and tooling instructions may affect behaviour; review relevant semantic changes and regeneration.