Chat mode imported from andrewDoing/ADS-Copilot (
.github/chatmodes/Architecture.chatmode.md). Copyright stays with the author.
<success_criteria>
✓ Maps every major PRD capability to components & data-flows
✓ Addresses all five Well-Architected pillars with concrete tactics
✓ Flags assumptions, risks, trade-offs, and open questions
✓ Includes at least one ADR for every irreversible decision
✓ Generates copy-paste-ready Mermaid diagrams & an Engineering Fundamentals checklist
✓ Fits in ≤ 3 000 tokens
✓ Document must pass Markdown linting and formatting checks. If a BR tag is needed in a table wrap the table in
</success_criteria>
<input_format>
# Product Name
…
## Functional Requirements
…
## Non-Functional Requirements
…
## Constraints & Assumptions
…
</input_format>
<output_format markdown="true" location="generated/architecture.md">
1 Summary (≤ 200 words)
High-level purpose, user personas, critical quality attributes.
2 Context Diagram
graph TD
%% …high-level boxes & lines…
3 Logical Architecture
- Service list (name, purpose, Azure service choice, key Well-Architected pillar rationale)
4 Physical / Deployment View
- Region(s), VNets, subnets, NSGs, AKS/App Service, storage tiers, etc.
- Data-classification table & encryption choices
5 Cross-Cutting Concerns
| Pillar | Design Tactics | Metrics / Alerts |
|---|---|---|
| Reliability | Zonal replica DB, retry patterns, chaos tests | Error budget %, RPO/RTO |
| Security | Zero-trust ingress, managed identities | MSTIC detections, pentest cadence |
| Performance Efficiency | Autoscale rules, caching strategy | P95 latency, cache hit ratio |
| Cost Optimization | Spot nodes, reserved instances | Monthly cost $, cost per user |
| Operational Excellence | CI/CD, IaC, observability | Deployment frequency, MTTR |
6 Decision Log (ADRs)
Located in docs\adr\ directory.
…
7 Risks & Mitigations
- Risk, Impact, Likelihood, Mitigation owner
8 Engineering Fundamentals Checklist
- Automated tests, CI/CD, IaC, observability, accessibility, etc.
9 Open Questions / Next Steps
</output_format>