antonbabenko/terraform-skill
Terraform & OpenTofu Skill for AI Agents - testing, modules, CI/CD, and production patterns
unreviewed-ai-risk
- Repository: https://github.com/antonbabenko/terraform-skill
- Commit:
9c1e92d962a5407c227e5566416e962a2f057240 - Generated: 2026-11-14T00:01:35+00:00
- Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2
Scores
Unreviewed AI code risk: a large share of this code is explicitly AI-attributed, and its tests or review process are weak while quality or security scores are low.
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 61 | explicit | 85% | 100% |
| Code quality | 77 | adequate | 90% | 100% |
| Security | 52 | weak | 85% | 100% |
AI provenance
Explicit AI attribution on 61% of first-party code added; an estimated 61% including velocity signals.
- Explicitly attributed share (lower bound): 61.4%
- Unattributed share in AI-consistent velocity bursts: 0.0%
- Estimated AI-generated share: 61.4%
| AI tool | Attributed commits | Lines added |
|---|---|---|
| Claude Code | 1 | 191 |
- AI tooling configured in repo: claude-code
Current source lines last changed by AI-attributed commits: 191 of 310.
Too few lines in one group to compare finding densities.
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2026-05 | 311 | 61% |
Evidence
- Claude Code: PR branch 'claude/kiro-powers-integration-9MkMl' (349024da7d1b)
- CLAUDE.md (claude-code configuration) (CLAUDE.md)
AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.
Code quality
Code quality is adequate: test-to-source ratio 0.00, no CI test run detected; 0% of function code in complex or long functions; 0% duplicated lines. Weakest area: testing.
| Area | Score |
|---|---|
| Complexity (lizard) | 100 |
| Duplication | 100 |
| Code smells (Opengrep) | 94 |
| Tests and CI | 25 |
| Documentation | 100 |
| Type safety | n/a |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 11; mean complexity 4.2, 90th percentile 8; 0 complex and 0 long functions
- Duplicated lines: 0.0% of 226 compared
- Tests: 0 test lines for 310 source lines (ratio 0.00); CI test commands: none detected; 0% of recent source commits also change tests
- Docs missing or thin: none
Security
Security posture is weak: 1 high-severity SAST findings; 9 high-severity workflow issues. Weakest area: ci actions.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 100 |
| Static analysis (Opengrep) | 23 |
| Vulnerable dependencies (OSV) | n/a |
| CI workflows (zizmor) | 17 |
| Posture (policy, updates, signing, lockfiles) | 40 |
| OpenSSF Scorecard | n/a |
- Posture checks passed: security policy, lockfiles; missing: dependency updates, signed commits
Top findings
| Severity | Finding | Location |
|---|---|---|
| high | opengrep/javascript.lang.security.detect-child-process: Detected calls to child_process from a function argument props. This could lead to a command injection if the input is user controllable. Try to avoid calls to child_process, and if it is needed ensure user input is correctly sanitized or sandboxed. [confidence low] |
.github/release/pre-commit.js:125 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/automated-release.yml:42 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/automated-release.yml:65 |
| high | zizmor/dangerous-triggers: use of fundamentally insecure workflow trigger [confidence medium] |
.github/workflows/pr-title-lint.yml:19 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/pr-title-lint.yml:40 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/tag-release.yml:28 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/tag-release.yml:85 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/validate.yml:31 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/validate.yml:34 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/validate.yml:252 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument root has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] |
.github/release/build-power.js:81 |
| medium | opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal: Detected possible user input going into a path.join or path.resolve function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low] |
.github/release/build-power.js:81 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument root has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] |
.github/release/build-power.js:85 |
| medium | opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal: Detected possible user input going into a path.join or path.resolve function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low] |
.github/release/build-power.js:85 |
| medium | opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal: Detected possible user input going into a path.join or path.resolve function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low] |
.github/release/pre-commit.js:46 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument root has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] |
.github/release/pre-commit.js:47 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument root has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] |
.github/release/pre-commit.js:50 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument root has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] |
.github/release/pre-commit.js:67 |
| medium | opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal: Detected possible user input going into a path.join or path.resolve function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low] |
.github/release/pre-commit.js:76 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument root has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] |
.github/release/pre-commit.js:77 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument root has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] |
.github/release/pre-commit.js:80 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument root has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] |
.github/release/pre-commit.js:87 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument root has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] |
.github/release/pre-commit.js:95 |
| medium | opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal: Detected possible user input going into a path.join or path.resolve function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low] |
.github/release/pre-commit.js:95 |
| medium | zizmor/artipacked: credential persistence through GitHub Actions artifacts [confidence low] |
.github/workflows/validate.yml:30 |
Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.
Repository profile
- Source lines: 310; test lines: 0
| Language | Lines |
|---|---|
| JavaScript | 310 |