Repository Analysis

letta-ai/letta-code

Stateful agents that are like people, with memory, identity, and the ability to learn and adapt

6.7 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of letta-ai/letta-code, a TypeScript project with 2,972 GitHub stars. SynthScan v2.0 examined 481,582 lines of code across 1851 source files, recording 2430 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 6.7 places this repository in the Low AI signal 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).

6.7
Adjusted Score
6.7
Raw Score
100%
Time Factor
2026-08-09
Last Push
3.0K
Stars
TypeScript
Language
481.6K
Lines of Code
1.9K
Files
2.4K
Pattern Hits
2026-08-09
Scan Date
0.00
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 2HIGH 0MEDIUM 322LOW 2106

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 2430 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.

Hyper-Verbose Identifiers2003 hits · 2064 pts
SeverityFileLineSnippetContext
LOWbuild.js47function rewriteDeclarationAliases(typesRoot) {CODE
LOWdocs/examples/mods/memory-citations.ts67function looksLikeMemoryRelativePath(value: string): boolean {CODE
LOWdocs/examples/mods/memory-citations.ts124function extractBashMemoryReferences(CODE
LOWdocs/examples/mods/memory-citations.ts195function createCitationInstruction(): string {CODE
LOWhooks/memory_logger.py58def get_api_key_from_keychain() -> Optional[str]:CODE
LOWscripts/check-skill-frontmatter.js53function checkSkillFrontmatterName(content) {CODE
LOWsrc/memory-confinement.ts22export function createMemoryConfinementLauncher(CODE
LOWsrc/headless-backend-lifecycle.test.ts13function expectManagedPromptUpdatesViaBackend(source: string): void {CODE
LOWsrc/mcp-oauth.ts223async function startOAuthCallbackServerOnPort(CODE
LOWsrc/headless-memfs-policy.ts14export function resolveHeadlessMemfsPolicy(CODE
LOWsrc/startup-auto-update.ts7export function startStartupAutoUpdateCheck(CODE
LOWsrc/settings-manager.ts205export function shouldPersistSessionState(): boolean {CODE
LOWsrc/settings-manager.ts226function getLocalBackendSettingsKey(): string {CODE
LOWsrc/settings-manager.ts234function isAgentIdCompatibleWithServerKey(CODE
LOWsrc/settings-manager.ts246function isSessionCompatibleWithServerKey(CODE
LOWsrc/settings-manager.ts260function shouldSkipLegacyLocalBackendSessionFallback(): boolean {CODE
LOWsrc/maintainability-checks.test.ts143 "export function resolveSlackAccountDisplayName(): string { return 'Slack'; }\n",CODE
LOWsrc/headless-bidirectional-reflection.test.ts108async function runBidirectionalReflectionScenario(): Promise<BidirectionalReflectionSummary> {CODE
LOWsrc/headless-bidirectional-reflection.test.ts323async function waitForReflectionProgress(CODE
LOWsrc/release-notes.ts51function getOrderedReleaseNoteVersions(): string[] {CODE
LOWsrc/release-notes.ts64export function getPendingReleaseNoteVersions(CODE
LOWsrc/headless-approval-recovery.test.ts92 "async function recoverPendingApprovalsFromControlRequest(",CODE
LOWsrc/headless-approval-recovery.test.ts107 expect(source).toContain("async function sendScopedApprovalMessages(");CODE
LOWsrc/headless-approval-recovery.test.ts110 "async function sendScopedApprovalMessages(",CODE
LOWsrc/mock-isolation-check.test.ts151export function isTelegramRuntimeInstalled() { return true; }CODE
LOWsrc/mock-isolation-check.test.ts153export async function ensureTelegramRuntimeInstalled() { return false; }CODE
LOWsrc/app-server-client.ts156export function resolveAppServerChannelUrl(CODE
LOWsrc/runtime-context.ts77function getProcessWorkingDirectory(): string | null {CODE
LOWsrc/runtime-context.ts85export function getFallbackWorkingDirectory(): string {CODE
LOWsrc/runtime-context.ts103export function getCurrentWorkingDirectory(): string {CODE
LOWsrc/runtime-context.ts134export function consumeWorkingDirectoryRecovery(): string | null {CODE
LOWsrc/headless-mod-adapter.ts162export async function emitHeadlessConversationOpen(options: {CODE
LOWsrc/headless-mod-adapter.ts181export async function emitHeadlessConversationClose(options: {CODE
LOWsrc/index.ts99function normalizeUpdateCommandAliases(args: string[]): string[] {CODE
LOWsrc/index.ts367function getStartupTargetLookupOrderForCredentials({CODE
LOWsrc/index.ts451async function resolveConversationAcrossBackends(CODE
LOWsrc/index.ts505function isLocalBackendTranscriptStartupError(error: unknown): boolean {CODE
LOWsrc/index.ts514async function getLocalBackendStartupFallbackSession(CODE
LOWsrc/headless.ts238function trackHeadlessBoundaryError(CODE
LOWsrc/headless.ts262async function reportStartupErrorAndExit(CODE
LOWsrc/headless.ts291export function mergeBidirectionalQueuedInput(CODE
LOWsrc/headless.ts299function trackTelemetryUserInputFromContent(CODE
LOWsrc/headless.ts310function shouldTrackTelemetryForQueuedMessage(CODE
LOWsrc/headless.ts316function contentToTaskNotificationText(CODE
LOWsrc/headless.ts330function toBidirectionalQueuedInput(CODE
LOWsrc/headless.ts463async function prepareHeadlessToolExecutionContext(params: {CODE
LOWsrc/headless.ts508async function emitHeadlessTurnStartCancellationOutput(options: {CODE
LOWsrc/headless.ts565function writeBidirectionalTurnStartCancellation(options: {CODE
LOWsrc/headless.ts653async function sendScopedApprovalMessages(params: {CODE
LOWsrc/headless.ts774async function waitForEnvironmentAssistantMessage(params: {CODE
LOWsrc/headless.ts864function buildEnvironmentResponseMetadata(params: {CODE
LOWsrc/headless.ts895function isCloudEnvironmentSelector(CODE
LOWsrc/headless.ts903function getEnvironmentRoutedMessagingUnsupportedReason(CODE
LOWsrc/headless.ts4200 async function recoverPendingApprovalsFromControlRequest(CODE
LOWsrc/websocket/listen-client-concurrency.test.ts376function makeRecoveredApprovalState(params: {CODE
LOWsrc/websocket/listen-interrupt-queue.test.ts871 function computeEffectiveStopReason(CODE
LOWsrc/websocket/app-server-openai-tools.ts182function normalizeToolReturnOutput(value: unknown): string {CODE
LOWsrc/websocket/app-server-openai-tools.ts328export function createToolLifecycleTracker(CODE
LOWsrc/websocket/app-server-openai-tools.ts335 function getOrCreate(toolCallId: string): ToolCallState {CODE
LOWsrc/websocket/app-server-openai-tools.ts500export function collectToolLifecycleEvents(CODE
1943 more matches not shown…
Decorative Section Separators309 hits · 952 pts
SeverityFileLineSnippetContext
MEDIUMhooks/memory_logger.py160# =============================================================================COMMENT
MEDIUMhooks/memory_logger.py162# =============================================================================COMMENT
MEDIUMhooks/memory_logger.py32# =============================================================================COMMENT
MEDIUMhooks/memory_logger.py34# =============================================================================COMMENT
MEDIUMhooks/memory_logger.py110# =============================================================================COMMENT
MEDIUMhooks/memory_logger.py112# =============================================================================COMMENT
MEDIUMhooks/memory_logger.py249# =============================================================================COMMENT
MEDIUMhooks/memory_logger.py251# =============================================================================COMMENT
MEDIUMhooks/memory_logger.py313# =============================================================================COMMENT
MEDIUMhooks/memory_logger.py315# =============================================================================COMMENT
MEDIUMhooks/memory_logger.py371# =============================================================================COMMENT
MEDIUMhooks/memory_logger.py373# =============================================================================COMMENT
MEDIUMhooks/memory_logger.py584# =============================================================================COMMENT
MEDIUMhooks/memory_logger.py586# =============================================================================COMMENT
MEDIUMsrc/discord-debounce.test.ts8// ── resolveDiscordInboundDebounceMs ───────────────────────────────────COMMENT
MEDIUMsrc/discord-debounce.test.ts130// ── buildDiscordDebounceKey ───────────────────────────────────────────COMMENT
MEDIUMsrc/headless-queue-lifecycle.test.ts26// ── Helpers mirroring production logic ───────────────────────────COMMENT
MEDIUMsrc/headless-queue-lifecycle.test.ts72// ── Shared queue builder ──────────────────────────────────────────COMMENT
MEDIUMsrc/headless-queue-lifecycle.test.ts145// ── Tests ─────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/headless.ts3864 // ── Queue lifecycle tracking (stream-json only) ────────────────COMMENT
MEDIUMsrc/websocket/app-server-openai-tools.ts45// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/app-server-openai-tools.ts47// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/app-server-openai-tools.ts99// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/app-server-openai-tools.ts101// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/app-server-openai-tools.ts113// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/app-server-openai-tools.ts115// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/app-server-openai-tools.ts290// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/app-server-openai-tools.ts292// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/app-server-openai-tools.test.ts10// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/app-server-openai-tools.test.ts12// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/app-server-openai-tools.test.ts126// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/app-server-openai-tools.test.ts128// ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listen-queue-events.test.ts26// ── Helpers ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listen-queue-events.test.ts121// ── Tests ─────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/terminal-handler.ts121// ── Bun spawn ──────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/terminal-handler.ts200// ── node-pty spawn (Node.js / Electron) ───────────────────────────────────COMMENT
MEDIUMsrc/websocket/terminal-handler.ts268// ── Public API ─────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listener/protocol-outbound.ts818// ─────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listener/protocol-outbound.ts820// ─────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listener/worktree-watcher.ts111// ─── Internal ────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listener/grep-in-files.ts20// ── Ripgrep binary resolution ──────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listener/grep-in-files.ts36// ── Ripgrep JSON stream shapes ─────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listener/grep-in-files.ts84// ── Public API ─────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listener/grep-in-files.ts157// ── Execution ──────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listener/grep-in-files.ts191// ── Parsing ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listener/grep-in-files.ts338// ── Helpers ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts436 // ── Enable memfs command ────────────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts487 // ── Memory history (git log for a specific file) ─────────────────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts541 // ── Memory file at ref (git show for content at a commit) ────────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts594 // ── Memory commit diff (git show for full commit patch) ────────────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts645 // ── Read a file from the MemFS working tree ───────────────────────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts749 // ── Write a file into MemFS (durable agent memory write + commit) ───────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts781 // ── Validate relative path ─────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts803 // ── Ensure MemFS is enabled and checked out ───────────────────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts821 // ── Decode + write bytes (binary-safe for base64) ──────────────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts836 // ── Resolve agent identity for the commit author ───────────────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts882 // ── Notify UI so the memory view auto-refreshes ────────────────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts927 // ── Delete a file from MemFS (durable agent memory delete + commit) ──────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts959 // ── Validate relative path ─────────────────────────────────────COMMENT
MEDIUMsrc/websocket/listener/commands/memory.ts981 // ── Ensure MemFS is enabled and checked out ───────────────────COMMENT
249 more matches not shown…
Structural Annotation Overuse39 hits · 68 pts
SeverityFileLineSnippetContext
LOW.skills/adding-models/SKILL.md19### Step 1: Find Valid Model HandlesCOMMENT
LOW.skills/adding-models/SKILL.md39### Step 2: Add to models.jsonCOMMENT
LOW.skills/adding-models/SKILL.md72### Step 3: Test the ModelCOMMENT
LOW.skills/adding-models/SKILL.md85### Step 4: Add to CI Test Matrix (Optional)COMMENT
LOWsrc/integration-tests/lazy-approval-recovery.test.ts189 // Step 1: Wait for init, then send bash trigger promptCOMMENT
LOWsrc/integration-tests/lazy-approval-recovery.test.ts196 // Step 2: A tool_call_message signals a tool was invoked. Approval-flowCOMMENT
LOWsrc/agent/resolve-startup-agent.ts83 // Step 1: Resume the last agent used in this project. Project continuityCOMMENT
LOWsrc/agent/resolve-startup-agent.ts94 // Step 2: Pinned agentCOMMENT
LOWsrc/agent/resolve-startup-agent.ts102 // Step 3: Multiple existing pins should ask instead of picking implicitly.COMMENT
LOWsrc/agent/resolve-startup-agent.ts108 // Step 4: Global LRU (directory-switching fallback)COMMENT
LOWsrc/agent/resolve-startup-agent.ts127 // Step 5: Custom API model pickerCOMMENT
LOWsrc/agent/resolve-startup-agent.ts132 // Step 6: Show selector if any pinned agents existCOMMENT
LOWsrc/agent/resolve-startup-agent.ts137 // Step 7: True fresh user — create default agentCOMMENT
LOWsrc/agent/subagents/builtin/memory.md94### Step 1: InventoryCOMMENT
LOWsrc/agent/subagents/builtin/memory.md111### Step 2: Identify system-managed files (skip)COMMENT
LOWsrc/agent/subagents/builtin/memory.md118### Step 3: Defragment file-by-fileCOMMENT
LOWsrc/agent/subagents/builtin/memory.md154### Step 4: Produce a detailed reportCOMMENT
LOWsrc/skills/builtin/creating-skills/SKILL.md214### Step 1: Understanding the Skill with Concrete ExamplesCOMMENT
LOWsrc/skills/builtin/creating-skills/SKILL.md231### Step 2: Planning the Reusable Skill ContentsCOMMENT
LOWsrc/skills/builtin/creating-skills/SKILL.md255### Step 3: Initializing the SkillCOMMENT
LOWsrc/skills/builtin/creating-skills/SKILL.md279### Step 4: Edit the SkillCOMMENT
LOWsrc/skills/builtin/creating-skills/SKILL.md334### Step 5: Packaging a SkillCOMMENT
LOWsrc/skills/builtin/creating-skills/SKILL.md361### Step 6: IterateCOMMENT
LOWsrc/skills/builtin/context-doctor/SKILL.md19### Step 1: Identify and resolve context issuesCOMMENT
LOWsrc/skills/builtin/context-doctor/SKILL.md99### Step 2: Implement context fixesCOMMENT
LOWsrc/skills/builtin/context-doctor/SKILL.md112### Step 3: Commit and pushCOMMENT
LOWsrc/skills/builtin/context-doctor/SKILL.md127### Step 4: Final checklist and messageCOMMENT
LOWsrc/skills/builtin/migrating-memory/SKILL.md64### Step 1: Identify Source AgentCOMMENT
LOWsrc/skills/builtin/converting-mcps-to-skills/SKILL.md18### Step 1: Determine the transport typeCOMMENT
LOWsrc/skills/builtin/converting-mcps-to-skills/SKILL.md24### Step 2: Test the connectionCOMMENT
LOWsrc/skills/builtin/converting-mcps-to-skills/SKILL.md44### Step 3: Explore available toolsCOMMENT
LOWsrc/channels/telegram/setup.ts34 // Step 1: Get tokenCOMMENT
LOWsrc/channels/telegram/setup.ts41 // Step 2: Validate tokenCOMMENT
LOWsrc/channels/telegram/setup.ts55 // Step 3: Choose DM policyCOMMENT
LOWsrc/channels/telegram/setup.ts80 // Step 4: Allowlist if neededCOMMENT
LOWsrc/channels/telegram/setup.ts114 // Step 5: Write accountCOMMENT
LOWsrc/channels/whatsapp/reactions-adapter.test.ts744 // Step 1: send outbound text — populates sentMessageIds + messageStore.COMMENT
LOWsrc/channels/whatsapp/reactions-adapter.test.ts752 // Step 2: emit outbound upsert echo — sentMessageIds entry consumed,COMMENT
LOWsrc/channels/whatsapp/reactions-adapter.test.ts766 // Step 3: emit real-shape LID reaction with target.fromMe: false.COMMENT
Verbosity Indicators17 hits · 34 pts
SeverityFileLineSnippetContext
LOWsrc/integration-tests/lazy-approval-recovery.test.ts189 // Step 1: Wait for init, then send bash trigger promptCOMMENT
LOWsrc/integration-tests/lazy-approval-recovery.test.ts196 // Step 2: A tool_call_message signals a tool was invoked. Approval-flowCOMMENT
LOWsrc/agent/resolve-startup-agent.ts83 // Step 1: Resume the last agent used in this project. Project continuityCOMMENT
LOWsrc/agent/resolve-startup-agent.ts94 // Step 2: Pinned agentCOMMENT
LOWsrc/agent/resolve-startup-agent.ts102 // Step 3: Multiple existing pins should ask instead of picking implicitly.COMMENT
LOWsrc/agent/resolve-startup-agent.ts108 // Step 4: Global LRU (directory-switching fallback)COMMENT
LOWsrc/agent/resolve-startup-agent.ts127 // Step 5: Custom API model pickerCOMMENT
LOWsrc/agent/resolve-startup-agent.ts132 // Step 6: Show selector if any pinned agents existCOMMENT
LOWsrc/agent/resolve-startup-agent.ts137 // Step 7: True fresh user — create default agentCOMMENT
LOWsrc/channels/telegram/setup.ts34 // Step 1: Get tokenCOMMENT
LOWsrc/channels/telegram/setup.ts41 // Step 2: Validate tokenCOMMENT
LOWsrc/channels/telegram/setup.ts55 // Step 3: Choose DM policyCOMMENT
LOWsrc/channels/telegram/setup.ts80 // Step 4: Allowlist if neededCOMMENT
LOWsrc/channels/telegram/setup.ts114 // Step 5: Write accountCOMMENT
LOWsrc/channels/whatsapp/reactions-adapter.test.ts744 // Step 1: send outbound text — populates sentMessageIds + messageStore.COMMENT
LOWsrc/channels/whatsapp/reactions-adapter.test.ts752 // Step 2: emit outbound upsert echo — sentMessageIds entry consumed,COMMENT
LOWsrc/channels/whatsapp/reactions-adapter.test.ts766 // Step 3: emit real-shape LID reaction with target.fromMe: false.COMMENT
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALsrc/web/memory-viewer-template.txt964!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?defCODE
CRITICALsrc/channels/slack/adapter-test-harness.ts381 instance.client.assistant.threads.setStatus.mockClear();CODE
AI Slop Vocabulary6 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMscripts/postinstall-patches.js27 // Resolve root of installed ink package; add robust fallbacks for BunCOMMENT
MEDIUMsrc/index.ts1080 // Definitely a registry handleCOMMENT
MEDIUMsrc/headless.ts1290 // Definitely a registry handleCOMMENT
MEDIUMsrc/websocket/listener/protocol-outbound.ts691 // optimistic echo so the follow-up stays seamless (matches TUI, where theCOMMENT
MEDIUMsrc/agent/memory-git.ts759 // Primary config: normalized origin key (most robust for git's credential lookup)COMMENT
MEDIUMsrc/agent/memory-git-hooks.ts201# Reflection and other harness worktrees commit on temporary branches; only theCOMMENT
Fake / Example Data16 hits · 16 pts
SeverityFileLineSnippetContext
LOWsrc/agent/memory-worktree.test.ts26 GIT_AUTHOR_EMAIL: "test@test.com",CODE
LOWsrc/agent/memory-worktree.test.ts28 GIT_COMMITTER_EMAIL: "test@test.com",CODE
LOWsrc/agent/memory-git.signing.test.ts73 GIT_AUTHOR_EMAIL: "test@test.com",CODE
LOWsrc/agent/memory-git.signing.test.ts75 GIT_COMMITTER_EMAIL: "test@test.com",CODE
LOWsrc/agent/memory-git.ts745 // Use a normalized path and escape whitespace for profiles like "Jane Doe".COMMENT
LOWsrc/agent/memory-git.postcommit.test.ts38 GIT_AUTHOR_EMAIL: "test@test.com",CODE
LOWsrc/agent/memory-git.postcommit.test.ts40 GIT_COMMITTER_EMAIL: "test@test.com",CODE
LOWsrc/agent/memory-git.precommit.test.ts22 GIT_AUTHOR_EMAIL: "test@test.com",CODE
LOWsrc/agent/memory-git.precommit.test.ts24 GIT_COMMITTER_EMAIL: "test@test.com",CODE
LOWsrc/cli/reflection-worktree-completion.test.ts28 GIT_AUTHOR_EMAIL: "test@test.com",CODE
LOWsrc/cli/reflection-worktree-completion.test.ts30 GIT_COMMITTER_EMAIL: "test@test.com",CODE
LOWsrc/cli/subcommands/dream-targets.test.ts66 expect(out).toContain("placeholder");CODE
LOWsrc/cli/helpers/reflection-launcher.test.ts53 GIT_AUTHOR_EMAIL: "test@test.com",CODE
LOWsrc/cli/helpers/reflection-launcher.test.ts55 GIT_COMMITTER_EMAIL: "test@test.com",CODE
LOWsrc/cli/helpers/reflection-arena.test.ts20 GIT_AUTHOR_EMAIL: "test@test.com",CODE
LOWsrc/cli/helpers/reflection-arena.test.ts22 GIT_COMMITTER_EMAIL: "test@test.com",CODE
Over-Commented Block14 hits · 14 pts
SeverityFileLineSnippetContext
LOWsrc/settings-manager.ts121// Shape of the `worktree` block in `.letta/settings.json`. The worktree toolCOMMENT
LOWsrc/websocket/listen-client-concurrency.test.ts221const realAgentMessageModule = await import("@/agent/message");COMMENT
LOWsrc/websocket/listener/constants.ts1export const MAX_RETRY_DURATION_MS = 5 * 60 * 1000; // 5 minutesCOMMENT
LOWsrc/backend/local/local-context-estimate.ts1import type { Usage } from "@earendil-works/pi-ai";COMMENT
LOWsrc/backend/api/mcp-servers.ts1// Server-side MCP servers are registered on the Letta server (via the ADE orCOMMENT
LOWsrc/backend/dev/pi-image-elision.ts1import type { LocalMessage } from "@/backend/local/local-message";COMMENT
LOWsrc/agent/memory-filesystem.test.ts681 };COMMENT
LOWsrc/agent/memory-filesystem.test.ts721 // systemBlocks/systemFiles/detachedBlocks/detachedFilesCOMMENT
LOWsrc/agent/memory-filesystem.test.ts741 };COMMENT
LOWsrc/cli/hooks/use-token-smoothing.ts1// React hook that returns a smoothed version of a monotonic count.COMMENT
LOWsrc/cli/helpers/stream.ts381 "stream_drain",COMMENT
LOWsrc/permissions/cross-agent-guard.ts1// src/permissions/cross-agent-guard.tsCOMMENT
LOWsrc/sandbox/bwrap.ts41 // Root view: read-only for write-scoped profiles, writable for cross-agent.COMMENT
LOWsrc/sandbox/bwrap.ts61 // masks, and bwrap is last-mount-wins for overlapping paths. A carve-out mustCOMMENT
Modern AI Meta-Vocabulary5 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMsrc/tools/impl/task.ts54 max_turns?: number; // Maximum number of agentic turnsCODE
MEDIUMsrc/permissions/checker.ts851 // own path/read_only guardrails, so allow by default.COMMENT
MEDIUM…in/self-configuration/references/api-patch-examples.md16# Agent context windowCOMMENT
MEDIUM…in/self-configuration/references/api-patch-examples.md22# Conversation context windowCOMMENT
MEDIUMsrc/channels/protocol-account-commands.ts165 // scaffold per-app plugin folders/channel IDs here.COMMENT
Excessive Try-Catch Wrapping6 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMhooks/memory_logger.py428 print(f"Error reading block: {e}")CODE
MEDIUMhooks/memory_logger.py489 print(f"Error reading block: {e}")CODE
LOWhooks/memory_logger.py147 except Exception:CODE
LOWhooks/memory_logger.py154 except Exception as e:CODE
LOW…s/builtin/self-configuration/scripts/add_permission.py74 except Exception:CODE
LOW…s/builtin/self-configuration/scripts/add_permission.py122 except Exception as e:CODE
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOWhooks/typecheck-on-changes.sh5# Check if there are any uncommitted changes (staged or unstaged)COMMENT
LOWhooks/fix-on-changes.sh5# Check if there are any uncommitted changes (staged or unstaged)COMMENT
LOWsrc/agent/memory-git-hooks.ts110 # Check if agent is trying to modify a protected keyCOMMENT
LOWsrc/agent/memory-git-hooks.ts145 # Check if protected keys were removed (existed in HEAD but not in staged)COMMENT
Deep Nesting8 hits · 6 pts
SeverityFileLineSnippetContext
LOWhooks/memory_logger.py184CODE
LOWhooks/memory_logger.py297CODE
LOWhooks/memory_logger.py476CODE
LOWhooks/memory_logger.py588CODE
LOWhooks/memory_logger.py520CODE
LOW…ills/builtin/self-configuration/scripts/show_config.py170CODE
LOW…ills/builtin/self-configuration/scripts/show_config.py259CODE
LOW…s/builtin/self-configuration/scripts/add_permission.py106CODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsrc/channels/core-stream.ts185 async function processData(data: string): Promise<void> {CODE