Skip to main content

Ddd Guidance

@webframp/ddd-guidancev2026.09.18.1· 17d agoMODELS
01README

Guides teams through applying Domain-Driven Design to existing projects. Structured discovery of bounded contexts, ubiquitous language capture, and aggregate boundary design using Vernon's rules of thumb.

Stores typed, versioned domain knowledge that agents can query to inform architectural decisions over time.

02Release Notes

2026.09.18.1

Upgrade note: Normalized npm:zod dependency version to 4.6.5 across the repo. No behavioral changes in this extension.

03Models1
@webframp/ddd-guidancev2026.09.18.1ddd-guidance/mod.ts

Global Arguments

ArgumentTypeDescription
projectContextstringBrief description of the project, its domain, and team structure
existingPatternsarrayArchitectural patterns already in use (e.g., microservices, monolith, event-driven)
fn contexts(focus?: string, contexts: array, relationships: array, overloadedTerms: array)
Discover bounded contexts through structured conversation. Guide the discussion through these phases: 1. TERM INVENTORY Ask: "What are the core terms in your domain? List the nouns your team uses daily — things like 'order', 'customer', 'deployment', 'incident'." For each term, ask: "Does this word mean the same thing to everyone on every team?" Record where terms are overloaded. 2. OWNERSHIP BOUNDARIES Ask: "Who owns what? Which teams or people are responsible for which par
ArgumentTypeDescription
focus?stringOptional: narrow discovery to a specific area of the system
contextsarrayBounded contexts discovered through conversation
relationshipsarrayRelationships between bounded contexts
overloadedTermsarrayTerms that mean different things in different contexts
fn language(mode: enum, context: string, entries: array, overloadedTerms?: array)
Capture ubiquitous language for a bounded context. Guide the conversation through these phases: 1. CONTEXT SELECTION Read the contextMap resource. Present the discovered bounded contexts. Ask: "Which context should we define language for?" If a 'context' argument is provided, use that directly. 2. TERM ELICITATION For the selected context, ask: "What are the essential nouns, verbs, and adjectives in this context? Think of the terms a new team member would need to learn befor
ArgumentTypeDescription
modeenumWrite strategy: merge (default), replace-context, or replace-all
contextstringBounded context name these terms belong to
entriesarrayGlossary entries captured through conversation
overloadedTerms?arrayAny newly discovered terms that are overloaded across contexts
fn boundaries(context: string, aggregates: array, eventualConsistencyRules: array)
Identify aggregate boundaries within a bounded context. Guide the conversation through these phases using Vernon's Aggregate Rules of Thumb: 1. CONTEXT SELECTION Read the contextMap and domainGlossary resources. Present context and its terms. Ask: "Which context should we design aggregate boundaries for?" If a 'context' argument is provided, use that directly. 2. AGGREGATE CANDIDATE CLUSTERING Present the glossary entries for this context and ask: "Which of these terms cluster
ArgumentTypeDescription
contextstringBounded context name these boundaries belong to
aggregatesarrayAggregate designs produced through Vernon's rules analysis
eventualConsistencyRulesarrayCross-aggregate consistency rules that tolerate eventual consistency
fn revisit()
Review existing DDD decisions against recent system changes. Domain understanding evolves. This method guides a structured review of prior context, language, and boundary decisions to determine what still holds and what needs updating. Guide the conversation through these phases: 1. CHANGE INVENTORY Read all three resources (contextMap, domainGlossary, boundaries). Present the current state and its discoveredAt/updatedAt timestamps. Ask: "What has changed since these were last update

Resources

contextMap(infinite)— Discovered bounded contexts, their relationships, and overloaded terms
domainGlossary(infinite)— Per-context term glossary capturing ubiquitous language definitions
boundaries(infinite)— Aggregate designs with invariants, identity references, and consistency rules
04Previous Versions13
2026.09.15.1

2026.09.15.1

Changed: Bump zod 4.4.3 → 4.6.5

2026.08.28.1

Changed: Normalized the extension license to Apache-2.0 and corrected the copyright holder to "Sean Escriva". Extensions that previously shipped an MIT LICENSE.md are now Apache-2.0, consistent with the repository root and every other extension. No code or behavioral changes.

Upgrade note: License text only. No API, schema, or runtime behavior changed.

2026.08.26.3

Fixed: Restored inline npm:zod@4.4.3 import specifiers so the registry quality scorer can resolve dependencies and score the extension. An earlier release used a bare "zod" import-map specifier, which published but scored as unscored.

Changed: Retained explicit compilerOptions.strict in deno.json. No behavioral or schema changes.

2026.08.28.1

2026.08.28.1

Changed: Normalized the extension license to Apache-2.0 and corrected the copyright holder to "Sean Escriva". Extensions that previously shipped an MIT LICENSE.md are now Apache-2.0, consistent with the repository root and every other extension. No code or behavioral changes.

Upgrade note: License text only. No API, schema, or runtime behavior changed.

2026.08.26.3

Fixed: Restored inline npm:zod@4.4.3 import specifiers so the registry quality scorer can resolve dependencies and score the extension. An earlier release used a bare "zod" import-map specifier, which published but scored as unscored.

Changed: Retained explicit compilerOptions.strict in deno.json. No behavioral or schema changes.

2026.08.26.3

2026.08.26.3

Fixed: Restored inline npm:zod@4.4.3 import specifiers so the registry quality scorer can resolve dependencies and score the extension. An earlier release used a bare "zod" import-map specifier, which published but scored as unscored.

Changed: Retained explicit compilerOptions.strict in deno.json. No behavioral or schema changes.

2026.08.26.1

2026.08.26.1

Fixed: Added missing description field to upgrade entry for version 2026.08.24.2. The omission caused swamp extension pull to fail with a catalog validation error ("upgrades.N.description: Invalid input: expected string, received undefined").

2026.08.24.3

2026.08.24.3

Added: Output metadata attributes for observability.

  • durationMs: Method execution duration in milliseconds.
  • collectedBy: Extension name that produced the data.
  • fetchedAt: ISO 8601 timestamp when data was fetched (added to resources that previously lacked it).
2026.08.24.2

2026.08.24.2

Fixed source/manifest version mismatch. Added Troubleshooting section documenting method ordering requirements, language method independence, agent-guidance global args, and silent context map skip.

2026.08.21.1

2026.08.21.1

Changed: Added .describe(...) documentation to previously undocumented fields in the resource-only schemas ContextMapSchema, DomainGlossarySchema, and BoundariesSchema (and their nested ContextRelationshipSchema, BoundedContextSchema, GlossaryEntrySchema, InvariantSchema, and AggregateDesignSchema). The corresponding method argument schemas already had descriptions; this brings the resource schemas up to the same standard. No behavioral changes.

2026.07.18.1

Added: An upgrades array entry (no-op) to mod.ts for proper typeVersion tracking on existing instances. No schema or behavior changes.

2026.07.18.1

2026.07.18.1

Added: An upgrades array entry (no-op) to mod.ts for proper typeVersion tracking on existing instances. No schema or behavior changes.

2026.06.25.3
2026.06.25.1
2026.06.23.1
2026.06.15.1
2026.06.05.2
05Stats
A
100 / 100
Downloads
72
Archive size
20.3 KB
  • Has README or module doc2/2earned
  • README has a code example1/1earned
  • README is substantive1/1earned
  • Most symbols documented1/1earned
  • No slow types (deprecated)1/1earned
  • Dependencies pass trust audit2/2earned
  • Has description1/1earned
  • Platform support declared (or universal)2/2earned
  • License declared1/1earned
  • Verified public repository2/2earned
06Platforms
07Labels