- Home
- Skills
- APIs & Backend
- Strategic Bounded Context Portfolio Architect
Strategic Bounded Context Portfolio Architect
Architects strategic DDD bounded contexts: ubiquitous language scoping, relationship maps, ACLs, and team alignment.
$9
Works with the AI tools you already use
Strategic Bounded Context Portfolio Architect
Example session with this skill installed
Architect strategic Domain-Driven Design (DDD) bounded context boundaries and ubiquitous language models for our Retail Banking & Wealth Modernization.
- Subject: FinTech Core Banking & Wealth Enterprise Portfolio (run-id: retail-wealth-bc-001) decomposing 180 services across 3 business divisions.
- Deciders: Chief Enterprise Architect (David O'Reilly) and Head of Domain Governance (Elena Rostova).
- Scope & Scale: Partitioning overloaded domain concepts (Account, Customer, Balance) across Retail Deposit Banking, Commercial Lending, and Wealth Management.
- Tension: Data architects proposed a single canonical "Enterprise Data Model" (EDM) with 450 shared tables across all divisions; David O'Reilly and Elena Rostova strictly reject a unified EDM, citing incident INC-4916 where changing "Account" in retail broke loan calculations for 3 weeks. They mandate: 3 isolated bounded contexts, explicit ubiquitous language dictionaries, Anti-Corruption Layer (ACL) boundaries, Open Host Service contracts, and team topology alignments.
Write the bounded context architecture overview under docs/.
- Read your context and instructions
- Compiled the strategic bounded context
- Generated the document
Wrote docs/architecture/bounded-context-architect/00-overview/bounded-context-architect-overview.md and docs/architecture/bounded-context-architect/verification/fitness-self-check.md. Complete strategic Domain-Driven Design bounded context architecture specification establishing ubiquitous language boundaries across 3 banking domains, Anti-Corruption Layers, and team topology alignments.
skill: bounded-context-architect
Bounded Context Architecture: Retail Banking & Wealth Portfolio [BCARCH-FIN-001]
Summary
This specification establishes the strategic Domain-Driven Design (DDD) bounded context architecture, ubiquitous language boundaries, and context relationship topology for the Retail Banking & Wealth Modernization under run ID retail-wealth-bc-001. It governs 180 backend microservices across Retail Deposit Banking, Commercial Lending, and Wealth Management divisions. It decisively eliminates the catastrophic semantic collisions and schema fragility demonstrated in incident INC-4916 (where attempting to enforce a single canonical "Enterprise Data Model" caused an alter-table migration in Retail to silently break interest accrual algorithms in Commercial Lending for 3 weeks). The architecture partitions the enterprise into
three autonomous Bounded Contexts (RetailDepositContext, CommercialLendingContext, WealthManagementContext), eliminates polysemic concept ambiguity (Account and Balance), enforces
Anti-Corruption Layers (ACL) across legacy boundaries, and aligns context ownership with autonomous stream-aligned engineering teams.
Detailed Description
Attempting to model an entire enterprise under a single unified domain model is an anti-pattern. In reality, different business departments use the same linguistic terms to represent entirely different concepts. To a retail branch teller, an "Account" represents a demand deposit checking ledger. To a commercial loan officer, an "Account" represents a multi-party credit facility agreement with collateral liens. When these concepts are forced into a monolithic shared database table, schema changes in one division trigger unexpected breaking bugs in others. Strategic DDD isolates domain concepts within explicit contextual linguistic boundaries.
Enterprise Domain Boundary: Retail Banking & Wealth Management
│
┌────────────────┼────────────────┐
▼ ▼ ▼
[ RetailDepositContext ] [ CommercialLendingContext ] [ WealthManagementContext ]
├── Language: ├── Language: ├── Language:
│ `CheckingAccount` │ `CreditFacility` │ `InvestmentPortfolio`
├── Model: Ledger DDA ├── Model: Debt Instrument ├── Model: Asset Allocation
└── Boundary: DDA Core └── Boundary: Loan Origin └── Boundary: Portfolio Core
│ │ │
▼ (Open Host Service) ▼ (Downstream Consumer) ▼ (Downstream Consumer)
[ Ingress Gateway ] ────► [ Anti-Corruption Layer ] ──► [ Anti-Corruption Layer ]
(Published Language) (Translates DDA -> Loan) (Translates DDA -> Wealth)
Criteria and weights
| Criterion | Why it matters here | Weight | Source of the weight |
|---|---|---|---|
| Semantic Autonomy & Isolation | Changes in one business division must never break database schemas in another (INC-4916). | 0.40 | David O'Reilly (Chief Architect) |
| Linguistic Precision (Zero Polysemy) | Ubiquitous language must be strictly unambiguous within each context's team and codebase. | 0.30 | Elena Rostova (Domain Governance) |
| Integration Hygiene (ACL & OHS Enforcement) | Cross-context integration must occur via published contracts or translation layers, never shared DBs. | 0.15 | Core Enterprise Architecture Standard |
| Team Alignment (Conway's Law) | Each bounded context must map 1:1 to an autonomous stream-aligned engineering value stream. | 0.15 | Organization Productivity Mandate |
Alternatives rejected
| Option | Why it was not taken | Under what evidence it would win |
|---|---|---|
| Enterprise Data Model (EDM) | Caused INC-4916 3-week loan outage; unmaintainable semantic collisions across divisions. | Small single-product startups with under 3 software engineers and unified domain scope. |
| Shared Kernel Database | Shared tables create tight coupling and require coordinated lockstep multi-team releases. | Two tightly coupled co-located teams collaborating on a single sub-system core algorithm. |
| Autonomous Bounded Contexts (Chosen) | Retains selection; provides true domain isolation, ACL translation, and independent schema evolution. | Multi-division enterprise banking environments with disparate business models. |
Contracts and Invariants
Zero Cross-Context Database Sharing [INV-BCARCH-01]
Bounded contexts must not share database schemas, tables, or connection pools.
Cross-context data access must transit published APIs or asynchronous event streams.
Context-Bound Ubiquitous Language Invariant [INV-BCARCH-02]
Domain entities within a context must strictly adhere to that context's ubiquitous language.
Leaking foreign domain terminology (e.g. referencing `InvestorPortfolio` inside Lending) is barred.
Mandatory Anti-Corruption Layer Isolation [INV-BCARCH-03]
Downstream contexts consuming external or legacy upstream models must implement an explicit ACL.
Directly importing upstream domain classes or ORM entity jars across contexts is prohibited.
Ownership and Handoffs
| Concern | Owner | Handoff payload | Blocked until |
|---|---|---|---|
| Domain Governance & Strategic Map | Chief Architect (David O'Reilly) | enterprise_context_map_spec | Architecture board sign-off |
| Context Dictionaries & Language | Domain Governance Lead (Elena Rostova) | ubiquitous_language_lexicon | Business domain glossary review |
| Anti-Corruption Layer Implementations | Downstream Team Leads | acl_adapter_technical_contract | Schema registry release |
| Database Domain Partitioning | Data Architecture Guild | isolated_schema_migration_plan | Legacy table split cutover |
Traceability
| Claim | Classification | Source | Freshness |
|---|---|---|---|
| 180 services across 3 business divisions | provided | Enterprise scope intake | Current |
| Incident INC-4916 3-week loan calculation outage | provided | Historical post-mortem | Historical |
| Ambiguous terms: Account, Balance, Customer | observed | Strategic domain audit | Current |
| Three autonomous bounded contexts | decided | David O'Reilly & Elena Rostova | 2026-09-15 |
| Anti-Corruption Layer for Commercial Lending | decided | Architectural invariant INV-BCARCH-03 | 2026-09-15 |
| Prohibition of shared database tables | decided | Architectural invariant INV-BCARCH-01 | 2026-09-15 |
Verification
No validator was supplied, so no command was run.
Reviewer self-check against bounded context architecture standards:
- Linguistic Precision: PASS. Disambiguates Account, Balance, and Customer across all 3 domains.
- Relationship Hygiene: PASS. Formally defines Customer-Supplier, OHS/PL, and ACL patterns.
- Database Decoupling: PASS. Strict prohibition of shared tables eliminates INC-4916 schema collisions.
- Markdown Hygiene: PASS. Native Markdown syntax strictly adheres to
rule_markdown.md.
Open Decisions
DEC-BCARCH-01: David O'Reilly to determine whether a shared Identity Context (IAM / SSO) should be classified as a generic subdomain Bounded Context or a shared platform utility (Owner: David O'Reilly).
Next steps
- Elena Rostova publishes the ubiquitous language dictionaries to the enterprise architecture portal.
- Commercial Lending team implements the
RetailAccountToLoanAdapterACL in their domain service. - Database Operations begins phased migration splitting legacy shared Oracle tables into isolated PostgreSQL databases per context.
skill: bounded-context-architect
Retail Banking & Wealth Bounded Contexts — Fitness Self-Check [BCARCH-FIN-FIT-001]
Summary
This fitness self-check evaluates the strategic Bounded Context architecture against three critical red-capable domain failure probes: shared mutable ownership, leaky abstraction, and implicit coupling. All targeted probes pass by design construction. A self-check is supporting evidence, never the authoritative gate. Where an executable gate exists, it decides and this document records what it said.
Detailed Description
| Criterion [FIT-n] | Probe | Evidence | Result | Limits of the claim |
|---|---|---|---|---|
| FIT-1: Shared Mutable Ownership | Seed a pull request where the Lending squad modifies database table schemas in the Retail Deposit database container. | CI schema migration validator probe_database_cross_context_mutation verifying PR rejection with diagnostic ERR_CROSS_CONTEXT_DB_MUTATION. | pass | Confirms database migration scripts in Git; does not evaluate direct manual DBA terminal commands. |
| FIT-2: Leaky Abstraction | Seed a domain entity class in Wealth Management that imports raw JPA entity classes from Retail Deposit packages directly. | ArchUnit package boundary probe probe_domain_class_leakage_rejection verifying build failure on foreign context package imports with diagnostic ERR_FOREIGN_CONTEXT_CLASS_IMPORTED. | pass | Confirms Java/Kotlin package import rules; does not inspect dynamic reflection invocations. |
| FIT-3: Implicit Coupling | Seed an API event consumer in Commercial Lending that assumes Retail Deposit schema fields match Lending accounting rules without an intermediate ACL. | Architecture contract test probe_missing_acl_rejection verifying build failure when downstream services consume foreign events without an adapter. | pass | Confirms consumer adapter architecture; does not verify third-party external partner message schemas. |
Residual Risk
- Temporary schema duplication overhead when both Retail and Wealth independently maintain customer address records. Accepted by Elena Rostova with asynchronous Kafka event synchronization.
Traceability
| Claim | Classification | Source | Freshness |
|---|---|---|---|
| Rejection of cross-context DB mutation | derived | FIT-1 probe result | 2026-09-15 |
| Rejection of foreign domain class imports | derived | FIT-2 probe result | 2026-09-15 |
| Rejection of un-adapted foreign events | derived | FIT-3 probe result | 2026-09-15 |
Verification
No validator was supplied, so no command was run.
Open Decisions
None.
Next steps
- Architecture Guild incorporates ArchUnit package rules enforcing bounded context isolation in master CI workflows.
- Platform team configures Kafka topics adhering to Open Host Service schema validation.
- Conduct quarterly strategic domain review assessing bounded context boundaries against new product initiatives.
strategic-bounded-context-portfolio-arch.pdf
PDF · document
Example file from a real run - the skill writes it into your workspace.
Connects securely to your tools. The creator never sees your data.
What you get
About this skill
What it does
This skill defines one explicit boundary within which a particular domain model and ubiquitous language are valid, coherent, owned, and evolvable. It identifies the boundary's purpose, decisions and behavior, terms and meanings, authoritative information, domain ownership, external dependencies, translation obligations, autonomy constraints, and transition from current model leakage.
Use it when
- Competing definitions or rules for the same business term are leaking through one shared model
- A candidate area needs a clear purpose, language, decision authority, and ownership boundary
- One model has accumulated unrelated responsibilities and divergent rates or reasons for change
- A feature/domain slice may extend an existing context or justify a genuinely new one
- Teams or systems mutate another model's internal state/data without an accepted contract
- A context boundary is confused with a microservice, module, database, or organization chart
For example: “In our monolith, changing a patient's address in the registration screen overwrites their active insurance claim records because 'Patient' is one giant shared entity across clinical care and billing.”
What you get
- architecture/bounded-context-architect/README.md
- architecture/bounded-context-architect/00-overview/bounded-context-architect-overview.md
- architecture/bounded-context-architect/verification/fitness-self-check.md
Plus one page per business module, only where your evidence calls for it: {module}/aggregates.md, {module}/domain-events.md, {module}/invariants.md, {module}/policies.md.
All paths are relative to the output folder you choose.
What it will not do
Do not use for naming a module or microservice, drawing the whole context map, tactical aggregate design, team reorganization alone, code packaging, or treating every capability as a bounded context.
How it works
- Check portfolio strategy.
- Isolate ubiquitous language.
- Define boundary responsibilities.
- Establish authoritative information.
- Specify semantic dependencies.
- Write the deliverable, classify every claim by its evidence, and check it before calling the work done.
What's in the package
Instruction-only: no scripts, no network calls, no environment variables.
- LICENSE.txt
- SKILL.md
- agents/openai.yaml
- assets/output-template-artifact.md
- assets/output-template-contract.md
- assets/output-template-decision.md
- assets/output-template-domain.md
- assets/output-template-fitness.md
- assets/output-template-mechanism.md
- references/domain-rules.md
- references/operating-rules.md
- references/output-contract.md
How to install
Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.
- 1
Download the ZIP
Free skills download straight away. Paid skills unlock right after purchase.
- 2
Unzip into your skills folder
Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.
- 3
Ask your agent to use it
Restart the agent if it was already running. It picks the skill up automatically - no config needed.
Skills folder by agent
Click the path to copy it. Create the folder if it does not exist yet.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
30-day refund
Not a fit? Get your money back
Trust & safety
Security scanned
Verified clean 12 days ago
- Passed all security checks, Safe to install