description: "Evaluate and recommend technology stack including language, framework, database, queue, cache, and infrastructure. Document pros, cons, and justification for each choice. A deliverable skill referenced by design-architecture."
---
This skill provides guidance and format requirements for evaluating and recommending the technology stack within the architecture document.
This is a deliverable skill, not a workflow skill. It is referenced by `design-architecture` when evaluating technology choices.
## Purpose
The Architect must evaluate the technology stack for the system, considering requirements from the PRD, existing systems, team expertise, and operational constraints. Each technology choice must be justified with pros, cons, and rationale.
## Technology Stack Evaluation Format
When evaluating the technology stack for a feature, produce a structured evaluation for each stack layer:
```markdown
### {Layer}: {Technology}
- **Pros**:
- {Specific advantage relevant to this use case}
- {Another advantage}
- **Cons**:
- {Specific disadvantage relevant to this use case}
- {Another disadvantage}
- **Why Chosen**:
- {Specific rationale tied to PRD requirements}
- {Why this technology is the best fit for this use case}
- **Alternatives Considered**:
- {Alternative 1}: {Brief reason why not chosen}
- {Alternative 2}: {Brief reason why not chosen}
```
## Evaluation Layers
### Language
- Primary programming language for each service
- Justification based on: ecosystem, performance, team expertise, library support
- Consider: type safety, concurrency model, deployment size, development velocity
### Framework
- Application framework for each service
- Justification based on: maturity, community, performance, developer experience
Examples in this skill are illustrative only. Do not reuse placeholder technologies, justifications, or alternatives unless explicitly required by the PRD. Every technology selection, justification, and alternative must be grounded in actual requirements and reflect real evaluation for this system.
Technology stack evaluation must be embedded within the `## System Architecture` section (Technology Stack subsection) of `docs/architecture/{feature}.md`.
For significant technology decisions that affect the overall system structure, also document them as ADRs in the `## ADR` section.
Do NOT produce separate evaluation documents. All technology evaluations must be within the single architecture document.