☰ Contents
AISA v2.0 / Technical documentation / Components — Configuration module

Components — Configuration module

F verified factP decided planC open challenge

Purpose

Configuration Module says what the module does; Configuration Module says what each stage owes its neighbours. This page says what has to be built: every component of the module, its kind, what it consumes and produces, how it is proved done, and who can build it without waiting for anyone else. It is the phase-1 deliverable for this module and the work breakdown for phase 2 (Delivery § 1, Delivery § 1.4).

Evidence base: the wiki's stage pages, and the three configurator documents of 03.09.2026 — Requirements, Design, Product design — reconciled in Product Configurator § A. Rows marked new 03.09 come from that reconciliation and are additions to the module as previously specified.

0. The six kinds of component

P Every component of every module is one of six kinds. The kind decides who builds it, what "done" means, and whether two of them can be built in parallel.

Kind Is Built by Done when
Agent a versioned profile: published prompt, one owned memory domain, tools per environment scope, denied context, budget, eval set (Agents § 0.1) an agent author — no code its own eval set is green and the publisher role makes it live
Skill a procedure with applicability, judgement points and proof; runnable source/binary tools implement its mechanical segments: inputs, connector calls, assertions, dry-run default, teardown (Agents Memory and Skills) a developer with the domain owner it runs read-only on a real target and its assertions fire on a known-bad case
Projection deterministic code from the validated model to an artefact — SQL per part, the rendered document, the export a developer, alone the same model produces the same artefact twice, and a reviewer can read the code
Contract a schema plus the validator that enforces what a schema cannot the contract author (track T0) the deliberately broken fixture is rejected with one message per rule
Connector operation one operation with its capability description — input, target, effect class, authorization, timeout behaviour, recovery (Failure and Recovery § 4) a connector developer the operation refuses out of scope before contact, and its evidence returns
Memory domain one AGENTS.md node and its articles (Agents Memory § 1) the domain owner (knowledge stream) its held-out triage hit-rate beats the grep baseline (Agents Memory § 7.2)

P The kinds are not layers. One deliverable of the module — "the Abacus stage" — is an agent, three skills, one projection and a memory domain, and those four are built by different people against the contracts of § 2.

1. The map

