AI Slop Code Risk Monitor

siteboon/claudecodeui

SlopCodeMonitor badge for siteboon/claudecodeui Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Use Claude Code, OpenCode, Cursor CLI, and Codex on mobile and web with CloudCLI (aka Claude Code UI). CloudCLI is a free open source webui/GUI that helps you manage your Claude Code session and projects remotely.

1.7 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for siteboon/claudecodeui, a TypeScript project with 14,368 GitHub stars. SynthScan examined 240,516 lines of code across 1037 source files, recording 358 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 1.7 (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.7
Adjusted Signal
1.7
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
14.4K
Stars
TypeScript
Language
240.5K
Lines of Code
1.0K
Files
358
Pattern Hits
2026-10-31
Scan Date
0.00
HC Hit Rate

Risk Review · Payload v1

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

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

Cognitive Ownership Risk 4.9/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.4/100 · LOW

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

Agent Over-Engineering Ratio 5.1/100 · LOW

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

PR Review Velocity Impact 8.0/100 · LOW

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

What These Metrics Mean

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

Pattern-Signal History

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

Severity Breakdown

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

CRITICAL 0HIGH 2MEDIUM 16LOW 340

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 358 distinct pattern matches across 6 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.

Hyper-Verbose Identifiers209 hits · 210 pts
SeverityFileLineSnippetContext
LOWserver/load-env.ts9function getBootstrapApplicationRoot(importMetaUrl: string) {CODE
LOWserver/shared/image-attachments.ts58export function normalizeAttachmentDescriptors(attachments: unknown): ChatAttachmentDescriptor[] {CODE
LOWserver/shared/image-attachments.ts92export function normalizeImageDescriptors(images: unknown): ImageAttachmentDescriptor[] {CODE
LOWserver/shared/image-attachments.ts102export function isImageAttachmentDescriptor(descriptor: ChatAttachmentDescriptor): boolean {CODE
LOWserver/shared/image-attachments.ts259function parseNumberedImageEntries(inner: string): ParsedImageAttachment[] {CODE
LOWserver/shared/utils.ts285function stripWindowsLongPathPrefix(inputPath: string): string {CODE
LOWserver/shared/utils.ts297function shouldUseWindowsPathNormalization(inputPath: string): boolean {CODE
LOWserver/shared/utils.ts686export function buildDefaultProviderCurrentActiveModel(CODE
LOWserver/shared/utils.ts706export function isPlaceholderProviderModel(model: string): boolean {CODE
LOWserver/shared/utils.ts848export function addUniqueProviderSkillSource(CODE
LOWserver/shared/utils.ts873export async function findProviderSkillMarkdownFiles(CODE
LOWserver/shared/utils.ts941export async function readProviderSkillMarkdownDefinition(CODE
LOWserver/shared/utils.ts958export function readProviderSkillMarkdownDefinitionFromContent(CODE
LOWserver/shared/utils.ts1000export function normalizeProviderTimestamp(value: unknown): string {CODE
LOWserver/shared/utils.ts1160export function sanitizeLeafDirectoryName(inputName: string, label = 'directory name'): string {CODE
LOWserver/shared/utils.ts1188export async function findFilesRecursivelyCreatedAfter(CODE
LOWserver/shared/utils.ts1357export function isClaudeNonTurnMessageRow(row: AnyRecord): boolean {CODE
LOWserver/shared/utils.ts1375export function flattenPromptForWindowsShell(prompt: string): string {CODE
LOWserver/shared/claude-cli-path.ts35function resolveClaudeWrapperBinary(CODE
LOWserver/shared/claude-cli-path.ts79function resolveWindowsClaudeExecutablePath(CODE
LOWserver/shared/claude-cli-path.ts139export function resolveClaudeCodeExecutablePath(CODE
LOWserver/shared/message-unification.ts93function readAnswersFromAcknowledgement(content: string): Record<string, string> {CODE
LOWserver/shared/message-unification.ts385export function prepareTranscriptMessages(messages: NormalizedMessage[]): NormalizedMessage[] {CODE
LOWserver/modules/database/connection.ts45function resolveLegacyDatabasePath(): string {CODE
LOWserver/modules/database/repositories/sessions.db.ts67function normalizeProjectPathForProvider(provider: string, projectPath: string): string {CODE
LOW…ules/database/repositories/notification-preferences.ts38function normalizeNotificationPreferences(value: unknown): NotificationPreferences {CODE
LOWserver/modules/database/repositories/projects.db.ts8function normalizeProjectDisplayName(projectPath: string, customProjectName: string | null): string {CODE
LOW…websocket/services/session-upsert-broadcast.service.ts21async function buildSessionUpsertedEvent(CODE
LOW…websocket/services/session-upsert-broadcast.service.ts93export async function broadcastSessionUpsertedBatch(CODE
LOW…r/modules/websocket/services/chat-websocket.service.ts34export function filterAttachmentsToUploadStore(CODE
LOW…r/modules/websocket/services/chat-websocket.service.ts59export function filterImagesToUploadStore(CODE
LOW…/modules/websocket/services/shell-websocket.service.ts106function shouldAutoOpenUrlFromOutput(value: string): boolean {CODE
LOW…/modules/websocket/services/shell-websocket.service.ts387function ensureClaudeThemeSettingsFile(theme: string): string | null {CODE
LOW…/modules/websocket/services/shell-websocket.service.ts479function prioritizeUserNpmGlobalBin(env: NodeJS.ProcessEnv): { key: string; value: string | undefined } {CODE
LOWserver/modules/taskmaster/taskmaster.routes.ts39function broadcastTaskMasterUpdate(type, projectId, payloadKey, payload) {CODE
LOWserver/modules/taskmaster/taskmaster.routes.ts52function broadcastTaskMasterProjectUpdate(projectId, taskMasterData) {CODE
LOWserver/modules/taskmaster/taskmaster.routes.ts61function broadcastTaskMasterTasksUpdate(projectId, tasksData) {CODE
LOWserver/modules/taskmaster/taskmaster.routes.ts112 async function checkTaskMasterInstallation() {CODE
LOWserver/modules/plugins/plugin-process.service.ts200export async function startEnabledPluginServers() {CODE
LOWserver/modules/plugins/plugin-git.service.ts178export function stopPluginGitOnServerExit(gitProcess: ChildProcess): void {CODE
LOWserver/modules/plugins/plugin-git.service.ts234export function createPluginGitSpawnError(action: PluginGitAction, error: NodeJS.ErrnoException): AppError {CODE
LOWserver/modules/projects/project-clone.routes.ts16function requireAuthenticatedUserId(req: Request): number | string {CODE
LOWserver/modules/projects/projects.routes.ts34function readOptionalNumericQueryValue(value: unknown): number | null {CODE
LOW…er/modules/projects/services/project-delete.service.ts7function uniqueJsonlPathsFromSessions(CODE
LOW…er/modules/projects/services/project-delete.service.ts44export async function deleteSessionJsonlFilesForProjectPath(projectPath: string): Promise<void> {CODE
LOW…ver/modules/projects/services/project-clone.service.ts109function resolveCloneFailureMessage(lastError: string): string {CODE
LOW…jects/services/projects-with-sessions-fetch.service.ts110function normalizeSessionPagination(options: SessionPaginationOptions = {}): { limit: number; offset: number } {CODE
LOW…jects/services/projects-with-sessions-fetch.service.ts130function readProjectSessionsIncludingArchived(projectPath: string): ProjectSessionsPageResult {CODE
LOW…jects/services/projects-with-sessions-fetch.service.ts143function readProjectSessionsPageByPath(CODE
LOW…jects/services/projects-with-sessions-fetch.service.ts248export async function getArchivedProjectsWithSessions(CODE
LOW…les/projects/services/project-clone-request.service.ts31export function createPendingCloneRequests(ttlMs: number): PendingCloneRequests {CODE
LOW…rver/modules/projects/services/project-star.service.ts33export function applyLegacyStarredProjectIds(projectIds: string[]): ApplyLegacyStarredProjectIdsResult {CODE
LOWserver/modules/providers/tests/claude-sessions.test.ts80async function writeClaudeSubagentSession(projectDirectory: string): Promise<string> {CODE
LOWserver/modules/providers/tests/claude-sessions.test.ts258async function useQueueOperationNotification(CODE
LOWserver/modules/providers/tests/claude-sessions.test.ts715async function writeClaudeWorkflowSession(CODE
LOWserver/modules/providers/tests/claude-sessions.test.ts1579async function readConcurrentlyForkedHistory(rows: object[]): Promise<unknown[]> {CODE
LOW…ules/providers/list/cursor/cursor-sessions.provider.ts116function extractCursorToolResultContent(item: AnyRecord): string {CODE
LOW…dules/providers/list/claude/claude-runtime.provider.ts565function readReportedContextWindow(sdkMessage: AnyRecord, mainModel: string | null): number | null {CODE
LOW…dules/providers/list/claude/claude-runtime.provider.ts673function extractCumulativeTokenBudget(rawMessage: unknown, reportedContextWindow?: number | null): TokenBudget | null {CODE
LOW…dules/providers/list/claude/claude-runtime.provider.ts785export function createBackgroundWorkTracker() {CODE
149 more matches not shown…
Fake / Example Data117 hits · 119 pts
SeverityFileLineSnippetContext
LOW…/modules/settings/tabs/git-settings/GitSettingsTab.tsx40 placeholder="John Doe"CODE
LOWsrc/modules/i18n/locales/he/chat.json127 "placeholder": "/ לפקודות, @ לקבצים, או כל שאלה ל-{{provider}}…",CODE
LOWsrc/modules/i18n/locales/he/settings.json316 "placeholder": "שם מפתח ה-API (למשל, Production Server)",CODE
LOW⚡src/modules/i18n/locales/he/settings.json467 "placeholder": "למשל, \"Bash(git log:*)\" או \"Write\"",CODE
LOW⚡src/modules/i18n/locales/he/settings.json474 "placeholder": "למשל, \"Bash(rm:*)\"",CODE
LOW⚡src/modules/i18n/locales/he/settings.json480 "placeholder": "למשל, \"Shell(ls)\" או \"Shell(git status)\"",CODE
LOW⚡src/modules/i18n/locales/he/settings.json487 "placeholder": "למשל, \"Shell(rm -rf)\" או \"Shell(sudo)\"",CODE
LOWsrc/modules/i18n/locales/he/auth.json52 "gitNamePlaceholder": "John Doe",CODE
LOWsrc/modules/i18n/locales/he/tasks.json71 "placeholder": "חיפוש משימות…"CODE
LOWsrc/modules/i18n/locales/he/git.json145 "placeholder": "הודעה (Ctrl+Enter לביצוע commit)",CODE
LOWsrc/modules/i18n/locales/ja/chat.json121 "placeholder": "/ でコマンド、@ でファイル指定、または {{provider}} に何でも聞いてください...",CODE
LOWsrc/modules/i18n/locales/ja/settings.json272 "placeholder": "APIキーの名前(例: 本番サーバー)",CODE
LOWsrc/modules/i18n/locales/ja/settings.json407 "placeholder": "例: \"Bash(git log:*)\" または \"Write\"",CODE
LOWsrc/modules/i18n/locales/ja/settings.json414 "placeholder": "例: \"Bash(rm:*)\"",CODE
LOWsrc/modules/i18n/locales/ja/settings.json439 "placeholder": "例: \"Shell(ls)\" または \"Shell(git status)\"",CODE
LOWsrc/modules/i18n/locales/ja/settings.json446 "placeholder": "例: \"Shell(rm -rf)\" または \"Shell(sudo)\"",CODE
LOWsrc/modules/i18n/locales/ja/tasks.json71 "placeholder": "タスクを検索..."CODE
LOWsrc/modules/i18n/locales/it/chat.json127 "placeholder": "Digita / per i comandi, @ per i file, o chiedi qualcosa a {{provider}}...",CODE
LOWsrc/modules/i18n/locales/it/settings.json272 "placeholder": "Nome chiave API (es. Server produzione)",CODE
LOWsrc/modules/i18n/locales/it/settings.json407 "placeholder": "es. \"Bash(git log:*)\" o \"Write\"",CODE
LOWsrc/modules/i18n/locales/it/settings.json414 "placeholder": "es. \"Bash(rm:*)\"",CODE
LOWsrc/modules/i18n/locales/it/settings.json439 "placeholder": "es. \"Shell(ls)\" o \"Shell(git status)\"",CODE
LOWsrc/modules/i18n/locales/it/settings.json446 "placeholder": "es. \"Shell(rm -rf)\" o \"Shell(sudo)\"",CODE
LOWsrc/modules/i18n/locales/it/tasks.json71 "placeholder": "Cerca attività..."CODE
LOWsrc/modules/i18n/locales/cs/chat.json163 "placeholder": "Napište / pro příkazy, @ pro soubory nebo dotaz, na který odpoví {{provider}}...",CODE
LOWsrc/modules/i18n/locales/cs/settings.json288 "placeholder": "Název API klíče (např. Produkční server)",CODE
LOWsrc/modules/i18n/locales/cs/settings.json426 "placeholder": "např. \"Bash(git log:*)\" nebo \"Write\"",CODE
LOWsrc/modules/i18n/locales/cs/settings.json433 "placeholder": "např. \"Bash(rm:*)\"",CODE
LOWsrc/modules/i18n/locales/cs/settings.json458 "placeholder": "např. \"Shell(ls)\" nebo \"Shell(git status)\"",CODE
LOWsrc/modules/i18n/locales/cs/settings.json465 "placeholder": "např. \"Shell(rm -rf)\" nebo \"Shell(sudo)\"",CODE
LOWsrc/modules/i18n/locales/cs/tasks.json71 "placeholder": "Hledat úkoly..."CODE
LOWsrc/modules/i18n/locales/cs/git.json129 "placeholder": "Zpráva (Ctrl+Enter pro commit)",CODE
LOWsrc/modules/i18n/locales/ru/chat.json139 "placeholder": "Введите / для команд, @ для файлов, или спросите {{provider}} что угодно...",CODE
LOWsrc/modules/i18n/locales/ru/settings.json272 "placeholder": "Имя API ключа (например, Продакшн сервер)",CODE
LOWsrc/modules/i18n/locales/ru/settings.json407 "placeholder": "например, \"Bash(git log:*)\" или \"Write\"",CODE
LOWsrc/modules/i18n/locales/ru/settings.json414 "placeholder": "например, \"Bash(rm:*)\"",CODE
LOWsrc/modules/i18n/locales/ru/settings.json439 "placeholder": "например, \"Shell(ls)\" или \"Shell(git status)\"",CODE
LOWsrc/modules/i18n/locales/ru/settings.json446 "placeholder": "например, \"Shell(rm -rf)\" или \"Shell(sudo)\"",CODE
LOWsrc/modules/i18n/locales/ru/tasks.json71 "placeholder": "Поиск задач..."CODE
LOWsrc/modules/i18n/locales/zh-CN/chat.json130 "placeholder": "输入 / 调用命令,@ 选择文件,或向 {{provider}} 提问...",CODE
LOWsrc/modules/i18n/locales/zh-CN/settings.json298 "placeholder": "API 密钥名称(例如:生产服务器)",CODE
LOWsrc/modules/i18n/locales/zh-CN/settings.json436 "placeholder": "例如:\"Bash(git log:*)\" 或 \"Write\"",CODE
LOWsrc/modules/i18n/locales/zh-CN/settings.json443 "placeholder": "例如:\"Bash(rm:*)\"",CODE
LOWsrc/modules/i18n/locales/zh-CN/settings.json468 "placeholder": "例如:\"Shell(ls)\" 或 \"Shell(git status)\"",CODE
LOWsrc/modules/i18n/locales/zh-CN/settings.json475 "placeholder": "例如:\"Shell(rm -rf)\" 或 \"Shell(sudo)\"",CODE
LOWsrc/modules/i18n/locales/zh-CN/tasks.json71 "placeholder": "搜索任务..."CODE
LOWsrc/modules/i18n/locales/zh-CN/git.json140 "placeholder": "提交信息(Ctrl+Enter 提交)",CODE
LOWsrc/modules/i18n/locales/zh-TW/chat.json121 "placeholder": "輸入 / 叫用指令,@ 選取檔案,或向 {{provider}} 提問...",CODE
LOWsrc/modules/i18n/locales/zh-TW/settings.json273 "placeholder": "API 金鑰名稱(例如:正式伺服器)",CODE
LOWsrc/modules/i18n/locales/zh-TW/settings.json408 "placeholder": "例如:\"Bash(git log:*)\" 或 \"Write\"",CODE
LOWsrc/modules/i18n/locales/zh-TW/settings.json415 "placeholder": "例如:\"Bash(rm:*)\"",CODE
LOWsrc/modules/i18n/locales/zh-TW/settings.json440 "placeholder": "例如:\"Shell(ls)\" 或 \"Shell(git status)\"",CODE
LOWsrc/modules/i18n/locales/zh-TW/settings.json447 "placeholder": "例如:\"Shell(rm -rf)\" 或 \"Shell(sudo)\"",CODE
LOWsrc/modules/i18n/locales/zh-TW/tasks.json71 "placeholder": "搜尋任務..."CODE
LOWsrc/modules/i18n/locales/zh-TW/git.json140 "placeholder": "提交訊息(Ctrl+Enter 提交)",CODE
LOWsrc/modules/i18n/locales/pt-BR/chat.json149 "placeholder": "Digite / para comandos, @ para arquivos, ou pergunte ao {{provider}} qualquer coisa...",CODE
LOWsrc/modules/i18n/locales/pt-BR/settings.json315 "placeholder": "Nome da chave da API (ex.: Servidor de produção)",CODE
LOWsrc/modules/i18n/locales/pt-BR/settings.json466 "placeholder": "ex.: \"Bash(git log:*)\" ou \"Write\"",CODE
LOWsrc/modules/i18n/locales/pt-BR/settings.json473 "placeholder": "ex.: \"Bash(rm:*)\"",CODE
LOWsrc/modules/i18n/locales/pt-BR/settings.json498 "placeholder": "ex.: \"Shell(ls)\" ou \"Shell(git status)\"",CODE
57 more matches not shown…
Decorative Section Separators14 hits · 42 pts
SeverityFileLineSnippetContext
MEDIUM…odules/providers/list/codex/codex-sessions.provider.ts438// ─── Codex "code mode" exec scripts ─────────────────────────────────────────COMMENT
MEDIUM…odules/providers/list/codex/codex-sessions.provider.ts681// ─── Codex shell output ─────────────────────────────────────────────────────COMMENT
MEDIUM…odules/providers/list/codex/codex-sessions.provider.ts766// ─── Unified patches ────────────────────────────────────────────────────────COMMENT
MEDIUM…odules/providers/list/codex/codex-sessions.provider.ts964// ─── Subagents ──────────────────────────────────────────────────────────────COMMENT
MEDIUM…odules/providers/list/codex/codex-sessions.provider.ts1279// ─── Transcript reader ──────────────────────────────────────────────────────COMMENT
MEDIUM…odules/providers/list/codex/codex-sessions.provider.ts1358 // ── event_msg ──────────────────────────────────────────────────────────COMMENT
MEDIUM…odules/providers/list/codex/codex-sessions.provider.ts1492 // ── response_item ──────────────────────────────────────────────────────COMMENT
MEDIUMsrc/shared/api.ts61// ─── Request helpers ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/shared/api.ts171// ─── URL builders ───────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/shared/api.ts196// ─── API endpoints ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/modules/chat/hooks/useSessionStore.ts25// ─── NormalizedMessage (mirrors server/adapters/types.js) ────────────────────COMMENT
MEDIUMsrc/modules/chat/hooks/useSessionStore.ts28// ─── Per-session slot ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/modules/chat/hooks/useSessionStore.ts543// ─── Stale threshold ─────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/modules/chat/hooks/useSessionStore.ts549// ─── Hook ────────────────────────────────────────────────────────────────────COMMENT
Over-Commented Block14 hits · 14 pts
SeverityFileLineSnippetContext
LOW…r/modules/websocket/services/chat-websocket.service.ts381 // Emitted through the run's writer so it is sequenced and replayed likeCOMMENT
LOW…r/modules/providers/tests/provider-cli.service.test.ts21 Object.keys(process.env).find((key) => key.toLowerCase() === name.toLowerCase()) || name;COMMENT
LOW…odules/providers/list/claude/claude-models.provider.ts281 // claude creates a new jsonl file as a separate session for this request.COMMENT
LOW…dules/providers/list/claude/claude-runtime.provider.ts101// (see addSession). Their run loops must stay silent on wind-down: the mapCOMMENT
LOW…dules/providers/list/claude/claude-runtime.provider.ts1041 // stream exists; the finally block calls it no matter how the run ends.COMMENT
LOW…dules/providers/list/claude/claude-runtime.provider.ts1381 } else if (heldForBackgroundWork && !abortPending && !stillOutstanding) {COMMENT
LOW…ules/providers/list/claude/claude-sessions.provider.ts781 // back onto the tool call that started the work keeps one card per launchCOMMENT
LOW…ules/providers/list/claude/claude-sessions.provider.ts801 const launch = readBackgroundLaunch(message.toolUseResult);COMMENT
LOW…ules/providers/list/claude/claude-sessions.provider.ts821 // as proof of completion therefore marked every background agentCOMMENT
LOWsrc/modules/project-workspace/hooks/useProjectsState.ts561 console.error('Error fetching projects:', error);COMMENT
LOWsrc/modules/chat/tools/index.ts1// Only the symbols other chat files import.COMMENT
LOWsrc/modules/chat/hooks/useChatComposerState.ts741 // An unmounted composer cannot answer; let the pending submit finish.COMMENT
LOWsrc/modules/chat/hooks/useSessionStore.ts721 (message) => message.transcriptAnchorId === anchorId,COMMENT
LOWsrc/modules/chat/hooks/useChatSessionState.ts601 }, [chatMessages.length, isActive, isUserScrolledUp]);COMMENT
Synthetic Comment Markers2 hits · 12 pts
SeverityFileLineSnippetContext
HIGHserver/modules/taskmaster/taskmaster.routes.ts670 args.push('--research'); // Use research for AI-generated tasksCODE
HIGH…odules/projects/services/project-management.service.ts131 // Archived rows intentionally remain archived when reused, as requested.COMMENT
AI Slop Vocabulary2 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUMpackage-lock.json22345 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz",CODE
MEDIUMsrc/modules/chat/hooks/useChatSessionState.ts630 // Initial scroll to bottom — robust to lazy content reflow.COMMENT