This prompt is for engineering leaders, principal architects, and technical directors who need to assess a team's or organization's current level of Domain-Driven Design (DDD) adoption. The job-to-be-done is not to generate a generic score, but to produce a structured, evidence-backed maturity model that benchmarks current practices against DDD tactical patterns, strategic design, team alignment, and ubiquitous language discipline. The ideal user has access to artifacts such as code repositories, event schemas, context maps, team topologies, and recent architecture decision records. Without this context, the assessment will be speculative and low-value.
Prompt
Domain-Driven Design Maturity Assessment Rubric Prompt

When to Use This Prompt
Define the job, reader, and constraints for the DDD Maturity Assessment Rubric prompt.
Use this prompt when you are planning a DDD transformation, auditing a bounded context implementation, preparing for a technical due diligence review, or aligning multiple teams on a shared maturity baseline. The rubric it produces should be actionable: each maturity level must include concrete improvement steps, not just a score. Do not use this prompt for a single code review, a junior developer's learning exercise, or a lightweight design critique. It is also not a substitute for a full sociotechnical architecture assessment that requires stakeholder interviews and runtime observability data. The prompt works best when you provide a [CONTEXT] block containing specific evidence—code samples, context map diagrams described in text, event schemas, team structure descriptions, and known pain points. Without this evidence, the model will produce a plausible but ungrounded rubric that can mislead decision-making.
Before running this prompt, gather at least three types of evidence: tactical artifacts (aggregate definitions, domain events, repository patterns), strategic artifacts (bounded context boundaries, context maps, subdomain classifications), and team artifacts (team-to-context alignment, communication patterns, ownership maps). The prompt is designed to flag missing evidence rather than hallucinate it, but you should still review the output against your own knowledge. The resulting rubric should be treated as a working document for a workshop or architecture review session, not as a final audit report. If the assessment will influence budget, team structure, or architectural direction, schedule a human review with the domain architects who own the assessed contexts.
Use Case Fit
Where the DDD Maturity Assessment Rubric prompt delivers reliable value and where it introduces risk. Use these cards to decide whether this prompt fits your current context before wiring it into a review workflow.
Good Fit: Structured Team Self-Assessment
Use when: an engineering team or domain architect needs a repeatable, scored maturity baseline across tactical patterns, strategic design, and ubiquitous language. The rubric structure forces explicit evidence for each score. Guardrail: always pair the rubric output with a follow-up prompt that generates concrete improvement actions tied to the lowest-scoring dimensions.
Good Fit: Pre-Refactor Diagnostic
Use when: a team plans a significant domain model refactor or bounded context extraction and needs to understand current maturity before committing to a target state. The rubric surfaces hidden gaps in aggregate design, context mapping, and language alignment. Guardrail: run the assessment before architecture review sessions so discussions start from shared evidence rather than anecdote.
Bad Fit: Single Aggregate or Isolated Pattern Review
Avoid when: the scope is a single aggregate, one event schema, or a narrow tactical pattern. The rubric is designed for cross-cutting maturity assessment and will produce low-signal output on narrow scope. Guardrail: use the Aggregate Root Design Validation or Domain Event Schema Design Review prompts instead for focused, high-signal feedback.
Bad Fit: Teams Without DDD Vocabulary
Avoid when: the team lacks shared understanding of bounded contexts, aggregates, domain events, ubiquitous language, and context mapping. The rubric will produce scores based on the model's inference from code artifacts rather than grounded team practice. Guardrail: run the Ubiquitous Language Glossary Extraction prompt first to establish baseline terminology before attempting maturity assessment.
Required Inputs: Artifacts and Team Evidence
Risk: the model will hallucinate maturity scores if given only a prompt with no supporting artifacts. Guardrail: provide at minimum a bounded context description, aggregate inventory, recent domain event schemas, and team notes on ubiquitous language practices. The rubric prompt should refuse to score dimensions where evidence is absent rather than guessing.
Operational Risk: Score Gaming and Overconfidence
Risk: teams may treat the rubric output as an objective metric for performance review or cross-team comparison, leading to score inflation or defensive responses. Guardrail: position the rubric as a diagnostic tool for improvement planning, not a governance gate. Require human review of all scores before sharing outside the team, and never use rubric output in isolation for funding or staffing decisions.
Copy-Ready Prompt Template
A reusable prompt template for generating a scored DDD maturity assessment rubric with actionable improvement steps.
The following prompt template is designed to be copied directly into your AI harness. It uses square-bracket placeholders for all dynamic inputs, allowing you to adapt it to different teams, codebases, and assessment scopes without rewriting the core instructions. The template assumes you have gathered evidence about the team's current practices—this evidence should be provided in the [EVIDENCE] placeholder as structured notes, interview summaries, or artifact descriptions.
textYou are a domain-driven design (DDD) coach and technical assessor. Your task is to evaluate a team's DDD maturity based on the provided evidence and produce a scored rubric with actionable improvement steps. ## Assessment Scope [ASSESSMENT_SCOPE: e.g., "the Order Management bounded context and its integration with the Fulfillment context"] ## Evidence [EVIDENCE: structured notes, interview summaries, codebase observations, documentation review] ## Assessment Dimensions Evaluate maturity across these dimensions using a 1-5 scale (1=Absent, 2=Initial, 3=Emerging, 4=Consistent, 5=Optimizing): 1. **Strategic Design**: Bounded context identification, context mapping, subdomain classification, and alignment with business strategy. 2. **Tactical Design**: Aggregate design, entity and value object modeling, domain events, repositories, and factories. 3. **Ubiquitous Language**: Consistency of terminology across code, conversations, documentation, and tests. 4. **Team Alignment**: Team topology matching bounded contexts, domain expertise distribution, and cross-team communication patterns. 5. **Integration Patterns**: Explicit context relationships, anti-corruption layers, published languages, and integration testing. 6. **Domain Model Quality**: Behavior richness, encapsulation, invariant enforcement, and absence of anemic patterns. ## Output Schema Return a JSON object with this exact structure: { "assessment_summary": "2-3 sentence overall maturity summary", "overall_score": number (average of dimension scores, rounded to 1 decimal), "dimensions": [ { "name": "dimension name", "score": number (1-5), "rationale": "2-3 sentences explaining the score with evidence references", "strengths": ["specific strength 1", "specific strength 2"], "gaps": ["specific gap 1", "specific gap 2"], "improvement_actions": [ { "action": "concrete, actionable step", "effort": "Low | Medium | High", "impact": "Low | Medium | High", "timeline": "Immediate | Short-term | Medium-term | Long-term" } ] } ], "critical_risks": ["risk 1 if maturity gaps are not addressed", "risk 2"], "recommended_sequence": ["ordered list of the top 3-5 actions to take first"] } ## Constraints - Base every score and finding on evidence provided in [EVIDENCE]. If evidence is insufficient for a dimension, score it as "Insufficient Data" and note what evidence would be needed. - Do not inflate scores. Most teams score 2-3 on most dimensions. A score of 4 or 5 requires clear, specific evidence of consistent practice. - Improvement actions must be concrete and actionable, not vague advice like "improve modeling." - Flag any contradictions in the evidence rather than silently choosing one interpretation. - If the evidence describes aspirations rather than current practices, score the current state and note the gap.
To adapt this template, replace each square-bracket placeholder with your specific context. The [ASSESSMENT_SCOPE] should narrow the evaluation to a specific bounded context or set of contexts—avoid assessing an entire enterprise in one run. The [EVIDENCE] placeholder works best with structured input: include notes from event storming sessions, code review observations, team interview summaries, and documentation samples. If you have existing architecture decision records or context maps, include those as well. For teams new to DDD, you may want to add an [EXAMPLES] placeholder with a scored example dimension to calibrate the model's expectations. Before running this in production, validate the output JSON against the schema and spot-check at least two dimension scores against your own judgment to detect calibration drift.
Prompt Variables
Placeholders required by the DDD Maturity Assessment Rubric prompt. Each variable must be populated before execution to produce a reliable, evidence-grounded assessment.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[ORGANIZATION_CONTEXT] | Describes the team, product, and domain scope being assessed | A 40-person engineering org building a multi-tenant logistics platform across 6 squads | Must be non-empty. Check for concrete team size, domain, and scope. Reject generic descriptions like 'our company'. |
[ASSESSMENT_EVIDENCE] | Source artifacts used to score maturity: code repos, docs, interviews, event logs, architecture diagrams | GitHub repos for 3 services, 2 ADRs, 5 event schema files, 4 interview transcripts | Must list specific artifacts. Validate that each artifact is accessible and relevant. Warn if evidence is only self-reported surveys without artifacts. |
[MATURITY_DIMENSIONS] | The DDD dimensions to score: Tactical Patterns, Strategic Design, Team Alignment, Ubiquitous Language | ["Tactical Patterns", "Strategic Design", "Team Alignment", "Ubiquitous Language"] | Must be a valid JSON array of 3-6 dimensions. Reject if dimensions overlap or are missing. Default to the four standard dimensions if not specified. |
[SCORING_SCALE] | The numeric scale and level definitions for each maturity dimension | 1=Ad-hoc, 2=Emerging, 3=Standardized, 4=Measured, 5=Optimizing | Must define at least 3 levels with labels. Validate that scale is ordinal and labels are distinct. Reject binary scales for maturity assessment. |
[OUTPUT_SCHEMA] | Expected JSON structure for the assessment output | {"dimension_scores": [...], "overall_maturity": number, "evidence_map": {...}, "improvement_steps": [...]} | Must be a valid JSON Schema or example structure. Validate that schema includes scores, evidence mapping, and actionable steps. Reject schema without evidence traceability. |
[CONSTRAINTS] | Boundaries for the assessment: max length, required sections, forbidden content, confidence requirements | Max 2000 words. Require evidence citation per score. Forbid unsupported claims. Require confidence indicator for each dimension. | Parse as list of constraint strings. Validate that at least one constraint addresses evidence grounding. Warn if no confidence-threshold constraint is present. |
[TARGET_MATURITY] | Optional target maturity level or goal state for gap analysis | Target Level 3 (Standardized) across all dimensions within 2 quarters | If provided, must include a target level and timeframe. If null, assessment produces current-state only without gap analysis. Validate timeframe is realistic. |
Implementation Harness Notes
How to wire the DDD Maturity Assessment prompt into an application or review workflow with validation, retries, and human review gates.
This prompt is designed to be called programmatically as part of an architecture review pipeline, not as a one-off chat interaction. The primary integration points are a CI/CD quality gate for domain model changes, a quarterly architecture health check, or a pre-refactor assessment tool. The caller must supply the [DOMAIN_ARTIFACTS] (code, docs, event schemas, context maps) and the [ASSESSMENT_DIMENSIONS] (tactical patterns, strategic design, team alignment, ubiquitous language). The prompt returns a structured JSON rubric, making it suitable for direct ingestion into a dashboard or report generator.
Validation and Retry Logic: The output must conform to a strict JSON schema with numeric scores, textual evidence, and actionable recommendations. Implement a post-generation validator that checks for: (1) all required dimensions present, (2) scores within the defined 1-5 range, (3) evidence fields are non-empty strings, and (4) improvement steps are concrete and non-generic. If validation fails, retry with the error message appended to the [CONSTRAINTS] field, up to a maximum of 2 retries. Log all validation failures for prompt refinement. Model Choice: Use a model with strong reasoning capabilities (e.g., GPT-4o, Claude 3.5 Sonnet) because the task requires synthesizing multiple artifacts and applying nuanced DDD heuristics. Avoid smaller or faster models that may produce plausible-sounding but logically inconsistent assessments.
Human Review Gate: This assessment informs architectural decisions that can have long-term cost and complexity implications. Always route the output to a human reviewer (e.g., a domain architect or technical lead) before publishing or acting on the results. The review interface should display the score, the cited evidence, and the recommended improvements side-by-side, allowing the reviewer to accept, override, or annotate each finding. Logging and Audit Trail: Store the full prompt input, model response, validation results, and human review decisions in an audit log. This traceability is critical for governance and for debugging assessment drift over time. What to Avoid: Do not use this prompt as a real-time gate in a deployment pipeline without human review. Do not treat the numeric score as an objective metric without examining the evidence. Do not run the assessment on artifacts that are incomplete or lack sufficient context, as the model will hallucinate plausible but incorrect findings.
Expected Output Contract
Validation rules for each field in the DDD maturity assessment rubric output. Use this contract to build a parser, validator, or retry guard before the output enters a dashboard or report.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
assessment_id | string (UUID v4) | Must match UUID v4 regex. Generate if absent. | |
assessment_date | string (ISO 8601) | Must parse as valid date. Reject future dates. | |
domain_context | string | Length 10-500 chars. Must not be generic placeholder text. | |
maturity_levels | array of objects | Array length must equal 5. Each object must contain level (integer 1-5), label (string), and description (string). | |
dimension_scores | array of objects | Array length 4-8. Each object must contain dimension (string from allowed enum), score (integer 1-5), evidence_summary (string 20-500 chars), and gaps (array of strings). | |
overall_maturity_score | number (float 1.0-5.0) | Must be average of dimension_scores[*].score rounded to 1 decimal. Reject if outside 1.0-5.0 range. | |
improvement_recommendations | array of objects | Array length 3-10. Each object must contain priority (integer 1-3), dimension (string matching dimension_scores), action (string 20-300 chars), and expected_impact (string from allowed enum: low, medium, high). | |
assessment_confidence | string from enum | Must be one of: high, medium, low. Reject if score variance across dimensions exceeds 2.0 and confidence is high. |
Common Failure Modes
When using a DDD maturity assessment rubric prompt, these failures surface first. Each card explains what breaks and how to guard against it before the assessment misleads stakeholders.
Vague Scoring Produces Unactionable Results
What to watch: The model assigns mid-range scores (e.g., 3/5) across all dimensions without specific evidence, producing a report that looks balanced but offers no real diagnosis. This happens when the rubric lacks behavioral anchors for each score level. Guardrail: Include concrete observable behaviors for each score point in the prompt (e.g., 'Score 2: Aggregates exist but contain no behavior methods; Score 4: All business invariants enforced within aggregate roots'). Require the model to cite specific evidence from the input for every score.
Hallucinated Patterns and Missing Evidence
What to watch: The model invents DDD patterns that don't exist in the assessed system (e.g., describing an anti-corruption layer that was never built) or claims maturity based on documentation intent rather than implementation reality. This is especially dangerous when the assessment input is incomplete. Guardrail: Require the model to flag 'Insufficient Evidence' as a valid score option. Add a constraint that every maturity claim must reference a specific artifact, code pattern, or team practice described in the input. If evidence is missing, the model must state what it would need to see.
Strategic-Tactical Imbalance in Scoring
What to watch: The assessment overweights tactical patterns (aggregates, repositories, value objects) while ignoring strategic design (bounded contexts, context maps, ubiquitous language), or vice versa. Teams get a false sense of maturity because they score well on code patterns but have no context boundaries. Guardrail: Structure the rubric with explicit strategic and tactical sections that carry equal weight. Add a cross-check rule: a team cannot score above 'Defined' in tactical patterns if strategic design is below 'Emerging'. Include a 'coherence check' step that flags score discrepancies.
Overfitting to a Single DDD Interpretation
What to watch: The rubric encodes one practitioner's DDD orthodoxy (e.g., strict event sourcing required for maturity, or a specific aggregate design style) and penalizes teams using valid alternative patterns. This produces assessments that reflect the rubric author's preferences rather than actual domain alignment. Guardrail: Define maturity in terms of outcomes (invariant consistency, team autonomy, language alignment) rather than specific implementation patterns. Include a note in the prompt: 'Accept multiple valid DDD implementation styles. Score based on whether the pattern achieves its intended outcome, not whether it matches a reference implementation.'
Context Collapse Across Multiple Teams
What to watch: The assessment treats the entire organization as a single maturity score, masking wide variation between teams. One team may be at 'Optimizing' while another is at 'Initial', but the aggregate score hides the risk. Guardrail: Require the prompt to produce per-context or per-team maturity scores, not just an organizational average. Add a variance flag: if scores differ by more than two levels across teams, the output must highlight this as a coordination risk. Include a 'team readiness distribution' summary.
Improvement Steps Without Sequencing or Cost
What to watch: The model generates a long list of improvement actions with no prioritization, dependency ordering, or effort estimate. Teams pick the easiest items first and never address the foundational blockers. Guardrail: Constrain the output to produce a ranked improvement backlog with explicit prerequisites (e.g., 'Define bounded contexts before refactoring aggregates across context boundaries'). Require each action to include an effort estimate (Low/Medium/High) and a 'blocked by' field. Limit the top-priority actions to three per assessment cycle.
Evaluation Rubric
Use this rubric to evaluate the quality of the DDD maturity assessment output before integrating it into dashboards or stakeholder reports. Each criterion includes a pass standard, a failure signal, and a test method that can be automated or performed manually.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Dimension Coverage | Output contains a score and rationale for all five dimensions: Tactical Patterns, Strategic Design, Team Alignment, Ubiquitous Language, and Continuous Improvement. | One or more dimensions are missing or scored without any supporting rationale. | Parse output JSON. Assert that the 'dimensions' array contains exactly five objects with non-null 'name' and 'score' fields. |
Score Range Validity | Every dimension score is an integer between 1 and 5 inclusive. The overall maturity level is a string matching one of the predefined levels: 'Ad Hoc', 'Emerging', 'Standardized', 'Managed', or 'Optimizing'. | A score is outside the 1-5 range, is not an integer, or the overall level does not match the predefined set. | Validate 'score' fields with a JSON Schema pattern: { 'type': 'integer', 'minimum': 1, 'maximum': 5 }. Validate 'overallMaturityLevel' against an enum of the five allowed strings. |
Evidence Grounding | Each dimension includes at least one concrete observation from the provided [CONTEXT] or [ARTIFACTS] that supports the score. Observations must reference specific artifacts, code patterns, or team statements. | Rationale contains only generic statements like 'team uses DDD' without citing any specific evidence from the input context. | Keyword search for artifact names, file paths, or quoted team statements from the input context within the 'evidence' array of each dimension. Flag if 'evidence' array is empty or contains only generic phrases. |
Actionable Recommendations | The 'improvementSteps' array contains at least one recommendation per dimension that scored 3 or below. Each recommendation includes a specific action, not a vague suggestion. | Recommendations are generic like 'improve modeling' or 'do better'. Dimensions scoring 1-2 have no concrete next step. | Count recommendations per low-scoring dimension. Assert each recommendation string contains a verb and a specific deliverable or technique name (e.g., 'Conduct an Event Storming session', 'Define an Anti-Corruption Layer'). |
Consistency Across Dimensions | No contradictory assessments exist between dimensions. For example, Strategic Design cannot score 5 if Ubiquitous Language scores 1 without an explicit explanation of the discrepancy. | Strategic Design is rated 'Optimizing' while Ubiquitous Language is rated 'Ad Hoc' with no acknowledgment of the gap in the cross-cutting analysis. | Apply a rule-based check: if the variance between the highest and lowest dimension score is greater than 2, assert that the 'crossCuttingObservations' field is non-null and addresses the discrepancy. |
Output Schema Compliance | The response is valid JSON that matches the [OUTPUT_SCHEMA] exactly. All required fields are present and no extra top-level keys exist. | The response is missing the 'assessmentTimestamp' field, contains a malformed 'dimensions' array, or wraps the JSON in a markdown code fence. | Run a strict JSON Schema validator against the output. Reject if validation errors exist or if the raw string starts with ```json. |
Tone and Audience Appropriateness | The output uses objective, professional language suitable for an engineering leadership audience. It avoids hype, blame, or subjective personality judgments. | The output includes phrases like 'the team is lazy' or 'this is amazing work'. It uses marketing language rather than engineering assessment language. | Scan output text for a blocklist of unprofessional terms. Use an LLM-as-judge with a simple pass/fail prompt: 'Does this text contain unprofessional, blaming, or marketing-hype language? Answer only YES or NO.' |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Use the base rubric prompt with a single model call and lighter validation. Remove the [EVIDENCE_REQUIREMENTS] section and accept free-text rationale instead of structured evidence citations. Reduce the number of maturity dimensions to 3-4 core ones (e.g., Tactical Patterns, Strategic Design, Team Alignment) to speed iteration.
codeRemove: [EVIDENCE_REQUIREMENTS] block Replace: Structured evidence array → "Provide brief rationale per score" Reduce: [MATURITY_DIMENSIONS] to 3-4 items
Watch for
- Scores that drift toward the middle without justification
- Missing distinction between "not assessed" and "immature"
- Overly optimistic self-assessments when teams self-score

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us