Select Design Patterns
select_design_patternsSelects design patterns for a described system, returning per-language implementations, supporting patterns, interactions, test strategy and risks with a traceable reasoning trail.
Instructions
Select the design patterns to apply to a described system, with per-application language bindings and a traceable reasoning trail. Send the components, their responsibilities and the constraints derived from an architecture result. Returns applications (pattern, participants, implementation steps, bound language variant), supporting patterns, interactions, quality attributes, a test strategy and risks. Use this when the caller wants the generated design; when your agent writes the code itself and only needs the decisions, call analyze_design instead — it runs the same ANALYZE phase and skips generation and evaluation.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| focus | No | Optional free text narrowing the decision or naming a realization, e.g. 'use the coroutine-based acceptor variant'. A verbatim variant_id is bound exactly; readable ids come from the design-patterns://variants resource. | |
| language | No | Optional target language: generic, c, cplusplus, csharp, go, java, javascript, kotlin, python, ruby, rust, scala, swift, typescript. The patterns are returned realized in that language; absent, empty or unrecognized values run in generic (language-neutral) mode. | |
| paradigm | No | Optional paradigm narrowing the realization variant: oo, functional, concurrent, data-oriented, declarative, procedural. Unknown values are ignored. | |
| description | Yes | Free-text description of the system to design: component names with their responsibilities, cross-component flows, and the constraints the design must satisfy (40-100000 characters). Architecture-level choices alone are not enough — name the components to implement. | |
| architecture_style | No | Optional architecture style from the architecture server's style enum (e.g. 'event-driven', 'hexagonal', 'microservices'). Unknown values are ignored; a known value takes precedence over any style extracted from the description and adds a soft category prior. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||