Prefer explainable rules
Use deterministic factors instead of an opaque risk prediction.
The tradeoffTeams can inspect the calculation, but address naming and default resource classifications can misrepresent their environment.
Inspect the decisionInfraguard
A Terraform plan says what will change. Infraguard asks which changes deserve attention, explains its reasoning, and gives CI a decision it can act on.
Independent project · Offline public fixturesThe 60-second overview5428ed6Refresh Career Atlas after public repository changesThree focused checks share one CLI: Terraform plan risk, AWS resource tags, and IAM policies.
Risk comes from explicit action weights, resource criticality, and an environment multiplier detected from the resource address.
An isolated review passed all 58 repository tests and recorded three Terraform fixture results.
Infrastructure reviews can bury a destructive database change among routine updates. Reviewers need a small, explainable signal that can travel from a local terminal to a pull request without requiring a live cloud connection.
Choose a stage to explore its purpose and supporting source.
The parser reads Terraform plan JSON and normalizes resource actions, including replacement. The tool analyzes the proposal; it does not apply it.
Public fixtures include creation, mixed changes, and a database deletion.
Read the implementationInspect inputs and outputs captured from the repository. Switching scenarios replays saved results; it does not run cloud services or a model.
[
{
"address": "aws_instance.web",
"action": "create",
"weight": 1,
"criticality": 4,
"environmentMultiplier": 1,
"score": 4
},
{
"address": "aws_security_group.web",
"action": "create",
"weight": 1,
"criticality": 4,
"environmentMultiplier": 1,
"score": 4
}
]{
"totalScore": 8,
"threshold": 50,
"verdict": "PASS"
}Recorded source calculation: action weight × criticality × environment multiplier. The displayed gate applies the reviewed CLI’s > 50 comparison. Inspect the complete input plan in the recording.
Use deterministic factors instead of an opaque risk prediction.
The tradeoffTeams can inspect the calculation, but address naming and default resource classifications can misrepresent their environment.
Inspect the decisionConsume exported JSON and emit standard reports.
The tradeoffThe tool stays easy to run offline, while freshness and completeness of the input remain the caller’s responsibility.
Inspect the decisionThe public repository’s parser, scorer, tag checks, and IAM checks passed locally on 5 September 2026. This is a dated result for the linked revision.
Supporting sourceThe same score used in the report controls the threshold exit code. Reviewers can explain why a plan was blocked.
Supporting sourceIAM checks identify broad administrative access, wildcard actions, sensitive permissions, and missing constraints.
Supporting sourceA guardrail earns trust when a reviewer can reconstruct its decision. The score is useful as a prompt for review, with local policy and engineering judgment still required.
Reviewed 5 September 2026. These links point to the source revision used for this case study.
Input normalization and resource actions.
src/infraguard/plan_risk/parser.pyFactors, address matching, and sorted results.
src/infraguard/plan_risk/scorer.pyThreshold and input-error behavior.
src/infraguard/plan_risk/command.pyExecutable risk examples.
tests/test_plan_risk/test_scorer.pyRule-based least-privilege findings.
src/infraguard/iam_check/checks.pyScope and output formats; implementation differences noted above.
README.mdSource revision 34549b2 · View current workflow history ↗