AI Slop Code Risk Monitor

terraform-linters/tflint

SlopCodeMonitor badge for terraform-linters/tflint Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

A Pluggable Terraform Linter

1.1 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for terraform-linters/tflint, a Go project with 5,847 GitHub stars. SynthScan examined 58,886 lines of code across 525 source files, recording 52 pattern matches distributed across 3 syntactic categories. The legacy adjusted pattern signal is 1.1 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.1
Adjusted Signal
1.1
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
5.8K
Stars
Go
Language
58.9K
Lines of Code
525
Files
52
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 5.5/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 52 finding(s).

Hallucinated Dependency & Supply Chain Risk 0.0/100 · LOW

Are imports declared and package/API names verified? 0 finding(s).

Agent Over-Engineering Ratio 0.0/100 · LOW

Are wrappers, guards, and repeated structures necessary? 0 finding(s).

PR Review Velocity Impact 5.3/100 · LOW

Which changes need focused human review? 52 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 2MEDIUM 1LOW 49

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 52 distinct pattern matches across 3 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Over-Commented Block49 hits · 49 pts
SeverityFileLineSnippetContext
LOWterraform/config.go281 if current == nil {COMMENT
LOWterraform/config.go321 // opaque string.COMMENT
LOWterraform/loader.go21// It extends the general config-loading functionality in the Parser to supportCOMMENT
LOWterraform/variable.go181COMMENT
LOWterraform/parser.go41// then combines these files into a single Module.COMMENT
LOWterraform/parser.go141 if loadDiags.HasErrors() {COMMENT
LOWterraform/evaluator.go81func (d *evaluationData) GetCountAttr(addr addrs.CountAttr, rng hcl.Range) (cty.Value, hcl.Diagnostics) {COMMENT
LOWterraform/evaluator.go141 // In Terraform, it is the responsibility of the VariableTransformerCOMMENT
LOWterraform/module.go281// overrideLocalBlocks overrides "local" blocksCOMMENT
LOWterraform/addrs/parse_ref.go21// ParseRef attempts to extract a referenceable address from the prefix of theCOMMENT
LOWterraform/addrs/parse_ref.go41COMMENT
LOWterraform/addrs/module_source.go1// Copyright (c) HashiCorp, Inc.COMMENT
LOWterraform/addrs/module_source.go61// module package.COMMENT
LOWterraform/addrs/module_source.go81COMMENT
LOWterraform/addrs/module_instance.go1package addrsCOMMENT
LOWterraform/addrs/module.go1package addrsCOMMENT
LOWterraform/ipaddr/doc.go1// Package ipaddr is a fork of a subset of the Go standard "net" package whichCOMMENT
LOWterraform/ipaddr/ip.go1// Copyright 2009 The Go Authors. All rights reserved.COMMENT
LOWterraform/lang/references.go1package langCOMMENT
LOWterraform/lang/functions.go41COMMENT
LOWterraform/lang/functions_test.go21// in the langs package, via HCL.COMMENT
LOWterraform/lang/functions_test.go1061 },COMMENT
LOWterraform/lang/data.go1package langCOMMENT
LOWterraform/lang/scope.go21 // SelfAddr is the address that the "self" object should be an alias of,COMMENT
LOWterraform/lang/eval.go41// the resulting value. The value will be converted to the given type beforeCOMMENT
LOWterraform/lang/funcs/encoding.go201// Base64Decode decodes a string containing a base64 sequence.COMMENT
LOWterraform/lang/funcs/encoding.go221 return Base64EncodeFunc.Call([]cty.Value{str})COMMENT
LOWterraform/lang/funcs/encoding.go241//COMMENT
LOWterraform/lang/funcs/encoding.go261//COMMENT
LOWterraform/lang/funcs/conversion.go21// its argument to a specific type or type kind.COMMENT
LOWterraform/lang/funcs/conversion.go161}COMMENT
LOWterraform/lang/funcs/filesystem.go61 return cty.StringVal(string(src)).WithMarks(pathMarks), nilCOMMENT
LOWterraform/lang/funcs/filesystem.go441}COMMENT
LOWterraform/lang/funcs/filesystem.go461func Basename(path cty.Value) (cty.Value, error) {COMMENT
LOWterraform/lang/funcs/datetime.go101// strings using RFC 3339 "Date and Time format" syntax, and so timestampCOMMENT
LOWterraform/lang/funcs/datetime.go121 return TimeAddFunc.Call([]cty.Value{timestamp, duration})COMMENT
LOWterraform/lang/funcs/datetime.go141func parseTimestamp(ts string) (time.Time, error) {COMMENT
LOWterraform/lang/funcs/string.go181 varsVal := args[1]COMMENT
LOWterraform/lang/funcs/string.go201 // of type string:COMMENT
LOWterraform/lang/funcs/string.go401 // the only way to render a template, because someone hasn't learnedCOMMENT
LOWterraform/lang/funcs/string.go421COMMENT
LOWterraform/collections/unique_key.go1// Copyright (c) HashiCorp, Inc.COMMENT
LOWterraform/collections/unique_key.go21 // unique keys for a particular other type.COMMENT
LOWterraform/collections/set.go81func (s Set[T]) Remove(v T) {COMMENT
LOWterraform/tfhcl/expand_spec.go201 // This situation is tricky because HCL just works genericallyCOMMENT
LOWterraform/tfhcl/public.go1// Package tfhcl is a fork of hcl/ext/dynblock.COMMENT
LOWtflint/config.go161 Varfiles: []string{},COMMENT
LOWintegrationtest/autofix/ignore_by_annotation/main.tf1# tflint-ignore: terraform_autofix_commentCOMMENT
LOWintegrationtest/autofix/multiple_fix/main.tf1// autofixedCOMMENT
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippetContext
HIGHterraform/parser.go226// have been loaded through this parser, with source filenames (as requestedCOMMENT
HIGHterraform/parser.go233// have been loaded through this parser, with source filenames (as requestedCOMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMterraform/lang/funcs/datetime.go188 // be robust here.COMMENT