AI Slop Code Risk Monitor

vercel-labs/just-bash

SlopCodeMonitor badge for vercel-labs/just-bash Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Bash for Agents

4.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for vercel-labs/just-bash, a TypeScript project with 4,448 GitHub stars. SynthScan examined 376,491 lines of code across 1383 source files, recording 651 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 4.0 (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.

4.0
Adjusted Signal
4.0
Raw Pattern Score
100%
Time Factor
2026-10-27
Last Push
4.4K
Stars
TypeScript
Language
376.5K
Lines of Code
1.4K
Files
651
Pattern Hits
2026-10-31
Scan Date
0.13
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 6.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 11.1/100 · LOW

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

Agent Over-Engineering Ratio 3.5/100 · LOW

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

PR Review Velocity Impact 19.5/100 · LOW

Which changes need focused human review? 651 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 176MEDIUM 50LOW 425

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 651 distinct pattern matches across 13 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.

Cross-Language Confusion (JS/TS)171 hits · 840 pts
SeverityFileLineSnippetContext
HIGHpackages/just-bash/src/interpreter/control-flow.test.ts48 elif [ $x -eq 2 ]; thenCODE
HIGHpackages/just-bash/src/interpreter/control-flow.test.ts50 elif [ $x -eq 3 ]; thenCODE
HIGH…ty/prototype-pollution/prototype-pollution-awk.test.ts61 print (1 in ${keyword}) ? "exists" : "deleted"CODE
HIGH…ty/prototype-pollution/prototype-pollution-awk.test.ts73 print ("key" in ${keyword}) ? "yes" : "no"CODE
HIGH…ty/prototype-pollution/prototype-pollution-awk.test.ts74 print ("missing" in ${keyword}) ? "yes" : "no"CODE
HIGH…y/sandbox/python-sqlite-information-disclosure.test.ts11print("LEAK" if bad else "SAFE")CODE
HIGH⚡…es/just-bash/src/commands/python3/python3.http.test.ts183 print("no error")CODE
HIGH⚡…es/just-bash/src/commands/python3/python3.http.test.ts185 print("error raised")CODE
HIGH⚡…es/just-bash/src/commands/python3/python3.http.test.ts201 print("success")CODE
HIGH⚡…es/just-bash/src/commands/python3/python3.http.test.ts203 print("network error")CODE
HIGH⚡…es/just-bash/src/commands/python3/python3.http.test.ts222 print("success")CODE
HIGH⚡…es/just-bash/src/commands/python3/python3.http.test.ts224 print("access denied")CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts47print(response.status_code)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts48print(response.ok)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts73print('content-type' in response.headers)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts97print(type(data).__name__)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts98print(data["key"])CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts132print(data["headers"].get("X-Custom", "not found"))CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts156print(response.status_code)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts157print(response.ok)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts250print(response.status_code)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts274print(data["json"]["key"])CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts301print(response.status_code)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts302print(len(response.text))CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts324print(response.status_code)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts346print(response.status_code)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts368print(response.status_code)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts395print(type(r.content).__name__)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts396print(list(r.content[:4]))CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts424print("saved")CODE
HIGH…ust-bash/src/commands/python3/python3.security.test.ts143 print("VULNERABLE:", f.read()[:50])CODE
HIGH…ust-bash/src/commands/python3/python3.security.test.ts145 print("SAFE: no /etc/passwd in VFS")CODE
HIGH…ust-bash/src/commands/python3/python3.security.test.ts161 print("VULNERABLE:", f.read()[:50])CODE
HIGH…ust-bash/src/commands/python3/python3.security.test.ts163 print("SAFE: /etc/shadow not accessible")CODE
HIGH…ust-bash/src/commands/python3/python3.security.test.ts180 print("VULNERABLE: TCP connected")CODE
HIGH…ust-bash/src/commands/python3/python3.security.test.ts182 print("SAFE:", e)CODE
HIGH…ust-bash/src/commands/python3/python3.security.test.ts207 print("LEAKED:", leaked)CODE
HIGH…ust-bash/src/commands/python3/python3.security.test.ts209 print("SAFE: no host env vars leaked")CODE
HIGH…ust-bash/src/commands/python3/python3.security.test.ts235print(files)CODE
HIGH…ust-bash/src/commands/python3/python3.security.test.ts248 print(f'root={root}, files={files}')CODE
HIGH…ust-bash/src/commands/python3/python3.security.test.ts262print('exists:', p.exists())CODE
HIGH…ust-bash/src/commands/python3/python3.security.test.ts263print('content:', p.read_text().strip())CODE
HIGH…ust-bash/src/commands/python3/python3.security.test.ts277print(os.getcwd())CODE
HIGH⚡…ust-bash/src/commands/python3/python3.security.test.ts301 print('HTTP_OK:', resp.status_code)CODE
HIGH⚡…ust-bash/src/commands/python3/python3.security.test.ts305 print('OK: bridge works, network not configured')CODE
HIGH⚡…ust-bash/src/commands/python3/python3.security.test.ts307 print('OK: bridge works, got error:', msg[:80])CODE
HIGH…s/just-bash/src/commands/python3/python3.files.test.ts12print("Hello from script")CODE
HIGH…s/just-bash/src/commands/python3/python3.files.test.ts23print(f"Args: {sys.argv[1:]}")CODE
HIGH…s/just-bash/src/commands/python3/python3.files.test.ts34print(sys.argv[0])CODE
HIGH…s/just-bash/src/commands/python3/python3.files.test.ts55print(result)CODE
HIGH…s/just-bash/src/commands/python3/python3.files.test.ts69print(json.dumps(data))CODE
HIGH…s/just-bash/src/commands/python3/python3.files.test.ts80print("hello"CODE
HIGH…s/just-bash/src/commands/python3/python3.files.test.ts140print(f"executed: {__file__}")CODE
HIGH…s/just-bash/src/commands/python3/python3.files.test.ts171print(files)CODE
HIGH…s/just-bash/src/commands/python3/python3.files.test.ts205print(mymodule.greet("World"))CODE
HIGH…ges/just-bash/src/commands/python3/python3.env.test.ts82 it("should return None for undefined env var with get()", async () => {CODE
HIGH…ges/just-bash/src/commands/python3/python3.env.test.ts264print(list(data))CODE
HIGH…ges/just-bash/src/commands/python3/python3.env.test.ts280print(len(data), data[5])CODE
HIGH⚡…ges/just-bash/src/commands/python3/python3.env.test.ts293print('line1')CODE
HIGH⚡…ges/just-bash/src/commands/python3/python3.env.test.ts294print('line2')CODE
111 more matches not shown…
Over-Commented Block230 hits · 230 pts
SeverityFileLineSnippetContext
LOW…website/app/components/terminal-parts/agent-command.ts21 "<path>",COMMENT
LOWpackages/just-bash/src/interpreter/subshell-group.ts261 // gives the group its own fd 0, so the enclosing shell's read position has toCOMMENT
LOWpackages/just-bash/src/interpreter/builtins/local.ts281 // Validate variable name: must start with letter/underscore, contain only alphanumeric/_COMMENT
LOW…ages/just-bash/src/interpreter/expansion/word-split.ts181 // - ${v:-"AxBxC"} - entirely quoted default value, should NOT be splitCOMMENT
LOW…ages/just-bash/src/interpreter/expansion/word-split.ts301COMMENT
LOW…ages/just-bash/src/interpreter/expansion/word-split.ts321 // - split returning [] (empty array) = nothing to add, continue buildingCOMMENT
LOWpackages/just-bash/src/interpreter/helpers/array.ts201 if (word.parts.length < 2) return null;COMMENT
LOWpackages/just-bash/src/parser/lexer.ts1361 // Heredocs opened on the current line whose (literal) bodies must beCOMMENT
LOWpackages/just-bash/src/spec-tests/grep/skips.ts121 ],COMMENT
LOWpackages/just-bash/src/spec-tests/bash/spec.test.ts41COMMENT
LOWpackages/just-bash/src/spec-tests/bash/spec.test.ts81 // "extglob-files.test.sh", // TestingCOMMENT
LOWpackages/just-bash/src/spec-tests/bash/spec.test.ts101COMMENT
LOW…st-bash/src/spec-tests/bash/cases/builtin-echo.test.sh61COMMENT
LOW…st-bash/src/spec-tests/bash/cases/builtin-echo.test.sh81# ## ENDCOMMENT
LOW…st-bash/src/spec-tests/bash/cases/builtin-echo.test.sh201echo -en '\03777' | od -A n -t x1 | sed 's/ \+/ /g'COMMENT
LOW…st-bash/src/spec-tests/bash/cases/builtin-echo.test.sh241 a b c d 006COMMENT
LOW…ust-bash/src/spec-tests/bash/cases/command-sub.test.sh1## compare_shells: dash bash mkshCOMMENT
LOW…ust-bash/src/spec-tests/bash/cases/command-sub.test.sh21foo=FOO; echo `echo $foo`bar`echo $foo`COMMENT
LOW…st-bash/src/spec-tests/bash/cases/func-parsing.test.sh1## compare_shells: dash bash mkshCOMMENT
LOW…st-bash/src/spec-tests/bash/cases/func-parsing.test.sh41## stdout: 5 0COMMENT
LOW…st-bash/src/spec-tests/bash/cases/func-parsing.test.sh61## OK dash status: 2COMMENT
LOW…ages/just-bash/src/spec-tests/bash/cases/alias.test.sh441## OK osh status: 2COMMENT
LOW…bash/src/spec-tests/bash/cases/assign-deferred.test.sh101## OK bash status: 2COMMENT
LOW…just-bash/src/spec-tests/bash/cases/bool-parse.test.sh1## oils_failures_allowed: 1COMMENT
LOW…st-bash/src/spec-tests/bash/cases/builtin-trap.test.sh341# All shells spew warnings to stderr, but don't actually exit! Bad!COMMENT
LOW…ust-bash/src/spec-tests/bash/cases/var-op-test.test.sh61#COMMENT
LOW…ust-bash/src/spec-tests/bash/cases/var-op-test.test.sh141echo empty /"${empty[@]}"/COMMENT
LOW…ust-bash/src/spec-tests/bash/cases/var-op-test.test.sh221COMMENT
LOW…ust-bash/src/spec-tests/bash/cases/var-op-test.test.sh821## N-I dash STDOUT:COMMENT
LOW…just-bash/src/spec-tests/bash/cases/word-split.test.sh401argv.py at ${!a[@]}COMMENT
LOW…just-bash/src/spec-tests/bash/cases/ble-idioms.test.sh1## compare_shells: bash zsh mksh ashCOMMENT
LOW…just-bash/src/spec-tests/bash/cases/ble-idioms.test.sh61321:321COMMENT
LOW…just-bash/src/spec-tests/bash/cases/ble-idioms.test.sh461COMMENT
LOW…just-bash/src/spec-tests/bash/cases/shell-bugs.test.sh1## compare_shells: bash dash mksh zsh ashCOMMENT
LOW…bash/src/spec-tests/bash/cases/paren-ambiguity.test.sh141## STDERR:COMMENT
LOW…s/just-bash/src/spec-tests/bash/cases/redirect.test.sh41## STDOUT:COMMENT
LOW…s/just-bash/src/spec-tests/bash/cases/redirect.test.sh81COMMENT
LOW…s/just-bash/src/spec-tests/bash/cases/redirect.test.sh121#### : 3>&3 (OSH regression)COMMENT
LOW…s/just-bash/src/spec-tests/bash/cases/redirect.test.sh181#### Redirect to empty stringCOMMENT
LOW…s/just-bash/src/spec-tests/bash/cases/redirect.test.sh441COMMENT
LOW…-bash/src/spec-tests/bash/cases/builtin-printf.test.sh1## oils_failures_allowed: 1COMMENT
LOW…-bash/src/spec-tests/bash/cases/builtin-printf.test.sh41# quote 'val' and store it in fooCOMMENT
LOW…-bash/src/spec-tests/bash/cases/builtin-printf.test.sh101## STDOUT:COMMENT
LOW…-bash/src/spec-tests/bash/cases/builtin-printf.test.sh441# printf: warning: : character(s) following character constant have been ignoredCOMMENT
LOW…-bash/src/spec-tests/bash/cases/builtin-printf.test.sh461# 206COMMENT
LOW…-bash/src/spec-tests/bash/cases/builtin-printf.test.sh801['a b']COMMENT
LOW…-bash/src/spec-tests/bash/cases/builtin-printf.test.sh1341printf 'three %b\n' '\141' # diCOMMENT
LOW…st-bash/src/spec-tests/bash/cases/builtin-dirs.test.sh241## stdout: ~ ~COMMENT
LOW…sh/src/spec-tests/bash/cases/known-differences.test.sh1## oils_failures_allowed: 0COMMENT
LOW…sh/src/spec-tests/bash/cases/known-differences.test.sh21## ENDCOMMENT
LOW…bash/src/spec-tests/bash/cases/sh-options-bash.test.sh211COMMENT
LOW…s/just-bash/src/spec-tests/bash/cases/command_.test.sh21./0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567COMMENT
LOW…s/just-bash/src/spec-tests/bash/cases/command_.test.sh181status=1COMMENT
LOW…/just-bash/src/spec-tests/bash/cases/word-eval.test.sh1## compare_shells: dash bash mkshCOMMENT
LOW…es/just-bash/src/spec-tests/bash/cases/sh-func.test.sh181COMMENT
LOW…-bash/src/spec-tests/bash/cases/strict-options.test.sh1## compare_shells: dash bash-4.4 mkshCOMMENT
LOW…-bash/src/spec-tests/bash/cases/strict-options.test.sh21# version of that.COMMENT
LOW…ust-bash/src/spec-tests/bash/cases/builtin-set.test.sh1## compare_shells: bash dash mksh zsh COMMENT
LOW…ust-bash/src/spec-tests/bash/cases/builtin-set.test.sh141## stdout: []COMMENT
LOW…bash/src/spec-tests/bash/cases/builtin-special.test.sh101## OK dash/mksh/ash/yash STDERR:COMMENT
170 more matches not shown…
Decorative Section Separators44 hits · 132 pts
SeverityFileLineSnippetContext
MEDIUMexamples/executor-tools/multi-api-agent.ts47// ── Inline tools ─────────────────────────────────────────────────────────COMMENT
MEDIUMexamples/executor-tools/multi-api-agent.ts139// ── Turn 1: agent gathers all three pieces in parallel ──────────────────COMMENT
MEDIUMexamples/executor-tools/multi-api-agent.ts172// ── Turn 2: bash composes the report from saved JSON ────────────────────COMMENT
MEDIUMexamples/executor-tools/multi-api-agent.ts203// ── Turn 3: bash CLI form of the same tools ─────────────────────────────COMMENT
MEDIUMexamples/executor-tools/multi-api-agent.ts214// ── Diagnostic: which tools were called ─────────────────────────────────COMMENT
MEDIUMexamples/executor-tools/multi-turn-discovery.ts91// ── Turn 2: Agent calls a discovered query tool ─────────────────COMMENT
MEDIUMexamples/executor-tools/multi-turn-discovery.ts108// ── Turn 3: Agent filters a list endpoint ───────────────────────COMMENT
MEDIUMexamples/executor-tools/multi-turn-discovery.ts123// ── Turn 4: Agent chains tools — group by continent ─────────────COMMENT
MEDIUMexamples/executor-tools/multi-turn-discovery.ts145// ── Turn 5: Agent writes results to virtual filesystem ──────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/ast.ts7// ─── Expressions ───────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/ast.ts148// ─── Statements ────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/ast.ts250// ─── Program Structure ─────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/builtins.ts168// ─── String Functions ───────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/builtins.ts514// ─── Math Functions ─────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/builtins.ts599// ─── Unsupported Functions ──────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/builtins.ts613// ─── Printf Formatting ──────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/builtins.ts1009// ─── Built-in Function Registry ─────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/parser2.ts84 // ─── Helper methods ────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/parser2.ts175 // ─── Program parsing ───────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/parser2.ts341 // ─── Statement parsing ─────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/parser2.ts552 // ─── Expression parsing (precedence climbing) ──────────────COMMENT
MEDIUM…h/src/commands/js-exec/js-exec.buffer-encoding.test.ts5 // ─── Encode side ─────────────────────────────────────────────────COMMENT
MEDIUM…h/src/commands/js-exec/js-exec.buffer-encoding.test.ts89 // ─── Decode side ─────────────────────────────────────────────────COMMENT
MEDIUM…h/src/commands/js-exec/js-exec.buffer-encoding.test.ts184 // ─── Cross-API ───────────────────────────────────────────────────COMMENT
MEDIUM…h/src/commands/js-exec/js-exec.buffer-encoding.test.ts234 // ─── Unknown encoding ─────────────────────────────────────────────COMMENT
MEDIUM…h/src/commands/js-exec/js-exec.buffer-encoding.test.ts254 // ─── Aliases ─────────────────────────────────────────────────────COMMENT
MEDIUM…h/src/commands/js-exec/js-exec.buffer-encoding.test.ts283 // ─── Node-compat edge cases ──────────────────────────────────────COMMENT
MEDIUM…ges/just-bash/src/transform/plugins/tee-plugin.test.ts417 // ── Complex scripts ──────────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash-executor/src/node-esm-smoke.test.ts53// ── 1. Each upstream plugin loads + instantiates in plain Node ESM ─────────COMMENT
MEDIUMpackages/just-bash-executor/src/node-esm-smoke.test.ts81// ── 2. @just-bash/executor's plugin-loader path works for each kind ─────────COMMENT
MEDIUMpackages/just-bash-executor/src/node-esm-smoke.test.ts167// ── 3. Inline tools path doesn't need any plugin at all ─────────────────────COMMENT
MEDIUMpackages/just-bash-executor/src/tool-command.ts21// ── Naming ──────────────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash-executor/src/tool-command.ts34// ── Arg Parsing ─────────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash-executor/src/tool-command.ts172// ── Help Formatting ─────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash-executor/src/tool-command.ts252// ── Command Factory ─────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash-executor/src/tool-command.ts341// ── Grouping Helpers ────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash-executor/src/tool-command.test.ts21// ── camelToKebab ────────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash-executor/src/tool-command.test.ts45// ── parseToolCliArgs ────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash-executor/src/tool-command.test.ts167// ── Integration: Bash with tool commands ────────────────────────COMMENT
MEDIUM…kages/just-bash-executor/src/executor-examples.test.ts15// ── Network isolation ──────────────────────────────────────────COMMENT
MEDIUM…kages/just-bash-executor/src/executor-examples.test.ts74// ── Custom discovery plugin tests ───────────────────────────────COMMENT
MEDIUM…kages/just-bash-executor/src/executor-examples.test.ts237// ── Tool approval tests ─────────────────────────────────────────COMMENT
MEDIUM…kages/just-bash-executor/src/executor-examples.test.ts372// ── GraphQL plugin: offline introspection → tool discovery ──────COMMENT
MEDIUM…kages/just-bash-executor/src/executor-examples.test.ts499// ── OpenAPI plugin: static spec → tool discovery ────────────────COMMENT
Hyper-Verbose Identifiers126 hits · 126 pts
SeverityFileLineSnippetContext
LOWpackages/just-bash/src/readme.test.ts127function renameDuplicateDeclarations(code: string): string {CODE
LOWpackages/just-bash/src/fatal-execution-error.ts11export function rethrowFatalExecutionError(error: unknown): void {CODE
LOWpackages/just-bash/src/execution-scope.ts460export function createCommandExecutionBudget(CODE
LOWpackages/just-bash/src/interpreter/type-command.ts360function serializeFunctionWordPart(part: WordPart): string {CODE
LOWpackages/just-bash/src/interpreter/redirections.ts62async function checkOutputRedirectTarget(CODE
LOWpackages/just-bash/src/interpreter/redirections.ts366async function prepareRedirectionsWithState(CODE
LOWpackages/just-bash/src/interpreter/redirections.ts1087export function createRedirectionTransaction(CODE
LOWpackages/just-bash/src/interpreter/expansion.ts475async function expandWordWithBracesAsync(CODE
LOWpackages/just-bash/src/interpreter/builtin-dispatch.ts110function createRevocableCommandContext(CODE
LOW…-bash/src/interpreter/defense-aware-command-context.ts208export function createDefenseAwareCommandContext(CODE
LOW…ages/just-bash/src/interpreter/assignment-expansion.ts23export async function expandLocalArrayAssignment(CODE
LOW…ages/just-bash/src/interpreter/assignment-expansion.ts268export async function expandScalarAssignmentArg(CODE
LOW…ust-bash/src/interpreter/simple-command-assignments.ts349async function processAssociativeArrayAssignment(CODE
LOW…ust-bash/src/interpreter/simple-command-assignments.ts443async function processIndexedArrayWithKeysAssignment(CODE
LOW…ust-bash/src/interpreter/simple-command-assignments.ts558async function processSimpleArrayAssignment(CODE
LOW…ust-bash/src/interpreter/simple-command-assignments.ts611async function processSubscriptAssignment(CODE
LOW…ages/just-bash/src/interpreter/process-substitution.ts401export async function releaseProcessSubstitutions(CODE
LOWpackages/just-bash/src/interpreter/arithmetic.ts39function createArithmeticResolutionContext(): ArithmeticResolutionContext {CODE
LOWpackages/just-bash/src/interpreter/arithmetic.ts221async function evaluateResolvedArithValue(CODE
LOWpackages/just-bash/src/interpreter/arithmetic.ts414async function evaluateArithmeticInternal(CODE
LOWpackages/just-bash/src/interpreter/arithmetic.ts931async function evalConcatPartToStringAsync(CODE
LOWpackages/just-bash/src/interpreter/builtins/set.ts278function formatOptionsResetCommands(ctx: InterpreterContext): string {CODE
LOW…t-bash/src/interpreter/builtins/variable-assignment.ts226export function clearLocalVarStackForScope(CODE
LOW…bash/src/interpreter/expansion/arith-text-expansion.ts16export async function expandDollarVarsInArithText(CODE
LOW…bash/src/interpreter/expansion/arith-text-expansion.ts132export async function expandSubscriptForAssocArray(CODE
LOW…t-bash/src/interpreter/expansion/indirect-expansion.ts61export async function handleIndirectArrayExpansion(CODE
LOW…t-bash/src/interpreter/expansion/indirect-expansion.ts227async function handleIndirectArraySlicing(CODE
LOW…t-bash/src/interpreter/expansion/indirect-expansion.ts287async function handleIndirectArrayDefaultAlternative(CODE
LOW…t-bash/src/interpreter/expansion/indirect-expansion.ts371export async function handleIndirectInAlternative(CODE
LOW…t-bash/src/interpreter/expansion/indirect-expansion.ts464export async function handleIndirectionWithInnerAlternative(CODE
LOW…bash/src/interpreter/expansion/array-word-expansion.ts44export function handleSimpleArrayExpansion(CODE
LOW…bash/src/interpreter/expansion/array-word-expansion.ts107export function handleNamerefArrayExpansion(CODE
LOW…st-bash/src/interpreter/expansion/pattern-expansion.ts19export function patternHasCommandSubstitution(pattern: string): boolean {CODE
LOW…st-bash/src/interpreter/expansion/pattern-expansion.ts54function findCommandSubstitutionEnd(pattern: string, startIdx: number): number {CODE
LOW…st-bash/src/interpreter/expansion/pattern-expansion.ts105async function executeCommandSubstitutionFromString(CODE
LOW…st-bash/src/interpreter/expansion/pattern-expansion.ts263function expandVariablesInDoubleQuotedPattern(CODE
LOW…st-bash/src/interpreter/expansion/pattern-expansion.ts327export async function expandVariablesInPatternAsync(CODE
LOW…st-bash/src/interpreter/expansion/pattern-expansion.ts457async function expandVariablesInDoubleQuotedPatternAsync(CODE
LOW…s/just-bash/src/interpreter/expansion/parameter-ops.ts109export function assertDefaultAssignmentTarget(parameter: string): void {CODE
LOW…-bash/src/interpreter/expansion/word-glob-expansion.ts218async function handleBraceExpansionResults(CODE
LOW…-bash/src/interpreter/expansion/word-glob-expansion.ts250async function handleArrayExpansionCases(CODE
LOW…-bash/src/interpreter/expansion/word-glob-expansion.ts408function handleVarNamePrefixExpansion(CODE
LOW…-bash/src/interpreter/expansion/word-glob-expansion.ts458async function handlePositionalExpansionCases(CODE
LOW…-bash/src/interpreter/expansion/word-glob-expansion.ts520async function handleUnquotedExpansionCases(CODE
LOW…-bash/src/interpreter/expansion/word-glob-expansion.ts639function findWordProducingExpansion(CODE
LOW…-bash/src/interpreter/expansion/word-glob-expansion.ts678async function expandDoubleQuotedWithWordProducing(CODE
LOW…st-bash/src/interpreter/expansion/array-pattern-ops.ts66export async function handleArrayPatternReplacement(CODE
LOW…st-bash/src/interpreter/expansion/array-pattern-ops.ts168export async function handleArrayPatternRemoval(CODE
LOW…ckages/just-bash/src/interpreter/expansion/variable.ts39function normalizeAssociativeSubscript(CODE
LOW…-bash/src/interpreter/expansion/pattern-replacement.ts7export function applyPatternReplacementBounded(CODE
LOW…ages/just-bash/src/interpreter/expansion/word-split.ts116async function hasMixedQuotedDefaultValue(CODE
LOW…ages/just-bash/src/interpreter/expansion/word-split.ts488async function smartWordSplitWithUnquotedLiterals(CODE
LOW…ckages/just-bash/src/interpreter/expansion/analysis.ts71export function isOperationWordEntirelyQuoted(CODE
LOW…-bash/src/interpreter/expansion/array-prefix-suffix.ts214export async function handleArrayPatternWithPrefixSuffix(CODE
LOW…-bash/src/interpreter/expansion/array-prefix-suffix.ts396export async function handleArrayWithPrefixSuffix(CODE
LOWpackages/just-bash/src/interpreter/expansion/tilde.ts58export function applyAssignmentTildeExpansion(CODE
LOW…t-bash/src/interpreter/expansion/unquoted-expansion.ts189export async function handleUnquotedArrayPatternReplacement(CODE
LOW…t-bash/src/interpreter/expansion/unquoted-expansion.ts372export async function handleUnquotedArrayPatternRemoval(CODE
LOW…t-bash/src/interpreter/expansion/unquoted-expansion.ts511export async function handleUnquotedPositionalPatternRemoval(CODE
LOW…t-bash/src/interpreter/expansion/unquoted-expansion.ts650export async function handleUnquotedPositionalSlicing(CODE
66 more matches not shown…
Verbosity Indicators17 hits · 37 pts
SeverityFileLineSnippetContext
LOW⚡packages/just-bash/src/interpreter/assoc-array.test.ts236 // Step 0: Check declare -p outputCOMMENT
LOW⚡packages/just-bash/src/interpreter/assoc-array.test.ts244 // Step 1: Single quoted assignment & lookupCOMMENT
LOWpackages/just-bash/src/parser/expansion-parser.ts662 // We need to check if this is arithmetic (closes with )) or command sub (closes with ) ))COMMENT
LOW⚡…ust-bash/src/agent-examples/debugging-workflow.test.ts58 // Step 1: Validate orderCOMMENT
LOW⚡…ust-bash/src/agent-examples/debugging-workflow.test.ts61 // Step 2: Check inventoryCOMMENT
LOW⚡…ust-bash/src/agent-examples/debugging-workflow.test.ts64 // Step 3: Process paymentCOMMENT
LOW⚡…ust-bash/src/agent-examples/debugging-workflow.test.ts67 // Step 4: Confirm orderCOMMENT
LOW⚡…ust-bash/src/agent-examples/debugging-workflow.test.ts70 // Step 5: Send notificationCOMMENT
LOWpackages/just-bash/src/commands/find/matcher.ts628 // For expressions with stat-dependent parts, we need to check if theCOMMENT
LOW⚡packages/just-bash/src/commands/tar/bzip2-compress.ts461 // Step 1: RLE1 encodingCOMMENT
LOW⚡packages/just-bash/src/commands/tar/bzip2-compress.ts464 // Step 2: BWTCOMMENT
LOW⚡packages/just-bash/src/commands/tar/bzip2-compress.ts470 // Step 3: Determine symbols in useCOMMENT
LOW⚡packages/just-bash/src/commands/tar/bzip2-compress.ts504 // Step 4: MTFCOMMENT
LOW⚡packages/just-bash/src/commands/tar/bzip2-compress.ts510 // Step 5: RLE2COMMENT
LOW⚡packages/just-bash/src/commands/tar/bzip2-compress.ts520 // Step 6: Build Huffman table(s)COMMENT
LOW⚡…sh/src/fs/read-write-fs/read-write-fs.security.test.ts1163 // Step 2: Try to mv the directory (should be blocked by Fix 2)COMMENT
LOW⚡…sh/src/fs/read-write-fs/read-write-fs.security.test.ts1170 // Step 3: Even if mv somehow succeeded, writing through the symlinkCOMMENT
Structural Annotation Overuse15 hits · 34 pts
SeverityFileLineSnippetContext
LOW⚡packages/just-bash/src/interpreter/assoc-array.test.ts236 // Step 0: Check declare -p outputCOMMENT
LOW⚡packages/just-bash/src/interpreter/assoc-array.test.ts244 // Step 1: Single quoted assignment & lookupCOMMENT
LOW⚡…ust-bash/src/agent-examples/debugging-workflow.test.ts58 // Step 1: Validate orderCOMMENT
LOW⚡…ust-bash/src/agent-examples/debugging-workflow.test.ts61 // Step 2: Check inventoryCOMMENT
LOW⚡…ust-bash/src/agent-examples/debugging-workflow.test.ts64 // Step 3: Process paymentCOMMENT
LOW⚡…ust-bash/src/agent-examples/debugging-workflow.test.ts67 // Step 4: Confirm orderCOMMENT
LOW⚡…ust-bash/src/agent-examples/debugging-workflow.test.ts70 // Step 5: Send notificationCOMMENT
LOW⚡packages/just-bash/src/commands/tar/bzip2-compress.ts461 // Step 1: RLE1 encodingCOMMENT
LOW⚡packages/just-bash/src/commands/tar/bzip2-compress.ts464 // Step 2: BWTCOMMENT
LOW⚡packages/just-bash/src/commands/tar/bzip2-compress.ts470 // Step 3: Determine symbols in useCOMMENT
LOW⚡packages/just-bash/src/commands/tar/bzip2-compress.ts504 // Step 4: MTFCOMMENT
LOW⚡packages/just-bash/src/commands/tar/bzip2-compress.ts510 // Step 5: RLE2COMMENT
LOW⚡packages/just-bash/src/commands/tar/bzip2-compress.ts520 // Step 6: Build Huffman table(s)COMMENT
LOW⚡…sh/src/fs/read-write-fs/read-write-fs.security.test.ts1163 // Step 2: Try to mv the directory (should be blocked by Fix 2)COMMENT
LOW⚡…sh/src/fs/read-write-fs/read-write-fs.security.test.ts1170 // Step 3: Even if mv somehow succeeded, writing through the symlinkCOMMENT
Magic Placeholder Names5 hits · 25 pts
SeverityFileLineSnippetContext
HIGH…/just-bash/src/agent-examples/python-scripting.test.ts421API_KEY=your-api-key-hereCODE
HIGH…s/just-bash/src/agent-examples/config-analysis.test.ts43API_KEY=your-api-key-hereCODE
HIGH…s/just-bash/src/agent-examples/config-analysis.test.ts145API_KEY=your-api-key-hereCODE
HIGH…s/just-bash/src/agent-examples/config-analysis.test.ts206your-api-key-hereCODE
HIGH…s/just-bash/src/agent-examples/config-analysis.test.ts228API_KEY: your-api-key-hereCODE
Fake / Example Data14 hits · 18 pts
SeverityFileLineSnippetContext
LOW⚡examples/custom-command/commands.ts94 * Generate lorem ipsum textCOMMENT
LOW⚡examples/custom-command/commands.ts100 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magnaCODE
LOW⚡examples/custom-command/commands.ts100 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magnaCODE
LOW⚡examples/custom-command/main.ts51 // Lorem ipsumCOMMENT
LOW⚡examples/custom-command/main.ts52 console.log("4. Generate lorem ipsum (2 paragraphs):");CODE
LOW⚡examples/custom-command/main.ts57 console.log("5. Count words in lorem ipsum:");CODE
LOWexamples/custom-command/README.md9- **lorem** - Generate lorem ipsum text (`lorem 3` for 3 paragraphs)CODE
LOW…/just-bash/src/agent-examples/python-scripting.test.ts230 expect(output[0].name).toBe("John Doe");CODE
LOW…t-bash/src/agent-examples/refactoring-workflow.test.ts66 expect(formatUserName('John', 'Doe')).toBe('John Doe');CODE
LOW…t-bash/src/agent-examples/refactoring-workflow.test.ts95/project/src/tests/string.test.ts: expect(formatUserName('John', 'Doe')).toBe('John Doe');CODE
LOW…t-bash/src/agent-examples/refactoring-workflow.test.ts216/project/src/tests/string.test.ts: expect(formatUserName('John', 'Doe')).toBe('John Doe');CODE
LOW…ust-bash/src/commands/sqlite3/sqlite3.fixtures.test.ts195 "sqlite3 -readonly users.db \"INSERT INTO users (name, email, age) VALUES ('Test', 'test@test.com', 99)\"",CODE
LOW…ust-bash/src/commands/sqlite3/sqlite3.fixtures.test.ts215 "sqlite3 users.db \"INSERT INTO users (name, email, age) VALUES ('Test', 'test@test.com', 99)\"",CODE
LOW…ust-bash/src/commands/sqlite3/sqlite3.fixtures.test.ts220 "sqlite3 users.db \"SELECT name FROM users WHERE email = 'test@test.com'\"",CODE
TODO Padding9 hits · 11 pts
SeverityFileLineSnippetContext
LOWpackages/just-bash/src/readme.test.ts515 "/src/app.ts": "// TODO: implement\nexport const x = 1;",CODE
LOW…s/just-bash/src/spec-tests/bash/cases/dbracket.test.sh133# TODO: Add tests for thisCOMMENT
LOW…h/src/agent-examples/text-processing-workflows.test.ts19// TODO: Add error handlingCOMMENT
LOW…kages/just-bash/src/agent-examples/code-review.test.ts17// TODO: Add error handlingCOMMENT
LOW…kages/just-bash/src/agent-examples/code-review.test.ts22 "/project/src/user.ts": `// TODO: Add validationCODE
LOW…kages/just-bash/src/agent-examples/code-review.test.ts66 ).toBe(`/project/src/index.ts:// TODO: Add error handlingCODE
LOW…kages/just-bash/src/agent-examples/code-review.test.ts67/project/src/user.ts:// TODO: Add validationCODE
LOW…kages/just-bash/src/agent-examples/code-review.test.ts87// TODO: Add error handlingCOMMENT
LOW…ages/just-bash/src/commands/grep/grep.advanced.test.ts473 "/src/b.js": "// Regular comment\n// TODO: implement\n",CODE
Excessive Try-Catch Wrapping9 hits · 11 pts
SeverityFileLineSnippetContext
LOW⚡…urity/attacks/exploit-fixtures/python-worker-escape.sh10except Exception:CODE
LOW⚡…urity/attacks/exploit-fixtures/python-worker-escape.sh16except Exception:CODE
LOW⚡…urity/attacks/exploit-fixtures/python-worker-escape.sh25except Exception:CODE
LOW⚡…urity/attacks/exploit-fixtures/python-worker-escape.sh31except Exception:CODE
LOW⚡…es/just-bash/src/commands/python3/python3.http.test.ts184except Exception as e:CODE
LOW⚡…es/just-bash/src/commands/python3/python3.http.test.ts202except Exception as e:CODE
LOW⚡…es/just-bash/src/commands/python3/python3.http.test.ts223except Exception as e:CODE
LOW⚡…ust-bash/src/commands/python3/python3.security.test.ts302except Exception as e:CODE
LOWpackages/just-bash/src/commands/python3/worker.ts1444except Exception as e:CODE
Self-Referential Comments3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUM…ust-bash/src/security/limits/memory-exhaustion.test.ts291 # Create a moderate sized arrayCOMMENT
MEDIUM…bash/src/spec-tests/bash/cases/builtin-process.test.sh18# Create the helper script inline - it uses exec to redirect stdin from here-docCOMMENT
MEDIUM…kages/just-bash/src/spec-tests/bash/cases/loop.test.sh370# Create the test data files inlineCOMMENT
AI Slop Vocabulary3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUM…st-bash/src/spec-tests/bash/cases/builtin-dirs.test.sh174# Can't use the OSH test harness for this becauseCOMMENT
MEDIUM…s/just-bash/src/spec-tests/bash/cases/comments.test.sh3# NOTE: The test harness isn't good for this test; it strips lines that startCOMMENT
MEDIUM…ash/src/spec-tests/bash/cases/spec-harness-bug.test.sh3#### osh-native duplicates stdin - is this a test harness issue?COMMENT
Redundant / Tautological Comments5 hits · 8 pts
SeverityFileLineSnippetContext
LOW…st-bash/src/spec-tests/bash/cases/builtin-kill.test.sh118# Check if at least the HUP flag is reported. The output format of all shellsCOMMENT
LOW…s/just-bash/src/spec-tests/bash/cases/redirect.test.sh153#### Open file on descriptor 3 and write to it many timesCOMMENT
LOW…s/just-bash/src/spec-tests/bash/cases/redirect.test.sh167#### Open file on descriptor 4 and write to it many timesCOMMENT
LOW…ges/just-bash/src/spec-tests/bash/cases/append.test.sh11#### Append array to arrayCOMMENT
LOWpackages/just-bash/src/commands/python3/worker.ts994# Set cwd to host mountCOMMENT