AI Slop Code Risk Monitor

crynta/terax-ai

SlopCodeMonitor badge for crynta/terax-ai Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Lightweight (7MB) terminal-first AI-native development environment

1.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for crynta/terax-ai, a TypeScript project with 9,431 GitHub stars. SynthScan examined 192,101 lines of code across 955 source files, recording 179 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 1.6 (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.6
Adjusted Signal
1.6
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
9.4K
Stars
TypeScript
Language
192.1K
Lines of Code
955
Files
179
Pattern Hits
2026-10-31
Scan Date
0.01
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 3.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.4/100 · LOW

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

Agent Over-Engineering Ratio 6.6/100 · LOW

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

PR Review Velocity Impact 7.7/100 · LOW

Which changes need focused human review? 179 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 1HIGH 4MEDIUM 50LOW 124

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 179 distinct pattern matches across 10 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.

Decorative Section Separators49 hits · 154 pts
SeverityFileLineSnippetContext
MEDIUMscripts/renderer-profile/run.py184# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/run.py186# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/run.py300# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/run.py302# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/run.py417# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/run.py419# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/lab_report.py16# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/lab_report.py18# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/lab_report.py139# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/lab_report.py141# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/lab_report.py234# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/lab_report.py236# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/lab_report.py462# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/lab_report.py464# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/lab_report.py654# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/renderer-profile/lab_report.py656# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/run.py171# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/run.py173# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/run.py209# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/run.py211# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/run.py244# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/run.py246# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/app_report.py58# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/app_report.py60# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/app_report.py183# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/app_report.py185# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/app_report.py224# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/app_report.py226# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/app_report.py315# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/app_report.py317# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/app_report.py675# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/app_report.py677# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/app_report.py820# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/app-lab/app_report.py822# ---------------------------------------------------------------------------------------------COMMENT
MEDIUMsrc-tauri/src/modules/shell/mod.rs129// ──────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc-tauri/src/modules/shell/mod.rs131// ──────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/modules/ai/config.ts191 // ── OpenAI ────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/modules/ai/config.ts283 // ── Anthropic ─────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/modules/ai/config.ts354 // ── Google ────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/modules/ai/config.ts410 // ── xAI ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/modules/ai/config.ts468 // ── DeepSeek ──────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/modules/ai/config.ts497 // ── Mistral ────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/modules/ai/config.ts526 // ── Cerebras (autocomplete-tier) ──────────────────────────────────────────COMMENT
MEDIUMsrc/modules/ai/config.ts555 // ── Groq (autocomplete-tier) ──────────────────────────────────────────────COMMENT
MEDIUM⚡src/modules/ai/config.ts584 // ── OpenRouter (gateway; model id is user-supplied at runtime) ────────────COMMENT
MEDIUM⚡src/modules/ai/config.ts594 // ── Generic OpenAI-compatible (user-defined endpoint) ─────────────────────COMMENT
MEDIUM⚡src/modules/ai/config.ts604 // ── LM Studio (local; model id is user-supplied at runtime) ───────────────COMMENT
MEDIUM⚡src/modules/ai/config.ts614 // ── MLX (local; Apple-silicon; model id is user-supplied at runtime) ──────COMMENT
MEDIUM⚡src/modules/ai/config.ts624 // ── Ollama (local; model id is user-supplied at runtime) ──────────────────COMMENT
Hyper-Verbose Identifiers78 hits · 81 pts
SeverityFileLineSnippetContext
LOWscripts/renderer-profile/workloads.ts96function installCanvasInstrumentation(): void {CODE
LOWsrc/app/hooks/useAppCloseGuard.ts52export function canOptOutOfAppClosePrompt(blocker: AppCloseBlocker): boolean {CODE
LOWsrc/modules/sidebar/useSidebarPanel.ts18export function shouldPersistSidebarWidth(CODE
LOW⚡src/modules/settings/store.ts724export async function setOpenaiCompatibleBaseURL(value: string): Promise<void> {CODE
LOW⚡src/modules/settings/store.ts728export async function setOpenaiCompatibleModelId(value: string): Promise<void> {CODE
LOW⚡src/modules/settings/store.ts732export async function setOpenaiCompatibleContextLimit(CODE
LOWsrc/modules/settings/store.ts779export function clampEditorWordWrapColumn(value: number): number {CODE
LOWsrc/modules/settings/store.ts798export async function setExplorerGitDecorations(value: boolean): Promise<void> {CODE
LOWsrc/modules/settings/store.ts816export function coerceTerminalCursorStyle(value: unknown): TerminalCursorStyle {CODE
LOWsrc/modules/settings/store.ts874export async function setConfirmCloseRunningTerminal(CODE
LOWsrc/modules/settings/store.ts923export async function setEditorCustomFormatCommand(CODE
LOWsrc/modules/settings/store.ts933export async function setAgentNotificationSound(value: boolean): Promise<void> {CODE
LOWsrc/modules/statusbar/WorkspaceEnvSelector.tsx27function WorkspaceEnvSelectorWindows({ onSelect }: Props) {CODE
LOWsrc/modules/terminal/backend/selection.ts26export function setSelectedTerminalBackend(kind: TerminalBackendKind): void {CODE
LOWsrc/modules/terminal/lib/terminalLinks.ts3export function createTerminalLinkHandler(focus: () => void) {CODE
LOWsrc/modules/terminal/lib/terminalDiagnosticsEnabled.ts1export function terminalDiagnosticsEnabled(): boolean {CODE
LOWsrc/modules/terminal/lib/useTerminalFileDrop.ts36export function createTerminalPathDropTarget({CODE
LOWsrc/modules/terminal/lib/ptyPresentation.ts196export function ptyPresentationDiagnostics() {CODE
LOWsrc/modules/terminal/lib/keymap.ts8export function terminalWordNavigationSequence(event: TerminalKeyEvent): string | null {CODE
LOWsrc/modules/terminal/lib/keymap.ts17export function terminalLineNavigationSequence(CODE
LOWsrc/modules/terminal/lib/agentActivity.ts139export function ensureAgentActivityListener(): Promise<void> {CODE
LOWsrc/modules/terminal/lib/terminalResizeInteraction.ts35export function beginTerminalResizeInteraction(token: InteractionToken): void {CODE
LOW⚡src/modules/terminal/lib/terminalResizeInteraction.ts50export function endTerminalResizeInteraction(token: InteractionToken): void {CODE
LOW⚡src/modules/terminal/lib/terminalResizeInteraction.ts58export function terminalResizeInteractionActive(): boolean {CODE
LOW⚡src/modules/terminal/lib/terminalResizeInteraction.ts62export function subscribeTerminalResizeInteraction(CODE
LOWsrc/modules/terminal/lib/terminalDiagnostics.ts41export function installTerminalDiagnostics(): void {CODE
LOWsrc/modules/terminal/lib/terminalResizeGesture.ts100export function resetTerminalResizeGestureForTest(now?: () => number): void {CODE
LOWsrc/modules/terminal/ghostty/sessionInitialization.ts7export function initializeSessionGeneration(CODE
LOW…odules/terminal/ghostty/AdaptedGhosttyTerminalModel.ts1261function scrollPositionFromScrollbar(scrollbar: {CODE
LOWsrc/modules/terminal/ghostty/coreCompatibility.test.ts311function runTerminalLifecycleCycle(): void {CODE
LOWsrc/modules/terminal/ghostty/windowPresentation.ts25export function terminalWindowPresentation(): WindowPresentation {CODE
LOWsrc/modules/terminal/ghostty/windowPresentation.ts33export function subscribeWindowPresentation(CODE
LOWsrc/modules/terminal/ghostty/windowPresentation.ts51export function windowPresentationDiagnostics() {CODE
LOWsrc/modules/terminal/ghostty/GhosttyCoreRuntime.ts306export function ghosttyCoreRuntimeDiagnostics(): GhosttyRuntimeDiagnostics | null {CODE
LOW…/modules/terminal/ghostty/useGhosttyTerminalSession.ts118export function useGhosttyTerminalSession({CODE
LOW…/modules/terminal/ghostty/useGhosttyTerminalSession.ts378export async function ghosttyLeafHasForegroundProcess(CODE
LOW…/modules/terminal/ghostty/useGhosttyTerminalSession.ts446export function ghosttySessionDiagnostics() {CODE
LOW…/modules/terminal/ghostty/useGhosttyTerminalSession.ts464export function ghosttySessionResourceTotals() {CODE
LOW…/modules/terminal/ghostty/useGhosttyTerminalSession.ts598async function initializeSessionGeneration(CODE
LOW…/modules/terminal/ghostty/useGhosttyTerminalSession.ts952function createWebGlFallbackSurface(CODE
LOWsrc/modules/terminal/ghostty/gpu/GestureBacking.ts77export function measureGestureBackingEnvironment(CODE
LOW…/modules/terminal/ghostty/gpu/WebGpuTerminalRuntime.ts1219export function webGpuTerminalRuntimeDiagnostics(): WebGpuRuntimeStats | null {CODE
LOWsrc/modules/terminal/ghostty/gpu/WebGpuCellBuffer.ts37export function compactWebGpuCellCapacity(CODE
LOWsrc/modules/terminal/ghostty/gpu/GcPressure.ts152export function gcPressureOptionsFromStorage(): GcPressureOptions {CODE
LOWsrc/modules/terminal/ghostty/gpu/builtin/boxDrawing.ts293export function diagonalUpperRightToLowerLeft(CODE
LOWsrc/modules/terminal/ghostty/gpu/builtin/boxDrawing.ts309export function diagonalUpperLeftToLowerRight(CODE
LOWsrc/modules/terminal/ghostty/core/terminalActions.ts5export function clearTerminalBufferSequence(CODE
LOW…modules/terminal/ghostty/webgl/WebGlTerminalRuntime.ts407export function webGlTerminalRuntimeDiagnostics(): WebGlRuntimeStats | null {CODE
LOWsrc/modules/terminal/ghostty/webgl/WebGlCellRenderer.ts1325function writeNormalizedPackedColor(CODE
LOW…minal/ghostty/selection/TerminalSelectionController.ts315export function shouldStartTerminalSelection(CODE
LOWsrc/modules/agents/lib/launcher.ts64export function validateAgentLaunchCommand(CODE
LOWsrc/modules/agents/lib/launcher.ts84export function normalizeAgentLaunchCommands(CODE
LOWsrc/modules/agents/lib/review.ts41export function maybeTriggerManagedReview(leafId: number): void {CODE
LOWsrc/modules/agents/lib/review.ts52export function firePendingReviewForSession(sessionId: string): void {CODE
LOWsrc/modules/agents/lib/notificationGate.ts13export function createAgentNotificationGate(CODE
LOWsrc/modules/agents/lib/delivery.ts3export function resolveAgentNotificationDelivery({CODE
LOWsrc/modules/agents/lib/sound.ts41export function playAgentNotificationSound(): void {CODE
LOWsrc/modules/explorer/lib/useExplorerDnd.ts33export function resolveExplorerMoveTarget(CODE
LOWsrc/modules/explorer/lib/gitStatusUtils.ts55export function bubbleUpDirectoryStatuses(CODE
LOWsrc/modules/lsp/lib/sessionManager.ts158function getOrCreateSession(CODE
18 more matches not shown…
Over-Commented Block24 hits · 24 pts
SeverityFileLineSnippetContext
LOWvite.config.ts181 "console.trace",COMMENT
LOWscripts/renderer-profile/Lab.swift1import CocoaCOMMENT
LOWscripts/renderer-profile/suite.sh1#!/bin/bashCOMMENT
LOWsrc-tauri/src/modules/ai_sessions.rs1//! Conversation message files, one atomically replaced file per session.COMMENT
LOWsrc-tauri/src/modules/ipc_body.rs1//! Raw IPC request bodies.COMMENT
LOWsrc-tauri/src/modules/bench.rs1//! Real-application benchmark support ("app lab"). Compiled only with `--features bench`.COMMENT
LOWsrc-tauri/src/modules/secrets.rs1//! Secret storage with platform-appropriate backends.COMMENT
LOWsrc-tauri/src/modules/net/clients.rs1//! Cached `reqwest` clients for the AI proxy.COMMENT
LOWsrc-tauri/src/modules/pty/session.rs141pub(super) fn drop_session(session: Arc<Session>) {COMMENT
LOWsrc-tauri/src/modules/pty/hub.rs1//! The PTY transport hub: one thread for the whole process, serving everyCOMMENT
LOWsrc-tauri/src/modules/pty/protocol.rs1//! The `terax-pty` custom URI scheme: the HTTP-shaped edge of the PTY hub.COMMENT
LOWsrc-tauri/src/modules/pty/output.rs1//! Byte-based flow-control credit for one PTY's output stream.COMMENT
LOWsrc-tauri/src/modules/pty/presentation.rs21/// otherwise runs in lockstep with the poll round trip; at 256 KiB a 16 MiBCOMMENT
LOWsrc-tauri/src/modules/pty/wire.rs1//! Binary framing for the multiplexed `terax-pty` stream. Pure andCOMMENT
LOWsrc-tauri/src/modules/fs/index.rs1//! Per-root file-list cache behind `fs_search` and `fs_list_files`.COMMENT
LOWsrc-tauri/src/modules/fs/watch/macos.rs1//! FSEvents backend.COMMENT
LOWsrc-tauri/src/modules/fs/watch/plan.rs461fn trim_separator(path: &[u8]) -> &[u8] {COMMENT
LOWsrc-tauri/src/modules/git/untracked.rs1//! Untracked directories in the changes list.COMMENT
LOWsrc/modules/git-history/lib/graph.ts1// Lane-based graph layout for a linear git log.COMMENT
LOWsrc/modules/terminal/lib/ptyWire.ts1// Binary framing for the multiplexed `terax-pty` stream. MirrorsCOMMENT
LOWsrc/modules/explorer/InlineInput.tsx21 const [value, setValue] = useState(initial);COMMENT
LOWsrc/modules/theme/livePageResize.ts1// Page tiles during a window drag (WebKit / macOS).COMMENT
LOWsrc/modules/theme/windowActivity.ts1// "Is anyone looking at this window?" - one answer for the whole webview.COMMENT
LOWsrc/modules/editor/AiDiffPane.tsx41 // background:COMMENT
Empty Error Handlers4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHscripts/renderer-profile/run.py493except OSError:CODE
HIGHscripts/app-lab/run.py504except ProcessLookupError:CODE
HIGHscripts/app-lab/run.py624except subprocess.TimeoutExpired:CODE
HIGHscripts/app-lab/run.py282except ValueError:CODE
Deep Nesting11 hits · 11 pts
SeverityFileLineSnippetContext
LOWscripts/renderer-profile/procstats.py201CODE
LOWscripts/renderer-profile/lab_report.py282CODE
LOWscripts/renderer-profile/lab_report.py515CODE
LOWscripts/ipc-profile/run.py48CODE
LOWscripts/app-lab/run.py214CODE
LOWscripts/app-lab/run.py411CODE
LOWscripts/app-lab/app_report.py253CODE
LOWscripts/app-lab/app_report.py324CODE
LOWscripts/app-lab/app_report.py365CODE
LOWscripts/app-lab/app_report.py439CODE
LOWscripts/app-lab/app_report.py556CODE
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICAL…les/terminal/ghostty/gpu/WebGpuTerminalSurface.test.ts286 expect(h.atlas.resolve.mock.calls.map(([text]) => text)).toEqual(["b"]);CODE
Fake / Example Data6 hits · 6 pts
SeverityFileLineSnippetContext
LOWscripts/terminal-visual/main.ts286 lines.push("selected line one: lorem ipsum dolor sit amet");CODE
LOWscripts/terminal-visual/main.ts286 lines.push("selected line one: lorem ipsum dolor sit amet");CODE
LOWscripts/terminal-visual/main.ts562 return `${colorize(`token ${tick}`, 33 + (tick % 8))} lorem ipsum dolor sit amet consectetur adipiscing elit ${ticCODE
LOWscripts/terminal-visual/main.ts562 return `${colorize(`token ${tick}`, 33 + (tick % 8))} lorem ipsum dolor sit amet consectetur adipiscing elit ${ticCODE
LOWscripts/renderer-profile/workloads.ts952 text += `\x1b[3${line % 8}m${String(line).padStart(6, "0")}\x1b[0m lorem ipsum dolor sit amet consectetur adipisciCODE
LOWscripts/renderer-profile/workloads.ts952 text += `\x1b[3${line % 8}m${String(line).padStart(6, "0")}\x1b[0m lorem ipsum dolor sit amet consectetur adipisciCODE
Excessive Try-Catch Wrapping4 hits · 4 pts
SeverityFileLineSnippetContext
LOWscripts/renderer-profile/run.py161 except Exception:CODE
LOWscripts/renderer-profile/run.py515 except Exception as error: # a partial report is still worth keepingCODE
LOWscripts/app-lab/run.py147 except Exception:CODE
LOWscripts/app-lab/run.py645 except Exception as error:CODE
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMsrc/modules/theme/surfaceFrame.ts26 // Keep animating until the still is ready, so freezing is seamless insteadCOMMENT
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/renderer-profile/procstats.py245 def set_members(self, members: dict[int, str]) -> None:CODE