
Core idea
Template validation proves the file can deploy. It does not prove the Azure change is safe to merge.
Architecture
Blast radius, dependencies, exposure, and Well-Architected posture.
Security
Ingress, identity, Key Vault controls, and high-risk findings.
Cost
Monthly run rate, budget gates, expensive services, and savings signals.
Gate
PR evidence, workflow artifacts, and the policy that comments or blocks.
Inspect the real PR
Copy the action
Tune the gates
A real PR that should not merge
The public Cloudeval Azure ARM review example has a demo pull request called analytics capacity cost regression. The change sounds reasonable on the surface: temporary analytics capacity for a launch reporting window. Under the hood, it adds a fixed fleet of 160 analytics workers, scales App Service to PremiumV3 capacity 8, increases an Application Gateway WAF, switches storage to RA-GRS, and raises the branch budget gate to$5,000/month.
Cloudeval fails the review because the impact is no longer theoretical:
Gate
FAIL
Posture
23.9/100
Cost
$11,674.89/mo
Findings
843 high risk
3 failed unit tests, 387 resources, 384
relationships, and a cost gate failure because the monthly estimate exceeds the
configured budget. This is the point: the PR description explains intent, but
the review must expose impact.

The PR review comment keeps source provenance, gate result, report links, cost, posture, validation, and workflow artifacts close to the code review.
Why the PR diff is not enough
Azure infrastructure review usually spans more than the pull request. The diff shows intent; the decision needs current cloud state, cost, validation output, security posture, architecture dependencies, and the team policy that decides whether a warning should block release. Cloudeval solves the problem by making the review object shared. Source provenance, Azure and IaC evidence, reports, diagrams, PR comments, and gates all hang from the same project context instead of forcing reviewers to reconcile separate tools by hand.See the review evidence in motion
These videos belong in the article because they show two review surfaces that are hard to reconstruct from a raw template diff: blast radius in the architecture graph and grounded AI context tied back to the same project evidence.- Blast-radius diagram
- Grounded AI context
Video: Cloudeval visualizes impacted resources and dependency paths so reviewers can check blast radius before approval.
The 4 things every Azure IaC PR should prove
Before approval, the pull request should answer four evidence questions: what source was evaluated, what architecture changed, what it costs, and which policy decides whether the change can merge.Source provenance
Architecture impact
Cost impact
Merge policy

Cloudeval reports put posture, critical issues, run rate, savings, maturity, priority decisions, and evidence freshness in one review surface.
How Cloudeval attaches evidence to the PR
The useful review surface is the pull request comment. It should be close enough to the code review that a reviewer can decide what to open next without hunting through a dashboard.Source provenance
Source provenance
Gate failures
Gate failures
Deterministic drilldowns
Deterministic drilldowns
AI summary
AI summary

Review drilldowns expand from the PR comment so reviewers can inspect Well-Architected scores, cost signals, and validation context without leaving GitHub.
Start comment-only. Block only after tuning.
Engineers distrust tools that block merges before the team understands the thresholds. Start with comments and artifacts, review the results on real pull requests, then switch enforcement only after the policy reflects how your team actually reviews Azure risk.What this is not
Leave a proof trail, not a Slack opinion
When you ask for changes, point to the evidence the next reviewer can inspect: the PR comment, report, architecture diagram, workflow run, artifact, commit, or config threshold. That turns “I think this is risky” into “this change fails the budget gate and here is the report behind it.”Open the PR comment first
Separate posture from policy
Inspect the highest-risk evidence
Use the diagram for blast radius
Link the proof
Try the same review on public PRs
The sample repository includes nested ARM templates,.cloudeval/config.yaml,
a ready-to-copy GitHub Actions workflow, and long-lived demo pull requests.
Passing baseline gates
Risk regression
Cost regression
Security hardening
Copy this workflow into your repo
- Fork the public Azure ARM review example.
- Open the cost regression PR.
- Inspect the Cloudeval bot comment, gate failures, reports, and workflow run.
- Copy the GitHub Actions workflow into your own repository.
- Start with
enforcement: warn. - Tune
.cloudeval/config.yamlagainst real team review decisions. - Switch to
enforcement: requiredonly after reviewers trust the thresholds.
Fork sample repo
Add the GitHub Action
Create a Cloudeval project
View cost regression PR
Reviewer checklist
- Does the PR comment show repository, ref, commit, workflow run, and project?
- Does the cost estimate fit the branch or environment budget?
- Are high-risk architecture findings explained before approval?
- Are failed validation or unit tests visible in the review?
- Does the architecture diagram match the intended blast radius?
- Is the gate configured as
warnorrequiredintentionally? - Can another reviewer audit the decision later without private chat context?