Repository Analysis

CherryHQ/cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs

3.6 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of CherryHQ/cherry-studio, a TypeScript project with 48,538 GitHub stars. SynthScan v2.0 examined 1,108,103 lines of code across 5896 source files, recording 3026 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 3.6 places this repository in the Likely human-written band.

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

3.6
Adjusted Score
3.6
Raw Score
100%
Time Factor
2026-07-14
Last Push
48.5K
Stars
TypeScript
Language
1.1M
Lines of Code
5.9K
Files
3.0K
Pattern Hits
2026-07-14
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

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

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 7HIGH 7MEDIUM 452LOW 2560

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 3026 distinct pattern matches across 17 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.

Decorative Section Separators436 hits · 1342 pts
SeverityFileLineSnippetContext
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.md415 // ── Single dispatch entry ─────────────────────────────────────────COMMENT
MEDIUMdocs/references/ai/stream-manager.md434 // ── Subscription management ───────────────────────────────────────COMMENT
MEDIUMdocs/references/ai/stream-manager.md440 // ── Control ───────────────────────────────────────────────────────COMMENT
MEDIUMdocs/references/ai/stream-manager.md454 // ── Inspection (read-only snapshot) ───────────────────────────────COMMENT
MEDIUM…s/data/best-practice-default-values-and-nullability.md181// ─── DB schema ────────────────────────────────────────────────COMMENT
MEDIUM…s/data/best-practice-default-values-and-nullability.md199// ─── Zod schema ───────────────────────────────────────────────COMMENT
MEDIUM…s/data/best-practice-default-values-and-nullability.md231// ─── Service ──────────────────────────────────────────────────COMMENT
MEDIUM…s/data/best-practice-default-values-and-nullability.md252// ─── Row → Entity ─────────────────────────────────────────────COMMENT
MEDIUMscripts/download-binaries.js14// ── Tool definitions ─────────────────────────────────────────────────COMMENT
MEDIUMscripts/download-binaries.js227// ── Core logic ───────────────────────────────────────────────────────COMMENT
MEDIUMscripts/download-binaries.js328// ── Main ─────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/generate-avatars.ts273// ──────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/generate-avatars.ts275// ──────────────────────────────────────────────────────────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.ts13// ─── colorToLuminance ───────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/__tests__/svg-utils.test.ts64// ─── isWhiteFill ────────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/__tests__/svg-utils.test.ts96// ─── parseSvgPathBounds ─────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/__tests__/svg-utils.test.ts153// ─── parseViewBox ───────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/__tests__/svg-utils.test.ts177// ─── isLargeShape ───────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/__tests__/svg-utils.test.ts195// ─── normalizeColor ─────────────────────────────────────────────────COMMENT
MEDIUMpackages/ui/scripts/__tests__/svg-utils.test.ts213// ─── 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.tsx97 // ── Keyboard navigation ────────────────────────────────────────────────COMMENT
MEDIUMpackages/provider-registry/scripts/upstream.ts56// ── models.dev ───────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/provider-registry/scripts/upstream.ts146// ── OpenRouter ───────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/provider-registry/scripts/upstream.ts187// ── merge across sources (the fix for the minimax-m3 video gap) ───────────────COMMENT
MEDIUMpackages/provider-registry/scripts/upstream.ts225// ── 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.ts131// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/provider-registry/src/utils/normalize.ts133// ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ges/provider-registry/src/schemas/imageParamCatalog.ts33// ── Value-type helpers ───────────────────────────────────────────────────────COMMENT
MEDIUM…kages/provider-registry/src/schemas/provider-models.ts27// ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUM…kages/provider-registry/src/schemas/provider-models.ts29// ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMpackages/provider-registry/src/schemas/provider.ts15// ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMpackages/provider-registry/src/schemas/provider.ts17// ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMpackages/provider-registry/src/schemas/provider.ts38// ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMpackages/provider-registry/src/schemas/provider.ts44// ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMpackages/provider-registry/src/schemas/provider.ts169// ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMpackages/provider-registry/src/schemas/provider.ts171// ═══════════════════════════════════════════════════════════════════════════════COMMENT
MEDIUMpackages/provider-registry/src/schemas/enums.ts11// ─────────────────────────────────────────────────────────────────────────────COMMENT
376 more matches not shown…
Hyper-Verbose Identifiers1142 hits · 1214 pts
SeverityFileLineSnippetContext
LOW…s/data-classify/scripts/DO-NOT-USE-check-duplicates.js6function checkDuplicatesAndChildren() {CODE
LOWscripts/skills-common.ts53export function buildAgentsSkillsGitignore(skillNames: string[]): string {CODE
LOWscripts/skills-common.ts71export function buildClaudeSkillsGitignore(skillNames: string[]): string {CODE
LOWscripts/update-app-upgrade-config.ts485async function ensureReleaseAvailability(releaseInfo: ReleaseInfo): Promise<ReleaseAvailability> {CODE
LOWscripts/skills-check.ts65function checkTrackedFilesAgainstWhitelist(skillNames: string[], errors: string[]) {CODE
LOWscripts/check-legacy-css-vars.ts204export function findLegacyVarHitsInContent(content: string, filePath: string): Finding[] {CODE
LOWscripts/check-pr-style-reminders.ts79function isCanonicalClassCheckFile(filePath: string): boolean {CODE
LOWscripts/check-pr-style-reminders.ts95function getChangedCanonicalClassFiles(baseRef: string, headRef: string): string[] {CODE
LOWscripts/check-pr-style-reminders.ts105export function parseAddedLineNumbersFromDiff(diff: string): Set<number> {CODE
LOWscripts/check-pr-style-reminders.ts155export function parseAddedLegacyVarFindingsFromDiff(diff: string, filePath: string): PullRequestLegacyFinding[] {CODE
LOWscripts/check-pr-style-reminders.ts204export function checkPullRequestLegacyVars({CODE
LOWscripts/check-pr-style-reminders.ts216export async function checkPullRequestTailwindCanonicalClasses({CODE
LOWscripts/check-pr-style-reminders.ts240export function buildPullRequestStyleRemindersComment(CODE
LOWscripts/check-pr-style-reminders.ts261function buildLegacyVarsCommentSection(findings: PullRequestLegacyFinding[]): string {CODE
LOWscripts/check-pr-style-reminders.ts301function buildCanonicalClassesCommentSection(findings: PullRequestTailwindCanonicalFinding[]): string {CODE
LOWscripts/check-unused-i18n.ts115function getJsxAttributeStringValue(node: Node): string | null {CODE
LOWscripts/check-unused-i18n.ts161function collectTemplateExpressionMatches(CODE
LOWscripts/check-unused-i18n.ts204function collectExactSourceTextReferences(CODE
LOWscripts/check-unused-i18n.ts218function collectShortcutReferences(localeKeys: Set<string>, usedKeys: Set<string>): void {CODE
LOWscripts/check-unused-i18n.ts226function collectTranslationNamespaceAliases(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.ts48function generateLanguagesFileContent(languages: Record<string, LanguageData>): string {CODE
LOWpackages/extension-table-plus/src/cell/table-cell.ts31function 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.tsx316 render: function RealTimeValidationExample() {CODE
LOW…es/ui/stories/components/primitives/switch.stories.tsx520 render: function InteractiveLoadingExample() {CODE
LOW…/ui/stories/components/primitives/textarea.stories.tsx97 render: function WithCharacterCountExample() {CODE
LOW…/ui/stories/components/primitives/combobox.stories.tsx497 render: function TriggerSearchFontListExample() {CODE
LOW…/ui/stories/components/primitives/combobox.stories.tsx535 render: function CustomFilterOptionExample() {CODE
LOW…s/components/primitives/description-switch.stories.tsx271 render: function NotificationSettingsExample() {CODE
LOW…s/components/primitives/description-switch.stories.tsx384 render: function ApplicationSettingsExample() {CODE
LOW…s/components/primitives/description-switch.stories.tsx557 render: function ComplexSettingsPanelExample() {CODE
LOWpackages/ui/scripts/generate-icons.ts149function collectStaticSvgReferences(jsCode: string): Set<string> {CODE
LOWpackages/ui/scripts/svgo-remove-background.ts61export function createRemoveBackgroundPlugin(options: RemoveBackgroundOptions = {}) {CODE
LOWpackages/ui/scripts/svgo-convert-to-mono.ts78export function createConvertToMonoPlugin(options: ConvertToMonoOptions = {}) {CODE
LOW…ges/ui/src/components/composites/markdown/internal.tsx43function resolveDefaultRehypePlugins(): ResolvedDefaultRehypePlugins {CODE
LOW…/composites/markdown/plugins/rehype-prefix-svg-refs.ts56export function rehypePrefixSvgReferences(clobberPrefix = 'user-content-') {CODE
LOW…i/src/components/composites/markdown/utils/sanitize.ts194export function createMarkdownSanitizeSchema(schema: MarkdownSanitizeSchema): MarkdownSanitizeSchema {CODE
LOW…ages/ui/src/components/primitives/portal-container.tsx31export function DialogPortalContainerProvider({CODE
LOWpackages/ui/src/components/primitives/calendar.tsx128function handleCalendarDropdownChange(value: string | number, onChange: DropdownProps['onChange']) {CODE
LOW…i/src/components/primitives/__tests__/popover.test.tsx23function ControlledForceMountPopover({ onOutsideClick }: { onOutsideClick: () => void }) {CODE
LOWpackages/ui/src/components/icons/loader.ts27function loadProviderCatalogModule(): Promise<ProviderCatalogModule> {CODE
LOWpackages/ui/src/components/icons/registry.ts259export function resolveModelToProviderIconRef(modelId: string): IconRef | undefined {CODE
LOWpackages/provider-registry/src/registry-utils.ts62export function buildRuntimeEndpointConfigs(CODE
LOWpackages/provider-registry/src/registry-utils.ts137export function endpointImpliedCapability(endpointType: EndpointType | undefined | null): ModelCapability | undefined {CODE
LOWpackages/provider-registry/src/registry-loader.ts38export function readProviderModelRegistry(jsonPath: string): { version: string; overrides: ProviderModelOverride[] } {CODE
LOWpackages/provider-registry/src/utils/normalize.ts240export function normalizeVersionSeparators(modelId: string): string {CODE
LOWpackages/provider-registry/src/utils/normalize.ts264export function stripVariantQuantDateSuffixes(modelId: string): string {CODE
LOW…-sdk-provider/src/openai-compatible-reranking-model.ts108export function createOpenAICompatibleRerankingModel(CODE
LOWpackages/aiCore/test_utils/helpers/common.ts14export function createTestStreamingProvider(chunks: any[]) {CODE
LOWpackages/aiCore/test_utils/helpers/common.ts62export function createDelayedAbortController(delayMs: number): AbortController {CODE
LOWpackages/aiCore/test_utils/helpers/common.ts228export function createRateLimitedProvider(limitPerSecond: number) {CODE
LOWpackages/aiCore/src/core/runtime/index.ts121export async function createOpenAICompatibleExecutor(CODE
LOWsrc/renderer/types/mcp.ts258export function safeValidateMcpServerConfig(config: unknown) {CODE
1082 more matches not shown…
Fake / Example Data1132 hits · 802 pts
SeverityFileLineSnippetContext
LOWtests/e2e/README.md136 this.someInput = page.locator('input[placeholder*="placeholder"]')CODE
LOWtests/e2e/pages/home.page.ts108 return input.first().getAttribute('placeholder')CODE
LOWscripts/check-hardcoded-strings.ts18 'placeholder',CODE
LOWscripts/check-hardcoded-strings.ts34const 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.tsx283 <Input type="email" placeholder="email@example.com" defaultValue="user@example.com" />CODE
LOW…ges/ui/stories/components/primitives/input.stories.tsx573 <Input id="profile-name" placeholder="John Doe" />CODE
LOW…es/ui/stories/components/primitives/drawer.stories.tsx154 defaultValue="John Doe"CODE
LOW…es/ui/stories/components/primitives/drawer.stories.tsx195 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore etCODE
LOW…es/ui/stories/components/primitives/drawer.stories.tsx195 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore etCODE
LOW…es/ui/stories/components/primitives/dialog.stories.tsx196 defaultValue="John Doe"CODE
LOW…es/ui/stories/components/primitives/dialog.stories.tsx264 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore etCODE
LOW…es/ui/stories/components/primitives/dialog.stories.tsx264 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore etCODE
LOW…/stories/components/primitives/input-group.stories.tsx516 <InputGroupInput type="email" placeholder="email@example.com" defaultValue="user@example.com" />CODE
LOW…/ui/stories/components/primitives/combobox.stories.tsx65 label: 'John Doe',CODE
LOW…omposites/search-input/__tests__/search-input.test.tsx18 expect(screen.getByRole('searchbox')).toHaveAttribute('placeholder', '搜索')CODE
LOW…/src/components/primitives/__tests__/combobox.test.tsx49 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.ts54 const classes = ['placeholder']CODE
LOW…r/components/composer/__tests__/composerPreset.test.ts15 'placeholder',CODE
LOWsrc/renderer/components/popups/PromptPopup.tsx10 'defaultValue' | 'onValueChange' | 'placeholder' | 'ref' | 'value'CODE
LOW…rceCatalog/dialogs/edit/__tests__/EditDialogs.test.tsx698 expect(instructionsInput).toHaveAttribute('placeholder', 'Tell this agent how to work')CODE
LOW…dows/quickAssistant/home/__tests__/HomeWindow.test.tsx143 expect(screen.getByTestId('quick-input')).toHaveAttribute('placeholder', 'Ask Qwen')CODE
LOWsrc/renderer/i18n/locales/zh-cn.json1073 "placeholder": "选择知识库"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json1077 "placeholder": "输入名称"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json1081 "placeholder": "输入提示词",CODE
LOWsrc/renderer/i18n/locales/zh-cn.json5798 "placeholder": "请输入备份文件名"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json5807 "placeholder": "Bucket, 例如: example"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json5811 "placeholder": "https://s3.example.com"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json5874 "placeholder": "请选择要恢复的备份文件"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json5882 "placeholder": "例如:/cherry-studio"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json5886 "placeholder": "Secret Access Key"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json6638 "placeholder": "例如 128000"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json6642 "placeholder": "选择端点类型",CODE
LOWsrc/renderer/i18n/locales/zh-cn.json6649 "placeholder": "例如 ChatGPT",CODE
LOWsrc/renderer/i18n/locales/zh-cn.json6654 "placeholder": "例如 128000"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json6658 "placeholder": "例如 4096"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json6662 "placeholder": "例如 gpt-5.5",CODE
LOWsrc/renderer/i18n/locales/zh-cn.json6665 "placeholder": "选择模型"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json6671 "placeholder": "例如 GPT-5.5",CODE
LOWsrc/renderer/i18n/locales/zh-cn.json16 "placeholder": "选择智能体类型"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json191 "placeholder": "选择 bash.exe 路径",CODE
LOWsrc/renderer/i18n/locales/zh-cn.json202 "placeholder": "输入消息,按 {{key}} 发送,输入 / 搜索路径或命令"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json361 "placeholder": "选择预先授权的工具"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json431 "placeholder": "搜索任务",CODE
LOWsrc/renderer/i18n/locales/zh-cn.json464 "placeholder": "选择工作目录",CODE
LOWsrc/renderer/i18n/locales/zh-cn.json493 "placeholder": "选择权限模式"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json545 "placeholder": "搜索插件..."CODE
LOWsrc/renderer/i18n/locales/zh-cn.json604 "placeholder": "选择权限模式",CODE
LOWsrc/renderer/i18n/locales/zh-cn.json654 "placeholder": "选择接收结果的频道"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json696 "placeholder": "例如:每日代码审查"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json704 "placeholder": "此任务运行时智能体应该做什么?"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json727 "placeholder": "无限制"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json1005 "placeholder": "API 密钥将自动生成"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json1343 "placeholder": "搜索"CODE
LOWsrc/renderer/i18n/locales/zh-cn.json1414 "placeholder": "输入消息,按 {{key}} 发送,输入 / 选择工具或操作",CODE
LOWsrc/renderer/i18n/locales/zh-cn.json1635 "placeholder": "请选择知识库",CODE
1072 more matches not shown…
Structural Annotation Overuse138 hits · 247 pts
SeverityFileLineSnippetContext
LOWresources/skills/find-skills/SKILL.md60### Step 1: Understand What They NeedCOMMENT
LOWresources/skills/find-skills/SKILL.md68### Step 2: Check the Leaderboard FirstCOMMENT
LOWresources/skills/find-skills/SKILL.md76### Step 3: Search for SkillsCOMMENT
LOWresources/skills/find-skills/SKILL.md90### Step 4: Verify Quality Before RecommendingCOMMENT
LOWresources/skills/find-skills/SKILL.md98### Step 5: Present Options to the UserCOMMENT
LOWresources/skills/find-skills/SKILL.md120### Step 6: Install (Requires User Confirmation)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
LOWresources/skills/skill-creator/agents/grader.md21### Step 1: Read the TranscriptCOMMENT
LOWresources/skills/skill-creator/agents/grader.md27### Step 2: Examine Output FilesCOMMENT
LOWresources/skills/skill-creator/agents/grader.md33### Step 3: Evaluate Each AssertionCOMMENT
LOWresources/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
LOWresources/skills/skill-creator/agents/comparator.md22### Step 1: Read Both OutputsCOMMENT
LOWresources/skills/skill-creator/agents/comparator.md29### Step 2: Understand the TaskCOMMENT
LOWresources/skills/skill-creator/agents/comparator.md37### Step 3: Generate Evaluation RubricCOMMENT
LOWresources/skills/skill-creator/agents/comparator.md60### Step 4: Evaluate Each Output Against the RubricCOMMENT
LOWresources/skills/skill-creator/agents/comparator.md68### Step 5: Check Assertions (if provided)COMMENT
LOWresources/skills/skill-creator/agents/comparator.md77### Step 6: Determine the WinnerCOMMENT
LOWresources/skills/skill-creator/agents/comparator.md87### Step 7: Write Comparison ResultsCOMMENT
LOWresources/skills/skill-creator/agents/analyzer.md23### Step 1: Read Comparison ResultCOMMENT
LOWresources/skills/skill-creator/agents/analyzer.md29### Step 2: Read Both SkillsCOMMENT
LOWresources/skills/skill-creator/agents/analyzer.md39### Step 3: Read Both TranscriptsCOMMENT
LOWresources/skills/skill-creator/agents/analyzer.md49### Step 4: Analyze Instruction FollowingCOMMENT
LOWresources/skills/skill-creator/agents/analyzer.md59### Step 5: Identify Winner StrengthsCOMMENT
LOWresources/skills/skill-creator/agents/analyzer.md69### Step 6: Identify Loser WeaknessesCOMMENT
LOWresources/skills/skill-creator/agents/analyzer.md77### Step 7: Generate Improvement SuggestionsCOMMENT
LOWresources/skills/skill-creator/agents/analyzer.md87### Step 8: Write Analysis ResultsCOMMENT
LOWresources/skills/skill-creator/agents/analyzer.md205### Step 1: Read Benchmark DataCOMMENT
LOWresources/skills/skill-creator/agents/analyzer.md211### Step 2: Analyze Per-Assertion PatternsCOMMENT
LOWresources/skills/skill-creator/agents/analyzer.md220### Step 3: Analyze Cross-Eval PatternsCOMMENT
LOWresources/skills/skill-creator/agents/analyzer.md227### Step 4: Analyze Metrics PatternsCOMMENT
LOWresources/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.md22### Step 2: Read the Selected TemplateCOMMENT
LOW.agents/skills/gh-create-issue/SKILL.md27### Step 3: Collect InformationCOMMENT
LOW.agents/skills/gh-create-issue/SKILL.md31### Step 4: Build and Preview Issue ContentCOMMENT
LOW.agents/skills/gh-create-issue/SKILL.md43### 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.md34### Step 2: Collect CommitsCOMMENT
LOW.agents/skills/prepare-release/SKILL.md53### Step 3: Generate Bilingual Release NotesCOMMENT
LOW.agents/skills/prepare-release/SKILL.md126### Step 4: Update FilesCOMMENT
LOW.agents/skills/prepare-release/SKILL.md131### Step 5: Present for ReviewCOMMENT
78 more matches not shown…
Over-Commented Block94 hits · 94 pts
SeverityFileLineSnippetContext
LOWdev-app-update.yml1# provider: genericCOMMENT
LOWvitest.config.ts21 extends: true,COMMENT
LOWdocs/references/file/file-manager-architecture.md941 // orphans not present in the file_entry snapshot.COMMENT
LOW…kages/ui/stories/components/primitives/kbd.stories.tsx221// <Tooltip>COMMENT
LOW…kages/ui/stories/components/primitives/kbd.stories.tsx241// <TooltipContent>COMMENT
LOW…nents/chat/messages/tools/shared/ClickableFilePath.tsx61 )COMMENT
LOW…mponents/chat/messages/list/chatVirtualizerRuntime.tsx161// During a programmatic bottom-follow, scroll events fire as the viewportCOMMENT
LOW…mponents/chat/messages/list/chatVirtualizerRuntime.tsx201 const atBottom = useAtBottomTracker()COMMENT
LOW…mponents/chat/messages/list/chatVirtualizerRuntime.tsx681 // pinned, the spacer is monotonic: it grows to keep the user message at theCOMMENT
LOW…mponents/chat/messages/list/chatVirtualizerRuntime.tsx921 // live edge but keep the frozen viewport as the sole writer untilCOMMENT
LOW…derer/components/chat/messages/list/useScrollAnchor.ts321 if (smoothScroll.isAnimating()) returnCOMMENT
LOWsrc/renderer/components/chat/shell/RightPaneHost.tsx61COMMENT
LOWsrc/renderer/components/layout/TabsProvider.tsx81 if (tab.type !== 'route') return tabCOMMENT
LOWsrc/renderer/windows/main/MainApp.tsx21// TabRouter/<Activity>, so these window-scoped subscriptions and DOM sync are neverCOMMENT
LOWsrc/renderer/windows/subWindow/SubWindowAppShell.tsx81 // Chat / agent pages merge the window chrome into their own navbar (ConversationShell,COMMENT
LOWsrc/renderer/data/hooks/__tests__/useDataApi.test.ts501 })COMMENT
LOW…derer/pages/settings/McpSettings/AddMcpServerModal.tsx61// "command": "npx",COMMENT
LOW…pages/miniApps/MiniAppSettings/useMiniAppVisibility.ts41 * `disabled` whenever the user touched the Global view.COMMENT
LOWsrc/renderer/pages/notes/NotesPage.tsx181 },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.ts181 // as enum members. They should be collected here in a futureCOMMENT
LOWsrc/shared/utils/model.ts1101}COMMENT
LOWsrc/shared/data/types/file.ts241 * get a value typed exactly as they need it, with the canonicalCOMMENT
LOWsrc/shared/data/types/file.ts441COMMENT
LOWsrc/shared/data/types/file.ts561//COMMENT
LOWsrc/shared/data/cache/cacheSchemas.ts161 // Painting in-flight generation state, keyed by paintingId. Survives pageCOMMENT
LOWsrc/main/core/power/PowerService.ts241 // reuse the main window: the main window is a singleton that can be destroyed andCOMMENT
LOWsrc/main/core/preboot/userDataLocation.ts121 // Step 1: process pending relocation, if any.COMMENT
LOWsrc/main/core/preboot/userDataLocation.ts261 // renderer/IPC layer is responsible for ensuring `to` is safeCOMMENT
LOWsrc/main/core/preboot/chromiumFlags.ts41 app.commandLine.appendSwitch('enable-features', 'GlobalShortcutsPortal')COMMENT
LOW…c/main/core/preboot/__tests__/userDataLocation.test.ts141 setPathMock.mockReset()COMMENT
LOWsrc/main/core/paths/constants.ts1// EARLIEST path constants for the Electron main process.COMMENT
LOWsrc/main/core/paths/pathRegistry.ts141 // Version logCOMMENT
LOWsrc/main/core/window/windowRegistry.ts41 // (no longer injected by the service). showMode 'manual' lets MainWindowService decideCOMMENT
LOWsrc/main/core/window/windowRegistry.ts141 // initial position was provided at Tab_Detach time (drop-at-cursor detachCOMMENT
LOWsrc/main/core/window/windowRegistry.ts201 // REQUIRED: SubWindow hosts streaming LLM responses and WebSocket heartbeats;COMMENT
LOWsrc/main/core/window/windowRegistry.ts261 webviewTag: trueCOMMENT
LOWsrc/main/core/window/windowRegistry.ts321 roundedCorners: false,COMMENT
LOWsrc/main/core/window/windowRegistry.ts361 behavior: {COMMENT
LOWsrc/main/core/window/windowRegistry.ts421 // logic (see ActionWindow.tsx) — too case-specific for a WM default.COMMENT
LOWsrc/main/core/window/WindowManager.ts1061 // - clear behavior override: user-pinned alwaysOnTop / hideOnBlur survives.COMMENT
LOWsrc/main/core/window/WindowManager.ts1421 applyWindowQuirks(managedWindow.window, managedWindow.metadata.quirks, managedWindow.metadata.behavior)COMMENT
LOWsrc/main/core/window/WindowManager.ts1561 // with state changes that bypass IPC: double-click titlebar, Win+↑/↓, WindowsCOMMENT
LOWsrc/main/core/window/quirks.ts81 // setAlwaysOnTop(true, level, relativeLevel) with values read fromCOMMENT
LOW…main/core/job/__tests__/JobManager.integration.test.ts141 // schedules a setTimeout (60s "quiet window") and returns synchronously (theCOMMENT
LOWsrc/main/core/job/__tests__/JobManager.pause.test.ts1181 handlers: [['pause.debt', handler]],COMMENT
LOW…core/application/__tests__/Application.getPath.test.ts21// implementation (and its `NoEnsureEntry` template-literal type machinery)COMMENT
LOW…in/features/knowledge/vectorstore/indexStore/schema.ts161 // rejects any duplicate loudly (the assignment is race-free only because all writes to a base'sCOMMENT
LOW…nowledge/vectorstore/indexStore/KnowledgeIndexStore.ts161 // failure modes:COMMENT
LOWsrc/main/ai/AiService.ts201@ServicePhase(Phase.WhenReady)COMMENT
LOWsrc/main/ai/AiService.ts281COMMENT
LOW…ools/adapters/aiSdk/exposition/applyDeferExposition.ts41 // Approval-gated tools are kept out of the deferred set at their source: each entry carriesCOMMENT
LOWsrc/main/ai/streamManager/AiStreamManager.ts321 // (those legitimate producers reach here with `models.length === 0`).COMMENT
LOWsrc/main/ai/runtime/claudeCode/settingsBuilder.ts281 )COMMENT
LOWsrc/main/ai/runtime/claudeCode/settingsBuilder.ts1081 addMcpToolMetadataAlias(metadataByName, `mcp__${server.name}__${tool.name}`, metadata)COMMENT
LOWsrc/main/ai/provider/custom/wire/wireProfile.ts181 azure: { profile: OPENAI_WIRE_PROFILE, dualOpenAI: true },COMMENT
LOW…main/ai/provider/custom/aihubmix/aihubmixImageModel.ts341 // Canonical AI-SDK options. Renderer's canonicalGenerate routes:COMMENT
LOWsrc/main/ai/skills/SkillService.ts581COMMENT
LOWsrc/main/data/CacheService.ts541 // through the read API. The tier therefore models presence as *deviation fromCOMMENT
LOWsrc/main/data/db/schemas/file.ts61 index('fe_created_at_idx').on(t.createdAt),COMMENT
34 more matches not shown…
Verbosity Indicators39 hits · 75 pts
SeverityFileLineSnippetContext
LOW.github/workflows/sync-to-gitcode.yml254 # Step 1: Create releaseCOMMENT
LOW.github/workflows/sync-to-gitcode.yml285 # Step 2: Upload files to releaseCOMMENT
LOW…dialogs/create/__tests__/ResourceCreateWizard.test.tsx114 // Step 1: Next is blocked until name + model are set.COMMENT
LOWsrc/main/core/preboot/userDataLocation.ts121 // Step 1: process pending relocation, if any.COMMENT
LOWsrc/main/core/preboot/userDataLocation.ts138 // Step 2: BootConfig as single source of truth.COMMENT
LOWsrc/main/core/preboot/userDataLocation.ts147 // Step 3: portable fallback.COMMENT
LOWsrc/main/core/preboot/userDataLocation.ts156 // Step 4: Electron default.COMMENT
LOWsrc/main/core/preboot/v2MigrationGate.ts77 // Step 0: Resolve all migration-critical paths, including v1 legacyCOMMENT
LOWsrc/main/ai/channels/security/ExternalContentGuard.ts80 // Step 1: Normalize angle brackets to prevent boundary spoofingCOMMENT
LOWsrc/main/ai/channels/security/ExternalContentGuard.ts83 // Step 2: Strip invisible Unicode charactersCOMMENT
LOWsrc/main/ai/channels/security/ExternalContentGuard.ts86 // Step 3: Detect suspicious patterns (advisory)COMMENT
LOWsrc/main/ai/channels/security/ExternalContentGuard.ts96 // Step 4: Generate random boundary ID (8 bytes hex = 16 chars)COMMENT
LOWsrc/main/ai/channels/security/ExternalContentGuard.ts99 // Step 5: Build security-wrapped messageCOMMENT
LOW…n/ai/channels/adapters/feishu/FeishuAppRegistration.ts57 // Step 1: init — check supported auth methodsCOMMENT
LOW…n/ai/channels/adapters/feishu/FeishuAppRegistration.ts61 // Step 2: begin — start device flowCOMMENT
LOWsrc/main/ai/channels/adapters/wechat/WeChatProtocol.ts311 // Step 1: get upload URLCOMMENT
LOWsrc/main/ai/channels/adapters/wechat/WeChatProtocol.ts332 // Step 2: encrypt and uploadCOMMENT
LOWsrc/main/data/migration/v2/migrators/ChatMigrator.ts274 // Step 1: Verify export files existCOMMENT
LOWsrc/main/data/migration/v2/migrators/ChatMigrator.ts290 // Step 2: Load assistant data for model lookupCOMMENT
LOWsrc/main/data/migration/v2/migrators/ChatMigrator.ts334 // Step 3: Count topics and estimate messagesCOMMENT
LOWsrc/main/data/migration/v2/migrators/ChatMigrator.ts348 // Step 4: Validate sample dataCOMMENT
LOW…ain/data/migration/v2/migrators/PreferencesMigrator.ts103 // Step 1: Detect conflicts between simple and complex mappings (strict mode)COMMENT
LOW…ain/data/migration/v2/migrators/PreferencesMigrator.ts118 // Step 2: Process simple mappingsCOMMENT
LOW…ain/data/migration/v2/migrators/PreferencesMigrator.ts159 // Step 3: Process complex mappingsCOMMENT
LOWsrc/main/data/services/MessageService.ts968 // Step 1: Verify topic exists and fetch its current state.COMMENT
LOWsrc/main/data/services/MessageService.ts976 // Step 2: Resolve parentId based on the three possible input states:COMMENT
LOWsrc/main/data/services/MessageService.ts1006 // Step 3: Insert the message using the resolved parentId.COMMENT
LOWsrc/main/services/LegacyBackupManager.ts196 // Step 2: Copy IndexedDB and Local Storage directoriesCOMMENT
LOWsrc/main/services/LegacyBackupManager.ts219 // Step 3: Write metadata.jsonCOMMENT
LOWsrc/main/services/LegacyBackupManager.ts224 // Step 4: Copy Data directory (if not skipped)COMMENT
LOWsrc/main/services/LegacyBackupManager.ts245 // Step 5: Create ZIP archiveCOMMENT
LOWsrc/main/services/lanTransfer/LanTransferService.ts577 // Step 1: Send file_startCOMMENT
LOWsrc/main/services/lanTransfer/LanTransferService.ts580 // Step 2: Wait for file_start_ackCOMMENT
LOWsrc/main/services/lanTransfer/LanTransferService.ts587 // Step 3: Stream file chunksCOMMENT
LOWsrc/main/services/lanTransfer/LanTransferService.ts592 // Step 4: Send file_endCOMMENT
LOWsrc/main/services/lanTransfer/LanTransferService.ts595 // Step 5: Wait for file_completeCOMMENT
LOWsrc/main/services/__tests__/AppUpdaterService.test.ts987 // Step 1: 1.6.3 -> 1.7.5COMMENT
LOWsrc/main/services/__tests__/AppUpdaterService.test.ts992 // Step 2: 1.7.5 -> 2.0.0COMMENT
LOWsrc/main/services/__tests__/AppUpdaterService.test.ts997 // Step 3: 2.0.0 -> 2.1.6COMMENT
Hallucination Indicators7 hits · 70 pts
SeverityFileLineSnippetContext
CRITICALsrc/main/ai/channels/adapters/feishu/FeishuAdapter.ts174 await this.client.cardkit.v1.card.settings({CODE
CRITICALsrc/main/ai/channels/adapters/feishu/FeishuAdapter.ts187 await this.client.cardkit.v1.card.update({CODE
CRITICALsrc/main/ai/channels/adapters/feishu/FeishuAdapter.ts229 await this.client.cardkit.v1.card.settings({CODE
CRITICALsrc/main/ai/channels/adapters/feishu/FeishuAdapter.ts245 await this.client.cardkit.v1.card.update({CODE
CRITICALsrc/main/ai/channels/adapters/feishu/FeishuAdapter.ts290 await this.client.cardkit.v1.card.create({CODE
CRITICALsrc/main/ai/channels/adapters/feishu/FeishuAdapter.ts339 await this.client.cardkit.v1.cardElement.content({CODE
CRITICALsrc/main/services/__tests__/MainWindowService.test.ts167 const call = win.webContents.on.mock.calls.find(([event]) => event === 'render-process-gone')CODE
Magic Placeholder Names5 hits · 25 pts
SeverityFileLineSnippetContext
HIGHscripts/auto-translate-i18n.ts75 console.log('💡 Edit the script and replace "your-api-key-here" with your real API key')CODE
HIGHpackages/aiCore/README.md109 apiKey: 'your-api-key'CODE
HIGHpackages/aiCore/README.md130 apiKey: 'your-api-key'CODE
HIGH…nderer/pages/settings/McpSettings/builtinMcpServers.ts75 BRAVE_API_KEY: 'YOUR_API_KEY'CODE
HIGH…ToolSettings/ApiGatewaySettings/ApiGatewaySettings.tsx223 value={`Authorization: Bearer ${apiKey || 'your-api-key'}`}CODE
AI Slop Vocabulary7 hits · 21 pts
SeverityFileLineSnippetContext
MEDIUM…/components/chat/panes/__tests__/ArtifactPane.test.tsx501 // re-bind via `mockImplementation` (more robust than `mockResolvedValue`COMMENT
MEDIUM…r/components/composer/__tests__/ComposerToken.test.tsx1073 // Absolutely positioned so it overlays the icon instead of taking flow space inCOMMENT
MEDIUMsrc/renderer/hooks/useSmoothStream.ts148 // median (median over GAP_SAMPLES is already robust to the ~few-percentCOMMENT
MEDIUMsrc/main/core/preboot/__tests__/chromiumFlags.test.ts81 // each test is the robust pattern.COMMENT
MEDIUMsrc/main/core/preboot/__tests__/v2MigrationGate.test.ts165 // is the robust pattern, no explicit doUnmock needed.COMMENT
MEDIUM…c/main/core/preboot/__tests__/userDataLocation.test.ts156 // The robust pattern is: resetModules() in beforeEach + freshCOMMENT
MEDIUM…ain/ai/streamManager/__tests__/AiStreamManager.test.ts1458 // transport-owned `exec.timings` — keeps manager robust to AI SDKCOMMENT
Modern AI Meta-Vocabulary4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMtests/__mocks__/renderer/CacheService.ts355 // Test scaffold: seed a shared cache entry with an arbitrary string key,COMMENT
MEDIUM…026-04-23-web-search-remove-local-providers-and-rag.md1# Web Search 移除本地搜索引擎与 RAG 压缩配置COMMENT
MEDIUMv2-refactor-temp/docs/knowledge/knowledge-todo.md7## 1. 模型与 RAG 配置COMMENT
MEDIUMpackages/provider-registry/src/creators/cohere.ts211 // ── North (agentic code) ──COMMENT
Excessive Try-Catch Wrapping6 hits · 10 pts
SeverityFileLineSnippetContext
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
Deep Nesting9 hits · 9 pts
SeverityFileLineSnippetContext
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
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGH…ata-classify/scripts/DO-NOT-USE-validate-generation.js6 * Validates the quality and correctness of auto-generated code files.COMMENT
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsrc/main/ai/mcp/servers/python.ts55print('python code here')`,CODE
Slop Phrases2 hits · 3 pts
SeverityFileLineSnippetContext
MEDIUM…nts/composites/horizontal-scroll-container.stories.tsx121 <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
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOW.github/workflows/auto-i18n.yml65 # Check if there are any uncommitted changesCOMMENT
LOW.github/workflows/github-issue-tracker.yml33 # Check if time is between 00:00 and 08:30COMMENT
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…sources/skills/skill-creator/scripts/quick_validate.py7CODE