AI Slop Code Risk Monitor

CherryHQ/cherry-studio

SlopCodeMonitor badge for CherryHQ/cherry-studio Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Your AI workspace for models, agents, and productivity.

2.5 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for CherryHQ/cherry-studio, a TypeScript project with 53,119 GitHub stars. SynthScan examined 1,857,755 lines of code across 9978 source files, recording 3030 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 2.5 (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.

2.5
Adjusted Signal
2.5
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
53.1K
Stars
TypeScript
Language
1.9M
Lines of Code
10.0K
Files
3.0K
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 7.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.4/100 · LOW

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

Agent Over-Engineering Ratio 9.6/100 · LOW

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

PR Review Velocity Impact 11.3/100 · LOW

Which changes need focused human review? 3030 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 42HIGH 17MEDIUM 486LOW 2485

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 3030 distinct pattern matches across 18 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 Identifiers2162 hits · 2255 pts
SeverityFileLineSnippetContext
LOWelectron.vite.config.ts63export function resolveSentryBuildSettings(env: NodeJS.ProcessEnv) {CODE
LOW…sources/skills/office-transform/scripts/office/docx.py242def reject_unrepresentable_content(paragraph, index: int) -> None:CODE
LOWtests/__mocks__/renderer/useDataApi.ts287function notifyMockInfiniteQuerySubscribers(key: string) {CODE
LOWtests/__mocks__/renderer/useDataApi.ts297async function applyMockInfiniteQueryMutation(key: string, value: unknown) {CODE
LOWtests/e2e/regression/agents.ts15export async function startBuiltinAssistantTask(page: Page): Promise<void> {CODE
LOWtests/e2e/regression/models.ts42export async function skipNewProviderModelSetup(page: Page): Promise<void> {CODE
LOWdocs/references/ai/remote-agent-implementation.md138function encodeAgentCheckpointPage(page: AgentCheckpointPage): Uint8ArrayCODE
LOWscripts/skills-common.ts53export function buildAgentsSkillsGitignore(skillNames: string[]): string {CODE
LOWscripts/skills-common.ts71export function buildClaudeSkillsGitignore(skillNames: string[]): string {CODE
LOWscripts/skills-check.ts65function checkTrackedFilesAgainstWhitelist(skillNames: string[], errors: string[]) {CODE
LOWscripts/generate-system-provider-ids.ts56export function renderSystemProviderIdsFile(ids: string[]): string {CODE
LOWscripts/download-binaries.js144function sweepUnreferencedVersions(cacheRoot, maxAgeMs) {CODE
LOWscripts/publishRegistryCatalog.js69function readPublishedMinAppVersion(manifestPath) {CODE
LOWscripts/invalidate-electron-rebuild-metadata.js4function invalidateElectronRebuildMetadata(moduleDirectory) {CODE
LOWscripts/i18n-main-keys.ts4export function collectMainTranslationKeys(content: string, filename: string): { keys: string[]; dynamic: string[] } {CODE
LOWscripts/fix-tailwind-canonical-classes.ts97function canonicalizeCssVariableToken(originalToken: string, canonicalToken: string): string {CODE
LOWscripts/fix-tailwind-canonical-classes.ts122function collectCanonicalClassFindings(CODE
LOWscripts/fix-tailwind-canonical-classes.ts196export function findTailwindCanonicalClassFindingsInContent(CODE
LOWscripts/update-languages.ts50function generateLanguagesFileContent(languages: Record<string, LanguageData>): string {CODE
LOWscripts/i18n-check-unused.ts126function getJsxAttributeStringValue(node: Node): string | null {CODE
LOWscripts/i18n-check-unused.ts172function collectTemplateExpressionMatches(CODE
LOWscripts/i18n-check-unused.ts215function collectExactSourceTextReferences(CODE
LOWscripts/i18n-check-unused.ts229function collectShortcutReferences(localeKeys: Set<string>, usedKeys: Set<string>): void {CODE
LOWscripts/packaging/artifact-build-completed.js20function normalizeArtifactFilePath(file, productName, version, platform, releaseProductName = productName) {CODE
LOWscripts/packaging/after-pack.js8function installComputerUseRuntime(context) {CODE
LOWscripts/packaging/before-pack.js101async function prepareNativeModulesForElectron(CODE
LOWscripts/packaging/before-pack.js173function prepareSystemSpeechHelper(CODE
LOWscripts/release/validate-release-state.js3function validateReleaseBranchHead({ branchSha, workflowSha }) {CODE
LOWscripts/release/hotfix-release-notes.js87function updateHotfixReleaseMetadata({ builderPath, historyPath, prBody, version }) {CODE
LOWscripts/release/edition.js64function getExpectedReleaseArtifacts({ edition, platform, productName, version }) {CODE
LOWscripts/uiContract/__tests__/maintainedAnchors.test.ts16async function documentedMaintainedTokens(): Promise<string[]> {CODE
LOWscripts/__tests__/release-workflow.test.ts453function createPreparedReleaseFixture(targetVersion = '1.1.0', baseVersion = '1.0.0'): GitFixture {CODE
LOWscripts/voice-runtime-smoke/rendererExpression.ts5export function createVoiceRuntimeSmokeExpression(CODE
LOWscripts/e2e/ondemand/profile.ts36export async function prepareAuthenticatedProfile(page: Page, config: ProfileConfig): Promise<void> {CODE
LOWscripts/e2e/regression/process.ts44export function windowsProcessExecutablePath(pid: number): string {CODE
LOWscripts/e2e/regression/process.ts79export function terminateOwnedMacProcessGroup(record: ProcessOwner, signal: 'SIGTERM' | 'SIGKILL' = 'SIGTERM'): void {CODE
LOWscripts/e2e/regression/process.ts103export async function waitForMacProcessGroupExit(groupId: number, timeoutMs = 8_000): Promise<boolean> {CODE
LOWscripts/e2e/regression/builtinAgents.ts9export function resolveBuiltinAssistantAgent(CODE
LOWscripts/e2e/regression/cherryInOauth.ts129async function resolveAuthorizationDestination(CODE
LOWscripts/e2e/regression/debugBridge.ts37export async function inspectOwnedAppEnvironment(record: AppRecord): Promise<{CODE
LOWscripts/e2e/regression/debugBridge.ts52export async function prepareWindowsCdpConnection(record: AppRecord): Promise<void> {CODE
LOWscripts/e2e/regression/debugBridge.ts96export async function captureCherryInAuthorizationUrl(CODE
LOWscripts/e2e/regression/debugBridge.ts146export async function sendCherryInCallbackToOwnedApp(record: AppRecord, callback: string): Promise<void> {CODE
LOWscripts/linux-native/download.js73function ensureLinuxNativeArtifact({CODE
LOWscripts/linux-native/compat.js65function assertVersionRequirements(requirements) {CODE
LOWscripts/linux-native/compat.js176function readInstalledPackageVersion(projectRoot, packageName) {CODE
LOWpackages/extension-table-plus/src/cell/table-cell.ts30function createCellSelectionDecorationSet(doc: ProseMirrorNode, selection: Selection): DecorationSet {CODE
LOW…ries/components/composites/composite-input.stories.tsx433 render: function SelectVariantInteractiveExample() {CODE
LOW…ries/components/composites/composite-input.stories.tsx778 render: function EmailVariantInteractiveExample() {CODE
LOW…ries/components/composites/composite-input.stories.tsx978 render: function SubscribeNewsletterExample() {CODE
LOW…ui/stories/components/composites/menu-list.stories.tsx210function SmallMenuWithGroupsExample() {CODE
LOW…ui/stories/components/composites/menu-list.stories.tsx270function SettingsSubmenuActiveBoldExample() {CODE
LOW…ges/ui/stories/components/primitives/input.stories.tsx317 render: function RealTimeValidationExample() {CODE
LOW…es/ui/stories/components/primitives/switch.stories.tsx521 render: function InteractiveLoadingExample() {CODE
LOW…/ui/stories/components/primitives/textarea.stories.tsx98 render: function WithCharacterCountExample() {CODE
LOW…/ui/stories/components/primitives/combobox.stories.tsx498 render: function TriggerSearchFontListExample() {CODE
LOW…/ui/stories/components/primitives/combobox.stories.tsx536 render: function CustomFilterOptionExample() {CODE
LOW…s/components/primitives/description-switch.stories.tsx272 render: function NotificationSettingsExample() {CODE
LOW…s/components/primitives/description-switch.stories.tsx385 render: function ApplicationSettingsExample() {CODE
LOW…s/components/primitives/description-switch.stories.tsx558 render: function ComplexSettingsPanelExample() {CODE
2102 more matches not shown…
Decorative Section Separators462 hits · 1420 pts
SeverityFileLineSnippetContext
MEDIUM…sources/skills/office-transform/scripts/office/docx.py35# ── read: extract ────────────────────────────────────────────────────────────COMMENT
MEDIUM…sources/skills/office-transform/scripts/office/docx.py88# ── write: patch-copy ─────────────────────────────────────────────────────────COMMENT
MEDIUM…sources/skills/office-transform/scripts/office/xlsx.py57# ── A1 primitives (both paths) ───────────────────────────────────────────────COMMENT
MEDIUM…sources/skills/office-transform/scripts/office/xlsx.py103# ── read: extract ────────────────────────────────────────────────────────────COMMENT
MEDIUM…sources/skills/office-transform/scripts/office/xlsx.py253# ── write: patch-copy ─────────────────────────────────────────────────────────COMMENT
MEDIUM…ources/skills/office-transform/scripts/office/ooxml.py91# ── minidom helpers ──────────────────────────────────────────────────────────COMMENT
MEDIUM…es/skills/skill-creator/eval-viewer/generate_review.py284# ---------------------------------------------------------------------------COMMENT
MEDIUM…es/skills/skill-creator/eval-viewer/generate_review.py286# ---------------------------------------------------------------------------COMMENT
MEDIUMdocs/references/ai/stream-manager.md472 // ── Single dispatch entry ─────────────────────────────────────────COMMENT
MEDIUMdocs/references/ai/stream-manager.md493 // ── Subscription management ───────────────────────────────────────COMMENT
MEDIUMdocs/references/ai/stream-manager.md499 // ── Control ───────────────────────────────────────────────────────COMMENT
MEDIUMdocs/references/ai/stream-manager.md514 // ── Inspection (read-only snapshot) ───────────────────────────────COMMENT
MEDIUM…s/data/best-practice-default-values-and-nullability.md189// ─── DB schema ────────────────────────────────────────────────COMMENT
MEDIUM…s/data/best-practice-default-values-and-nullability.md207// ─── Zod schema ───────────────────────────────────────────────COMMENT
MEDIUM…s/data/best-practice-default-values-and-nullability.md239// ─── Service ──────────────────────────────────────────────────COMMENT
MEDIUM…s/data/best-practice-default-values-and-nullability.md260// ─── Row → Entity ─────────────────────────────────────────────COMMENT
MEDIUMscripts/download-binaries.js205// ── Tool definitions ─────────────────────────────────────────────────COMMENT
MEDIUMscripts/download-binaries.js458// ── Core logic ───────────────────────────────────────────────────────COMMENT
MEDIUMscripts/download-binaries.js666// ── Main ─────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/icons-generate-avatars.ts306// ──────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/icons-generate-avatars.ts308// ──────────────────────────────────────────────────────────COMMENT
MEDIUM…ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts19// ─── Helpers ────────────────────────────────────────────────────────COMMENT
MEDIUM…ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts46// ─── Single-color fill conversion ────────────────────────────────────COMMENT
MEDIUM…ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts82// ─── Multi-color opacity mapping ─────────────────────────────────────COMMENT
MEDIUM…ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts103// ─── Narrow luminance range opacity spread ────────────────────────────COMMENT
MEDIUM…ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts136// ─── White fill handling: backgroundWasDark ──────────────────────────COMMENT
MEDIUM…ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts189// ─── url(#gradient) fills ────────────────────────────────────────────COMMENT
MEDIUM…ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts189// ─── url(#gradient) fills ────────────────────────────────────────────COMMENT
MEDIUM…ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts203// ─── Removal of defs/clipPath/attributes ─────────────────────────────COMMENT
MEDIUM…ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts264// ─── Phase 0: Mask-based shape extraction ────────────────────────────COMMENT
MEDIUM…ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts347// ─── Integration: backgroundWasDark threshold ────────────────────────COMMENT
MEDIUM…ages/ui/scripts/__tests__/svgo-convert-to-mono.test.ts387// ─── Cutout / luminance mask preservation ─────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/__tests__/svg-utils.test.ts22// ─── colorToLuminance ───────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/__tests__/svg-utils.test.ts73// ─── isWhiteFill ────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/__tests__/svg-utils.test.ts105// ─── parseSvgPathBounds ─────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/__tests__/svg-utils.test.ts162// ─── parseViewBox ───────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/__tests__/svg-utils.test.ts186// ─── isLargeShape ───────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/__tests__/svg-utils.test.ts204// ─── normalizeColor ─────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/__tests__/svg-utils.test.ts222// ─── isMonochromeSvg ───────────────────────────────────────────────COMMENT
MEDIUM…es/ui/scripts/__tests__/svgo-remove-background.test.ts18// ─── Helpers ────────────────────────────────────────────────────────COMMENT
MEDIUM…es/ui/scripts/__tests__/svgo-remove-background.test.ts35// ─── Rule 1: <rect> background ──────────────────────────────────────COMMENT
MEDIUM…es/ui/scripts/__tests__/svgo-remove-background.test.ts106// ─── Rule 2: Rounded-rect path background ───────────────────────────COMMENT
MEDIUM…es/ui/scripts/__tests__/svgo-remove-background.test.ts177// ─── Rule 3: Large dark traced background ────────────────────────────COMMENT
MEDIUM…es/ui/scripts/__tests__/svgo-remove-background.test.ts285// ─── Rule 4: Large white background path ─────────────────────────────COMMENT
MEDIUM…es/ui/scripts/__tests__/svgo-remove-background.test.ts301// ─── detectOnly mode ─────────────────────────────────────────────────COMMENT
MEDIUM…es/ui/scripts/__tests__/svgo-remove-background.test.ts341// ─── Element collection: skip mask/clipPath/defs ─────────────────────COMMENT
MEDIUM…es/ui/scripts/__tests__/svgo-remove-background.test.ts374// ─── Preserves non-background elements ───────────────────────────────COMMENT
MEDIUM…ponents/composites/entity-selector/entity-selector.tsx98 // ── Keyboard navigation ────────────────────────────────────────────────COMMENT
MEDIUMpackages/provider-registry/scripts/upstream.ts59// ── models.dev ───────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/provider-registry/scripts/upstream.ts157// ── OpenRouter ───────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/provider-registry/scripts/upstream.ts340// ── merge across sources (the fix for the minimax-m3 video gap) ───────────────COMMENT
MEDIUMpackages/provider-registry/scripts/upstream.ts399// ── raw upstream API shapes ───────────────────────────────────────────────────COMMENT
MEDIUMpackages/provider-registry/src/utils/normalize.ts9// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/provider-registry/src/utils/normalize.ts11// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/provider-registry/src/utils/normalize.ts141// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/provider-registry/src/utils/normalize.ts143// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/provider-registry/src/schemas/imageParamCatalog.ts33// ── Value-type helpers ───────────────────────────────────────────────────────COMMENT
MEDIUM…kages/provider-registry/src/schemas/provider-models.ts51// ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…kages/provider-registry/src/schemas/provider-models.ts53// ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMpackages/provider-registry/src/schemas/provider.ts20// ═══════════════════════════════════════════════════════════════════════════════COMMENT
402 more matches not shown…
Hallucination Indicators42 hits · 425 pts
SeverityFileLineSnippetContext
CRITICAL…erer/services/voice/__tests__/DictationService.test.ts343 expect(harness.voice.discardSession.mock.calls.filter(([sessionId]) => sessionId === 'session-4')).toHaveLength(0)CODE
CRITICAL…erer/services/voice/__tests__/DictationService.test.ts708 expect(harness.voice.discardSession.mock.calls.at(-1)?.[0]).toBe('session-2')CODE
CRITICAL⚡src/main/core/window/__tests__/WindowManager.test.ts508 const call = win.webContents.on.mock.calls.find(([event]) => event === 'will-frame-navigate')CODE
CRITICALsrc/main/core/window/__tests__/WindowManager.test.ts451 const call = win.webContents.on.mock.calls.find(([event]) => event === 'will-navigate')CODE
CRITICAL…c/main/features/browser/__tests__/GuestSession.test.ts214 expect(mock.debugger.sendCommand.mock.calls.filter(([method]) => method === 'Page.enable')).toHaveLength(1)CODE
CRITICAL…c/main/features/browser/__tests__/GuestSession.test.ts239 expect(mock.debugger.sendCommand.mock.calls.filter(([method]) => method === 'Runtime.evaluate')).toHaveLength(1)CODE
CRITICAL…c/main/features/browser/__tests__/GuestSession.test.ts252 expect(mock.debugger.sendCommand.mock.calls.some(([method]) => method === 'DOM.describeNode')).toBe(false)CODE
CRITICAL…c/main/features/browser/__tests__/GuestSession.test.ts282 expect(mock.debugger.sendCommand.mock.calls.map(([method]) => method)).toEqual(['Page.enable'])CODE
CRITICAL…c/main/features/browser/__tests__/GuestSession.test.ts470 mock.debugger.sendCommand.mock.calls.filter(([method]) => method === 'Page.createIsolatedWorld')CODE
CRITICAL…ledge/tasks/__tests__/indexDocumentsJobHandler.test.ts293 MockMainCacheServiceExport.cacheService.setShared.mock.calls.filter(CODE
CRITICAL…ledge/tasks/__tests__/indexDocumentsJobHandler.test.ts325 MockMainCacheServiceExport.cacheService.setShared.mock.calls.filter(CODE
CRITICAL…/screenshot/__tests__/ScreenshotOverlayService.test.ts412 const delivery = container.ipcApiService.send.mock.calls.find(CODE
CRITICAL…/screenshot/__tests__/ScreenshotOverlayService.test.ts440 const focusListener = electron.app.on.mock.calls.find(([event]) => event === 'browser-window-focus')![1]CODE
CRITICAL…/screenshot/__tests__/ScreenshotOverlayService.test.ts445 const delivery = container.ipcApiService.send.mock.calls.find((call) => call[1] === 'chat.screenshot.attachment')!CODE
CRITICAL…/screenshot/__tests__/ScreenshotOverlayService.test.ts462 const delivery = container.ipcApiService.send.mock.calls.find((call) => call[1] === 'chat.screenshot.attachment')!CODE
CRITICAL…/screenshot/__tests__/ScreenshotOverlayService.test.ts526 const payload = container.ipcApiService.send.mock.calls.findLast(CODE
CRITICAL…/screenshot/__tests__/ScreenshotOverlayService.test.ts534 const retried = container.ipcApiService.send.mock.calls.findLast(CODE
CRITICAL…/screenshot/__tests__/ScreenshotOverlayService.test.ts551 const payload = container.ipcApiService.send.mock.calls.findLast(CODE
CRITICAL…/screenshot/__tests__/ScreenshotOverlayService.test.ts559 const retried = container.ipcApiService.send.mock.calls.findLast(CODE
CRITICAL…/screenshot/__tests__/ScreenshotOverlayService.test.ts585 const delivery = container.ipcApiService.send.mock.calls.find((call) => call[1] === 'chat.screenshot.attachment')CODE
CRITICAL…/screenshot/__tests__/ScreenshotOverlayService.test.ts701 const storedIds = container.mediaProtocolService.store.mock.results.map((r) => r.value as string)CODE
CRITICAL…/screenshot/__tests__/ScreenshotOverlayService.test.ts1751 const subscriber = container.preferenceService.subscribeChange.mock.calls.at(-1)?.[1]CODE
CRITICAL…/screenshot/__tests__/ScreenshotOverlayService.test.ts1761 const subscriber = container.preferenceService.subscribeChange.mock.calls.at(-1)?.[1]CODE
CRITICAL…/screenshot/__tests__/ScreenshotOverlayService.test.ts1773 const subscribeChange = () => container.preferenceService.subscribeChange.mock.calls.at(-1)?.[1]CODE
CRITICAL…main/services/webview/__tests__/WebviewService.test.ts250 const handleRequest = siteSession.webRequest.onBeforeSendHeaders.mock.calls.at(-1)![0]CODE
CRITICAL…in/services/webview/__tests__/annotationExport.test.ts190 const setupCommands = guest.debugger.sendCommand.mock.calls.filter(([method]) =>CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts292 const call = win.webContents.on.mock.calls.find(([event]) => event === 'render-process-gone')CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts520 const popup = win.webContents.setWindowOpenHandler.mock.calls.at(-1)![0]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts535 const popup = win.webContents.setWindowOpenHandler.mock.calls.at(-1)![0]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts552 const popup = win.webContents.setWindowOpenHandler.mock.calls.at(-1)![0]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts553 const navigate = win.webContents.on.mock.calls.find(([event]) => event === 'will-navigate')![1]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts574 const closedPopup = win.webContents.setWindowOpenHandler.mock.calls.at(-1)![0]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts584 const popup = win.webContents.setWindowOpenHandler.mock.calls.at(-1)![0]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts696 const listener = win.webContents.on.mock.calls.find(([event]) => event === 'will-attach-webview')?.[1]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts729 const listener = win.webContents.on.mock.calls.find(([event]) => event === 'will-attach-webview')?.[1]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts740 const listener = win.webContents.on.mock.calls.find(([event]) => event === 'will-attach-webview')?.[1]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts753 const listener = win.webContents.on.mock.calls.find(([event]) => event === 'will-attach-webview')?.[1]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts788 const listener = win.webContents.on.mock.calls.find(([event]) => event === 'will-attach-webview')?.[1]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts816 const listener = win.webContents.on.mock.calls.find(([event]) => event === 'will-attach-webview')?.[1]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts834 const listener = win.webContents.on.mock.calls.find(([event]) => event === 'did-attach-webview')?.[1]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts1646 const listener = win.webContents.on.mock.calls.find(([event]) => event === 'will-attach-webview')?.[1]CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts1684 const call = win.webContents.on.mock.calls.find(([event]) => event === 'will-navigate')CODE
Structural Annotation Overuse111 hits · 194 pts
SeverityFileLineSnippetContext
LOW⚡resources/skills/find-skills/SKILL.md38### Step 1: Understand What They NeedCOMMENT
LOW⚡resources/skills/find-skills/SKILL.md46### Step 2: Check the Leaderboard FirstCOMMENT
LOW⚡resources/skills/find-skills/SKILL.md54### Step 3: Search for SkillsCOMMENT
LOWresources/skills/find-skills/SKILL.md66### Step 4: Verify Quality Before RecommendingCOMMENT
LOWresources/skills/find-skills/SKILL.md74### Step 5: Present Options to the UserCOMMENT
LOWresources/skills/find-skills/SKILL.md95### Step 6: Install (Uses the Active Permission Mode)COMMENT
LOWresources/skills/skill-creator/SKILL.md201### Step 1: Spawn all runs (with-skill AND baseline) in the same turnCOMMENT
LOWresources/skills/skill-creator/SKILL.md231### Step 2: While runs are in progress, draft assertionsCOMMENT
LOWresources/skills/skill-creator/SKILL.md239### Step 3: As runs complete, capture timing dataCOMMENT
LOWresources/skills/skill-creator/SKILL.md253### Step 4: Grade, aggregate, and launch the viewerCOMMENT
LOWresources/skills/skill-creator/SKILL.md299### Step 5: Read the feedbackCOMMENT
LOWresources/skills/skill-creator/SKILL.md369### Step 1: Generate trigger eval queriesCOMMENT
LOWresources/skills/skill-creator/SKILL.md392### Step 2: Review with userCOMMENT
LOWresources/skills/skill-creator/SKILL.md407### Step 3: Run the optimization loopCOMMENT
LOWresources/skills/skill-creator/SKILL.md434### Step 4: Apply the resultCOMMENT
LOW⚡resources/skills/skill-creator/agents/grader.md21### Step 1: Read the TranscriptCOMMENT
LOW⚡resources/skills/skill-creator/agents/grader.md27### Step 2: Examine Output FilesCOMMENT
LOW⚡resources/skills/skill-creator/agents/grader.md33### Step 3: Evaluate Each AssertionCOMMENT
LOW⚡resources/skills/skill-creator/agents/grader.md43### Step 4: Extract and Verify ClaimsCOMMENT
LOWresources/skills/skill-creator/agents/grader.md61### Step 5: Read User NotesCOMMENT
LOWresources/skills/skill-creator/agents/grader.md68### Step 6: Critique the EvalsCOMMENT
LOWresources/skills/skill-creator/agents/grader.md81### Step 7: Write Grading ResultsCOMMENT
LOWresources/skills/skill-creator/agents/grader.md101### Step 8: Read Executor Metrics and TimingCOMMENT
LOW⚡resources/skills/skill-creator/agents/comparator.md22### Step 1: Read Both OutputsCOMMENT
LOW⚡resources/skills/skill-creator/agents/comparator.md29### Step 2: Understand the TaskCOMMENT
LOW⚡resources/skills/skill-creator/agents/comparator.md37### Step 3: Generate Evaluation RubricCOMMENT
LOW⚡resources/skills/skill-creator/agents/comparator.md60### Step 4: Evaluate Each Output Against the RubricCOMMENT
LOW⚡resources/skills/skill-creator/agents/comparator.md68### Step 5: Check Assertions (if provided)COMMENT
LOW⚡resources/skills/skill-creator/agents/comparator.md77### Step 6: Determine the WinnerCOMMENT
LOW⚡resources/skills/skill-creator/agents/comparator.md87### Step 7: Write Comparison ResultsCOMMENT
LOW⚡resources/skills/skill-creator/agents/analyzer.md23### Step 1: Read Comparison ResultCOMMENT
LOW⚡resources/skills/skill-creator/agents/analyzer.md29### Step 2: Read Both SkillsCOMMENT
LOW⚡resources/skills/skill-creator/agents/analyzer.md39### Step 3: Read Both TranscriptsCOMMENT
LOW⚡resources/skills/skill-creator/agents/analyzer.md49### Step 4: Analyze Instruction FollowingCOMMENT
LOW⚡resources/skills/skill-creator/agents/analyzer.md59### Step 5: Identify Winner StrengthsCOMMENT
LOW⚡resources/skills/skill-creator/agents/analyzer.md69### Step 6: Identify Loser WeaknessesCOMMENT
LOW⚡resources/skills/skill-creator/agents/analyzer.md77### Step 7: Generate Improvement SuggestionsCOMMENT
LOW⚡resources/skills/skill-creator/agents/analyzer.md87### Step 8: Write Analysis ResultsCOMMENT
LOW⚡resources/skills/skill-creator/agents/analyzer.md205### Step 1: Read Benchmark DataCOMMENT
LOW⚡resources/skills/skill-creator/agents/analyzer.md211### Step 2: Analyze Per-Assertion PatternsCOMMENT
LOW⚡resources/skills/skill-creator/agents/analyzer.md220### Step 3: Analyze Cross-Eval PatternsCOMMENT
LOW⚡resources/skills/skill-creator/agents/analyzer.md227### Step 4: Analyze Metrics PatternsCOMMENT
LOW⚡resources/skills/skill-creator/agents/analyzer.md234### Step 5: Generate NotesCOMMENT
LOWresources/skills/skill-creator/agents/analyzer.md249### Step 6: Write NotesCOMMENT
LOW.agents/skills/gh-create-issue/SKILL.md12### Step 1: Determine Template TypeCOMMENT
LOW⚡.agents/skills/gh-create-issue/SKILL.md55### Step 2: Read the Selected TemplateCOMMENT
LOW⚡.agents/skills/gh-create-issue/SKILL.md62### Step 3: Collect InformationCOMMENT
LOW⚡.agents/skills/gh-create-issue/SKILL.md66### Step 4: Build and Preview Issue ContentCOMMENT
LOW.agents/skills/gh-create-issue/SKILL.md79### Step 5: Create IssueCOMMENT
LOW.agents/skills/create-skill/SKILL.md12### Step 1: Gather IntentCOMMENT
LOW.agents/skills/create-skill/SKILL.md23### Step 2: Read GuidelinesCOMMENT
LOW.agents/skills/create-skill/SKILL.md27### Step 3: Create Skill StructureCOMMENT
LOW.agents/skills/create-skill/SKILL.md53### Step 4: Sync (if public)COMMENT
LOW.agents/skills/create-skill/SKILL.md67### Step 5: ValidateCOMMENT
LOW.agents/skills/create-skill/SKILL.md77### Step 6: SummaryCOMMENT
LOW.agents/skills/prepare-release/SKILL.md23### Step 1: Determine VersionCOMMENT
LOW.agents/skills/prepare-release/SKILL.md46### Step 2: Collect CommitsCOMMENT
LOW.agents/skills/prepare-release/SKILL.md71### Step 3: Generate Bilingual Release NotesCOMMENT
LOW.agents/skills/prepare-release/SKILL.md154### Step 4: Update FilesCOMMENT
LOW.agents/skills/prepare-release/SKILL.md162### Step 5: Present for ReviewCOMMENT
51 more matches not shown…
Over-Commented Block124 hits · 123 pts
SeverityFileLineSnippetContext
LOWdev-app-update.yml1# provider: genericCOMMENT
LOWvitest.config.ts41 // an N-API module). Vitest runs under system Node, so the module must be built for theCOMMENT
LOWscripts/download-binaries.js201 }COMMENT
LOW…kages/ui/stories/components/primitives/kbd.stories.tsx221// <div className="flex flex-wrap gap-4">COMMENT
LOW…kages/ui/stories/components/primitives/kbd.stories.tsx241// </TooltipTrigger>COMMENT
LOWpackages/provider-registry/src/providers/tokenhub.ts1import { defineProvider } from './types'COMMENT
LOWpackages/provider-registry/src/utils/normalize.ts121// `kimi-k2-250905`) denote the same model line. This is the SINGLE definition shared by the buildCOMMENT
LOWpackages/provider-registry/src/creators/iflytek.ts1import { defineCreator } from './types'COMMENT
LOWpackages/system-speech/windows/SystemSpeechHelper.cpp1#if !defined(_M_X64)COMMENT
LOW.github/workflows/sync-registry-data.yml1name: Sync provider-registry dataCOMMENT
LOWsrc/renderer/utils/style.ts201// @media (max-width: ${breakpoints[key]}px) {COMMENT
LOW…renderer/components/CodeBlockView/HtmlPreviewFrame.tsx1/* eslint-disable @eslint-react/dom/no-missing-iframe-sandbox -- sandbox is always supplied via the (defaulted) prop; thCOMMENT
LOW…erer/components/chat/messages/markdown/CitationSup.tsx41COMMENT
LOW…er/components/chat/messages/list/MessageAnchorLine.tsx161 // • ticks overflow → the strip scrolls inside the fixed margins.COMMENT
LOW…er/components/chat/messages/list/MessageAnchorLine.tsx321 fadeTop || fadeBottomCOMMENT
LOW…mponents/chat/messages/list/chatVirtualizerRuntime.tsx161// a gesture when its first scroll event arrives within this window. Once seeded,COMMENT
LOWsrc/renderer/components/layout/TabsProvider.tsx101 }COMMENT
LOWsrc/renderer/hooks/translate/useTranslateHistories.ts81 // already-loaded pages. Resetting (issue #19687) shrinks an infiniteCOMMENT
LOWsrc/renderer/data/hooks/useDataApi.ts521 // Memoized so the returned `trigger` keeps a stable identity across rendersCOMMENT
LOWsrc/renderer/data/hooks/__tests__/useDataApi.test.ts561})COMMENT
LOW…derer/pages/settings/McpSettings/AddMcpServerModal.tsx61// "stdio-server-example": {COMMENT
LOW…pages/miniApps/MiniAppSettings/useMiniAppVisibility.ts61 // status, and the local row's stale `status` then misclassifies the row inCOMMENT
LOWsrc/renderer/pages/agents/components/SessionItem.tsx121 )}COMMENT
LOW…c/renderer/pages/knowledge/panels/dataSource/styles.ts1// The checkbox is an inline-level box, so by default it aligns to its text baseline.COMMENT
LOWsrc/shared/IpcChannel.ts121COMMENT
LOWsrc/shared/types/file/ipc.ts541 //COMMENT
LOWsrc/shared/utils/__tests__/redaction.test.ts221 expect(redactUrlParams('not a url')).toBe('not a url')COMMENT
LOWsrc/shared/ai/builtinTools.ts21COMMENT
LOWsrc/shared/ai/builtinTools.ts41// Nothing goes unvalidated: the AI SDK still checks every tool call against these schemas, andCOMMENT
LOWsrc/shared/ai/builtinTools.ts481 // 2. A refinement is invisible to `toJSONSchema` (it emits no `format` keyword), so the schemaCOMMENT
LOWsrc/shared/data/types/file.ts181COMMENT
LOWsrc/shared/data/types/file.ts201// Discrimination on `origin` means an internal entry doesn't *have* anCOMMENT
LOWsrc/shared/data/types/file.ts381COMMENT
LOWsrc/shared/data/types/file.ts521}COMMENT
LOWsrc/shared/data/types/file.ts561COMMENT
LOWsrc/shared/data/cache/cacheSchemas.ts181 'translate.detecting': booleanCOMMENT
LOWsrc/shared/data/cache/cacheSchemas.ts341 // Job system: state snapshot + progress, broadcast main → all windows. TTL 60sCOMMENT
LOWsrc/shared/data/cache/cacheSchemas.ts361 // Nothing evicts an entry — that is the point, and it costs a handful of rows perCOMMENT
LOWsrc/main/core/power/PowerService.ts241 this.registerDisposable(() => powerMonitor.removeListener('shutdown', shutdownListener))COMMENT
LOWsrc/main/core/preboot/chromiumFlags.ts61 app.commandLine.appendSwitch('password-store', 'gnome-libsecret')COMMENT
LOWsrc/main/core/paths/constants.ts1// EARLIEST path constants for the Electron main process.COMMENT
LOWsrc/main/core/paths/pathRegistry.ts161 // BabelDOC runtime cache (layout model, fonts, CMap/tiktoken assets)COMMENT
LOWsrc/main/core/window/windowRegistry.ts41 // Managed by MainWindowService: dynamic options (theme-driven backgroundColor /COMMENT
LOWsrc/main/core/window/windowRegistry.ts241 }COMMENT
LOWsrc/main/core/window/windowRegistry.ts321 alwaysOnTop: { level: 'floating' },COMMENT
LOWsrc/main/core/window/windowRegistry.ts361 movable: true,COMMENT
LOWsrc/main/core/window/windowRegistry.ts481 // IpcApi handler via wm.behavior.setAlwaysOnTop; passing no level letsCOMMENT
LOWsrc/main/core/window/WindowManager.ts1581 public peekWindowBounds(type: WindowType): WindowBoundsState | undefined {COMMENT
LOWsrc/main/core/window/quirks.ts41 // Why: On macOS, hiding/closing a floating panel-style window lets theCOMMENT
LOWsrc/main/core/window/quirks.ts81 // Why: [macOS] the level passed to setAlwaysOnTop() is not sticky acrossCOMMENT
LOW…ain/core/window/__tests__/WindowManager.quirks.test.ts761 const win = firstWindow()COMMENT
LOWsrc/main/core/job/JobManager.ts1761 // Idempotency guard (invariant, defense-in-depth): never run a handler for aCOMMENT
LOW…main/core/job/__tests__/JobManager.integration.test.ts141 // for that type are treated as orphans and cancelled.COMMENT
LOW…core/application/__tests__/Application.getPath.test.ts21// We use `importActual + spread` to keep the real `shouldAutoEnsure`COMMENT
LOW…es/knowledge/pipeline/vectorstore/indexStore/schema.ts161 // rejects any duplicate loudly (the assignment is race-free only because all writes to a base'sCOMMENT
LOW…pipeline/vectorstore/indexStore/KnowledgeIndexStore.ts181 // failure modes:COMMENT
LOWsrc/main/features/miniApp/install/installFlow.ts401 // HONESTY gate: the user's file changed since the card was shown — say so, plainly,COMMENT
LOWsrc/main/features/miniApp/capabilities/file.ts301 // Lease taken BEFORE the queue, exactly as `save` does — and for a reason queueingCOMMENT
LOWsrc/main/features/miniApp/runtime/webviewHost.ts21COMMENT
LOWsrc/main/features/apiGateway/app.ts101 set.status = 403COMMENT
64 more matches not shown…
Fake / Example Data48 hits · 48 pts
SeverityFileLineSnippetContext
LOWtests/e2e/smoke/crawl4aiProviderPreset.test.ts88 await section.getByPlaceholder('API Key').fill('dummy-key-for-layout')CODE
LOWtests/e2e/smoke/queritFetchProbe.test.ts137 await section.getByPlaceholder('API Key', { exact: true }).fill('querit-e2e-fake-key')CODE
LOWscripts/i18n-check-hardcoded-strings.ts32 'placeholder',CODE
LOWscripts/i18n-check-hardcoded-strings.ts48const UI_PROPERTIES = ['message', 'text', 'title', 'label', 'placeholder', 'description', 'detail']CODE
LOW…ui/stories/components/composites/scrollbar.stories.tsx24 Line {i + 1}: Lorem ipsum dolor sit amet, consectetur adipiscing elit.CODE
LOW…ui/stories/components/composites/scrollbar.stories.tsx24 Line {i + 1}: Lorem ipsum dolor sit amet, consectetur adipiscing elit.CODE
LOW…ries/components/composites/composite-input.stories.tsx1173 placeholder="John Doe"CODE
LOW…ges/ui/stories/components/primitives/input.stories.tsx284 <Input type="email" placeholder="email@example.com" defaultValue="user@example.com" />CODE
LOW…ges/ui/stories/components/primitives/input.stories.tsx574 <Input id="profile-name" placeholder="John Doe" />CODE
LOW…es/ui/stories/components/primitives/drawer.stories.tsx155 defaultValue="John Doe"CODE
LOW…es/ui/stories/components/primitives/drawer.stories.tsx196 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore etCODE
LOW…es/ui/stories/components/primitives/drawer.stories.tsx196 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore etCODE
LOW…es/ui/stories/components/primitives/dialog.stories.tsx197 defaultValue="John Doe"CODE
LOW…es/ui/stories/components/primitives/dialog.stories.tsx265 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore etCODE
LOW…es/ui/stories/components/primitives/dialog.stories.tsx265 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore etCODE
LOW…/stories/components/primitives/input-group.stories.tsx517 <InputGroupInput type="email" placeholder="email@example.com" defaultValue="user@example.com" />CODE
LOW…/ui/stories/components/primitives/combobox.stories.tsx66 label: 'John Doe',CODE
LOW…omposites/search-input/__tests__/search-input.test.tsx17 expect(screen.getByRole('searchbox')).toHaveAttribute('placeholder', '搜索')CODE
LOW…/src/components/primitives/__tests__/combobox.test.tsx76 expect(input).toHaveAttribute('placeholder', 'Beta')CODE
LOW…nderer/components/RichEditor/extensions/placeholder.ts15 name: 'placeholder',CODE
LOW…nderer/components/RichEditor/extensions/placeholder.ts29 key: new PluginKey('placeholder'),CODE
LOW…nderer/components/RichEditor/extensions/placeholder.ts60 const classes = ['placeholder']CODE
LOW…/RichEditor/__tests__/markdownParsePerformance.test.ts78 const sentence = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. 'CODE
LOW…/RichEditor/__tests__/markdownParsePerformance.test.ts78 const sentence = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor. 'CODE
LOWsrc/renderer/components/composer/composerPreset.ts16 placeholder?: PlaceholderOptions['placeholder']CODE
LOW…r/components/composer/__tests__/composerPreset.test.ts23 'placeholder',CODE
LOWsrc/renderer/components/popups/PromptPopup.tsx11 'defaultValue' | 'onValueChange' | 'placeholder' | 'ref' | 'value'CODE
LOW…rceCatalog/dialogs/edit/__tests__/EditDialogs.test.tsx1441 expect(instructionsInput).toHaveAttribute('placeholder', 'Tell this assistant how to respond')CODE
LOW…rceCatalog/dialogs/edit/__tests__/EditDialogs.test.tsx1891 expect(input).toHaveAttribute('placeholder', 'Unlimited')CODE
LOW…dows/quickAssistant/home/__tests__/HomeWindow.test.tsx347 expect(input).toHaveAttribute('placeholder', 'Ask Claude Sonnet')CODE
LOW…lSettings/__tests__/ContextManagementSettings.test.tsx73 expect(input).toHaveAttribute('placeholder', 'settings.models.context_management.max_messages_unlimited')CODE
LOW…erer/pages/settings/__tests__/BrowserSettings.test.tsx200 { ...chrome, displayName: 'Work', account: 'user@example.com' },CODE
LOW…erer/pages/settings/__tests__/BrowserSettings.test.tsx206 account: 'user@example.com'CODE
LOW…viderSettings/ModelList/__tests__/ModelDrawer.test.tsx998 expect(screen.getByLabelText('Max output tokens')).toHaveAttribute('placeholder', 'e.g. 65536')CODE
LOW…/main/features/browser/__tests__/browserImport.test.ts198 account: 'user@example.com'CODE
LOWsrc/main/features/browser/__tests__/actions.test.ts226 expect((target as HTMLInputElement).value).toBe('user@example.com')CODE
LOW…/features/knowledge/__tests__/KnowledgeService.test.ts2344 arrangeReadable('placeholder')CODE
LOW…s/apiGateway/tokens/__tests__/fallbackEstimate.test.ts26 const prompt = 'lorem ipsum dolor sit amet '.repeat(5_000)CODE
LOW…s/apiGateway/tokens/__tests__/fallbackEstimate.test.ts26 const prompt = 'lorem ipsum dolor sit amet '.repeat(5_000)CODE
LOW…/__tests__/messageRules.anthropicSerialization.test.ts92 model: createAnthropic({ apiKey: 'dummy-key', baseURL })('claude-sonnet-4-5'),CODE
LOWsrc/main/ai/runtime/pi/piTransportStream.test.ts11 apiKey: 'placeholder',CODE
LOWsrc/main/ai/runtime/pi/piTransportStream.test.ts58 apiKey: 'placeholder',CODE
LOWsrc/main/ai/runtime/pi/PiRuntimeConnection.test.ts428 providerConfig: { name: 'P', baseUrl: 'https://x', apiKey: 'placeholder', api: 'anthropic-messages', models: [] },CODE
LOWsrc/main/ai/runtime/pi/PiRuntimeConnection.test.ts625 apiKey: 'placeholder',CODE
LOWsrc/main/ai/runtime/pi/PiRuntimeConnection.test.ts685 apiKey: 'placeholder',CODE
LOW…main/ai/contextBuild/__tests__/toolOutputStore.test.ts37const BIG_TEXT = Array.from({ length: 200 }, (_, i) => `log line ${i + 1} — lorem ipsum dolor sit amet`).join('\n')CODE
LOW…main/ai/contextBuild/__tests__/toolOutputStore.test.ts37const BIG_TEXT = Array.from({ length: 200 }, (_, i) => `log line ${i + 1} — lorem ipsum dolor sit amet`).join('\n')CODE
LOWsrc/main/data/db/schemas/__tests__/file.test.ts79 dbh.db.insert(fileEntryTable).values(baseExternal('placeholder', { externalPath: null }))CODE
Empty Error Handlers9 hits · 45 pts
SeverityFileLineSnippetContext
HIGH…es/skills/skill-creator/eval-viewer/generate_review.py304except subprocess.TimeoutExpired:CODE
HIGH…es/skills/skill-creator/eval-viewer/generate_review.py231except (json.JSONDecodeError, OSError, KeyError):CODE
HIGH…es/skills/skill-creator/eval-viewer/generate_review.py429except (json.JSONDecodeError, OSError):CODE
HIGH…es/skills/skill-creator/eval-viewer/generate_review.py97except (json.JSONDecodeError, OSError):CODE
HIGH…es/skills/skill-creator/eval-viewer/generate_review.py135except (json.JSONDecodeError, OSError):CODE
HIGH…es/skills/skill-creator/eval-viewer/generate_review.py111except OSError:CODE
HIGH…es/skills/skill-creator/eval-viewer/generate_review.py300except (ProcessLookupError, ValueError):CODE
HIGH…es/skills/skill-creator/eval-viewer/generate_review.py341except (json.JSONDecodeError, OSError):CODE
HIGH…es/skills/skill-creator/scripts/aggregate_benchmark.py146except json.JSONDecodeError:CODE
Verbosity Indicators18 hits · 32 pts
SeverityFileLineSnippetContext
LOW…dialogs/create/__tests__/ResourceCreateWizard.test.tsx264 // Step 1: Next is blocked until name + model are set.COMMENT
LOWsrc/main/core/preboot/v2MigrationGate.ts132 // Step 0: Resolve all migration-critical paths, including v1 legacyCOMMENT
LOW⚡…Sdk/params/features/__tests__/inLoopCompaction.test.ts423 // Step 1: over budget → full fold.COMMENT
LOW⚡…Sdk/params/features/__tests__/inLoopCompaction.test.ts429 // Step 2: loop re-appends history + a huge new tool result → over budget again.COMMENT
LOW⚡…n/ai/channels/adapters/feishu/FeishuAppRegistration.ts59 // Step 1: init — check supported auth methodsCOMMENT
LOW⚡…n/ai/channels/adapters/feishu/FeishuAppRegistration.ts63 // Step 2: begin — start device flowCOMMENT
LOWsrc/main/ai/channels/adapters/wechat/WeChatProtocol.ts362 // Step 1: get upload URLCOMMENT
LOWsrc/main/ai/channels/adapters/wechat/WeChatProtocol.ts389 // Step 2: upload(官方优先直接 POST upload_full_url,否则回退用 upload_param 拼接)COMMENT
LOWsrc/main/data/migration/v2/migrators/ChatMigrator.ts342 // Step 1: Verify export files existCOMMENT
LOWsrc/main/data/migration/v2/migrators/ChatMigrator.ts358 // Step 2: Load assistant data for model lookupCOMMENT
LOWsrc/main/data/migration/v2/migrators/ChatMigrator.ts402 // Step 3: Count topics and estimate messagesCOMMENT
LOWsrc/main/data/migration/v2/migrators/ChatMigrator.ts416 // Step 4: Validate sample dataCOMMENT
LOW…ain/data/migration/v2/migrators/PreferencesMigrator.ts104 // Step 1: Detect conflicts between simple and complex mappings (strict mode)COMMENT
LOW…ain/data/migration/v2/migrators/PreferencesMigrator.ts119 // Step 2: Process simple mappingsCOMMENT
LOW…ain/data/migration/v2/migrators/PreferencesMigrator.ts160 // Step 3: Process complex mappingsCOMMENT
LOW⚡src/main/data/services/MessageService.ts989 // Step 1: Verify topic exists and fetch its current state.COMMENT
LOW⚡src/main/data/services/MessageService.ts993 // Step 2: Resolve parentId based on the three possible input states:COMMENT
LOWsrc/main/data/services/MessageService.ts1019 // Step 3: Insert the message using the resolved parentId.COMMENT
Modern AI Meta-Vocabulary11 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMtests/__mocks__/renderer/CacheService.ts386 // Test scaffold: seed a shared cache entry with an arbitrary string key,COMMENT
MEDIUMdocs/references/mini-app/probes.md25## Shared scaffoldingCOMMENT
MEDIUMdocs/references/knowledge/knowledge-service.md228(see [operation guards](./operation-guards.md#enableembeddingmodel)). Changing a base that already has an embedding modeCODE
MEDIUM⚡packages/provider-registry/src/schemas/enums.ts65// agentic tools (e.g. external web search via Tavily/Exa).COMMENT
MEDIUMpackages/provider-registry/src/creators/cohere.ts211 // ── North (agentic code) ──COMMENT
MEDIUMpackages/ai-sdk-provider/CHANGELOG.md19- [#14988](https://github.com/CherryHQ/cherry-studio/pull/14988) [`11604e0`](https://github.com/CherryHQ/cherry-studio/cCODE
MEDIUMpackages/aiCore/CHANGELOG.md61- [#14988](https://github.com/CherryHQ/cherry-studio/pull/14988) [`11604e0`](https://github.com/CherryHQ/cherry-studio/cCODE
MEDIUMpackages/aiCore/src/core/context/janitor.ts249 // the bulk of an agentic history, and their full text is the least usefulCOMMENT
MEDIUMpackages/web-search/CHANGELOG.md41- [#21807](https://github.com/CherryHQ/cherry-studio/pull/21807) [`48d529d`](https://github.com/CherryHQ/cherry-studio/cCODE
MEDIUMsrc/renderer/utils/errorDiagnosis.ts129 return `## Context\nThe prompt exceeds the model's context window. Suggest clearing chat history, removing large attCODE
MEDIUM…igEditPanel/__tests__/useConfigDraftController.test.ts468 // Not the applied provider: clearing the model is only a scaffold to get a dirty draft, and theCOMMENT
Magic Placeholder Names5 hits · 25 pts
SeverityFileLineSnippetContext
HIGHpackages/aiCore/README.md109 apiKey: 'your-api-key'CODE
HIGHpackages/aiCore/README.md130 apiKey: 'your-api-key'CODE
HIGH…ToolSettings/ApiGatewaySettings/ApiGatewaySettings.tsx64 const authorizationHeader = `Authorization: Bearer ${apiKey || 'your-api-key'}`CODE
HIGH…ToolSettings/ApiGatewaySettings/ApiGatewaySettings.tsx273 value={`Authorization: Bearer ${apiKey ? (apiKeyVisible ? apiKey : '•'.repeat(Math.min(apiKey.length, CODE
HIGHsrc/shared/data/presets/mcpServers.ts95 BRAVE_API_KEY: 'YOUR_API_KEY'CODE
AI Slop Vocabulary8 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUM…ents/CodeBlockView/__tests__/HtmlPreviewFrame.test.tsx66 // reliable boundary — the only robust exfiltration guard is to run no scripts at all.COMMENT
MEDIUM…/components/chat/panes/__tests__/ArtifactPane.test.tsx801 // re-bind via `mockImplementation` (more robust than `mockResolvedValue`COMMENT
MEDIUM…review/plugins/html/__tests__/HtmlFilePreview.test.tsx135 // parent.api; the only robust guard is running no scripts at all, backed by a strict CSP.COMMENT
MEDIUMsrc/renderer/hooks/useSmoothStream.ts137 // median (median over GAP_SAMPLES is already robust to the ~few-percentCOMMENT
MEDIUMsrc/main/core/preboot/__tests__/chromiumFlags.test.ts85 // each test is the robust pattern.COMMENT
MEDIUMsrc/main/core/preboot/__tests__/v2MigrationGate.test.ts190 // is the robust pattern, no explicit doUnmock needed.COMMENT
MEDIUM…c/main/core/preboot/__tests__/userDataLocation.test.ts165 // The robust pattern is: resetModules() in beforeEach + freshCOMMENT
MEDIUM…ain/ai/streamManager/__tests__/AiStreamManager.test.ts3360 // transport-owned `exec.timings` — keeps manager robust to AI SDKCOMMENT
Synthetic Comment Markers2 hits · 19 pts
SeverityFileLineSnippetContext
HIGHpackages/ui/docs/variable-catalog.md217## 9. Rules for AI-generated codeCOMMENT
HIGH⚡src/main/services/TopicNamingService.ts129// title → one AI summary title. Once a real title exists (AI-generated orCOMMENT
Deep Nesting15 hits · 15 pts
SeverityFileLineSnippetContext
LOW…s/skills/office-transform/scripts/office_patch_copy.py72CODE
LOW…sources/skills/office-transform/scripts/office/docx.py125CODE
LOW…sources/skills/office-transform/scripts/office/docx.py242CODE
LOW…sources/skills/office-transform/scripts/office/docx.py144CODE
LOW…sources/skills/office-transform/scripts/office/xlsx.py170CODE
LOW…sources/skills/office-transform/scripts/office/pptx.py32CODE
LOW…es/skills/skill-creator/eval-viewer/generate_review.py85CODE
LOW…es/skills/skill-creator/eval-viewer/generate_review.py149CODE
LOW…es/skills/skill-creator/eval-viewer/generate_review.py288CODE
LOWresources/skills/skill-creator/scripts/run_eval.py36CODE
LOWresources/skills/skill-creator/scripts/package_skill.py42CODE
LOW…es/skills/skill-creator/scripts/improve_description.py51CODE
LOW…es/skills/skill-creator/scripts/aggregate_benchmark.py67CODE
LOW…ources/skills/skill-creator/scripts/generate_report.py16CODE
LOWresources/skills/skill-creator/scripts/utils.py7CODE
Excessive Try-Catch Wrapping7 hits · 11 pts
SeverityFileLineSnippetContext
LOW…ources/skills/office-transform/scripts/office/ooxml.py125 except Exception as error: # noqa: BLE001 - any parse failure means the part is unusableCODE
MEDIUM…es/skills/skill-creator/eval-viewer/generate_review.py409 print(f"Error: {workspace} is not a directory", file=sys.stderr)CODE
LOWresources/skills/skill-creator/scripts/run_eval.py225 except Exception as e:CODE
MEDIUMresources/skills/skill-creator/scripts/run_eval.py278 print(f"Error: No SKILL.md found at {skill_path}", file=sys.stderr)CODE
LOWresources/skills/skill-creator/scripts/package_skill.py106 except Exception as e:CODE
MEDIUM…es/skills/skill-creator/scripts/improve_description.py206 print(f"Error: No SKILL.md found at {skill_path}", file=sys.stderr)CODE
MEDIUMresources/skills/skill-creator/scripts/run_loop.py265 print(f"Error: No SKILL.md found at {skill_path}", file=sys.stderr)CODE
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH…ponents/CodeBlockView/__tests__/CodeBlockView.test.tsx241 print(42)CODE
Slop Phrases2 hits · 3 pts
SeverityFileLineSnippetContext
MEDIUM…nts/composites/horizontal-scroll-container.stories.tsx127 <p className="text-sm text-gray-600">This is a sample card content for demonstration purposes.</p>CODE
LOW.github/ISSUE_TEMPLATE/2_question.yml60 placeholder: "For example: use case, solutions you've tried, etc. Don't forget to include relevant screenshots/recCODE
Modern Structural Boilerplate2 hits · 2 pts
SeverityFileLineSnippetContext
LOW…sources/skills/office-transform/scripts/office/xlsx.py449def set_cell_value(doc: minidom.Document, cell, value) -> None:CODE
LOW…sources/skills/office-transform/scripts/office/xlsx.py519def update_dimension(worksheet, edited: list[tuple[int, int]]) -> None:CODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…sources/skills/skill-creator/scripts/quick_validate.py7CODE