MANDATORY IMPORTANT MUST use TaskCreate to break ALL work into small tasks BEFORE starting.
MANDATORY IMPORTANT MUST use AskUserQuestion at EVERY decision point — never assume user preferences.
MANDATORY IMPORTANT MUST research top 3 options per architecture concern, compare with evidence, present report with recommendation + confidence %.
External Memory: For complex or lengthy work (research, analysis, scan, review), write intermediate findings and final results to a report file in plans/reports/ — prevents context loss and serves as deliverable.
Evidence Gate: MANDATORY IMPORTANT MUST — every claim, finding, and recommendation requires file:line proof or traced evidence with confidence percentage (>80% to act, <80% must verify first).
Quick Summary
Goal: Act as a solution architect — research, critically analyze, and recommend the complete technical architecture for a project or feature. Cover ALL architecture concerns: backend, frontend, design patterns, library ecosystem, testing strategy, CI/CD, deployment, monitoring, code quality, and dependency management. Produce a comprehensive comparison report with actionable recommendations.
Workflow (12 steps):
- Load Context — Read domain model, tech stack, business evaluation, refined PBI
- Derive Architecture Requirements — Map business/domain complexity to architecture constraints
- Backend Architecture — Research top 3 backend architecture styles + design patterns
- Frontend Architecture — Research top 3 frontend architecture styles + design patterns
- Library Ecosystem Research — Best-practice libraries per concern (validation, caching, logging, utils, etc.)
- Testing Architecture — Unit, integration, E2E, performance testing frameworks + strategy
- CI/CD & Deployment — Pipeline design, containerization, orchestration, IaC
- Observability & Monitoring — Logging, metrics, tracing, alerting stack
- Code Quality & Clean Code — Linters, analyzers, formatters, enforcement tooling
- Dependency Risk Assessment — Package health, obsolescence risk, maintenance cost
- Generate Report — Full architecture decision report with all recommendations
- User Validation — Present findings, ask 8-12 questions, confirm all decisions
Key Rules:
- MANDATORY IMPORTANT MUST research minimum 3 options per architecture concern with web evidence
- MANDATORY IMPORTANT MUST include confidence % with evidence for every recommendation
- MANDATORY IMPORTANT MUST run user validation interview at end (never skip)
- Delegate to
solution-architect agent for complex architecture decisions
- All claims must cite sources (URL, benchmark, case study, or codebase evidence)
- Never recommend based on familiarity alone — evidence required
Be skeptical. Apply critical thinking, sequential thinking. Every claim needs traced proof, confidence percentages (Idea should be more than 80%).
Step 1: Load Context
Read artifacts from prior workflow steps (search in plans/ and team-artifacts/):
- Domain model / ERD (complexity, bounded contexts, aggregate count)
- Tech stack decisions (confirmed languages, frameworks, databases)
- Business evaluation (scale, constraints, compliance)
- Refined PBI (scope, acceptance criteria)
- Discovery interview (team skills, experience level)
Extract and summarize:
| Signal |
Value |
Source |
| Bounded contexts |
... |
domain model |
| Aggregate count |
... |
domain model |
| Cross-context events |
... |
domain model |
| Confirmed tech stack |
... |
tech stack phase |
| Expected scale |
... |
business eval |
| Team architecture exp. |
... |
discovery |
| Compliance requirements |
... |
business eval |
| Real-time needs |
Yes/No |
refined PBI |
| Integration complexity |
Low/Med/High |
domain model |
| Deployment target |
... |
business eval |
Step 2: Derive Architecture Requirements
Map signals to architecture constraints:
| Signal |
Architecture Requirement |
Priority |
| Many bounded contexts |
Clear module boundaries, context isolation |
Must |
| High scale |
Horizontal scaling, stateless services, caching strategy |
Must |
| Complex domain |
Rich domain model, separation of domain from infra |
Must |
| Cross-context events |
Event-driven communication, eventual consistency |
Must |
| Small team |
Low ceremony, fewer layers, convention over configuration |
Should |
| Compliance |
Audit trail, immutable events, access control layers |
Must |
| Real-time |
Event sourcing or pub/sub, WebSocket/SSE support |
Should |
| High integration complexity |
Anti-corruption layers, adapter pattern, API gateway |
Should |
MANDATORY IMPORTANT MUST validate derived requirements with user via AskUserQuestion before proceeding.
Step 3: Backend Architecture
3A: Architecture Styles
WebSearch top 3 backend architecture styles. Candidates:
| Style |
Best For |
Research Focus |
| Clean Architecture |
Complex domains, long-lived projects |
Dependency rule, testability, flexibility |
| Hexagonal (Ports+Adapt) |
Integration-heavy, multiple I/O adapters |
Port contracts, adapter isolation |
| Vertical Slice |
Feature-focused teams, rapid delivery |
Slice isolation, code locality |
| Modular Monolith |
Starting simple, eventual decomposition |
Module boundaries, migration path |
| Microservices |
Large teams, independent deployment |
Service boundaries, operational overhead |
| CQRS + Event Sourcing |
Audit-heavy, complex queries |
Read/write separation, event store |
| Layered (N-Tier) |
Simple CRUD, small teams |
Layer responsibilities, coupling risk |
3B: Backend Design Patterns
Evaluate applicability per layer:
| Pattern |
Layer |
When to Apply |
| Repository |
Data Access |
Abstract data store, enable testing |
| CQRS |
Application |
Separate read/write models, complex queries |
| Mediator |
Application |
Decouple handlers from controllers |
| Strategy |
Domain/App |
Multiple interchangeable algorithms |
| Observer/Events |
Domain |
Cross-aggregate side effects |
| Factory |
Domain |
Complex object creation with invariants |
| Decorator |
Cross-cutting |
Add behavior without modifying (logging, caching) |
| Adapter |
Infrastructure |
Isolate external dependencies |
| Specification |
Domain |
Composable business rules, complex filtering |
| Unit of Work |
Data Access |
Transaction management across repositories |
| Saga/Orchestr. |
Cross-service |
Distributed transactions, compensating actions |
| Outbox |
Messaging |
Reliable event publishing with DB transactions |
| Circuit Breaker |
Infrastructure |
External service resilience |
For each recommended pattern, document: Apply to, Why, Example, Risk if skipped.
Step 4: Frontend Architecture
4A: Architecture Styles
WebSearch top 3 frontend architecture styles. Candidates:
| Style |
Best For |
Research Focus |
| MVVM |
Data-binding heavy, forms-over-data apps |
ViewModel responsibility, two-way binding |
| MVC |
Server-rendered, traditional web apps |
Controller routing, view separation |
| Component Architecture |
Modern SPA (React, Angular, Vue) |
Component isolation, props/events, reuse |
| Reactive Store (Redux) |
Complex state, multi-component sync |
Single source of truth, immutable state |
| Signal-based Reactivity |
Fine-grained reactivity (Angular 19, Solid) |
Granular updates, no zone.js overhead |
| Micro Frontends |
Multiple teams, independent deployment |
Module federation, routing, shared state |
| Feature-based Modules |
Large monolith SPA, lazy loading |
Feature boundaries, route-level splitting |
| Server Components (RSC) |
SEO, initial load performance |
Server/client boundary, streaming |
4B: Frontend Design Patterns
| Pattern |
Layer |
When to Apply |
| Container/Presentational |
Component |
Separate logic from UI rendering |
| Reactive Store |
State |
Centralized state, cross-component communication |
| Facade Service |
Service |
Simplify complex API interactions |
| Adapter/Mapper |
Data |
Transform API response to view model |
| Observer (RxJS) |
Async |
Event streams, real-time data, debounce/throttle |
| Strategy (renderers) |
UI |
Conditional rendering strategies per entity type |
| Composite (components) |
UI |
Tree structures, recursive components |
| Command (undo/redo) |
UX |
Form wizards, canvas editors, undoable actions |
| Lazy Loading |
Performance |
Route/module-level code splitting |
| Virtual Scrolling |
Performance |
Large lists, infinite scroll |
Step 4B: UI System Architecture
Skip if: Backend-only project, no frontend component.
Research and recommend the project's design system architecture. Use AskUserQuestion for each decision.
4B-1: Styling Approach
WebSearch top 3 styling approaches for the confirmed frontend framework:
| Approach |
Best For |
Research Focus |
| Utility-first (Tailwind CSS) |
Rapid prototyping, design enforcement |
JIT, custom config, design tokens |
| CSS Modules / Scoped CSS |
Component isolation, no global conflicts |
Naming, composition patterns |
| SCSS/SASS with BEM |
Complex theming, token variables |
BEM methodology, mixin libraries |
| CSS-in-JS |
Dynamic styling, theme providers |
Runtime perf, SSR support |
| CSS Custom Properties |
Native theming, framework-agnostic |
Browser support, fallback strategy |
4B-2: Design Token Strategy
| Decision |
Options |
Default |
| Token format |
CSS custom properties / JSON / SCSS variables |
CSS custom properties |
| Token categories |
Color, spacing, typography, breakpoints, shadows, z-index |
All |
| Token naming |
Semantic (--color-primary) vs Functional (--btn-bg) |
Semantic first |
| Theming |
Light/dark toggle / Multi-brand / Single theme |
Single + dark mode |
4B-3: Component Library Strategy
| Decision |
Options |
Default |
| Library |
Build custom / Headless (Radix, Headless UI) / Full kit (MUI, Ant, PrimeNG) |
Based on team and timeline |
| Component tiers |
Common → Domain-Shared → Page (per ui-wireframe-protocol) |
Standard 3-tier |
| Documentation |
Storybook / Docusaurus / In-code only |
Based on team size |
4B-4: Responsive Strategy
| Decision |
Options |
Default |
| Approach |
Mobile-first / Desktop-first / Adaptive |
Mobile-first |
| Breakpoints |
320/768/1024/1280 / Custom |
Standard |
| Grid system |
CSS Grid / Flexbox / Framework grid |
CSS Grid + Flexbox |
MANDATORY IMPORTANT MUST validate all UI system decisions with user via AskUserQuestion before proceeding to Step 5.
Step 5: Library Ecosystem Research
For EACH concern below, WebSearch top 3 library options for the confirmed tech stack. Evaluate: maturity, community, bundle size, maintenance activity, license, learning curve.
Library Concerns Checklist
| Concern |
What to Research |
Evaluation Criteria |
| Validation |
Input validation, schema validation, form validation |
Type safety, composability, error messages |
| HTTP Client / API Layer |
REST client, GraphQL client, API code generation |
Interceptors, retry, caching, type generation |
| State Management |
Global store, local state, server state caching |
DevTools, SSR support, bundle size |
| Utilities / Helpers |
Date/time, collections, deep clone, string manipulation |
Tree-shakability, size, native alternatives |
| Caching |
In-memory cache, distributed cache, HTTP cache, query cache |
TTL, invalidation, persistence |
| Logging |
Structured logging, log levels, log aggregation |
Structured output, transports, performance |
| Error Handling |
Global error boundary, error tracking, crash reporting |
Source maps, breadcrumbs, alerting integration |
| Authentication / AuthZ |
JWT, OAuth, RBAC/ABAC, session management |
Standards compliance, SSO, token refresh |
| File Upload / Storage |
Multipart upload, cloud storage SDK, image processing |
Streaming, resumable, size limits |
| Real-time |
WebSocket, SSE, SignalR, Socket.io |
Reconnection, scaling, protocol support |
| Internationalization |
i18n, l10n, pluralization, date/number formatting |
ICU support, lazy loading, extraction tools |
| PDF / Export |
PDF generation, Excel export, CSV |
Server-side vs client-side, template support |
Per-Library Evaluation Template
### {Concern}: Top 3 Options
| Criteria | Option A | Option B | Option C |
| ---------------- | ----------------- | -------- | -------- |
| GitHub Stars | ... | ... | ... |
| Last Release | ... | ... | ... |
| Bundle Size | ... | ... | ... |
| Weekly Downloads | ... | ... | ... |
| License | ... | ... | ... |
| Maintenance | Active/Slow/Stale | ... | ... |
| Learning Curve | Low/Med/High | ... | ... |
**Recommendation:** {Option} — Confidence: {X}%
Step 6: Testing Architecture
Research best testing tools and strategy for the confirmed tech stack:
| Testing Layer |
What to Research |
Top Candidates to Compare |
| Unit Testing |
Test runner, assertion library, mocking framework |
Jest/Vitest/xUnit/NUnit, mocking |
| Integration Testing |
API testing, DB testing, service testing |
Supertest, TestContainers, WebAppFactory |
| E2E Testing |
Browser automation, BDD, visual regression |
Playwright/Cypress/Selenium, SpecFlow |
| Performance Testing |
Load testing, stress testing, benchmarking |
k6/Artillery/JMeter/NBomber, BenchmarkDotNet |
| Contract Testing |
API contract validation between services |
Pact, Dredd, Spectral |
| Mutation Testing |
Test quality validation |
Stryker, PITest |
| Coverage |
Code coverage collection, reporting, enforcement |
Istanbul/Coverlet, SonarQube |
| Test Data |
Factories, fixtures, seeders, fakers |
Bogus/AutoFixture/Faker.js |
Test Strategy Template
### Test Pyramid
- **Unit (70%):** {framework} — {what to test}
- **Integration (20%):** {framework} — {what to test}
- **E2E (10%):** {framework} — {what to test}
### Coverage Targets
- Unit: {X}% | Integration: {X}% | E2E: critical paths only
- Enforcement: {tool} in CI pipeline, fail build below threshold
Step 7: CI/CD & Deployment
Research deployment architecture and CI/CD tooling:
| Concern |
What to Research |
Top Candidates to Compare |
| CI/CD Platform |
Pipeline orchestration, parallelism, caching |
GitHub Actions/Azure DevOps/GitLab CI/Jenkins |
| Containerization |
Container runtime, image building, registry |
Docker/Podman, BuildKit, ACR/ECR/GHCR |
| Orchestration |
Container orchestration, service mesh, scaling |
Kubernetes/Docker Compose/ECS/Nomad |
| IaC (Infra as Code) |
Infrastructure provisioning, drift detection |
Terraform/Pulumi/Bicep/CDK |
| Artifact Management |
Package registry, versioning, vulnerability scanning |
NuGet/npm/Artifactory/GitHub Packages |
| Feature Flags |
Progressive rollout, A/B testing, kill switches |
LaunchDarkly/Unleash/Flagsmith |
| Secret Management |
Vault, key rotation, environment variables |
Azure KeyVault/HashiCorp Vault/SOPS |
| Database Migration |
Schema versioning, rollback, seed data |
EF Migrations/Flyway/Liquibase/dbmate |
Deployment Strategy Comparison
| Strategy |
Risk |
Downtime |
Complexity |
Best For |
| Blue-Green |
Low |
Zero |
Medium |
Critical services |
| Canary |
Low |
Zero |
High |
Gradual rollout |
| Rolling |
Med |
Zero |
Low |
Stateless services |
| Recreate |
High |
Yes |
Low |
Dev/staging environments |
| Feature Flags |
Low |
Zero |
Medium |
Feature-level control |
Step 8: Observability & Monitoring
| Concern |
What to Research |
Top Candidates to Compare |
| Structured Logging |
Log format, correlation IDs, log levels, aggregation |
Serilog/NLog/Winston/Pino |
| Log Aggregation |
Centralized log search, dashboards, alerts |
ELK/Loki+Grafana/Datadog/Seq |
| Metrics |
Application metrics, custom counters, histograms |
Prometheus/OpenTelemetry/App Insights |
| Distributed Tracing |
Request tracing across services, span visualization |
Jaeger/Zipkin/OpenTelemetry/Tempo |
| APM |
Application performance monitoring, auto-instrumentation |
Datadog/New Relic/App Insights/Elastic |
| Alerting |
Threshold alerts, anomaly detection, on-call routing |
PagerDuty/OpsGenie/Grafana Alerting |
| Health Checks |
Liveness, readiness, startup probes |
AspNetCore.Diagnostics/Terminus |
| Uptime Monitoring |
External availability monitoring, SLA tracking |
UptimeRobot/Pingdom/Checkly |
Observability Decision: 3 Pillars
### Recommended Observability Stack
| Pillar | Tool | Why |
| -------- | ------ | ----------- |
| Logs | {tool} | {rationale} |
| Metrics | {tool} | {rationale} |
| Traces | {tool} | {rationale} |
| Alerting | {tool} | {rationale} |
Step 9: Code Quality & Clean Code Enforcement
Research and recommend tooling for automated code quality:
| Concern |
What to Research |
Top Candidates to Compare |
| Linter (Backend) |
Static analysis, code style, bug detection |
Roslyn Analyzers/SonarQube/StyleCop/ReSharper |
| Linter (Frontend) |
JS/TS linting, accessibility, complexity |
ESLint/Biome/oxlint |
| Formatter |
Auto-formatting, consistent style |
Prettier/dotnet-format/EditorConfig |
| Code Analyzer |
Security scanning, complexity metrics, duplication |
SonarQube/CodeClimate/Codacy |
| Pre-commit Hooks |
Git hooks, staged file validation |
Husky+lint-staged/pre-commit/Lefthook |
| Editor Config |
Cross-IDE consistency |
.editorconfig/IDE-specific configs |
| Architecture Rules |
Layer dependency enforcement, naming conventions |
ArchUnit/NetArchTest/Dependency-Cruiser |
| API Design Standards |
OpenAPI validation, naming, versioning |
Spectral/Redocly/swagger-lint |
| Commit Conventions |
Commit message format, changelog generation |
Commitlint/Conventional Commits |
| Code Review Automation |
Automated PR review, suggestion bots |
Danger.js/Reviewdog/CodeRabbit |
Enforcement Strategy
### Code Quality Gates
| Gate | Tool | Trigger | Fail Criteria |
| ----------- | ------ | -------------- | --------------------- |
| Pre-commit | {tool} | git commit | Lint errors, format |
| PR Check | {tool} | Pull request | Coverage < X%, issues |
| CI Pipeline | {tool} | Push to branch | Build fail, test fail |
| Scheduled | {tool} | Weekly/nightly | Security vulns, debt |
Scaffold Handoff (MANDATORY — consumed by /scaffold)
Ref: .claude/skills/shared/scaffold-production-readiness-protocol.md
After completing code quality research, produce this handoff table in the architecture report. The /scaffold skill reads this table to generate actual config files — without it, scaffold cannot auto-configure quality tooling.
### Scaffold Handoff — Tool Choices
| Concern | Chosen Tool | Config File | Rationale |
| -------------- | ----------------- | ----------- | --------- |
| Linter (FE) | {tool} | {filename} | {why} |
| Linter (BE) | {tool} | {filename} | {why} |
| Formatter | {tool} | {filename} | {why} |
| Pre-commit | {tool} | {filename} | {why} |
| Error handling | {pattern} | {files} | {why} |
| Loading state | {pattern} | {files} | {why} |
| Docker | {compose pattern} | {files} | {why} |
Also include: Error handling strategy (4-layer pattern), loading state approach (global vs per-component), and Docker profile structure. See protocol for framework-specific options.
Step 10: Dependency Risk Assessment
For EVERY recommended library/package, evaluate maintenance and obsolescence risk:
Package Health Scorecard
| Criteria |
Score (1-5) |
How to Verify |
| Last Release Date |
... |
npm/NuGet page — stale if >12 months |
| Open Issues Ratio |
... |
GitHub issues open vs closed |
| Maintainer Count |
... |
Bus factor — single maintainer = high risk |
| Breaking Change Freq. |
... |
Changelog — frequent major versions = churn cost |
| Dependency Depth |
... |
npm ls --depth / dependency graph depth |
| Known Vulnerabilities |
... |
Snyk/npm audit/GitHub Dependabot |
| License Compatibility |
... |
SPDX identifier — check viral licenses (GPL) |
| Community Activity |
... |
Monthly commits, PR merge rate, Discord/forums |
| Migration Path |
... |
Can swap to alternative if abandoned? |
| Framework Alignment |
... |
Official recommendation by framework team? |
Risk Categories
| Risk Level |
Criteria |
Action |
| Low |
Active, >3 maintainers, recent release, no CVEs |
Use freely |
| Medium |
1-2 maintainers, release <6mo, minor CVEs patched |
Use with monitoring plan |
| High |
Single maintainer, >12mo stale, open CVEs |
Find alternative or plan exit strategy |
| Critical |
Abandoned, unpatched CVEs, deprecated |
DO NOT USE — find replacement |
Dependency Maintenance Strategy
### Recommended Practices
1. **Automated scanning:** {tool} (Dependabot/Renovate/Snyk) — weekly PR for updates
2. **Lock file strategy:** Commit lock files, pin major versions, allow patch auto-update
3. **Audit schedule:** Monthly `npm audit` / `dotnet list package --vulnerable`
4. **Vendor policy:** Max {N} dependencies per concern, prefer well-maintained alternatives
5. **Exit strategy:** For each High-risk dependency, document migration path to alternative
Step 11: Generate Report
Write report to {plan-dir}/research/architecture-design.md with sections:
- Executive summary (recommended architecture in 8-10 lines)
- Architecture requirements table (from Step 2)
- Backend architecture — style comparison + recommended patterns (Steps 3)
- Frontend architecture — style comparison + recommended patterns (Step 4)
- Library ecosystem — per-concern recommendations with alternatives (Step 5)
- Testing architecture — pyramid, tools, coverage targets (Step 6)
- CI/CD & deployment — pipeline design, deployment strategy (Step 7)
- Observability stack — 3 pillars + alerting (Step 8)
- Code quality — enforcement gates, tooling (Step 9)
- Dependency risk matrix — high-risk packages, mitigation (Step 10)
- Architecture diagram (Mermaid — showing all layers and data flow)
- Risk assessment for overall architecture
- Unresolved questions
Architecture Diagram Template
```mermaid
graph TB
subgraph "Frontend"
UI[SPA / Micro Frontend]
STORE[State Management]
end
subgraph "API Gateway"
GW[Gateway / BFF]
end
subgraph "Backend Services"
CMD[Commands / Handlers]
QRY[Queries / Read Models]
SVC[Domain Services]
ENT[Entities / Aggregates]
end
subgraph "Infrastructure"
DB[(Database)]
CACHE[(Cache)]
MSG[Message Bus]
SEARCH[(Search Index)]
end
subgraph "Observability"
LOG[Logging]
METRIC[Metrics]
TRACE[Tracing]
end
subgraph "CI/CD"
PIPE[Pipeline]
REG[Container Registry]
K8S[Orchestration]
end
UI --> GW --> CMD & QRY
CMD --> SVC --> ENT --> DB
QRY --> CACHE & SEARCH
ENT -.-> MSG
CMD & QRY -.-> LOG & METRIC & TRACE
PIPE --> REG --> K8S
```
Step 12: User Validation Interview
MANDATORY IMPORTANT MUST present findings and ask 8-12 questions via AskUserQuestion:
Required Questions
- Backend architecture — "I recommend {style}. Agree?"
- Frontend architecture — "I recommend {style} with {state management}. Agree?"
- Design patterns — "Recommended backend patterns: {list}. Frontend patterns: {list}. Any to add/remove?"
- Key libraries — "For {concern}, I recommend {lib} over {alternatives}. Agree?"
- Testing strategy — "Test pyramid: {unit}%/{integration}%/{E2E}% using {frameworks}. Appropriate?"
- CI/CD — "Pipeline: {tool} with {deployment strategy}. Fits your infra?"
- Observability — "Monitoring stack: {logs}/{metrics}/{traces}. Sufficient?"
- Code quality — "Enforcement: {linter + formatter + pre-commit hooks}. Team ready?"
- Dependency risk — "Found {N} high-risk dependencies. Accept or find alternatives?"
- Complexity check — "This architecture has {N} concerns addressed. Appropriate for team size?"
Optional Deep-Dive Questions (pick 2-3)
- "Should we use event sourcing or traditional state-based persistence?"
- "Monolith-first or start with service boundaries?"
- "Micro frontends or monolith SPA?"
- "How important is framework independence for this project?"
- "Self-hosted observability or managed SaaS?"
- "Strict lint rules from day 1 or gradual adoption?"
After user confirms, update report with final decisions and mark as status: confirmed.
Best Practices Audit (applied across all steps)
Validate architecture against these principles — flag violations in report:
| Principle |
Check |
Status |
| Single Responsibility (S) |
Each class/module has one reason to change |
✅/⚠️ |
| Open/Closed (O) |
Extensible without modifying existing code |
✅/⚠️ |
| Liskov Substitution (L) |
Subtypes substitutable for base types |
✅/⚠️ |
| Interface Segregation (I) |
No forced dependency on unused interfaces |
✅/⚠️ |
| Dependency Inversion (D) |
High-level modules depend on abstractions, not concretions |
✅/⚠️ |
| DRY |
No duplicated business logic across layers |
✅/⚠️ |
| KISS |
Simplest architecture that meets requirements |
✅/⚠️ |
| YAGNI |
No speculative layers or patterns for future needs |
✅/⚠️ |
| Separation of Concerns |
Clear boundaries between domain, application, infra |
✅/⚠️ |
| IoC / Dependency Injection |
All dependencies injected, no new in business logic |
✅/⚠️ |
| Technical Agnosticism |
Domain layer has zero framework/infra dependencies |
✅/⚠️ |
| Testability |
Architecture supports unit + integration testing |
✅/⚠️ |
| 12-Factor App |
Config in env, stateless processes, port binding |
✅/⚠️ |
| Fail-Fast |
Validate early, fail with clear errors |
✅/⚠️ |
Output
{plan-dir}/research/architecture-design.md # Full architecture analysis report
{plan-dir}/phase-02b-architecture.md # Confirmed architecture decisions
MANDATORY IMPORTANT MUST break work into small todo tasks using TaskCreate BEFORE starting.
MANDATORY IMPORTANT MUST validate EVERY architecture recommendation with user via AskUserQuestion — never auto-decide.
MANDATORY IMPORTANT MUST include confidence % and evidence citations for all claims.
MANDATORY IMPORTANT MUST add a final review todo task to verify work quality.
Next Steps
MANDATORY IMPORTANT MUST after completing this skill, use AskUserQuestion to recommend:
- "/plan (Recommended)" — Create implementation plan from architecture design
- "/refine" — If need to create PBIs first
- "Skip, continue manually" — user decides
Closing Reminders
MANDATORY IMPORTANT MUST break work into small todo tasks using TaskCreate BEFORE starting.
MANDATORY IMPORTANT MUST validate decisions with user via AskUserQuestion — never auto-decide.
MANDATORY IMPORTANT MUST add a final review todo task to verify work quality.
1---2name: architecture-design-43description: [Architecture] Full solution architecture: backend + frontend patterns, design patterns, library ecosystem, CI/CD, deployment, monitoring, testing, code quality, dependency risk. Compare top 3 approaches per concern with recommendation.4---5
6**MANDATORY IMPORTANT MUST** use `TaskCreate` to break ALL work into small tasks BEFORE starting.
7**MANDATORY IMPORTANT MUST** use `AskUserQuestion` at EVERY decision point — never assume user preferences.
8**MANDATORY IMPORTANT MUST** research top 3 options per architecture concern, compare with evidence, present report with recommendation + confidence %.
9
10> **External Memory:** For complex or lengthy work (research, analysis, scan, review), write intermediate findings and final results to a report file in `plans/reports/` — prevents context loss and serves as deliverable.
11
12> **Evidence Gate:** MANDATORY IMPORTANT MUST — every claim, finding, and recommendation requires `file:line` proof or traced evidence with confidence percentage (>80% to act, <80% must verify first).
13
14## Quick Summary
15
16**Goal:** Act as a solution architect — research, critically analyze, and recommend the complete technical architecture for a project or feature. Cover ALL architecture concerns: backend, frontend, design patterns, library ecosystem, testing strategy, CI/CD, deployment, monitoring, code quality, and dependency management. Produce a comprehensive comparison report with actionable recommendations.
17
18**Workflow (12 steps):**
19
201. **Load Context** — Read domain model, tech stack, business evaluation, refined PBI
212. **Derive Architecture Requirements** — Map business/domain complexity to architecture constraints
223. **Backend Architecture** — Research top 3 backend architecture styles + design patterns
234. **Frontend Architecture** — Research top 3 frontend architecture styles + design patterns
245. **Library Ecosystem Research** — Best-practice libraries per concern (validation, caching, logging, utils, etc.)
256. **Testing Architecture** — Unit, integration, E2E, performance testing frameworks + strategy
267. **CI/CD & Deployment** — Pipeline design, containerization, orchestration, IaC
278. **Observability & Monitoring** — Logging, metrics, tracing, alerting stack
289. **Code Quality & Clean Code** — Linters, analyzers, formatters, enforcement tooling
2910. **Dependency Risk Assessment** — Package health, obsolescence risk, maintenance cost
3011. **Generate Report** — Full architecture decision report with all recommendations
3112. **User Validation** — Present findings, ask 8-12 questions, confirm all decisions
32
33**Key Rules:**
34
35- **MANDATORY IMPORTANT MUST** research minimum 3 options per architecture concern with web evidence
36- **MANDATORY IMPORTANT MUST** include confidence % with evidence for every recommendation
37- **MANDATORY IMPORTANT MUST** run user validation interview at end (never skip)
38- Delegate to `solution-architect` agent for complex architecture decisions
39- All claims must cite sources (URL, benchmark, case study, or codebase evidence)
40- Never recommend based on familiarity alone — evidence required
41
42**Be skeptical. Apply critical thinking, sequential thinking. Every claim needs traced proof, confidence percentages (Idea should be more than 80%).**
43
44---
45
46## Step 1: Load Context
47
48Read artifacts from prior workflow steps (search in `plans/` and `team-artifacts/`):
49
50- Domain model / ERD (complexity, bounded contexts, aggregate count)
51- Tech stack decisions (confirmed languages, frameworks, databases)
52- Business evaluation (scale, constraints, compliance)
53- Refined PBI (scope, acceptance criteria)
54- Discovery interview (team skills, experience level)
55
56Extract and summarize:
57
58| Signal | Value | Source |
59| ----------------------- | ------------ | ---------------- |
60| Bounded contexts | ... | domain model |
61| Aggregate count | ... | domain model |
62| Cross-context events | ... | domain model |
63| Confirmed tech stack | ... | tech stack phase |
64| Expected scale | ... | business eval |
65| Team architecture exp. | ... | discovery |
66| Compliance requirements | ... | business eval |
67| Real-time needs | Yes/No | refined PBI |
68| Integration complexity | Low/Med/High | domain model |
69| Deployment target | ... | business eval |
70
71---
72
73## Step 2: Derive Architecture Requirements
74
75Map signals to architecture constraints:
76
77| Signal | Architecture Requirement | Priority |
78| --------------------------- | --------------------------------------------------------- | -------- |
79| Many bounded contexts | Clear module boundaries, context isolation | Must |
80| High scale | Horizontal scaling, stateless services, caching strategy | Must |
81| Complex domain | Rich domain model, separation of domain from infra | Must |
82| Cross-context events | Event-driven communication, eventual consistency | Must |
83| Small team | Low ceremony, fewer layers, convention over configuration | Should |
84| Compliance | Audit trail, immutable events, access control layers | Must |
85| Real-time | Event sourcing or pub/sub, WebSocket/SSE support | Should |
86| High integration complexity | Anti-corruption layers, adapter pattern, API gateway | Should |
87
88**MANDATORY IMPORTANT MUST** validate derived requirements with user via `AskUserQuestion` before proceeding.
89
90---
91
92## Step 3: Backend Architecture
93
94### 3A: Architecture Styles
95
96WebSearch top 3 backend architecture styles. Candidates:
97
98| Style | Best For | Research Focus |
99| --------------------------- | ---------------------------------------- | ----------------------------------------- |
100| **Clean Architecture** | Complex domains, long-lived projects | Dependency rule, testability, flexibility |
101| **Hexagonal (Ports+Adapt)** | Integration-heavy, multiple I/O adapters | Port contracts, adapter isolation |
102| **Vertical Slice** | Feature-focused teams, rapid delivery | Slice isolation, code locality |
103| **Modular Monolith** | Starting simple, eventual decomposition | Module boundaries, migration path |
104| **Microservices** | Large teams, independent deployment | Service boundaries, operational overhead |
105| **CQRS + Event Sourcing** | Audit-heavy, complex queries | Read/write separation, event store |
106| **Layered (N-Tier)** | Simple CRUD, small teams | Layer responsibilities, coupling risk |
107
108### 3B: Backend Design Patterns
109
110Evaluate applicability per layer:
111
112| Pattern | Layer | When to Apply |
113| ------------------- | -------------- | ------------------------------------------------- |
114| **Repository** | Data Access | Abstract data store, enable testing |
115| **CQRS** | Application | Separate read/write models, complex queries |
116| **Mediator** | Application | Decouple handlers from controllers |
117| **Strategy** | Domain/App | Multiple interchangeable algorithms |
118| **Observer/Events** | Domain | Cross-aggregate side effects |
119| **Factory** | Domain | Complex object creation with invariants |
120| **Decorator** | Cross-cutting | Add behavior without modifying (logging, caching) |
121| **Adapter** | Infrastructure | Isolate external dependencies |
122| **Specification** | Domain | Composable business rules, complex filtering |
123| **Unit of Work** | Data Access | Transaction management across repositories |
124| **Saga/Orchestr.** | Cross-service | Distributed transactions, compensating actions |
125| **Outbox** | Messaging | Reliable event publishing with DB transactions |
126| **Circuit Breaker** | Infrastructure | External service resilience |
127
128For each recommended pattern, document: **Apply to**, **Why**, **Example**, **Risk if skipped**.
129
130---
131
132## Step 4: Frontend Architecture
133
134### 4A: Architecture Styles
135
136WebSearch top 3 frontend architecture styles. Candidates:
137
138| Style | Best For | Research Focus |
139| --------------------------- | ------------------------------------------- | ----------------------------------------- |
140| **MVVM** | Data-binding heavy, forms-over-data apps | ViewModel responsibility, two-way binding |
141| **MVC** | Server-rendered, traditional web apps | Controller routing, view separation |
142| **Component Architecture** | Modern SPA (React, Angular, Vue) | Component isolation, props/events, reuse |
143| **Reactive Store (Redux)** | Complex state, multi-component sync | Single source of truth, immutable state |
144| **Signal-based Reactivity** | Fine-grained reactivity (Angular 19, Solid) | Granular updates, no zone.js overhead |
145| **Micro Frontends** | Multiple teams, independent deployment | Module federation, routing, shared state |
146| **Feature-based Modules** | Large monolith SPA, lazy loading | Feature boundaries, route-level splitting |
147| **Server Components (RSC)** | SEO, initial load performance | Server/client boundary, streaming |
148
149### 4B: Frontend Design Patterns
150
151| Pattern | Layer | When to Apply |
152| ---------------------------- | ----------- | ------------------------------------------------ |
153| **Container/Presentational** | Component | Separate logic from UI rendering |
154| **Reactive Store** | State | Centralized state, cross-component communication |
155| **Facade Service** | Service | Simplify complex API interactions |
156| **Adapter/Mapper** | Data | Transform API response to view model |
157| **Observer (RxJS)** | Async | Event streams, real-time data, debounce/throttle |
158| **Strategy (renderers)** | UI | Conditional rendering strategies per entity type |
159| **Composite (components)** | UI | Tree structures, recursive components |
160| **Command (undo/redo)** | UX | Form wizards, canvas editors, undoable actions |
161| **Lazy Loading** | Performance | Route/module-level code splitting |
162| **Virtual Scrolling** | Performance | Large lists, infinite scroll |
163
164---
165
166## Step 4B: UI System Architecture
167
168> **Skip if:** Backend-only project, no frontend component.
169
170Research and recommend the project's design system architecture. Use `AskUserQuestion` for each decision.
171
172### 4B-1: Styling Approach
173
174WebSearch top 3 styling approaches for the confirmed frontend framework:
175
176| Approach | Best For | Research Focus |
177| -------------------------------- | ---------------------------------------- | ---------------------------------- |
178| **Utility-first (Tailwind CSS)** | Rapid prototyping, design enforcement | JIT, custom config, design tokens |
179| **CSS Modules / Scoped CSS** | Component isolation, no global conflicts | Naming, composition patterns |
180| **SCSS/SASS with BEM** | Complex theming, token variables | BEM methodology, mixin libraries |
181| **CSS-in-JS** | Dynamic styling, theme providers | Runtime perf, SSR support |
182| **CSS Custom Properties** | Native theming, framework-agnostic | Browser support, fallback strategy |
183
184### 4B-2: Design Token Strategy
185
186| Decision | Options | Default |
187| ---------------- | --------------------------------------------------------- | --------------------- |
188| Token format | CSS custom properties / JSON / SCSS variables | CSS custom properties |
189| Token categories | Color, spacing, typography, breakpoints, shadows, z-index | All |
190| Token naming | Semantic (`--color-primary`) vs Functional (`--btn-bg`) | Semantic first |
191| Theming | Light/dark toggle / Multi-brand / Single theme | Single + dark mode |
192
193### 4B-3: Component Library Strategy
194
195| Decision | Options | Default |
196| --------------- | --------------------------------------------------------------------------- | -------------------------- |
197| Library | Build custom / Headless (Radix, Headless UI) / Full kit (MUI, Ant, PrimeNG) | Based on team and timeline |
198| Component tiers | Common → Domain-Shared → Page (per ui-wireframe-protocol) | Standard 3-tier |
199| Documentation | Storybook / Docusaurus / In-code only | Based on team size |
200
201### 4B-4: Responsive Strategy
202
203| Decision | Options | Default |
204| ----------- | --------------------------------------- | ------------------ |
205| Approach | Mobile-first / Desktop-first / Adaptive | Mobile-first |
206| Breakpoints | 320/768/1024/1280 / Custom | Standard |
207| Grid system | CSS Grid / Flexbox / Framework grid | CSS Grid + Flexbox |
208
209**MANDATORY IMPORTANT MUST** validate all UI system decisions with user via `AskUserQuestion` before proceeding to Step 5.
210
211---
212
213## Step 5: Library Ecosystem Research
214
215For EACH concern below, WebSearch top 3 library options for the confirmed tech stack. Evaluate: maturity, community, bundle size, maintenance activity, license, learning curve.
216
217### Library Concerns Checklist
218
219| Concern | What to Research | Evaluation Criteria |
220| --------------------------- | ----------------------------------------------------------- | ---------------------------------------------- |
221| **Validation** | Input validation, schema validation, form validation | Type safety, composability, error messages |
222| **HTTP Client / API Layer** | REST client, GraphQL client, API code generation | Interceptors, retry, caching, type generation |
223| **State Management** | Global store, local state, server state caching | DevTools, SSR support, bundle size |
224| **Utilities / Helpers** | Date/time, collections, deep clone, string manipulation | Tree-shakability, size, native alternatives |
225| **Caching** | In-memory cache, distributed cache, HTTP cache, query cache | TTL, invalidation, persistence |
226| **Logging** | Structured logging, log levels, log aggregation | Structured output, transports, performance |
227| **Error Handling** | Global error boundary, error tracking, crash reporting | Source maps, breadcrumbs, alerting integration |
228| **Authentication / AuthZ** | JWT, OAuth, RBAC/ABAC, session management | Standards compliance, SSO, token refresh |
229| **File Upload / Storage** | Multipart upload, cloud storage SDK, image processing | Streaming, resumable, size limits |
230| **Real-time** | WebSocket, SSE, SignalR, Socket.io | Reconnection, scaling, protocol support |
231| **Internationalization** | i18n, l10n, pluralization, date/number formatting | ICU support, lazy loading, extraction tools |
232| **PDF / Export** | PDF generation, Excel export, CSV | Server-side vs client-side, template support |
233
234### Per-Library Evaluation Template
235
236```markdown
237### {Concern}: Top 3 Options
238
239| Criteria | Option A | Option B | Option C |
240| ---------------- | ----------------- | -------- | -------- |
241| GitHub Stars | ... | ... | ... |
242| Last Release | ... | ... | ... |
243| Bundle Size | ... | ... | ... |
244| Weekly Downloads | ... | ... | ... |
245| License | ... | ... | ... |
246| Maintenance | Active/Slow/Stale | ... | ... |
247| Learning Curve | Low/Med/High | ... | ... |
248
249**Recommendation:** {Option} — Confidence: {X}%
250```
251
252---
253
254## Step 6: Testing Architecture
255
256Research best testing tools and strategy for the confirmed tech stack:
257
258| Testing Layer | What to Research | Top Candidates to Compare |
259| ----------------------- | ------------------------------------------------- | -------------------------------------------- |
260| **Unit Testing** | Test runner, assertion library, mocking framework | Jest/Vitest/xUnit/NUnit, mocking |
261| **Integration Testing** | API testing, DB testing, service testing | Supertest, TestContainers, WebAppFactory |
262| **E2E Testing** | Browser automation, BDD, visual regression | Playwright/Cypress/Selenium, SpecFlow |
263| **Performance Testing** | Load testing, stress testing, benchmarking | k6/Artillery/JMeter/NBomber, BenchmarkDotNet |
264| **Contract Testing** | API contract validation between services | Pact, Dredd, Spectral |
265| **Mutation Testing** | Test quality validation | Stryker, PITest |
266| **Coverage** | Code coverage collection, reporting, enforcement | Istanbul/Coverlet, SonarQube |
267| **Test Data** | Factories, fixtures, seeders, fakers | Bogus/AutoFixture/Faker.js |
268
269### Test Strategy Template
270
271```markdown
272### Test Pyramid
273
274- **Unit (70%):** {framework} — {what to test}
275- **Integration (20%):** {framework} — {what to test}
276- **E2E (10%):** {framework} — {what to test}
277
278### Coverage Targets
279
280- Unit: {X}% | Integration: {X}% | E2E: critical paths only
281- Enforcement: {tool} in CI pipeline, fail build below threshold
282```
283
284---
285
286## Step 7: CI/CD & Deployment
287
288Research deployment architecture and CI/CD tooling:
289
290| Concern | What to Research | Top Candidates to Compare |
291| ----------------------- | ---------------------------------------------------- | --------------------------------------------- |
292| **CI/CD Platform** | Pipeline orchestration, parallelism, caching | GitHub Actions/Azure DevOps/GitLab CI/Jenkins |
293| **Containerization** | Container runtime, image building, registry | Docker/Podman, BuildKit, ACR/ECR/GHCR |
294| **Orchestration** | Container orchestration, service mesh, scaling | Kubernetes/Docker Compose/ECS/Nomad |
295| **IaC (Infra as Code)** | Infrastructure provisioning, drift detection | Terraform/Pulumi/Bicep/CDK |
296| **Artifact Management** | Package registry, versioning, vulnerability scanning | NuGet/npm/Artifactory/GitHub Packages |
297| **Feature Flags** | Progressive rollout, A/B testing, kill switches | LaunchDarkly/Unleash/Flagsmith |
298| **Secret Management** | Vault, key rotation, environment variables | Azure KeyVault/HashiCorp Vault/SOPS |
299| **Database Migration** | Schema versioning, rollback, seed data | EF Migrations/Flyway/Liquibase/dbmate |
300
301### Deployment Strategy Comparison
302
303| Strategy | Risk | Downtime | Complexity | Best For |
304| ----------------- | ---- | -------- | ---------- | ------------------------ |
305| **Blue-Green** | Low | Zero | Medium | Critical services |
306| **Canary** | Low | Zero | High | Gradual rollout |
307| **Rolling** | Med | Zero | Low | Stateless services |
308| **Recreate** | High | Yes | Low | Dev/staging environments |
309| **Feature Flags** | Low | Zero | Medium | Feature-level control |
310
311---
312
313## Step 8: Observability & Monitoring
314
315| Concern | What to Research | Top Candidates to Compare |
316| ----------------------- | -------------------------------------------------------- | -------------------------------------- |
317| **Structured Logging** | Log format, correlation IDs, log levels, aggregation | Serilog/NLog/Winston/Pino |
318| **Log Aggregation** | Centralized log search, dashboards, alerts | ELK/Loki+Grafana/Datadog/Seq |
319| **Metrics** | Application metrics, custom counters, histograms | Prometheus/OpenTelemetry/App Insights |
320| **Distributed Tracing** | Request tracing across services, span visualization | Jaeger/Zipkin/OpenTelemetry/Tempo |
321| **APM** | Application performance monitoring, auto-instrumentation | Datadog/New Relic/App Insights/Elastic |
322| **Alerting** | Threshold alerts, anomaly detection, on-call routing | PagerDuty/OpsGenie/Grafana Alerting |
323| **Health Checks** | Liveness, readiness, startup probes | AspNetCore.Diagnostics/Terminus |
324| **Uptime Monitoring** | External availability monitoring, SLA tracking | UptimeRobot/Pingdom/Checkly |
325
326### Observability Decision: 3 Pillars
327
328```markdown
329### Recommended Observability Stack
330
331| Pillar | Tool | Why |
332| -------- | ------ | ----------- |
333| Logs | {tool} | {rationale} |
334| Metrics | {tool} | {rationale} |
335| Traces | {tool} | {rationale} |
336| Alerting | {tool} | {rationale} |
337```
338
339---
340
341## Step 9: Code Quality & Clean Code Enforcement
342
343Research and recommend tooling for automated code quality:
344
345| Concern | What to Research | Top Candidates to Compare |
346| -------------------------- | -------------------------------------------------- | --------------------------------------------- |
347| **Linter (Backend)** | Static analysis, code style, bug detection | Roslyn Analyzers/SonarQube/StyleCop/ReSharper |
348| **Linter (Frontend)** | JS/TS linting, accessibility, complexity | ESLint/Biome/oxlint |
349| **Formatter** | Auto-formatting, consistent style | Prettier/dotnet-format/EditorConfig |
350| **Code Analyzer** | Security scanning, complexity metrics, duplication | SonarQube/CodeClimate/Codacy |
351| **Pre-commit Hooks** | Git hooks, staged file validation | Husky+lint-staged/pre-commit/Lefthook |
352| **Editor Config** | Cross-IDE consistency | .editorconfig/IDE-specific configs |
353| **Architecture Rules** | Layer dependency enforcement, naming conventions | ArchUnit/NetArchTest/Dependency-Cruiser |
354| **API Design Standards** | OpenAPI validation, naming, versioning | Spectral/Redocly/swagger-lint |
355| **Commit Conventions** | Commit message format, changelog generation | Commitlint/Conventional Commits |
356| **Code Review Automation** | Automated PR review, suggestion bots | Danger.js/Reviewdog/CodeRabbit |
357
358### Enforcement Strategy
359
360```markdown
361### Code Quality Gates
362
363| Gate | Tool | Trigger | Fail Criteria |
364| ----------- | ------ | -------------- | --------------------- |
365| Pre-commit | {tool} | git commit | Lint errors, format |
366| PR Check | {tool} | Pull request | Coverage < X%, issues |
367| CI Pipeline | {tool} | Push to branch | Build fail, test fail |
368| Scheduled | {tool} | Weekly/nightly | Security vulns, debt |
369```
370
371### Scaffold Handoff (MANDATORY — consumed by `/scaffold`)
372
373> Ref: `.claude/skills/shared/scaffold-production-readiness-protocol.md`
374
375After completing code quality research, produce this handoff table in the architecture report. The `/scaffold` skill reads this table to generate actual config files — without it, scaffold cannot auto-configure quality tooling.
376
377```markdown
378### Scaffold Handoff — Tool Choices
379
380| Concern | Chosen Tool | Config File | Rationale |
381| -------------- | ----------------- | ----------- | --------- |
382| Linter (FE) | {tool} | {filename} | {why} |
383| Linter (BE) | {tool} | {filename} | {why} |
384| Formatter | {tool} | {filename} | {why} |
385| Pre-commit | {tool} | {filename} | {why} |
386| Error handling | {pattern} | {files} | {why} |
387| Loading state | {pattern} | {files} | {why} |
388| Docker | {compose pattern} | {files} | {why} |
389```
390
391**Also include:** Error handling strategy (4-layer pattern), loading state approach (global vs per-component), and Docker profile structure. See protocol for framework-specific options.
392
393---
394
395## Step 10: Dependency Risk Assessment
396
397For EVERY recommended library/package, evaluate maintenance and obsolescence risk:
398
399### Package Health Scorecard
400
401| Criteria | Score (1-5) | How to Verify |
402| ------------------------- | ----------- | ------------------------------------------------ |
403| **Last Release Date** | ... | npm/NuGet page — stale if >12 months |
404| **Open Issues Ratio** | ... | GitHub issues open vs closed |
405| **Maintainer Count** | ... | Bus factor — single maintainer = high risk |
406| **Breaking Change Freq.** | ... | Changelog — frequent major versions = churn cost |
407| **Dependency Depth** | ... | `npm ls --depth` / dependency graph depth |
408| **Known Vulnerabilities** | ... | Snyk/npm audit/GitHub Dependabot |
409| **License Compatibility** | ... | SPDX identifier — check viral licenses (GPL) |
410| **Community Activity** | ... | Monthly commits, PR merge rate, Discord/forums |
411| **Migration Path** | ... | Can swap to alternative if abandoned? |
412| **Framework Alignment** | ... | Official recommendation by framework team? |
413
414### Risk Categories
415
416| Risk Level | Criteria | Action |
417| ------------ | ------------------------------------------------- | -------------------------------------- |
418| **Low** | Active, >3 maintainers, recent release, no CVEs | Use freely |
419| **Medium** | 1-2 maintainers, release <6mo, minor CVEs patched | Use with monitoring plan |
420| **High** | Single maintainer, >12mo stale, open CVEs | Find alternative or plan exit strategy |
421| **Critical** | Abandoned, unpatched CVEs, deprecated | DO NOT USE — find replacement |
422
423### Dependency Maintenance Strategy
424
425```markdown
426### Recommended Practices
427
4281. **Automated scanning:** {tool} (Dependabot/Renovate/Snyk) — weekly PR for updates
4292. **Lock file strategy:** Commit lock files, pin major versions, allow patch auto-update
4303. **Audit schedule:** Monthly `npm audit` / `dotnet list package --vulnerable`
4314. **Vendor policy:** Max {N} dependencies per concern, prefer well-maintained alternatives
4325. **Exit strategy:** For each High-risk dependency, document migration path to alternative
433```
434
435---
436
437## Step 11: Generate Report
438
439Write report to `{plan-dir}/research/architecture-design.md` with sections:
440
4411. Executive summary (recommended architecture in 8-10 lines)
4422. Architecture requirements table (from Step 2)
4433. Backend architecture — style comparison + recommended patterns (Steps 3)
4444. Frontend architecture — style comparison + recommended patterns (Step 4)
4455. Library ecosystem — per-concern recommendations with alternatives (Step 5)
4466. Testing architecture — pyramid, tools, coverage targets (Step 6)
4477. CI/CD & deployment — pipeline design, deployment strategy (Step 7)
4488. Observability stack — 3 pillars + alerting (Step 8)
4499. Code quality — enforcement gates, tooling (Step 9)
45010. Dependency risk matrix — high-risk packages, mitigation (Step 10)
45111. Architecture diagram (Mermaid — showing all layers and data flow)
45212. Risk assessment for overall architecture
45313. Unresolved questions
454
455### Architecture Diagram Template
456
457````markdown
458```mermaid
459graph TB
460 subgraph "Frontend"
461 UI[SPA / Micro Frontend]
462 STORE[State Management]
463 end
464 subgraph "API Gateway"
465 GW[Gateway / BFF]
466 end
467 subgraph "Backend Services"
468 CMD[Commands / Handlers]
469 QRY[Queries / Read Models]
470 SVC[Domain Services]
471 ENT[Entities / Aggregates]
472 end
473 subgraph "Infrastructure"
474 DB[(Database)]
475 CACHE[(Cache)]
476 MSG[Message Bus]
477 SEARCH[(Search Index)]
478 end
479 subgraph "Observability"
480 LOG[Logging]
481 METRIC[Metrics]
482 TRACE[Tracing]
483 end
484 subgraph "CI/CD"
485 PIPE[Pipeline]
486 REG[Container Registry]
487 K8S[Orchestration]
488 end
489 UI --> GW --> CMD & QRY
490 CMD --> SVC --> ENT --> DB
491 QRY --> CACHE & SEARCH
492 ENT -.-> MSG
493 CMD & QRY -.-> LOG & METRIC & TRACE
494 PIPE --> REG --> K8S
495```
496````
497
498---
499
500## Step 12: User Validation Interview
501
502**MANDATORY IMPORTANT MUST** present findings and ask 8-12 questions via `AskUserQuestion`:
503
504### Required Questions
505
5061. **Backend architecture** — "I recommend {style}. Agree?"
5072. **Frontend architecture** — "I recommend {style} with {state management}. Agree?"
5083. **Design patterns** — "Recommended backend patterns: {list}. Frontend patterns: {list}. Any to add/remove?"
5094. **Key libraries** — "For {concern}, I recommend {lib} over {alternatives}. Agree?"
5105. **Testing strategy** — "Test pyramid: {unit}%/{integration}%/{E2E}% using {frameworks}. Appropriate?"
5116. **CI/CD** — "Pipeline: {tool} with {deployment strategy}. Fits your infra?"
5127. **Observability** — "Monitoring stack: {logs}/{metrics}/{traces}. Sufficient?"
5138. **Code quality** — "Enforcement: {linter + formatter + pre-commit hooks}. Team ready?"
5149. **Dependency risk** — "Found {N} high-risk dependencies. Accept or find alternatives?"
51510. **Complexity check** — "This architecture has {N} concerns addressed. Appropriate for team size?"
516
517### Optional Deep-Dive Questions (pick 2-3)
518
519- "Should we use event sourcing or traditional state-based persistence?"
520- "Monolith-first or start with service boundaries?"
521- "Micro frontends or monolith SPA?"
522- "How important is framework independence for this project?"
523- "Self-hosted observability or managed SaaS?"
524- "Strict lint rules from day 1 or gradual adoption?"
525
526After user confirms, update report with final decisions and mark as `status: confirmed`.
527
528---
529
530## Best Practices Audit (applied across all steps)
531
532Validate architecture against these principles — flag violations in report:
533
534| Principle | Check | Status |
535| ------------------------------ | ---------------------------------------------------------- | ------ |
536| **Single Responsibility (S)** | Each class/module has one reason to change | ✅/⚠️ |
537| **Open/Closed (O)** | Extensible without modifying existing code | ✅/⚠️ |
538| **Liskov Substitution (L)** | Subtypes substitutable for base types | ✅/⚠️ |
539| **Interface Segregation (I)** | No forced dependency on unused interfaces | ✅/⚠️ |
540| **Dependency Inversion (D)** | High-level modules depend on abstractions, not concretions | ✅/⚠️ |
541| **DRY** | No duplicated business logic across layers | ✅/⚠️ |
542| **KISS** | Simplest architecture that meets requirements | ✅/⚠️ |
543| **YAGNI** | No speculative layers or patterns for future needs | ✅/⚠️ |
544| **Separation of Concerns** | Clear boundaries between domain, application, infra | ✅/⚠️ |
545| **IoC / Dependency Injection** | All dependencies injected, no `new` in business logic | ✅/⚠️ |
546| **Technical Agnosticism** | Domain layer has zero framework/infra dependencies | ✅/⚠️ |
547| **Testability** | Architecture supports unit + integration testing | ✅/⚠️ |
548| **12-Factor App** | Config in env, stateless processes, port binding | ✅/⚠️ |
549| **Fail-Fast** | Validate early, fail with clear errors | ✅/⚠️ |
550
551---
552
553## Output
554
555```
556{plan-dir}/research/architecture-design.md # Full architecture analysis report
557{plan-dir}/phase-02b-architecture.md # Confirmed architecture decisions
558```
559
560---
561
562**MANDATORY IMPORTANT MUST** break work into small todo tasks using `TaskCreate` BEFORE starting.
563**MANDATORY IMPORTANT MUST** validate EVERY architecture recommendation with user via `AskUserQuestion` — never auto-decide.
564**MANDATORY IMPORTANT MUST** include confidence % and evidence citations for all claims.
565**MANDATORY IMPORTANT MUST** add a final review todo task to verify work quality.
566
567---
568
569## Next Steps
570
571**MANDATORY IMPORTANT MUST** after completing this skill, use `AskUserQuestion` to recommend:
572
573- **"/plan (Recommended)"** — Create implementation plan from architecture design
574- **"/refine"** — If need to create PBIs first
575- **"Skip, continue manually"** — user decides
576
577## Closing Reminders
578
579**MANDATORY IMPORTANT MUST** break work into small todo tasks using `TaskCreate` BEFORE starting.
580**MANDATORY IMPORTANT MUST** validate decisions with user via `AskUserQuestion` — never auto-decide.
581**MANDATORY IMPORTANT MUST** add a final review todo task to verify work quality.