well-architected — Claude Code skill: architecture review and setup
Reviews architecture documents across six areas, from security and reliability to cost and sustainability. Use it to surface risks before shipping.
npx skills add avelikiy/great_cto --skill well-architected -a claude-codeWhat well-architected does
The skill sets review questions and pass criteria for ARCH-*.md documents. It covers operational excellence, security, reliability, performance, cost, and sustainability; skipped areas need an explicit justification. The document also gathers open risks and their planned mitigations.
Use it when designing small to larger systems, auditing an existing codebase, or reviewing security. It excludes nano projects, bug fixes, and refactors that do not change behavior. That boundary matters: the review adds overhead when the architecture stays the same.
What it helps with
- review an architecture document across six areas
- document deployment and rollback plans
- define trust boundaries and secret handling
- assess dependency failures and data recovery
- collect open risks with planned mitigations
Example prompts for the agent
- Review this
ARCH-*.mdacross the six areas and list open risks. - Add a Well-Architected review section covering security and reliability to this architecture document.
- Audit the existing system and identify recovery measures that need testing.
How to install well-architected
1Skills CLI (Vercel)
npx skills add avelikiy/great_cto --skill well-architected -a claude-code2Manually: put the files in place
~/.claude/skills/well-architected/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/well-architected/
1Skills CLI (Vercel)
npx skills add avelikiy/great_cto --skill well-architected -a codex2Manually: put the files in place
.agents/skills/well-architected/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add avelikiy/great_cto --skill well-architected -a cursor2Manually: put the files in place
.cursor/skills/well-architected/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install avelikiy/great_cto well-architected2Manually: put the files in place
.github/skills/well-architected/SKILL.md1Skills CLI (Vercel)
npx skills add avelikiy/great_cto --skill well-architected -a gemini-cli2Platform CLI
gemini skills install https://github.com/avelikiy/great_cto --path skills/well-architectedManually: put the files in place
.devin/skills/well-architected/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add avelikiy/great_cto --skill well-architected -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about well-architected
How do I install well-architected in Claude Code?
Run npx skills add avelikiy/great_cto --skill well-architected -a claude-code. The skill file is installed at ~/.claude/skills/well-architected/SKILL.md.
What does well-architected do?
It guides architecture reviews across six areas and helps record findings, open risks, and mitigation plans.
When should I use this skill?
Use it for architecture documents on non-nano projects, audits of existing systems, and security reviews. It excludes bug fixes and behavior-preserving refactors.
Source text
SKILL.md · MIT
--- name: well-architected description: 6-pillar architecture review framework. Adapted from AWS Well-Architected for use by great_cto's architect agent on every non-nano ARCH document. Forces explicit answers across operational excellence, security, reliability, performance, cost, and sustainability — not just feature design. when_to_use: | Apply when: - architect is writing ARCH-*.md for small/medium/large/enterprise project_size - regulated-reviewer or security-officer is auditing an existing system - project-auditor is reviewing a brownfield codebase Do NOT apply to: - nano project_size (overhead exceeds value) - bug-fix tasks (no architecture change) - pure refactor with no behaviour change effort: high allowed-tools: Read, Write, Grep, Glob paths: - "docs/architecture/**" - "docs/decisions/**" - "src/**" --- # Well-Architected — 6 pillars to verify before shipping Every ARCH document for non-nano work must answer the 6 pillar questions below. Skipping a pillar is allowed only if explicitly justified (e.g. "Sustainability: N/A — backend-only, runs in shared infra."). This is adapted from AWS Well-Architected (lens: small-team SaaS / LLM applications), trimmed to questions that matter at <10 engineer scale. ## Pillar 1 — Operational excellence ### Questions 1. **Observability:** What metrics, logs, traces do we emit? How do we tell from a dashboard if this is working in prod? 2. **Deployability:** How do we ship a change? CI gates? Rollback path? 3. **Runbooks:** When this breaks at 3am, what does on-call read? ### Pass criteria - ✅ One metric per business outcome (e.g. webhook-deliveries-acked) - ✅ One log line per request, with request-id correlatable across services - ✅ Deploy path is documented and tested (rollback dry-run executed) - ✅ Runbook covers top-3 failure modes from pre-mortem ### Common fail ❌ "We'll add monitoring later." Monitoring is part of the feature. ## Pillar 2 — Security ### Questions 1. **Trust boundaries:** Where does untrusted data enter? How is it validated/sanitized? 2. **Authn / authz:** Who can call this? Who can read/write the data? 3. **Secrets:** Where are API keys, DB passwords, JWT signing keys stored? 4. **Data classification:** PII? PHI? PCI cardholder data? What's the retention policy? ### Pass criteria - ✅ Every external input has explicit validation at the boundary - ✅ Authz is enforced at the data layer, not just UI - ✅ Secrets in env vars or secret manager, never in source - ✅ Sensitive data classified and retention policy defined ### Common fail ❌ "JWT validates the user, that's our authz." JWT is authentication. Authorization is separate (this user can read THIS row). ## Pillar 3 — Reliability ### Questions 1. **Failure modes:** What happens when a downstream dependency is slow / down / corrupted? 2. **Idempotency:** Can a retried request safely re-execute? 3. **Backups & recovery:** What's the RPO (data-loss tolerance)? RTO (downtime tolerance)? Test plan for both? 4. **Capacity:** What's the max QPS this can handle? What happens at 1.5x that? ### Pass criteria - ✅ Circuit breakers / timeouts on external calls - ✅ State-mutating endpoints accept idempotency keys - ✅ Backups documented + restore tested in the last 90 days - ✅ Load test exists; results in `docs/perf/` ### Common fail ❌ "Postgres has backups." Backups without a tested restore aren't backups. ## Pillar 4 — Performance efficiency ### Questions 1. **SLOs:** What's the p50/p95/p99 latency target? Error rate? Availability? 2. **Bottlenecks:** Profile the critical path — what's the slowest step? 3. **Caching:** What's cacheable? Cache invalidation strategy? 4. **Scaling:** Vertical or horizontal? Auto-scale rules? ### Pass criteria - ✅ SLO numbers in the ARCH doc (not "fast enough") - ✅ Profile attached for non-trivial requests - ✅ Cache strategy documented; invalidation explicit - ✅ Scaling decision justified by data, not "feels right" ### Common fail ❌ "Database can handle it." Quantify: queries/sec, row count, index hit rate. ## Pillar 5 — Cost optimization ### Questions 1. **Hot path:** What's the most expensive operation per request? Why? 2. **Right-sizing:** Is the chosen instance type / model / DB tier the smallest one that meets SLO? 3. **Cleanup:** What happens to old data? Old logs? Old branch environments? ### Pass criteria - ✅ Use skill `cost-model` to document explicit $ numbers - ✅ Choose smallest LLM model that meets quality SLO (haiku before sonnet, sonnet before opus) - ✅ Retention policy for logs, metrics, old data ### Common fail ❌ Defaulting to Opus / GPT-4 when Haiku would work. Test on Haiku first. ## Pillar 6 — Sustainability (env / energy) ### Questions 1. **Workload efficiency:** Is the code O(n log n) when it could be O(n)? 2. **Idle resources:** Can dev environments scale to zero overnight? 3. **Data minimization:** Do we collect / store data we never query? ### Pass criteria - ✅ Hot loop complexity documented - ✅ Non-prod resources have shutdown schedules - ✅ Data lifecycle covers ingestion, retention, deletion ### Common fail ❌ Logs at debug level in prod, never reviewed. Waste of storage + carbon. ## Output format — add to ARCH ```markdown ## Well-Architected review ### 1. Operational excellence - Metrics: <list> - Deploy path: <link to runbook> - Verdict: PASS | RISKS LISTED ### 2. Security - Trust boundaries: <list> - Data classification: <PII / PHI / PCI / none> - Verdict: PASS | RISKS LISTED ### 3. Reliability - Failure modes: <link to pre-mortem> - Idempotency: <yes/no per endpoint> - Verdict: PASS | RISKS LISTED ### 4. Performance - SLOs: p99=<ms>, error_rate=<%>, availability=<%> - Verdict: PASS | RISKS LISTED ### 5. Cost - Per-request cost: $<amount> - Verdict: PASS | RISKS LISTED ### 6. Sustainability - Hot-path complexity: O(<n>) - Verdict: PASS | N/A | RISKS LISTED ## Open risks (rolled up) <bullet list of all RISKS LISTED items + mitigation in plan> ``` ## When PASS is acceptable with risks listed Not every architecture is bulletproof. PASS-with-risks is OK if: - Each risk is explicit (not hand-waved) - Each risk has either a mitigation in the plan OR explicit acceptance by the user - The pre-mortem section addresses the top-3 risk-score items Gate:plan can approve a PASS-with-risks; gate:ship needs the mitigations shipped.
© avelikiy · MIT · avelikiy/great_cto