feat(financial-services): enrich EU corporate credit demo to gold standard#53
Merged
Merged
Conversation
…ndard Rework the financial-services example so the domain content stands up to a practitioner's eye and the guardrails act on the real assessment outcome. - Replace the US bureau data (Equifax/FICO 280-850) with an EU commercial bureau (Creditreform Bonitätsindex, 100-600) and a German Mittelstand obligor carrying valid-format LEI and IBAN identifiers. - Grow the workflow from 3 to 6 tools: add sanctions/PEP screening (CDD/AML), group-exposure aggregation and a PD/LGD + IFRS 9 risk model. Tool responses are computed by a new pure credit_engine module. - Re-cite the escalation from MiFID II Art. 25 (investment-advice suitability) to the frameworks that fit corporate lending: EBA/GL/2020/06 delegated authority, CRR Art. 395 concentration, EU AML CDD gate and IFRS 9 stage 3. - The agent derives the write call's policy-relevant arguments from the earlier tool outputs and offers three scenarios: clean, large-exposure and sanctions-hit. Regenerate one signed TRACE record per scenario from real runs. - Add credit_engine unit tests and a CI job to run them. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Jul 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Reworks the
financial-servicesexample so the domain content is realistic for EU corporate credit and the Cedar guardrails act on the real assessment outcome rather than a single hard-coded number. This is the first of three per-example realism PRs (multi-tenant-saas and healthcare to follow).Why
The example claimed to be EU but the data was US: the credit bureau enum was Equifax/Experian/TransUnion and the score was a FICO-style
742on a280-850scale. The single escalation cited MiFID II Art. 25, which is investment-advice suitability, not credit lending.Changes
sanctions_screening(CDD/AML),exposure_aggregationand arisk_model(PD/LGD/EAD, internal rating, IFRS 9 stage). Responses computed by a new purecredit_engine.py.--scenario clean|large-exposure|sanctions-hit), each with a signed TRACE record regenerated from a real run. The agent derives the write's policy-relevant args from earlier tool outputs, so the deny reflects the actual credit decision.tests/test_credit_engine.pyand a CI job, mirroring theindustrial-embodied-aigold standard.Verification
python -m unittest discover -s tests -v→ 9 passcmcp verifypasses schema, signature, audit chain and hashes on each record (hardware attestation fails in software-only dev mode, as expected)clean) scenario exits 0, so thesmokejob stays greendefinition_hashvalues recomputed and self-checked🤖 Generated with Claude Code