Cloud Cost Optimization
wshobson/agents
Cuts cloud spend across AWS, Azure, GCP and OCI with cost tagging, rightsizing, commitment and spot pricing models, and architecture changes.
Official agent skill
by aws-samples in aws-samples/sample-well-architected-skills-and-steering
Perform a full AWS Well-Architected Framework review evaluating all 57 questions across 6 pillars by analyzing code, IaC, and configurations to produce evidence-backed findings with…
$ npx skills add aws-samples/sample-well-architected-skills-and-steering --skill aws-well-architected-framework-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aws-samples/sample-well-architected-skills-and-steering aws-well-architected-framework-review --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/aws-samples/sample-well-architected-skills-and-steering.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/aws-well-architected-framework-review .claude/skills/aws-well-architected-framework-review && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "aws-well-architected-framework-review" agent skill from https://github.com/aws-samples/sample-well-architected-skills-and-steering/tree/main/skills/aws-well-architected-framework-review into .claude/skills/aws-well-architected-framework-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aws-well-architected-framework-review", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/aws-samples/sample-well-architected-skills-and-steering/tree/main/skills/aws-well-architected-framework-reviewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add aws-samples/sample-well-architected-skills-and-steering --skill aws-well-architected-framework-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aws-samples/sample-well-architected-skills-and-steering aws-well-architected-framework-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aws-samples/sample-well-architected-skills-and-steering.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/aws-well-architected-framework-review .agents/skills/aws-well-architected-framework-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "aws-well-architected-framework-review" agent skill from https://github.com/aws-samples/sample-well-architected-skills-and-steering/tree/main/skills/aws-well-architected-framework-review into .agents/skills/aws-well-architected-framework-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aws-well-architected-framework-review", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aws-samples/sample-well-architected-skills-and-steering --skill aws-well-architected-framework-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aws-samples/sample-well-architected-skills-and-steering aws-well-architected-framework-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aws-samples/sample-well-architected-skills-and-steering.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/aws-well-architected-framework-review .cursor/skills/aws-well-architected-framework-review && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "aws-well-architected-framework-review" agent skill from https://github.com/aws-samples/sample-well-architected-skills-and-steering/tree/main/skills/aws-well-architected-framework-review into .cursor/skills/aws-well-architected-framework-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aws-well-architected-framework-review", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/aws-samples/sample-well-architected-skills-and-steering.git --path skills/aws-well-architected-framework-review--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add aws-samples/sample-well-architected-skills-and-steering --skill aws-well-architected-framework-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aws-samples/sample-well-architected-skills-and-steering aws-well-architected-framework-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aws-samples/sample-well-architected-skills-and-steering.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/aws-well-architected-framework-review .gemini/skills/aws-well-architected-framework-review && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "aws-well-architected-framework-review" agent skill from https://github.com/aws-samples/sample-well-architected-skills-and-steering/tree/main/skills/aws-well-architected-framework-review into .gemini/skills/aws-well-architected-framework-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aws-well-architected-framework-review", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install aws-samples/sample-well-architected-skills-and-steering aws-well-architected-framework-reviewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add aws-samples/sample-well-architected-skills-and-steering --skill aws-well-architected-framework-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aws-samples/sample-well-architected-skills-and-steering.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/aws-well-architected-framework-review .github/skills/aws-well-architected-framework-review && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "aws-well-architected-framework-review" agent skill from https://github.com/aws-samples/sample-well-architected-skills-and-steering/tree/main/skills/aws-well-architected-framework-review into .github/skills/aws-well-architected-framework-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aws-well-architected-framework-review", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aws-samples/sample-well-architected-skills-and-steering --skill aws-well-architected-framework-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aws-samples/sample-well-architected-skills-and-steering aws-well-architected-framework-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aws-samples/sample-well-architected-skills-and-steering.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/aws-well-architected-framework-review .opencode/skills/aws-well-architected-framework-review && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "aws-well-architected-framework-review" agent skill from https://github.com/aws-samples/sample-well-architected-skills-and-steering/tree/main/skills/aws-well-architected-framework-review into .opencode/skills/aws-well-architected-framework-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aws-well-architected-framework-review", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
aws-well-architected-framework-reviewPerform a full AWS Well-Architected Framework review evaluating all 57 questions across 6 pillars by analyzing code, IaC, and configurations to produce evidence-backed findings with…
AWS Well Architected Framework Review is an agent skill from aws-samples/sample-well-architected-skills-and-steering, published by the product's own GitHub organization. Perform a full AWS Well-Architected Framework review evaluating all 57 questions across 6 pillars by analyzing code, IaC, and configurations to produce evidence-backed findings with Eisenhower-prioritized remediation.
Its SKILL.md is about 11k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1005 other files, including reference files (for example `SKILL-devops-agent.md`, `SKILL-sequential.md` and `evals/evals.json`).
It sits in DevOps & Cloud, covering Cloud architecture. It works with Amazon Web Services. The repository describes itself as: Reusable skills and steering that teach AI coding agents how to apply the AWS Well-Architected Framework. One set of playbooks, 14 supported tools. The licence is MIT-0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e81835b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
AWS Well Architected Framework Review loads about 11k tokens when it runs, and up to ~2.5M if it reads all its reference files. Until then it costs about 64 tokens; SKILL.md has 4,294 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from aws-samples/sample-well-architected-skills-and-steering at commit e81835b, republished under its MIT-0 licence (© aws-samples). 4,294 words, ~11,202 tokens.
.claude/skills/aws-well-architected-framework-review/SKILL.md (or your agent's skills folder). This skill also uses 1001 other files; get the full folder from GitHub.[!NOTE] Deprecated. This skill is superseded by
aws-well-architected-reviewin Agent Toolkit for AWS. New feature work is not accepted here; see issue #147.
Ask the user to describe the workload:
What workload would you like me to review? Please share:
- Workload name and brief description
- Code packages/directories to analyze (IaC, application code, CI/CD configs)
- Business criticality (critical, high, standard, low)
- Current pain points (optional — anything you already know is problematic)
If the user has already provided architecture details or you are in a codebase with IaC, skip the prompt and proceed with discovery.
IMPORTANT: When no code or IaC is available to analyze (e.g., the user describes their architecture verbally), proceed with the review based on the information provided. Produce the full report using explicit statements in the architecture description as evidence. Treat omitted details as unknown, not as evidence that a control is absent. Mark unverifiable implementation details Cannot Determine, state what evidence would resolve them, and do NOT ask for code if the user has already given you enough context to perform a meaningful review.
Determine if a specialized WA Lens applies:
If a lens is obvious from the code (e.g., Lambda-heavy → serverless), note it and apply lens-specific questions.
Analyze all infrastructure-as-code and deployment configurations in the codebase.
You MUST examine:
For each infrastructure component, document:
Record the workload's primary IaC dialect (CDK, CloudFormation, Terraform, or SAM) — Step 6 emits a per-finding Fix: block in this dialect. When the workload has no IaC, note that fix blocks will fall back to AWS CLI commands.
You MUST create an architecture diagram in PlantUML showing:
Analyze application code for architectural patterns:
---STOP--- Checkpoint: Discovery complete — present findings before evaluation.
Here is what I discovered about your workload:
- Infrastructure: {summary of IaC resources found}
- Architecture patterns: {key patterns detected}
- Scope: {number of files/resources analyzed}
Shall I proceed with the full 57-question evaluation, or would you like to adjust the scope?
CRITICAL — DO NOT PRODUCE A SHORT REVIEW. The single most common failure mode is citing 20-30 BPs and stopping. The reference corpus contains 307 BPs across 57 questions; a real full review MUST evaluate ALL 307. Every BP receives one of five statuses: Implemented, Partially Implemented, Not Implemented, Not Applicable, or Cannot Determine (with rationale). If you find yourself with fewer than 200 BP citations, you have not finished the review. Iterate until every BP is addressed.
Assess the workload against ALL 57 questions in the Well-Architected Framework. For each question, provide:
Assign a status only after applying this gate:
Absence of evidence is not evidence of absence. A verbal description omitting a control, or code/IaC that is not authoritative for that control, MUST result in Cannot Determine, not Not Implemented. For example, "no backups configured" supports Not Implemented; no mention of control objectives or TCO analysis supports only Cannot Determine.
Leave severity blank for Implemented, Not Applicable, and Cannot Determine. For Cannot Determine, provide a verification action rather than a remediation finding. Do not convert uncertainty into a High or Critical finding.
The 6 pillars and their questions:
Before starting the evaluation, determine the review depth based on the user's request:
Full review (default when user says "WA review", "full review", "comprehensive"):
references/pillars/{pillar-slug}.md per pillar (see Step 4b for parallel subagent dispatch); each pillar file contains every question and every best practice for that pillarQuick review (when user says "quick review", "high-level", "summary", or time-constrained):
Pillar-scoped review (when user asks for specific pillars, e.g., "review security and reliability only", "assess my security", "identify single points of failure", "optimize our costs"):
references/pillar-playbooks/{pillar}.md to apply domain-specific discovery steps (specialized evidence collection beyond generic infrastructure scan)Trigger phrases that indicate pillar-scoped review:
Score mode (when user asks for "score", "grade", "scorecard", "matrix", or "just give me a number"):
## WA Score: {workload_name}
**Overall: {X.X}/5** | OPS: {}/5 | SEC: {}/5 | REL: {}/5 | PERF: {}/5 | COST: {}/5 | SUS: {}/5
| Pillar | Score | Critical | High | Medium | Low |
|--------|-------|----------|------|--------|-----|
| Operational Excellence | {1-5} | {n} | {n} | {n} | {n} |
| Security | {1-5} | {n} | {n} | {n} | {n} |
| Reliability | {1-5} | {n} | {n} | {n} | {n} |
| Performance Efficiency | {1-5} | {n} | {n} | {n} | {n} |
| Cost Optimization | {1-5} | {n} | {n} | {n} | {n} |
| Sustainability | {1-5} | {n} | {n} | {n} | {n} |
### Findings ({depth} and above)
| # | Pillar | Severity | Finding | Evidence |
|---|--------|----------|---------|----------|
| 1 | {pillar} | {Critical/High/...} | {one-line finding} | {file:line} |
...
### Summary
{1-2 sentence takeaway: overall posture + single most impactful action}Trigger phrases: "score my app", "WA scorecard", "grade this", "give me a score matrix", "how does my architecture score"
If unclear, ask:
Would you like a full review (deep BP-level analysis per question — thorough but longer), a quick review (question-level assessment — faster), or a score (just the scorecard + top findings)?
The purpose of a full review is comprehensive BP-level coverage. To achieve this reliably, the reference corpus is provided in THREE layers:
references/manifest.md (~24 KB) — Lightweight catalog of every BP ID with 1-line titles. ALWAYS load this file first for any full review. It shows you the complete universe of 307 BPs to cite from.references/pillars/{pillar-slug}.md (6 files, ~150-580 KB each) — Merged per-pillar reference containing ALL questions and full BP content for one pillar. Load these to get full BP detail (implementation guidance, anti-patterns, resources).references/pillar-playbooks/{pillar}.md (6 files, ~3-5 KB each) — Domain-specific evidence-collection guide for one pillar: what resources to examine, what patterns to flag as HIGH RISK, and a pillar-specific report format. Each full-review subagent loads its pillar's playbook (Step 4b) so findings are backed by concrete file:line evidence rather than generic BP restatements.Step 4a — Load the manifest (MANDATORY, 1 Read call):
Read: references/manifest.mdThis gives you every BP ID and title in ~24 KB.
Step 4b — Dispatch 6 parallel pillar subagents (MANDATORY for full coverage):
Why this pattern: A single agent asked to enumerate all 307 BPs in one response stops early — it returns a partial list and treats the review as done, regardless of prompt strength, retrieval strategy (local files, MCP, or hybrid), or explicit "evaluate all 307" instructions. The limit is the model's concision priors, not missing reference material, so a stronger prompt does not fix it.
The fix: narrow scope per subagent. When one agent reviews ONE pillar, it enumerates that pillar's 30-55 BPs without competing for the window. Dispatching 6 parallel subagents (one per pillar) is what puts the full 307-BP corpus in reach. Measure the difference in your own runtime with the harness in evals/cli_effectiveness/.
Dispatch all 6 Task calls in a single turn (parallel execution). Each subagent MUST return a structured markdown table so the top-level aggregator can merge findings verbatim without paraphrasing.
Required return format (every subagent):
## {Pillar} Findings
| BP ID | Status | Severity | Evidence | Recommendation |
|-------|--------|----------|----------|-----------------|
| SEC03-BP02 | Not Implemented | High | No permission boundaries found in cdk/iam.ts | Add IAM permission boundaries per role |
| SEC04-BP01 | Partially Implemented | Medium | CloudTrail on, but no S3 access logging | Enable S3 server access logging |
| ...one row per BP evaluated in this pillar... |Row requirements:
Implemented / Partially Implemented / Not Implemented / Not Applicable / Cannot DetermineCritical / High / Medium / Low (or blank for Implemented/Not Applicable/Cannot Determine)Cannot Determine — need {specific evidence}PILLAR##-BP## format onlyAppend this exact calibration rule to every pillar subagent prompt:
Apply the evidence sufficiency gate: omitted or inconclusive information is Cannot Determine, not Not Implemented. Use Not Implemented only for an explicitly absent control or absence from an authoritative source where the control must appear. Leave severity blank for Cannot Determine and state the specific evidence needed.
Dispatch template:
Task(subagent_type="general-purpose",
description="Review Operational Excellence",
prompt="Read references/pillars/operational-excellence.md and references/pillar-playbooks/operational-excellence.md (domain-specific evidence-collection checklist: what to examine and what to flag as HIGH RISK), then review the following workload ONLY for the OPS pillar. Enumerate EVERY BP in the pillar file (all 30+ BPs) — do not filter to 'top issues'. Return findings as the mandatory markdown table (columns: BP ID | Status | Severity | Evidence | Recommendation) with one row per BP. Do NOT prepend narrative summary text before the table. Workload: {workload description + code}")
Task(subagent_type="general-purpose",
description="Review Security",
prompt="Read references/pillars/security.md and references/pillar-playbooks/security.md (domain-specific evidence-collection checklist), then review the workload ONLY for the SEC pillar. [same table format, every BP as a row] Workload: {workload}")
Task(subagent_type="general-purpose",
description="Review Reliability",
prompt="Read references/pillars/reliability.md and references/pillar-playbooks/reliability.md (domain-specific evidence-collection checklist), then review the workload ONLY for the REL pillar. [same table format, every BP as a row] Workload: {workload}")
Task(subagent_type="general-purpose",
description="Review Performance Efficiency",
prompt="Read references/pillars/performance-efficiency.md and references/pillar-playbooks/performance-efficiency.md (domain-specific evidence-collection checklist), then review the workload ONLY for the PERF pillar. [same table format, every BP as a row] Workload: {workload}")
Task(subagent_type="general-purpose",
description="Review Cost Optimization",
prompt="Read references/pillars/cost-optimization.md and references/pillar-playbooks/cost-optimization.md (domain-specific evidence-collection checklist), then review the workload ONLY for the COST pillar. [same table format, every BP as a row] Workload: {workload}")
Task(subagent_type="general-purpose",
description="Review Sustainability",
prompt="Read references/pillars/sustainability.md and references/pillar-playbooks/sustainability.md (domain-specific evidence-collection checklist), then review the workload ONLY for the SUS pillar. [same table format, every BP as a row] Workload: {workload}")Total: 6 Task calls in one turn. Each subagent runs independently with its own context, so each can be exhaustive without stealing from the others. The uniform table format means aggregation is a mechanical concatenation, not an interpretive summary — narrative subagent output invites the aggregator to drop citations it judges redundant.
Cost/latency: the dispatch costs materially more tokens than a single-agent review, because each subagent duplicates the workload context. Wall-clock is bounded by the slowest single pillar rather than the sum of six, because the subagents run concurrently. Users trade cost for coverage — measure both in your own runtime with the harness in evals/cli_effectiveness/.
When to skip subagent dispatch:
Step 4c — Aggregate subagent findings (PRESERVE citations verbatim):
Once all 6 subagents return, merge their findings into a single structured report. CRITICAL: preserve every BP citation each subagent produced. The aggregation step is a merge, NOT a summary — do not paraphrase, cluster, or omit BP citations that a subagent surfaced. Assembly is where coverage is typically lost: the subagents surface the whole corpus, and a naive aggregation carries a fraction of it into the final report.
Aggregation rules — follow all of these:
SEC03-BP02 as Not Implemented, that row appears in the ledger — verbatim, no paraphrase.PILLAR##-BP## format) BEFORE returning. If the count is lower than the sum of subagent citations, you dropped some — go back and add them.For each BP citation, the ledger row shows:
Coverage expectations — a full review MUST evaluate all 307 BPs. Every BP receives one of five statuses. Cannot Determine counts as evaluated coverage; exhaustive coverage does not require inventing a determinate status. Not Implemented for an evidenced absence is a valid, valuable finding.
Before producing the final report, you MUST perform a self-audit and iterate if coverage is incomplete:
PILLAR##-BP## format)? Count all five statuses — Implemented, Partially Implemented, Not Implemented, Not Applicable, AND Cannot Determine.references/manifest.mdWhy this matters: The default agent behavior is to cite the 20-30 most salient findings and stop. That produces a superficial review that misses systemic gaps. The value of the WA corpus is comprehensive coverage — every BP evaluated, every gap surfaced. A customer paying for a WA review expects the full 307-BP assessment, not the model's top-of-mind list.
Audit output format (include in your final report before the executive summary):
## Coverage audit
- BPs evaluated: {count} / 307
- Iterations performed: {N}
- Status distribution: {implemented} Implemented, {partial} Partial, {not_impl} Not Implemented, {na} N/A, {cannot_determine} Cannot DetermineIf BPs evaluated is less than 307, you have not finished the review — go back to Step 4d.
If the user explicitly asks for a quick review, a high-level summary, a score, or is time-constrained, load ONLY references/manifest.md (24 KB) and cite BPs at question-level or by ID without loading pillar files. This gives you canonical BP IDs but skips the deep implementation content.
For a single-pillar review, load references/manifest.md + only that pillar's file (e.g., references/pillars/security.md).
Lenses are additive — they expand the core 57-question framework with domain-specific best practices. They do NOT replace the framework questions.
When to apply a lens:
How to apply:
references/lenses/{lens-name}/ and evaluate additional lens-specific best practicesIf the user ONLY asks for a lens review (e.g., "review my app against the serverless lens") — that is also valid. Load only the lens references and evaluate against those.
Available lenses:
references/lenses/serverless-applications/ — Lambda, API Gateway, Step Functions, event-drivenreferences/lenses/generative-ai/ — LLM workloads, RAG, fine-tuning, prompt engineeringreferences/lenses/agentic-ai/ — AI agents, orchestration, tool use, guardrailsreferences/lenses/responsible-ai/ — Fairness, explainability, governance, monitoringreferences/lenses/hybrid-networking/ — Direct Connect, VPN, Transit Gateway, DNSreferences/lenses/migration/ — Assess, Mobilize, Migrate phases per pillarreferences/lenses/devops-guidance/ — CI/CD, automated governance, development lifecycle, observability, security testingreferences/lenses/machine-learning/ — ML lifecycle (MLOPS), model training/deployment, data engineering, responsible MLreferences/lenses/data-analytics/ — data pipelines, governance, data catalogs, lineage, analytics performance and costreferences/lenses/games-industry/ — game backends, real-time multiplayer, player data, live operationsreferences/lenses/saas/ — multi-tenancy, tenant isolation, onboarding, metering, tieringreferences/lenses/financial-services/ — regulatory compliance, data residency, resilience, auditability for FSI workloadsreferences/lenses/life-sciences/ — GxP, validated systems, clinical/research data, regulatory compliancereferences/lenses/end-user-computing/ — virtual desktops/apps, streaming, identity, endpoint deliveryreferences/lenses/supply-chain/ — supply chain data, integration, traceability, resiliencereferences/lenses/video-streaming-advertising/ — video pipelines, streaming delivery, ad tech, monetizationreferences/lenses/telco/ — telecom network workloads, 5G/edge, OSS/BSS, carrier-grade reliabilityreferences/lenses/sap/ — SAP on AWS, S/4HANA, HANA databases, SAP landscape resiliencereferences/lenses/modern-industrial-data-technology/ — industrial data platforms, OT/IT convergence, manufacturing analyticsreferences/lenses/microsoft-workloads/ — Windows Server, SQL Server, Active Directory, .NET on AWSreferences/lenses/connected-mobility/ — connected vehicles, telematics, fleet data, automotive platformsreferences/lenses/healthcare-industry/ — HIPAA, clinical data, interoperability, patient privacyreferences/lenses/container-build/ — container image builds, supply chain security, registries, CI/CDreferences/lenses/high-performance-computing/ — HPC clusters, parallel workloads, scheduling, low-latency networkingreferences/lenses/streaming-media/ — media streaming, live/VOD delivery, encoding, content workflowsreferences/lenses/iot/ — IoT devices, telemetry, edge computing, fleet provisioning, OTA updatesreferences/lenses/government/ — public sector, privacy-by-design, compliance, real-time securityreferences/lenses/mergers-and-acquisitions/ — M&A due diligence, multi-account/multicloud governance, integration, technical debt, post-acquisition cost & securityreferences/lenses/maori-data/ — Māori data governance, data sovereignty, Te Ao Māori principles, indigenous data protection & retentionFor each finding, assess using Impact × Likelihood:
Impact: Minor (limited blast radius) | Moderate (subset of users affected) | Severe (full outage, data loss, regulatory violation)
Likelihood: Low (specific conditions required) | Medium (possible under normal operations) | High (common failure mode, weak controls)
| Impact | Likelihood | Risk Level |
|---|---|---|
| Severe | High | Critical |
| Severe | Medium | High |
| Severe | Low | High |
| Moderate | High | High |
| Moderate | Medium | Medium |
| Moderate | Low | Medium |
| Minor | High | Medium |
| Minor | Medium | Low |
| Minor | Low | Low |
Identify cross-pillar conflicts:
---STOP--- Checkpoint: Risk assessment complete — confirm findings before generating report.
I have completed the assessment. Here is the summary:
- Critical findings: {count}
- High findings: {count}
- Medium findings: {count}
- Low findings: {count}
- Cross-pillar conflicts: {count}
Shall I produce the full report, or would you like to discuss specific findings first?
Output a structured report:
# Well-Architected Review: {Workload Name}
## Executive Summary
- **Date**: {date}
- **Workload**: {name}
- **Business Criticality**: {level}
- **Lens Applied**: {lens or "General"}
- **Packages Analyzed**: {list}
- **Questions Assessed**: 57/57
- **Findings**: {X} Critical, {Y} High, {Z} Medium, {W} Low
- **Overall Maturity**: {1-5} — {one-line justification}
## Architecture Overview
{PlantUML diagram}
{Brief description of architecture, key services, data flows}
## Pillar Scorecard
| Pillar | Score (1-5) | Questions Assessed | Key Strength | Key Gap |
|--------|-------------|-------------------|--------------|---------|
| Operational Excellence | {score} | 11/11 | {strength} | {gap} |
| Security | {score} | 11/11 | {strength} | {gap} |
| Reliability | {score} | 13/13 | {strength} | {gap} |
| Performance Efficiency | {score} | 5/5 | {strength} | {gap} |
| Cost Optimization | {score} | 11/11 | {strength} | {gap} |
| Sustainability | {score} | 6/6 | {strength} | {gap} |
## Per-Question Assessment
| ID | Question | Status | Risk Level | Key Evidence |
|----|----------|--------|------------|--------------|
| OPS 1 | Priorities | {status} | {risk or N/A} | {evidence} |
| OPS 2 | Organization structure | {status} | {risk or N/A} | {evidence} |
| ... | ... | ... | ... | ... |
| SUS 6 | Process and culture | {status} | {risk or N/A} | {evidence} |
{Complete this table for all 57 questions — do not truncate}
## Full BP Ledger (MANDATORY)
**This section MUST list every BP citation produced by every subagent.** Concatenate all 6 subagent tables here, sorted by pillar then BP ID. Do NOT filter, cluster, or paraphrase. If a subagent surfaced 45 BPs for its pillar, this ledger shows 45 rows for that pillar. Target row count: 250-307 (one row per BP evaluated across all pillars).
This section is where the subagents' coverage actually reaches the user. Skipping or truncating it discards most of what they surfaced, however complete their tables were. **Do not skip this section.**
| BP ID | Pillar | Status | Severity | Evidence | Recommendation |
|-------|--------|--------|----------|----------|-----------------|
| OPS01-BP01 | Operational Excellence | {status} | {severity or blank} | {evidence} | {recommendation} |
| OPS01-BP02 | Operational Excellence | {status} | {severity or blank} | {evidence} | {recommendation} |
| ... | ... | ... | ... | ... | ... |
| SUS06-BP05 | Sustainability | {status} | {severity or blank} | {evidence} | {recommendation} |
{After writing this table, count the rows and confirm the count matches the sum of subagent rows. If not, you dropped citations — go back and add them.}
## Critical and High Risk Findings
{For each: ID, pillar, title, description, evidence (file:line), impact assessment, recommendation, **Fix:** block (see "Fix blocks" below), effort, AWS services. This section EXPANDS on rows in the Full BP Ledger — it does NOT replace them.}
## Medium Risk Findings
{Same format, condensed — each finding still carries its **Fix:** block. Also references ledger rows.}
## Low Risk Findings
{Summary table: ID | Pillar | Title | Recommendation. Also references ledger rows.}
## Cross-Pillar Trade-offs
{Conflicts between pillars and recommended resolution}
## Prioritize Improvements — Eisenhower Matrix
Not all findings should be addressed at once. Focus on a selected number of issues that make the most business impact and are easiest to implement. Then iterate.
Classify each finding by **importance** (business value) and **effort** (time, complexity, headcount):
HIGH IMPORTANCE
│
┌─────────┼─────────┐ │ DO │ PLAN │ │ FIRST │ │ │ │ │ ───┼─────────┼─────────┼─── │ │ │ │DELEGATE │ DEFER │ │ │ │ └─────────┼─────────┘ │ LOW IMPORTANCE LOW EFFORT HIGH EFFORT
| Quadrant | Action | Findings |
|----------|--------|----------|
| **Do First** (High Importance, Low Effort) | Implement immediately | {finding IDs} |
| **Plan** (High Importance, High Effort) | Schedule in roadmap, break into phases | {finding IDs} |
| **Delegate** (Low Importance, Low Effort) | Batch together, assign to available team member | {finding IDs} |
| **Defer** (Low Importance, High Effort) | Revisit in next iteration | {finding IDs} |
### Solution Characteristics
For each solution in "Do First" and "Plan":
- **SMART goal**: Specific, Measurable, Achievable, Relevant, Time-bound
- **Owner**: Identify who is responsible
- **Simple over complex**: Choose the simplest solution unless complexity is a non-negotiable requirement
- **Two-way door decisions**: Solutions should be extensible and evolve over time — avoid static solutions that cannot adapt
- **Pattern-based**: Target solutions that can be codified, reused, and re-shared (reference AWS Architecture Center)
## Prioritized Remediation Plan
### Quick Wins (< 1 week) — "Do First" quadrant
| Finding | Action | SMART Goal | Owner Suggestion | Effort |
|---------|--------|-----------|-----------------|--------|
{Config changes, enabling features, adding tags/alarms — simple, high-impact}
### Foundation (1-4 weeks) — "Plan" quadrant
| Finding | Action | Phases | Effort | Dependencies |
|---------|--------|--------|--------|--------------|
{Multi-AZ, CI/CD improvements, monitoring, caching — phased approach}
### Strategic (1-3 months) — "Plan" quadrant (complex)
| Finding | Action | Phases | Effort | Dependencies |
|---------|--------|--------|--------|--------------|
{DR, re-architecture, compliance programs — two-way door design}
### Deferred — Revisit Next Iteration
{Findings in "Delegate" and "Defer" quadrants with brief justification for deferral}
## Next Steps
{Top 5 concrete actions from the "Do First" quadrant — the team should start this week}Every 🔴 Critical/High and 🟡 Medium finding in the report MUST include a Fix: block — a minimal, ready-to-copy remediation snippet the user can apply themselves:
recommendation field (Step 6b) stays prose-only; fix blocks live in the markdown report.Example (finding SEC08-BP02, Terraform workload, evidence infra/rds.tf:12):
Fix:
# infra/rds.tf — aws_db_instance.orders (line 12)
resource "aws_db_instance" "orders" {
# ...existing configuration...
storage_encrypted = true
}aws-well-architected-framework-review.json)After the markdown report, ALSO emit a machine-readable aws-well-architected-framework-review.json so the review can be
diffed over time (CI gate), aggregated across workloads, or imported into the WA Tool. The
markdown is for humans; this artifact is for tools. Conform to the versioned contract in
schemas/aws-well-architected-framework-review-v1.schema.json.
Write it to aws-well-architected-framework-review.json in the workload root (or a path the user names). Populate it from the
same findings you just reported — do NOT re-run the analysis, just serialize what the Full BP
Ledger already contains.
Rules:
findings entry per BP you evaluated, including implemented and not_applicable ones. A
consumer must be able to tell an evaluated-and-passed BP from one that was never assessed, so do
not drop the passing rows.bp_id MUST be canonical PILLAR##-BP## — it is the identity key a
baseline diff pairs on. Most lens BPs also publish a canonical ID (e.g. IOTCOST01-BP01); use it.bp_id and give a title (plus lens). A title is not a
stable key, so these findings are reported as advisory and are never gated. Do not invent a BP
ID to satisfy the diff; that produces keys that drift between reviews.review_mode to the depth you actually ran (full, quick, pillar-scoped, score). A
non-full run does not cover all 307 BPs; say so in recall_note.skill_version to this skill's frontmatter version, and generate a unique run_id
(e.g. {date}T{time}-{workload-slug}) so two same-day reviews stay distinguishable.not_implemented / partially_implemented) MUST carry a severity
(critical/high/medium/low). The CI gate ranks by severity, so an unrated gap fails the
build closed. Leave severity off only for implemented / not_applicable / cannot_determine.recall_note MUST state that coverage is high-recall but not exhaustive, so downstream gates never
read a missing finding as proof a control exists. Do not assert a coverage figure you have not
measured in this environment.recommendation stays prose guidance — never a code diff (repo design principle).Shape (see the schema for the authoritative, complete definition):
{
"schema_version": "1.0.0",
"workload": "{workload name}",
"date": "{YYYY-MM-DD}",
"review_mode": "full",
"skill_version": "2.3.0",
"run_id": "{date}T{time}-{workload-slug}",
"lens": ["{lens-name}"],
"business_criticality": "{critical|high|standard|low}",
"pillar_scores": {
"operational_excellence": 3, "security": 2, "reliability": 2,
"performance_efficiency": 3, "cost_optimization": 4, "sustainability": 3
},
"findings": [
{
"bp_id": "SEC08-BP01",
"pillar": "security",
"status": "not_implemented",
"severity": "high",
"evidence": { "file": "infra/s3.tf", "line": 14 },
"effort": "low",
"recommendation": "Enable SSE and BlockPublicAccess on the uploads bucket."
},
{
"title": "Use asynchronous invocation for non-critical Lambda work",
"lens": "serverless-applications",
"pillar": "performance_efficiency",
"status": "not_implemented",
"severity": "medium",
"recommendation": "Move the notification path to async invocation so the request path is not blocked."
}
],
"recall_note": "Full review. High recall but not exhaustive; absence of a finding is not proof of implementation."
}The second finding above shows a topic-organized lens finding: no bp_id, a title instead. It
is advisory (reported, not gated).
Once written, mention the file and point the user at CI use:
I have also written
aws-well-architected-framework-review.json(machine-readable, conforms toschemas/aws-well-architected-framework-review-v1.schema.json). Commit it as.well-architected/baseline.jsonand wiretools/wa-ciinto your pipeline to gate future PRs on the Well-Architected delta.
After delivering the report, offer:
Would you like me to:
- Deep-dive into a specific pillar with expanded analysis?
- Generate IaC templates to remediate a specific finding?
- Create a migration plan for a specific architectural change?
- Compare your workload against a specific WA Lens in detail?
- Generate automated checks (Config rules, custom metrics) for ongoing compliance?
- Set up a continuous WA gate: commit
aws-well-architected-framework-review.jsonas a baseline and runtools/wa-ciin CI?- Produce a WA Tool import for tracking in the AWS console?
- File the 🔴/🟡 findings as tracking issues with a summary epic? (Step 7b — offer only when an issue tracker CLI is available)
An optional output mode that turns report findings into tracked work so the report does not go stale. Never run it automatically — it is gated behind one explicit user confirmation per review, and the default is no (design principle: keep the user in control).
Tracker detection. Before offering, check that an issue tracker is actually reachable: gh CLI first (gh auth status succeeds and the workload repo has a GitHub remote); another tracker only if the runtime exposes an equivalent tool. If none is available, skip silently — do not offer — and add one line to the report footer: Tracking-issue filing skipped — no issue tracker CLI available.
Ask once (only when a tracker is available), as part of the Step 7 offer:
Shall I file these findings as tracking issues? I would create one issue per 🔴 Critical/High and 🟡 Medium finding, plus one summary epic with a prioritized checklist. Low and Cannot Determine items stay in the report only. (default: no)
If — and only if — the user confirms, create:
[WA][<PILLAR>] <finding title> (e.g., [WA][SEC] Uploads bucket lacks Block Public Access)SEC01-BP02 format (or the lens + finding title when the lens exposes no BP ID), the evidence citation (file:line), and the remediation next step from the report — including its Fix: block when present.[WA] Well-Architected review — {workload name} ({date})- [ ] #<n> …), grouped by Eisenhower quadrant (Do First → Plan → Delegate → Defer).Rules:
<!--
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: MIT-0
-->
© aws-samples, MIT-0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1,001 other files (references) in skills/aws-well-architected-framework-review of aws-samples/sample-well-architected-skills-and-steering.
Open the folder on GitHubat commit e81835b
AWS Well Architected Framework Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| AWS Well Architected Framework Review this skillaws-samples/sample-well-architected-skills-and-steering | 273 | — | ~11k | Automated safety check: Pass | MIT-0 | |
| Cloud Cost Optimizationwshobson/agents | 40k | 14 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Thesvgglincker/thesvg | 2.8k | — | ~1.5k | Automated safety check: Pass | MIT | |
| AWS Cloud Advisortech-leads-club/agent-skills | 7k | — | ~2.1k | Automated safety check: Pass | CC-BY-4.0 | |
| Dangling DNS Finderanirudhbiyani/findmytakeover | 180 | — | ~1.8k | Automated safety check: Pass | GPL-3.0 | |
| AWS Architecture Diagramvidanov/aws-architecture-diagram-skill | 160 | — | ~4.9k | Automated safety check: Pass | MIT |
wshobson/agents
Cuts cloud spend across AWS, Azure, GCP and OCI with cost tagging, rightsizing, commitment and spot pricing models, and architecture changes.
glincker/thesvg
Fetch brand SVG logos and cloud architecture icons (AWS, Azure, GCP) from theSVG.
tech-leads-club/agent-skills
Answers AWS architecture, security and service-selection questions by searching AWS documentation through MCP tools first, then adapting advice to your stack and team.
anirudhbiyani/findmytakeover
Detect dangling DNS records and subdomain-takeover risks across a multi-cloud environment by running the bundled findmytakeover tool.
vidanov/aws-architecture-diagram-skill
Generate AWS architecture diagrams in draw.io format. An agent skill from vidanov/aws-architecture-diagram-skill.
wshobson/agents
Configure secure, high-performance connectivity between on-premises infrastructure and cloud platforms using VPN and dedicated connections.
aws-samples/sample-well-architected-skills-and-steering
"Learn then Build" — help developers understand AWS Well-Architected best practices for their specific workload, then produce actionable visual artifacts (architecture diagrams with WA annotations…
aws-samples/sample-well-architected-skills-and-steering
Generate preventive Well-Architected guardrails — AWS Config rules, Service Control Policies, permission boundaries, CloudWatch alarms, and IaC policy checks (CDK Aspects, cfn-guard, OPA/Sentinel) —…
aws-samples/sample-well-architected-skills-and-steering
Assess a workload's readiness to migrate to AWS by analyzing existing code, dependencies, configurations, and infrastructure to produce evidence-backed findings covering the 7 Rs, risks, and a…
aws-samples/sample-well-architected-skills-and-steering
Help a facilitator run a conversational Well-Architected Framework Review (WAFR) with a customer — generates tailored facilitator questions, probing follow-ups, and "things to look out for" per WA…
Works with
Categories
Perform a full AWS Well-Architected Framework review evaluating all 57 questions across 6 pillars by analyzing code, IaC, and configurations to produce evidence-backed findings with…. AWS Well Architected Framework Review is an agent skill from aws-samples/sample-well-architected-skills-and-steering, published by the product's own GitHub organization. Perform a full AWS Well-Architected Framework review evaluating all 57 questions across 6 pillars by analyzing code, IaC, and configurations to produce evidence-backed findings with Eisenhower-prioritized remediation.
AWS Well Architected Framework Review fits situations like: tasks that involve Cloud architecture.
Run `npx skills add aws-samples/sample-well-architected-skills-and-steering --skill aws-well-architected-framework-review -a claude-code`. Or copy the skill folder (skills/aws-well-architected-framework-review in aws-samples/sample-well-architected-skills-and-steering) into .claude/skills/aws-well-architected-framework-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add aws-samples/sample-well-architected-skills-and-steering --skill aws-well-architected-framework-review -a codex`. Or copy the skill folder (skills/aws-well-architected-framework-review in aws-samples/sample-well-architected-skills-and-steering) into .agents/skills/aws-well-architected-framework-review in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aws-samples/sample-well-architected-skills-and-steering --skill aws-well-architected-framework-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/aws-well-architected-framework-review, .gemini/skills/aws-well-architected-framework-review, .github/skills/aws-well-architected-framework-review and .opencode/skills/aws-well-architected-framework-review in your project.
Going by SKILL.md and its folder, AWS Well Architected Framework Review needs the command-line tools its instructions call (gh).
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
AWS Well Architected Framework Review is published under the MIT-0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 11k tokens (SKILL.md is roughly 45k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.5M tokens, read only when the agent opens those files.
Skills that share tags, products or a category with AWS Well Architected Framework Review: Cloud Cost Optimization (wshobson/agents, 40k stars), Thesvg (glincker/thesvg, 2.8k stars), AWS Cloud Advisor (tech-leads-club/agent-skills, 7k stars) and Dangling DNS Finder (anirudhbiyani/findmytakeover, 180 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
aws-samples (a GitHub organization, an official publisher) maintains it in aws-samples/sample-well-architected-skills-and-steering, which has 273 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 6, 2026.
Source: aws-samples/sample-well-architected-skills-and-steering on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.