Change 1: Sector concentration control

Thin agents · both

30 lines of JSON

One shared ontology update for policy version CRP-2026.4. Both agents were evaluated against the updated policy.

  • Control control.sector_concentration

    “A temporary excess is not available when the counterparty's sector accounts for more than max_sector_share of the bank's total live PFE. Look up the sector share with the halden_sector_concentration lookup (field share_of_total) using the counterparty's sector. If it exceeds max_sector_share, refer the request to the Credit Committee (decision escalate, escalate_to credit_committee). Applied after the unrated, rating and size checks.”

    max_sector_share
    0.22
    lookup
    halden_sector_concentration
    field
    share_of_total
    outcome
    escalate
    escalate_to
    credit_committee
    check_order_key
    sector_concentration_control
  • edge policy.temporary_excess —has_control→ control.sector_concentration
  • updated policy.temporary_excess new version; control added to the check order

Thick agent

142 lines of code and config

Plus 151 lines of tests (22 new) and 24 of documentation, across 10 files.

  • policies/CRP-2026.4.yaml+80 −0
  • tests/test_policy.py+68 −5
  • tests/test_graph.py+64 −2
  • README.md+18 −6
  • creditagent/policy.py+21 −2
  • creditagent/answer.py+12 −0
  • tests/conftest.py+7 −5
  • creditagent/clients.py+8 −2
  • creditagent/graph.py+8 −1
  • scripts/self_check.py+6 −2

80 of the added lines are the policy file copied forward to its new version; 14 of them differ from the old one.