Analyze Design
analyze_designAnalyze a system description and return design pattern selections per decision part, with ranked alternatives and veto notes, without generating code. Use it to route choices before implementing.
Instructions
Analyze a system description and select design patterns per decision part — the analysis-only path for coding agents that write the code themselves. Returns the repaired design brief, the decision parts with their scope/category hypothesis, and one selection per part (primary pattern, supporting patterns with roles, ranked alternatives, veto ledger, quality-attribute weights that drove the scoring) without generating applications or evaluating them. The selection is a routing decision, not an implementation spec: it carries no participants, implementation steps, code sketches or language bindings — before implementing, call generate_design with this payload to materialize the bound applications without re-running the analysis, or get_design_pattern for each selected pattern when only the catalog record and language bindings are needed. A true is_fallback (payload level, or per part with fallback_reason) marks a selection with no eligible primary — treat it as fallback guidance, not a real match. Use select_design_patterns when the caller wants the generated design.
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'. | |
| language | No | Optional target language: generic, c, cplusplus, csharp, go, java, javascript, kotlin, python, ruby, rust, scala, swift, typescript. The selections are bound to that language; absent, empty or unrecognized values run in generic 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 | |||