AI Slop Code RIsk Monitor

siyuan-note/siyuan

An open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间,让人与智能体在此协作

4.8 Low pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for siyuan-note/siyuan, a TypeScript project with 46,710 GitHub stars. SynthScan examined 906,337 lines of code across 3920 source files, recording 1270 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 4.8 (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.

4.8
Adjusted Signal
4.8
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
46.7K
Stars
TypeScript
Language
906.3K
Lines of Code
3.9K
Files
1.3K
Pattern Hits
2026-10-12
Scan Date
0.08
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 5.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 16.9/100 · LOW

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

Agent Over-Engineering Ratio 0.8/100 · LOW

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

PR Review Velocity Impact 19.8/100 · LOW

Which changes need focused human review? 1270 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 299HIGH 3MEDIUM 10LOW 958

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 1270 distinct pattern matches across 11 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.

Hallucination Indicators299 hits · 3320 pts
SeverityFileLineSnippetContext
CRITICALapp/tests/newRefDocAtPath.test.js198 assert.equal(f.hint.element.lastElementChild.innerHTML.includes("newFileAtPath"), true);CODE
CRITICALapp/stage/protyle/js/mermaid/mermaid-zenuml.min.js23`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:n,tokens:this.lexer.inline(n)}}}text(t){let e=this.rules.bCODE
CRITICALapp/stage/protyle/js/mermaid/mermaid-zenuml.min.js34`+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=s.text):e.push(n);continue}if(t){let a="CODE
CRITICALapp/stage/protyle/js/echarts/echarts-gl.min.js1!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("echarts")):"function"==typeofCODE
CRITICALapp/src/card/openCard.ts886 options.editor.protyle.element.classList.remove("fn__none");CODE
CRITICALapp/src/card/openCard.ts887 options.editor.protyle.element.nextElementSibling.classList.add("fn__none");CODE
CRITICALapp/src/card/viewCards.ts345 edit.protyle.element.nextElementSibling.classList.remove("fn__none");CODE
CRITICALapp/src/card/viewCards.ts349 edit.protyle.element.nextElementSibling.classList.add("fn__none");CODE
CRITICALapp/src/boot/onGetConfig.ts141 if (window.siyuan.menus.menu.element.classList.contains("fn__none") &&CODE
CRITICALapp/src/boot/onGetConfig.ts275 if (window.siyuan.config.export.pdfFooter.trim()) {CODE
CRITICALapp/src/boot/globalEvent/mousemove.ts82 item.protyle.breadcrumb.element.classList.remove("protyle-breadcrumb__bar--hide");CODE
CRITICALapp/src/boot/globalEvent/mousemove.ts206 if (item.editor.protyle.wysiwyg.element.contains(eventPath0)) {CODE
CRITICALapp/src/boot/globalEvent/keydown.ts1655 if (!window.siyuan.menus.menu.element.classList.contains("fn__none")) {CODE
CRITICALapp/src/boot/globalEvent/searchKeydown.ts85 if (!window.siyuan.menus.menu.element.classList.contains("fn__none")) {CODE
CRITICALapp/src/boot/globalEvent/searchKeydown.ts217 if (!window.siyuan.menus.menu.element.classList.contains("fn__none")) {CODE
CRITICALapp/src/boot/globalEvent/searchKeydown.ts255 currentList.parentElement.nextElementSibling.nextElementSibling.firstElementChild.classList.add("b3-CODE
CRITICALapp/src/boot/globalEvent/searchKeydown.ts292 currentList.parentElement.previousElementSibling.previousElementSibling.lastElementChild.classList.aCODE
CRITICAL⚡app/src/boot/globalEvent/click.ts15 if (!window.siyuan.menus.menu.element.contains(element) && !hasClosestByAttribute(element, "data-menu", "true")) {CODE
CRITICAL⚡app/src/boot/globalEvent/click.ts16 if (getSelection().rangeCount > 0 && window.siyuan.menus.menu.element.contains(getSelection().getRangeAt(0).starCODE
CRITICAL⚡app/src/boot/globalEvent/click.ts17 window.siyuan.menus.menu.element.contains(document.activeElement)) {CODE
CRITICALapp/src/boot/globalEvent/click.ts95 !item.pdfObject.appConfig.appContainer.classList.contains("fn__none")) {CODE
CRITICALapp/src/boot/globalEvent/command/protyle.ts19 updateReadonly(options.protyle.breadcrumb.element.parentElement.querySelector('.block__icon[data-type="readonly"CODE
CRITICALapp/src/asset/pdf/app.js2855 if (([92, 91, 68].includes(evt.keyCode) || evt.ctrlKey || evt.altKey) && pdfInstance.appConfig.toolbar.rectAnno.clasCODE
CRITICALapp/src/asset/pdf/app.js2894 !pdfInstance.appConfig.toolbar.rectAnno.classList.contains('toggled')) {CODE
CRITICALapp/src/asset/pdf/app.js2904 !pdfInstance.appConfig.toolbar.rectAnno.classList.contains('toggled')) {CODE
CRITICALapp/src/util/reloadSync.ts62 window.siyuan.mobile.editor.protyle.title.setTitle(response.data.name, response.data.ial[Constants.CUSTOCODE
CRITICALapp/src/util/pathName.ts510 if (window.siyuan.menus.menu.element.getAttribute("data-name") === Constants.MENU_MOVE_PATH_HISTORY) {CODE
CRITICALapp/src/util/noRelyPCFunction.ts49 window.siyuan.mobile.docks.tag.update();CODE
CRITICALapp/src/util/backForward.ts180 stack.protyle.model.parent.parent.switchTab(stack.protyle.model.parent.headElement);CODE
CRITICALapp/src/util/backForward.ts200 stack.protyle.model.parent.parent.switchTab(stack.protyle.model.parent.headElement,CODE
CRITICALapp/src/util/backForward.ts234 stack.protyle.model.parent.parent.switchTab(stack.protyle.model.parent.headElement,CODE
CRITICALapp/src/util/backForward.ts258 if (!blockElement && !stack.zoomId && !stack.protyle.scroll.element.classList.contains("fn__none")) {CODE
CRITICALapp/src/util/Tree.ts354 item.parentElement.parentElement.nextElementSibling.classList.remove("fn__none");CODE
CRITICALapp/src/util/Tree.ts359 item.parentElement.parentElement.nextElementSibling.classList.add("fn__none");CODE
CRITICALapp/src/config/tabs/secretsVariablesUi.ts80 saveSecrets(root, window.siyuan.config.secrets.items.filter((item) => item.name !== name));CODE
CRITICALapp/src/config/tabs/secretsVariablesUi.ts179 saveVariables(root, window.siyuan.config.variables.items.filter((item) => item.name !== name));CODE
CRITICALapp/src/config/tabs/keymapUi.ts169 window.siyuan.ws.app.plugins.forEach((item) => {CODE
CRITICALapp/src/config/tabs/keymapUi.ts723 window.siyuan.ws.app.plugins.forEach(plugin => {CODE
CRITICALapp/src/config/tabs/editorTab.ts154 `<div class="fn__pointer b3-chip b3-chip--middle${window.siyuan.config.editor.spellcheckLanguages.includes(item)CODE
CRITICALapp/src/config/tabs/accessTab.ts640 window.siyuan.config.publish.auth.accounts.push({CODE
CRITICALapp/src/config/tabs/accessTab.ts684 window.siyuan.config.publish.auth.accounts.splice(index, 1);CODE
CRITICALapp/src/config/tabs/appearanceTab.ts835 options: window.siyuan.config.appearance.lightThemes.filter((item) =>CODE
CRITICALapp/src/config/tabs/appearanceTab.ts843 options: window.siyuan.config.appearance.darkThemes.filter((item) =>CODE
CRITICALapp/src/config/tabs/appearanceTab.ts877 options: window.siyuan.config.appearance.icons.map((item) => ({CODE
CRITICALapp/src/config/tabs/accessRuntime.ts94 const listItemHtml = window.siyuan.config.publish.auth.accounts.map((account, index) => `CODE
CRITICALapp/src/config/tabs/ai/aiUi.ts580 saveMcpServers(root, window.siyuan.config.ai.mcp.servers.filter((item) => item.name !== serverName));CODE
CRITICALapp/src/config/tabs/ai/aiUi.ts623 const nextServers = window.siyuan.config.ai.mcp.servers.map((item) => {CODE
CRITICALapp/src/config/tabs/ai/aiUi.ts951 if (window.siyuan.config.ai.mcp.servers.some((server) => {CODE
CRITICALapp/src/config/tabs/ai/aiUi.ts973 window.siyuan.config.ai.mcp.servers.find((server) => server.name === serverName);CODE
CRITICALapp/src/config/tabs/ai/aiProviderUi.ts149 const providerCards = window.siyuan.config.ai.providers.map((provider) => `<div class="b3-card" data-provider-id="${CODE
CRITICALapp/src/config/tabs/ai/aiProviderUi.ts182 () => saveProviders(root, window.siyuan.config.ai.providers.filter((item) => item.id !== provider.id)),CODE
CRITICALapp/src/config/tabs/ai/aiProviderUi.ts367 ? window.siyuan.config.ai.providers.find((provider) => provider.id === providerId)CODE
CRITICALapp/src/config/tabs/ai/aiProviderUi.ts897 ? window.siyuan.config.ai.providers.map((provider) => provider.id === existing.id ? draft : provider)CODE
CRITICALapp/src/config/tabs/ai/aiProviderUi.ts918 const provider = window.siyuan.config.ai.providers.find((item) => item.id === providerId);CODE
CRITICALapp/src/config/tabs/ai/aiProviderUi.ts936 const providers = window.siyuan.config.ai.providers.map((provider) =>CODE
CRITICAL⚡app/src/config/util/snippets.ts161 target.parentElement.nextElementSibling.firstElementChild.classList.remove("fn__none");CODE
CRITICAL⚡app/src/config/util/snippets.ts162 target.parentElement.nextElementSibling.lastElementChild.classList.add("fn__none");CODE
CRITICAL⚡app/src/config/util/snippets.ts166 target.parentElement.nextElementSibling.firstElementChild.classList.add("fn__none");CODE
CRITICAL⚡app/src/config/util/snippets.ts167 target.parentElement.nextElementSibling.lastElementChild.classList.remove("fn__none");CODE
CRITICALapp/src/config/entryVisibility/ui.ts536 ? window.siyuan.config.appearance.entryVisibility.profiles.find((item) => item.id === profileID)CODE
239 more matches not shown…
Over-Commented Block804 hits · 804 pts
SeverityFileLineSnippetContext
LOWapp/stage/protyle/js/highlight.js/styles/agate.min.css1pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!COMMENT
LOWapp/electron/main.js1// SiYuan - From thought to insight, with agentsCOMMENT
LOWapp/src/asset/pdf/pdf_find_bar.js181 if (total > 0) {COMMENT
LOWapp/src/asset/pdf/ui_utils.js341 * before the first visible element in `views`, but not by too much. (Usually,COMMENT
LOWapp/src/asset/pdf/ui_utils.js361COMMENT
LOWapp/src/asset/pdf/ui_utils.js381 // Initially assume that we need to find the beginning of the current rowCOMMENT
LOWapp/src/asset/pdf/viewer.js301// ) {COMMENT
LOWapp/src/asset/pdf/pdf_history.js561 // In practice, it seems that the event is arriving too late in order forCOMMENT
LOWapp/src/asset/pdf/pdf_find_controller.js161 // The goal is to obtain the array: [[0, 0], [3, -1], [4, -2],COMMENT
LOWapp/src/asset/pdf/pdf_viewer.js241 #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this));COMMENT
LOWapp/src/asset/pdf/app.js441 background: AppOptions.get("pageColorsBackground"),COMMENT
LOWapp/src/asset/pdf/app.js1581 // NOTECOMMENT
LOWapp/src/asset/pdf/app.js2601 } = this;COMMENT
LOWapp/src/util/iOSPurchase.ts21 // -2:Server communication failed, need to retry 服务器通讯失败,需要重试COMMENT
LOWapp/src/layout/dock/agent/frontendCapabilities.ts1// SiYuan - From thought to insight, with agentsCOMMENT
LOWscripts/generate-arch-svg.js1"use strict";COMMENT
LOWkernel/main.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/cmd/closews.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/cmd/cmd.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/cmd/ping.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/treenode/block_structure.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/treenode/blocktree.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/treenode/tree.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/treenode/blocktree_fix.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/treenode/blocktree_query_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/treenode/fold_heading_stack_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/treenode/av.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/treenode/heading.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/treenode/marker.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/treenode/block_structure_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/treenode/node_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/treenode/node.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/layout_gallery.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/render_template_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/color_render_context_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/color.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/visible_views_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/filter_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/layout_table_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/path_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/date_format_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/av_fix_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/mirror_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/ref_hook.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/layout_card.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/av_search_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/value_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/color_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/card_cover_position_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/context_filter_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/new_item_template.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/number_calc.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/layout.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/sort.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/layout_table.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/sort_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/filter.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/calc.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/value_source_test.go1// SiYuan - From thought to insight, with agentsCOMMENT
LOWkernel/av/group.go1// SiYuan - From thought to insight, with agentsCOMMENT
744 more matches not shown…
Hyper-Verbose Identifiers110 hits · 123 pts
SeverityFileLineSnippetContext
LOWapp/src/asset/pdf/ui_utils.js345function backtrackBeforeAllVisibleElements(index, views, top) {CODE
LOWapp/src/asset/pdf/ui_utils.js476 function isElementBottomAfterViewTop(view) {CODE
LOWapp/src/asset/pdf/ui_utils.js482 function isElementNextAfterViewHorizontally(view) {CODE
LOWapp/src/asset/pdf/ui_utils.js594function normalizeWheelEventDirection(evt) {CODE
LOWapp/src/asset/pdf/ui_utils.js760function getActiveOrFocusedElement() {CODE
LOWapp/src/asset/pdf/ui_utils.js779function apiPageLayoutToViewerModes(layout) {CODE
LOWapp/src/asset/pdf/pdf_viewer.js77function isValidAnnotationEditorMode(mode) {CODE
LOWapp/src/asset/pdf/app.js2055 function addWindowResolutionChange(evt = null) {CODE
LOWscripts/test_prepare_release.py42 def test_versions_and_document_update_idempotently(self):CODE
LOW⚡scripts/test_prepare_release.py56 def test_invalid_field_leaves_all_files_unchanged(self):CODE
LOW⚡scripts/test_prepare_release.py63 def test_explicit_codes_and_downgrade_rejection(self):CODE
LOW⚡scripts/test_prepare_release.py71 def test_unchanged_code_for_new_version_is_rejected(self):CODE
LOW⚡scripts/test_prepare_release.py76 def test_concurrent_edit_is_preserved(self):CODE
LOWscripts/test_prepare_release.py99 def test_publish_and_retry_use_committed_android_version(self):CODE
LOW⚡scripts/test_prepare_release.py113 def test_publish_rejects_untracked_files_before_modification(self):CODE
LOW⚡scripts/test_prepare_release.py119 def test_tag_rejects_dirty_version(self):CODE
LOW⚡scripts/test_prepare_release.py125 def test_publish_rejects_existing_tag_before_version_change(self):CODE
LOW⚡scripts/test_prepare_release.py132 def test_dry_run_does_not_write(self):CODE
LOW⚡scripts/test_prepare_release.py141 def test_execute_prepares_index_without_build_or_publish(self):CODE
LOWscripts/test_prepare_release.py154 def test_publish_includes_index_in_preview_and_execution(self):CODE
LOWscripts/test_prepare_release.py174 def test_index_preflight_failure_prevents_release_writes(self):CODE
LOW⚡scripts/test_prepare_release.py226 def test_dry_run_does_not_build_or_modify(self):CODE
LOW⚡scripts/test_prepare_release.py233 def test_build_failure_does_not_commit_or_push(self):CODE
LOW⚡scripts/test_prepare_release.py242 def test_wrong_version_and_missing_page_rejected(self):CODE
LOW⚡scripts/test_prepare_release.py251 def test_unrelated_staged_change_rejected(self):CODE
LOW⚡scripts/test_build_release.py50 def test_copy_rejects_destination_escape(self):CODE
LOW⚡scripts/test_build_release.py56 def test_wsl_sync_skips_matching_commit(self):CODE
LOW⚡scripts/test_build_release.py62 def test_wsl_authentication_precedes_environment_checks(self):CODE
LOW⚡scripts/test_build_release.py131 def test_copy_updates_old_file_and_verifies_hash(self):CODE
LOW⚡scripts/test_build_release.py138 def test_collect_missing_output_fails(self):CODE
LOW⚡scripts/test_build_release.py142 def test_old_kernel_version_is_rejected(self):CODE
LOW⚡scripts/test_build_release.py147 def test_wrong_kernel_architecture_is_rejected(self):CODE
LOW⚡scripts/test_build_release.py152 def test_windows_uses_fresh_kernel_directories_and_forces_signing(self):CODE
LOW⚡scripts/test_build_release.py320 def test_finish_does_not_generate_checksums(self):CODE
LOW⚡scripts/test_build_release.py329 def test_default_plan_does_not_run_commands(self):CODE
LOW⚡scripts/test_build_release.py337 def test_collection_is_immediate_and_does_not_overwrite(self):CODE
LOW⚡scripts/test_build_release.py445 def test_atomic_progress_write_preserves_previous_snapshot_on_failure(self):CODE
LOW⚡scripts/test_build_release.py454 def test_record_directories_are_unique_and_outside_outputs(self):CODE
LOW⚡scripts/test_build_release.py462 def test_record_directory_rejects_build_and_package_locations(self):CODE
LOW⚡scripts/test_build_release.py469 def test_execution_records_partial_windows_success(self):CODE
LOWscripts/test_build_release.py78 def test_windows_only_skips_wsl_authentication(self):CODE
LOWscripts/test_build_release.py86 def test_wsl_sync_pins_windows_commit(self):CODE
LOWscripts/test_build_release.py105 def test_wsl_sync_rejects_dirty_worktrees(self):CODE
LOWscripts/test_build_release.py114 def test_wsl_sync_stops_before_checkout_on_fetch_or_ancestry_failure(self):CODE
LOWscripts/test_build_release.py192 def test_installed_builder_configuration_excludes_old_kernel(self):CODE
LOWscripts/test_build_release.py205 def test_harmony_copies_each_architecture_before_next_build(self):CODE
LOWscripts/test_build_release.py237 def test_harmony_rejects_unsigned_only_output(self):CODE
LOWscripts/test_build_release.py258 def test_harmony_missing_generated_header_stops_packaging(self):CODE
LOWscripts/test_build_release.py270 def test_android_new_aar_is_copied_before_gradle(self):CODE
LOWscripts/test_build_release.py298 def test_finish_only_prints_manual_validation_command(self):CODE
LOWscripts/test_build_release.py309 def test_add_platform_preserves_existing_packages_and_checksums(self):CODE
LOWscripts/test_build_release.py367 def test_command_output_is_streamed_to_terminal_and_log(self):CODE
LOWscripts/test_build_release.py398 def test_failed_command_preserves_stage_and_later_pending_steps(self):CODE
LOWscripts/test_build_release.py412 def test_interrupt_preserves_progress(self):CODE
LOWscripts/test_build_release.py421 def test_ssh_authentication_keeps_terminal_handles(self):CODE
LOWscripts/test_build_release.py434 def test_capture_output_and_environment_are_not_dumped(self):CODE
LOWscripts/test_build_release.py492 def test_complete_execution_persists_progress_without_validation(self):CODE
LOWscripts/test_build_release.py519 def test_preflight_failure_is_saved_before_work_directory_creation(self):CODE
LOWscripts/generate-third-party-notices.py627def collect_retained_comments():CODE
LOWscripts/generate-third-party-notices.py791def collect_additional_notices(go_modules):CODE
50 more matches not shown…
Fake / Example Data20 hits · 23 pts
SeverityFileLineSnippetContext
LOWREADME.md226 - `SIYUAN_OIDC_CLAIM_RULES`: JSON array of claim rules used when allow-all is disabled, for example `[{"claim":"email"CODE
LOWapp/stage/protyle/js/protyle-html.js2!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&defineCODE
LOWapp/src/protyle/util/trackedRange.test.ts153 ["same", "placeholder"],CODE
LOWapp/src/protyle/util/tableCellRichLute.test.ts84 holder.innerHTML = base.Md2BlockDOM("placeholder");CODE
LOW⚡app/src/protyle/util/onGet.ts372 editElement.setAttribute("placeholder", window.siyuan.languages.emptyMobilePlaceholder);CODE
LOW⚡app/src/protyle/util/onGet.ts374 editElement.setAttribute("placeholder", window.siyuan.languages.emptyPlaceholder);CODE
LOWapp/src/protyle/lite/fragmentEditor.ts97 emptyElement.firstElementChild.setAttribute("placeholder", options.placeholder);CODE
LOWapp/src/protyle/wysiwyg/turnIntoList.ts43 editElement.removeAttribute("placeholder");CODE
LOWapp/src/protyle/wysiwyg/tabsPersistence.test.ts23 let ids = ["original", "placeholder"];CODE
LOW⚡app/src/protyle/wysiwyg/tabsPersistence.test.ts46 f.selectTab("placeholder");CODE
LOW⚡app/src/protyle/wysiwyg/tabsPersistence.test.ts54 f.selectTab("placeholder");CODE
LOW⚡app/src/protyle/wysiwyg/tabsPersistence.test.ts62 f.selectTab("placeholder");CODE
LOW⚡app/src/protyle/wysiwyg/tabsPersistence.test.ts71 f.selectTab("placeholder");CODE
LOWapp/src/protyle/render/av/col.ts339 inputElement.setAttribute("placeholder", `${options.data.name} ${nameElement.value}`);CODE
LOWapp/src/protyle/header/titleEnter.ts26 firstEditableHasPlaceholder: Boolean(editElement?.getAttribute("placeholder")),CODE
LOWapp/src/protyle/header/titleEnter.ts75 firstEditableHasPlaceholder: Boolean(editElement?.getAttribute("placeholder")),CODE
LOWapp/src/mobile/util/initFramework.ts454 inputElement.setAttribute("placeholder", window.siyuan.languages._kernel[16]);CODE
LOWkernel/model/oidc_test.go63 Claim: "email", Operator: conf.OIDCClaimOperatorEquals, Values: []string{"user@example.com"},CODE
LOWkernel/model/oidc_provider/provider_test.go110 }).Claims(map[string]any{"nonce": nonce, "email": "user@example.com"}).Serialize()CODE
LOWkernel/model/oidc_provider/provider_test.go144 if claims["email"] != "user@example.com" {CODE
Excessive Try-Catch Wrapping11 hits · 22 pts
SeverityFileLineSnippetContext
MEDIUM⚡scripts/check-lang-keys.py196 print(f"Error: Failed to parse file {file_path}: {e}")CODE
MEDIUM⚡scripts/check-lang-keys.py199 print(f"Error: Failed to read file {file_path}: {e}")CODE
MEDIUMscripts/check-lang-keys.py89 print(f"Error: Failed to check duplicate keys in {file_path}: {e}")CODE
MEDIUMscripts/check-lang-keys.py247 print("Error: en.json must contain a _kernel object")CODE
MEDIUMscripts/check-lang-keys.py263 print(f"Error: {name} _kernel.{key}: {detail}")CODE
MEDIUMscripts/check-lang-keys.py284 print(f"Error: Directory does not exist: {langs_dir}")CODE
MEDIUMscripts/check-lang-keys.py306 print("Error: No language files found")CODE
MEDIUMscripts/check-lang-keys.py311 print("Error: No valid language files found")CODE
LOW⚡scripts/check-lang-keys.py198 except Exception as e:CODE
LOWscripts/check-lang-keys.py88 except Exception as e:CODE
LOWscripts/check-lang-keys.py174 except Exception as e:CODE
Deep Nesting17 hits · 16 pts
SeverityFileLineSnippetContext
LOWscripts/verify-release.py202CODE
LOWscripts/verify-release.py405CODE
LOWscripts/verify-release.py458CODE
LOWscripts/verify-release.py104CODE
LOWscripts/check-translations.py52CODE
LOWscripts/build-release.py172CODE
LOWscripts/build-release.py327CODE
LOWscripts/build-release.py99CODE
LOWscripts/generate-third-party-notices.py729CODE
LOWscripts/check-lang-keys.py35CODE
LOWscripts/check-lang-keys.py93CODE
LOWscripts/check-lang-keys.py122CODE
LOWscripts/check-lang-keys.py203CODE
LOWscripts/check-lang-keys.py243CODE
LOWscripts/check-lang-keys.py268CODE
LOWscripts/prepare-release.py269CODE
LOWscripts/test_verify_release.py363CODE
Cross-Language Confusion (JS/TS)2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHapp/src/types/index.d.ts236 print(title: string, html: string): voidCODE
HIGHapp/src/types/index.d.ts260 print(title: string, html: string): voidCODE
Decorative Section Separators2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMkernel/cli/cmd/block.go40// ─── Read ──────────────────────────────────────────────────────────────────────COMMENT
MEDIUMkernel/cli/cmd/block.go186// ─── Write ─────────────────────────────────────────────────────────────────────COMMENT
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHscripts/generate-third-party-notices.py768except ValueError:CODE
Unused Imports3 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/parse-changelog.py2CODE
LOWscripts/check-lang-keys.py28CODE
LOWscripts/parse-changelog-HEAD.py1CODE
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/check-lang-keys.py356 # Output resultsCOMMENT