Repository Analysis

vercel-labs/just-bash

Bash for Agents

4.1 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of vercel-labs/just-bash, a TypeScript project with 4,100 GitHub stars. SynthScan v2.0 examined 358,653 lines of code across 1274 source files, recording 643 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 4.1 places this repository in the Likely human-written band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

4.1
Adjusted Score
4.1
Raw Score
100%
Time Factor
2026-08-09
Last Push
4.1K
Stars
TypeScript
Language
358.7K
Lines of Code
1.3K
Files
643
Pattern Hits
2026-08-09
Scan Date
0.14
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 174MEDIUM 50LOW 419

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 643 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Cross-Language Confusion (JS/TS)169 hits · 830 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.ts175 print("no error")CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts177 print("error raised")CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts193 print("success")CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts195 print("network error")CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts214 print("success")CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts216 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.ts124print(data["headers"].get("X-Custom", "not found"))CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts148print(response.status_code)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts149print(response.ok)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts242print(response.status_code)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts266print(data["json"]["key"])CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts293print(response.status_code)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts294print(len(response.text))CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts316print(response.status_code)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts338print(response.status_code)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts360print(response.status_code)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts387print(type(r.content).__name__)CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts388print(list(r.content[:4]))CODE
HIGH…es/just-bash/src/commands/python3/python3.http.test.ts416print("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
109 more matches not shown…
Over-Commented Block232 hits · 232 pts
SeverityFileLineSnippetContext
LOW…website/app/components/terminal-parts/agent-command.ts21 "<path>",COMMENT
LOWpackages/just-bash/src/interpreter/type-command.ts101 }COMMENT
LOWpackages/just-bash/src/interpreter/redirections.ts441 }COMMENT
LOWpackages/just-bash/src/interpreter/redirections.ts821 }COMMENT
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 // The quoted part "AxBxC" is protected from internal splitting.COMMENT
LOW…ages/just-bash/src/interpreter/expansion/word-split.ts301 return joined ? [joined] : [];COMMENT
LOW…ages/just-bash/src/interpreter/expansion/word-split.ts321 let currentWord = "";COMMENT
LOWpackages/just-bash/src/interpreter/helpers/array.ts201 if (word.parts.length < 2) return null;COMMENT
LOWpackages/just-bash/src/security/defense-in-depth-box.ts1101 // Protect process.execPath (string primitive, needs defineProperty)COMMENT
LOWpackages/just-bash/src/parser/lexer.ts1381 let depth = 1;COMMENT
LOWpackages/just-bash/src/parser/lexer.ts1841 // This is important for proper handling by parseWordPartsCOMMENT
LOWpackages/just-bash/src/spec-tests/grep/skips.ts141 // -L option (print files without matches)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
172 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.ts166// ─── String Functions ───────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/builtins.ts512// ─── Math Functions ─────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/builtins.ts597// ─── Unsupported Functions ──────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/builtins.ts611// ─── Printf Formatting ──────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash/src/commands/awk/builtins.ts1007// ─── 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.ts331// ── Grouping Helpers ────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash-executor/src/tool-command.test.ts17// ── camelToKebab ────────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash-executor/src/tool-command.test.ts41// ── parseToolCliArgs ────────────────────────────────────────────COMMENT
MEDIUMpackages/just-bash-executor/src/tool-command.test.ts163// ── 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.ts70// ── Custom discovery plugin tests ───────────────────────────────COMMENT
MEDIUM…kages/just-bash-executor/src/executor-examples.test.ts233// ── Tool approval tests ─────────────────────────────────────────COMMENT
MEDIUM…kages/just-bash-executor/src/executor-examples.test.ts368// ── GraphQL plugin: offline introspection → tool discovery ──────COMMENT
MEDIUM…kages/just-bash-executor/src/executor-examples.test.ts465// ── OpenAPI plugin: static spec → tool discovery ────────────────COMMENT
Hyper-Verbose Identifiers118 hits · 118 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/redirections.ts40async function checkOutputRedirectTarget(CODE
LOWpackages/just-bash/src/interpreter/redirections.ts168export async function processFdVariableRedirections(CODE
LOWpackages/just-bash/src/interpreter/expansion.ts465async function expandWordWithBracesAsync(CODE
LOWpackages/just-bash/src/interpreter/builtin-dispatch.ts104function createRevocableCommandContext(CODE
LOW…-bash/src/interpreter/defense-aware-command-context.ts194export function createDefenseAwareCommandContext(CODE
LOW…ages/just-bash/src/interpreter/assignment-expansion.ts23export async function expandLocalArrayAssignment(CODE
LOW…ages/just-bash/src/interpreter/assignment-expansion.ts264export 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.ts397export 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.ts18export function patternHasCommandSubstitution(pattern: string): boolean {CODE
LOW…st-bash/src/interpreter/expansion/pattern-expansion.ts53function findCommandSubstitutionEnd(pattern: string, startIdx: number): number {CODE
LOW…st-bash/src/interpreter/expansion/pattern-expansion.ts104async function executeCommandSubstitutionFromString(CODE
LOW…st-bash/src/interpreter/expansion/pattern-expansion.ts264function expandVariablesInDoubleQuotedPattern(CODE
LOW…st-bash/src/interpreter/expansion/pattern-expansion.ts328export async function expandVariablesInPatternAsync(CODE
LOW…st-bash/src/interpreter/expansion/pattern-expansion.ts458async function expandVariablesInDoubleQuotedPatternAsync(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.ts63export async function handleArrayPatternReplacement(CODE
LOW…st-bash/src/interpreter/expansion/array-pattern-ops.ts165export async function handleArrayPatternRemoval(CODE
LOW…ckages/just-bash/src/interpreter/expansion/variable.ts34function normalizeAssociativeSubscript(CODE
LOW…-bash/src/interpreter/expansion/pattern-replacement.ts7export function applyPatternReplacementBounded(CODE
LOW…ages/just-bash/src/interpreter/expansion/word-split.ts111async function hasMixedQuotedDefaultValue(CODE
LOW…ages/just-bash/src/interpreter/expansion/word-split.ts483async function smartWordSplitWithUnquotedLiterals(CODE
LOW…ckages/just-bash/src/interpreter/expansion/analysis.ts71export function isOperationWordEntirelyQuoted(CODE
LOW…-bash/src/interpreter/expansion/array-prefix-suffix.ts193export async function handleArrayPatternWithPrefixSuffix(CODE
LOW…-bash/src/interpreter/expansion/array-prefix-suffix.ts388export async function handleArrayWithPrefixSuffix(CODE
LOWpackages/just-bash/src/interpreter/expansion/tilde.ts58export function applyAssignmentTildeExpansion(CODE
LOW…t-bash/src/interpreter/expansion/unquoted-expansion.ts188export async function handleUnquotedArrayPatternReplacement(CODE
LOW…t-bash/src/interpreter/expansion/unquoted-expansion.ts371export async function handleUnquotedArrayPatternRemoval(CODE
LOW…t-bash/src/interpreter/expansion/unquoted-expansion.ts523export async function handleUnquotedPositionalPatternRemoval(CODE
LOW…t-bash/src/interpreter/expansion/unquoted-expansion.ts662export async function handleUnquotedPositionalSlicing(CODE
LOW…t-bash/src/interpreter/expansion/unquoted-expansion.ts839export async function handleUnquotedSimplePositional(CODE
LOW…t-bash/src/interpreter/expansion/unquoted-expansion.ts943export async function handleUnquotedSimpleArray(CODE
LOW…t-bash/src/interpreter/expansion/unquoted-expansion.ts1059export function handleUnquotedVarNamePrefix(CODE
58 more matches not shown…
Verbosity Indicators17 hits · 37 pts
SeverityFileLineSnippetContext
LOWpackages/just-bash/src/interpreter/assoc-array.test.ts236 // Step 0: Check declare -p outputCOMMENT
LOWpackages/just-bash/src/interpreter/assoc-array.test.ts244 // Step 1: Single quoted assignment & lookupCOMMENT
LOWpackages/just-bash/src/parser/expansion-parser.ts645 // 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
LOWpackages/just-bash/src/commands/tar/bzip2-compress.ts461 // Step 1: RLE1 encodingCOMMENT
LOWpackages/just-bash/src/commands/tar/bzip2-compress.ts464 // Step 2: BWTCOMMENT
LOWpackages/just-bash/src/commands/tar/bzip2-compress.ts470 // Step 3: Determine symbols in useCOMMENT
LOWpackages/just-bash/src/commands/tar/bzip2-compress.ts504 // Step 4: MTFCOMMENT
LOWpackages/just-bash/src/commands/tar/bzip2-compress.ts510 // Step 5: RLE2COMMENT
LOWpackages/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
LOWpackages/just-bash/src/interpreter/assoc-array.test.ts236 // Step 0: Check declare -p outputCOMMENT
LOWpackages/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
LOWpackages/just-bash/src/commands/tar/bzip2-compress.ts461 // Step 1: RLE1 encodingCOMMENT
LOWpackages/just-bash/src/commands/tar/bzip2-compress.ts464 // Step 2: BWTCOMMENT
LOWpackages/just-bash/src/commands/tar/bzip2-compress.ts470 // Step 3: Determine symbols in useCOMMENT
LOWpackages/just-bash/src/commands/tar/bzip2-compress.ts504 // Step 4: MTFCOMMENT
LOWpackages/just-bash/src/commands/tar/bzip2-compress.ts510 // Step 5: RLE2COMMENT
LOWpackages/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
LOWexamples/custom-command/commands.ts94 * Generate lorem ipsum textCOMMENT
LOWexamples/custom-command/commands.ts100 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magnaCODE
LOWexamples/custom-command/commands.ts100 "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magnaCODE
LOWexamples/custom-command/main.ts51 // Lorem ipsumCOMMENT
LOWexamples/custom-command/main.ts52 console.log("4. Generate lorem ipsum (2 paragraphs):");CODE
LOWexamples/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.ts448 "/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.ts176except Exception as e:CODE
LOW…es/just-bash/src/commands/python3/python3.http.test.ts194except Exception as e:CODE
LOW…es/just-bash/src/commands/python3/python3.http.test.ts215except 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.ts1440except 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