flowchart TB
  C["Product / delta input
stage sign-outs"]:::store A["Normalizer and
selected stage profiles"]:::work S["Rating, offer and
catalogue assertions"]:::work G["Auditor, gates and grants"]:::decision X["Connector execution"]:::work P["Template and target proof"]:::proof M["Configuration knowledge
and evaluation"]:::learn C -->|"validated input"| A A -->|"invoke"| S S -->|"effect proposal"| G G -->|"authorised operation"| X X -->|"recorded result"| P P -.->|"learn after result"| M M -.->|"published revision"| A classDef work fill:#eef4ff,stroke:#6889ba,color:#17365b,stroke-width:1.3px classDef decision fill:#fff4df,stroke:#b78c36,color:#65470d,stroke-width:1.5px classDef proof fill:#e9f5ef,stroke:#689b81,color:#224e39,stroke-width:1.3px classDef learn fill:#f1edf9,stroke:#9580b9,color:#534172,stroke-width:1.3px classDef store fill:#f5f7fa,stroke:#98a6b7,color:#34445a,stroke-width:1.2px classDef owner fill:#24486b,stroke:#24486b,color:#ffffff,stroke-width:1.4px click C href "../contracts.html" "Inputs, selected plan, obligations and signed result contracts are built first." click A href "configuration-module.html" "normalizer; Abacus, IPAL, Offer and Serdica stage owners" click S href "../50-agents/agents-memory.html" "Deterministic procedures and assertions; no target permission is inherited from a skill." click G href "../gating.html" "Every applicable requirement is bound to the current proposal." click X href "../contracts/Connectors.Abstractions.cs.html" "Registered read operations and separately granted effects use their own recovery form." click P href "../case-protocol.html" "Verify the complete requested target and any external dependencies." click M href "../50-agents/agents-memory.html" "Record outcome; evaluate proposed knowledge or skill changes before reuse."

Configuration component responsibilities. The tables below enumerate each profile, skill and connector; this map shows their contracts and handoffs.

2. Contracts — the four that block everything else

P These are track T0 (Delivery § 1). Until they exist, five stage authors cannot start; once they exist, the five never need to talk to each other.

Component What it fixes Consumes → produces Done test
product.schema.json + validator the shape of a product specification, product-agnostic (D67); the validator holds the semantic rules a schema cannot — it recomputes reconciliation counts from the body, requires a layer_model where the tariff repeats, resolves every cross-reference, holds H1 open on an unanswered contradiction (Stage Normalization § WS-2) S1's output → every later stage's input F the broken fixture is rejected with nine semantic blockers (contracts/fixtures/broken.product.json, written 02.09.2026) — 2 reconciliation, 1 layer model, 4 cross-reference, 1 duplicate default, 1 blocking unresolved[]; structural errors are additional when jsonschema is installed; schema 1.1 adds one violation per new rule
Configuration summary the 31 fields S2 hands S3 — covers as rated, loadings with their bases and order, the factors the grids key on, what the engine demands (Stage Abacus); it is the body of the tariff sign-out phase 1's output → phase 2's input phase 2's plans can be built from the summary alone, with no access to phase 1's transcript. Draft configuration-summary.schema.json (D139)
Sign-out document · new 03.09 the six sections every phase hands on: what was built with counts from the write log · what was tested with its assertions · the proof rung reached · what the next phase needs · what is open · what was written and how to undo it (Configuration Module § 1b, D75) each phase's output → the next phase's only input a person picking the case up on another day plans the next phase from the sign-out and nothing else. Draft sign-out-document.schema.json
Stage contract eleven phases (ten steps, 8b splitting the approval of execution from the approval of the scripts), the assertion form, the done test, what a stage may not do (Configuration Module) binds all five stage prompts an author who has read it writes their stage without asking a neighbour. Draft stage-contract.schema.json

P The drafts are drafts on purpose (D139, Contracts § 2): a required core the platform validates and an open body a case may extend; a stage that adds a field records it in its sign-out, and the author lifts recurring additions into the next draft version.

P Three additions from the configurator documents (new 03.09):

3. Agents — one author, one prompt, one memory domain

P Every row is a profile in the Agents catalogue. The two right-hand columns are what makes the authors independent: a disjoint domain, and an eval set that runs without the other four stages.

P The graph — who spawns whom, which sub-agents are isolated, and where the write path runs. The table under it carries every profile in full; the platform-wide profiles these draw on are Agents § 1.

flowchart TB
  R["Configuration root"]:::owner
  P["Normalizer and
selected stage tasks"]:::work K["Own index and
selected domain knowledge"]:::learn T["Delta plan and
stage result papers"]:::store V["Independent review"]:::proof G["Required decisions"]:::decision E["Execution coordinator"]:::work R -->|"assign bounded task"| P K -.->|"context"| P P -->|"propose and report"| T T -->|"independent evidence"| V V -.->|"verdict"| R T -->|"reviewable packet"| G G -->|"permit"| E classDef work fill:#eef4ff,stroke:#6889ba,color:#17365b,stroke-width:1.3px classDef decision fill:#fff4df,stroke:#b78c36,color:#65470d,stroke-width:1.5px classDef proof fill:#e9f5ef,stroke:#689b81,color:#224e39,stroke-width:1.3px classDef learn fill:#f1edf9,stroke:#9580b9,color:#534172,stroke-width:1.3px classDef store fill:#f5f7fa,stroke:#98a6b7,color:#34445a,stroke-width:1.2px classDef owner fill:#24486b,stroke:#24486b,color:#ffffff,stroke-width:1.4px click R href "configuration-module.html" "The root owns the bounded objective and confirms child plans." click P href "configuration-module.html" "normalizer; Abacus, IPAL, Offer and Serdica stage owners" click K href "../50-agents/agents-memory.html" "Read compatible knowledge; consult its owner for judgement; write only in owned domains." click T href "../case-protocol.html" "Task text, evidence, scope and completed assertions remain durable." click V href "../50-agents/agents.html" "The validator receives scoped evidence without the author's transcript." click G href "../gating.html" "Root presents unresolved scope and permission decisions; it cannot invent authority." click E href "../50-agents/agent-runtime.html" "The deterministic handler applies only a current permitted packet."

Task ownership and review: a profile is reusable across cases. Each task has its own parent, inputs, evidence and restricted tool catalogue; the root remains responsible for the result.

Agent reference Role
configuration.root Configuration root
configuration.normalizer Specification normalizer
configuration.source_analyst Independent source analyst
configuration.abacus.builder Plan and build the rating
configuration.ipal.builder Plan and build the catalogue and factors
configuration.offer.builder Plan and build the packages and selection rules
configuration.serdica.builder Plan and build the product's wiring
configuration.integration.validator Validate the joined product and target result
configuration.deployer Configuration release coordinator
configuration.abacus.validator Validate tariff and selectors
configuration.ipal.validator Validate catalogue and consumers
configuration.offer.validator Validate package rules and selection
configuration.serdica.validator Validate product access and wiring

P The estate prober is new, and it is an isolation, not a specialisation (new 03.09). It is told nothing about the product being built and cannot ask, so it cannot return the answer the caller wants; it returns the constraint, the live distribution, the counts and the measurement date, never a recommendation or a "usual value" F (Design § 04). Why it is worth a profile: the estate is evidence, not a template, and the failure it prevents is measured — PR_BASIC_LD.LD_TYPE permits FEE (check constraint PR_BASIC_LD_TYPE_CK, verified on PROD 07.09.2026) and 0 of 1 465 rows use it; MSG_TYPE permits LABEL and 22 rows carry it F (Requirements § 04). Being the first product to use a permitted value is allowed; doing it without noticing is the failure.

P What each isolation denies, because isolation is provisioning and not an instruction (Agents § 0.2): the source analyst's scope contains no database connector and no schema vocabulary, so storage cannot bend its reading; the estate prober's task carries no product intent; the validator receives original requirements, source citations, current baselines, dependencies and known uncertainties, while its context excludes the author transcript and private reasoning.

P Every write of every stage additionally passes the shared common.effect-applier skill's four checks before its gate — exactness, boundedness, reversibility and scope — run by the stage agent that owns the write, with the connector scope refusing anything outside grant and shape (Gating § 6, D200). It is a common definition, not a module one, so it is not a track of this module; it is listed here because no stage's write reaches a target without it.

4. Methods and executable helpers

P The module method subpage defines the procedures and their optional source/binary helpers. Runtime and connector operations are implementation mechanisms; they are not separately counted as learned skills or tools.

5. Projections — model in, artefact out, no model call

P The rule, stated once (D74, D120, D136). A configuration write goes through the system's own configuration endpoint wherever the coverage map (configure.endpoint_coverage) declares one, and otherwise through an approved statement template with parameters (Write Envelopes § 1). The agent never authors a statement that reaches a database: it supplies the parameters, the executor renders the template and applies it past the effect applier, and the same template emits the revert, in the same step as the artefact (D120) — so a phase is revertable without reading its transcript. The template, not a projection, is the permanently reviewable part, and two runs of one product diff at template + parameters. Why: model-written SQL is reviewable exactly once, by whoever is looking that day; a reviewed template applied to validated parameters is reviewable permanently, in code F (Product design § 10).

Projection Produces Rules
Template renderer (in the effect applier) one idempotent artefact per configuration part from an approved template plus the stage's parameters, each headed with the model section it carries, and its revert beside it (D120) ABACUS artefacts are applied before the IPAL ones whatever their reading order — rates are the only never-derivable artefact and PR_BASIC_LD derives from the ABACUS loading list F (Design § 03)
Acceptance script four parts: completeness per surface, deliberate omissions, cross-layer agreement, the manual test expected counts derive from the model, so a changed decision surfaces as a failing count rather than a silent inconsistency
Rollback script exactly what was added, in reverse dependency order, rendered from the same template (D120) written in the same sitting as the artefact it undoes — a rollback written later is a rollback written from memory F (Design § 03)
Product document what was configured, what was decided, what remains open, how to undo it the review surface; generated, never hand-edited
PAS contract export · new 03.09 the cover list, the factor list with types and allowed values, and a worked request/response pair, as data and as a page needed where the platform configures rating for a policy administration system it does not own — shape 1, a product shape to build for (C-8 → D125)

6. Connector operations the module needs

P Each is a versioned capability row; a connector refuses an operation that has no row (Failure and Recovery § 4).

Connector Operations Effect class
oracle-anlt read the design surface; write a new rating version, compile and deploy it on the working environment only, and never include it in a customer-facing deployment set before H5 (D113); never touch another deployed version's rows, never write the compiled artefact write shape A, allow-listed tables
oracle-iprod read the catalogue; write catalogue rows through the effect applier, one product-scoped transaction per step group, access rows last write shape A
oracle-sys / oracle-integr read and write routes, endpoints, roles, messages, numbering, print configuration write shape A
abacus gateway getRates — computes and stores nothing read
camunda read process definitions (S5); register a process against the product (S3, D86) read; the registration is a gated write, sequenced with the deploy-coupled items (Configuration Module § 3)
file / mail / Jira readers fetch the source set, hash it, convert once to text and tables read

P Intake is immutable (new 03.09): the source set is unpacked, hashed and stored once, and every later step reads the same rendition; later material creates a new immutable input revision in the same case when the objective continues; affected plans/acceptances reopen, and unrelated objectives become new cases F (Product design § 03).

P The write path's own contract (new 03.09), adopted from the service design for the rating surface, where the estate itself provides the safety property: write into a new version, then compile and deploy it on the working environment only; never update a row belonging to another deployed version; never write the compiled runtime artefact; an allow-listed table set in code, reviewed like any other security boundary; the exact statements previewed with a row-count estimate and a diff against the previous version; one transaction, one audit record; undo is discarding the version, not repairing it; and customer-facing deployment is a separate decision whose packet lists every version consuming a changed rate file F (Product design § 05, D113). The IPAL surface has no version boundary, so the same argument does not carry there — hence the three conditions of C-1.

7. Memory domains

Domain Owning profile Holds Seeded from
configuration/ root the module's rules, the deployment-set presets, the gate packets' shape this wiki
configuration/normalization normalizer input-document traps, the field catalogue, reconciliation practice, the source-inventory rules the configurator's measured reading traps
configuration/abacus abacus stage the engine, versions, templates, filters, grid formats, the deploy chain and its version-selection rule the abacus knowledge documents
configuration/ipal ipal stage the catalogue chain, the factor model, the twelve parts, naming grammars and counted conventions the configurator's naming and value rules
configuration/offer offer stage the packaging model, dependency and conflict mechanics the offer knowledge
configuration/serdica serdica stage routes, endpoints, core registration, roles, numbering, print the wiring knowledge

P Engine knowledge and estate knowledge are separated (new 03.09): the rate-file grammar, the premium vocabulary and the version-and-deploy model are generic and travel with the platform; product codes, counted defaults and role names are per customer, measured on first connection and refreshed on a schedule, every count carrying its date F (Product design § 04).

8. What can be built in parallel

P Three waves. Inside a wave, the rows have no dependency on each other.

Wave Components Why they are independent
1 — contracts the schema and validator, the configuration summary, the sign-out document shape, the stage contract nothing else can start; two people at most
2 — per stage, five tracks for each of S1…S5: the agent, its memory domain, its skill, its projection each track touches one prompt, one domain and one target surface; the contracts of wave 1 are what remove the need to coordinate
2 — beside the stages source analyst · estate prober · validator · render-product · the acceptance projection · the reverts each stage agent emits with its artefacts (D120) isolations and projections depend on the contracts, not on any stage
3 — integration the deployer, the joint proof, the round-trip golden set, the PAS export they consume what wave 2 produced

P The build tracks and the run phases are different axes, and confusing them wastes people. Five authors build five stages at once because the contracts make the stages independent to write. A configured product then runs through those stages in two phases with a sign-out between them, because the artefacts have real dependencies at run time (Configuration Module § 1, D75). The stage author of Serdica and the stage author of IPAL work in parallel in both senses; the stage author of Abacus works in parallel with them at build time and ahead of them at run time.

P The rehearsal that is usually skipped: before configuring a real product, re-emit a product that already works and explain every difference. It is the only rehearsal with an answer key, and its differences are exactly where the knowledge base is wrong F (Design § 08). It is the acceptance test of wave 2.

9. What this module does not build

P Named so nobody assumes otherwise, following the configurator's own list F (Design § 09):

Challenges