AI Slop Code Risk Monitor

logseq/logseq

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

A privacy-first, open-source platform for knowledge management and collaboration. Download link: http://github.com/logseq/logseq/releases. roadmap: https://logseq.io/p/NX4mc_ggEV

1.2 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for logseq/logseq, a Clojure project with 45,435 GitHub stars. SynthScan examined 108,958 lines of code across 514 source files, recording 87 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 1.2 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.2
Adjusted Signal
1.2
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
45.4K
Stars
Clojure
Language
109.0K
Lines of Code
514
Files
87
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 3.2/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.3/100 · LOW

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

Agent Over-Engineering Ratio 2.6/100 · LOW

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

PR Review Velocity Impact 5.7/100 · LOW

Which changes need focused human review? 87 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 1HIGH 4MEDIUM 6LOW 76

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 87 distinct pattern matches across 14 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 Identifiers26 hits · 22 pts
SeverityFileLineSnippetContext
LOW…/logseq/cli/e2e/random_bidirectional_block_ops_test.py16def test_default_profile_is_faster_than_high_stress(monkeypatch) -> None:CODE
LOW…/logseq/cli/e2e/random_bidirectional_block_ops_test.py72def test_explicit_rounds_override_profile_default(monkeypatch) -> None:CODE
LOW…-e2e/test/logseq/cli/e2e/compare_graph_queries_test.py16def test_parse_args_supports_repeated_queries(monkeypatch) -> None:CODE
LOW…-e2e/test/logseq/cli/e2e/compare_graph_queries_test.py48def test_main_batches_multiple_queries_in_one_process(tmp_path: Path) -> None:CODE
LOWcli-e2e/test/logseq/cli/e2e/wait_sync_status_test.py15def test_resolved_status_command_is_built_once_and_reused() -> None:CODE
LOWcli-e2e/test/logseq/cli/e2e/wait_sync_status_test.py34def test_run_status_uses_precomputed_command() -> None:CODE
LOWcli-e2e/scripts/db_sync_server.py112def auth_cognito_from_auth_file(auth_path: Path) -> Dict[str, str]:CODE
LOWcli-e2e/scripts/graph_deletion_lifecycle_test.py137 def test_cli_owned_worker_and_explicit_recreate(self):STRING
LOWcli-e2e/scripts/graph_deletion_lifecycle_test.py148 def test_cli_removes_desktop_owned_worker(self):STRING
LOWcli-e2e/scripts/graph_deletion_lifecycle_test.py158 def test_changed_runtime_identity_is_rejected_before_shutdown(self):STRING
LOWcli-e2e/scripts/graph_deletion_lifecycle_test.py173 def test_missing_graph_orphan_cleanup_reports_absence(self):STRING
LOWcli-e2e/scripts/graph_deletion_lifecycle_test.py185 def test_stopped_graph_removal_and_output_modes(self):STRING
LOWcli-e2e/scripts/graph_deletion_lifecycle_test.py194 def test_other_graph_and_same_name_other_root_remain_available(self):STRING
LOWcli-e2e/scripts/graph_deletion_lifecycle_test.py205 def test_unregistered_sqlite_owner_prevents_move(self):STRING
LOWcli-e2e/scripts/agent_bridge_e2e.py412def run_comment_mention_check(cli, repo_root, root_dir, config, graph, tmp_dir):CODE
LOWcli-e2e/scripts/agent_bridge_e2e.py490def run_parallel_assignment_check(cli, repo_root, root_dir, config, graph, tmp_dir):CODE
LOWcli-e2e/scripts/agent_bridge_e2e.py562def run_duplicate_bridge_check(cli, repo_root, root_dir, config, graph, tmp_dir):CODE
LOWcli-e2e/scripts/sync_asset_download.py122def sync_asset_download_by_id(cli: Path, root_dir: Path, config: Path, graph: str, asset_id: Any) -> Dict[str, Any]:CODE
LOWcli-e2e/scripts/sync_asset_download.py129def sync_asset_download_by_uuid(cli: Path, root_dir: Path, config: Path, graph: str, asset_uuid: str) -> Dict[str, Any]:CODE
LOWresources/forge.config.test.js18function isCoveredByExtraResources(targetPath, extraResources) {CODE
LOWlibs/guides/db_properties_references.md392async function setupSchemaWithInheritance() {CODE
LOWlibs/src/LSPlugin.user.ts144function normalizeCommandKeybinding(CODE
LOWlibs/src/LSPlugin.user.ts339function normalizeCommandExecutionKey(key: string) {CODE
LOWlibs/src/LSPlugin.core.ts482function convertToExternalLSPResource(CODE
LOWdeps/db-sync/worker/scripts/download_graph_db.js33function sanitizeGraphIdForFilename(graphId) {CODE
LOWdeps/db-sync/worker/scripts/delete_user_totally.js119function isDeleteConfirmationAccepted(answer, userId) {CODE
Empty Error Handlers4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHcli-e2e/scripts/db_sync_server.py137except (urllib.error.URLError, TimeoutError, socket.timeout):CODE
HIGHcli-e2e/scripts/db_sync_server.py239except OSError:CODE
HIGHcli-e2e/scripts/graph_deletion_lifecycle_test.py124except OSError:CODE
HIGH.agents/skills/logseq-repl/scripts/start-repl.py321except OSError:CODE
Structural Annotation Overuse8 hits · 15 pts
SeverityFileLineSnippetContext
LOWdocs/i18n-key-naming.md83## Step 1: Choose the OwnerCOMMENT
LOWdocs/i18n-key-naming.md393## Step 2: Apply the Decision TreeCOMMENT
LOWdocs/i18n-key-naming.md456## Step 3: Decide Whether a Subdomain Is NeededCOMMENT
LOWdocs/i18n-key-naming.md560## Step 4: Choose the LeafCOMMENT
LOW⚡libs/src/postmate/index.ts327 // Step 1: Remove listener from window to avoid duplicate message handlingCOMMENT
LOW⚡libs/src/postmate/index.ts330 // Step 2: Update messagePort reference (this affects this.listener validation logic)COMMENT
LOW⚡libs/src/postmate/index.ts333 // Step 3: Add the same listener to MessagePort (now all communication goes through port)COMMENT
LOW⚡libs/src/postmate/index.ts341 // Step 4: Clean up the channel-ready event listenerCOMMENT
Unused Imports12 hits · 12 pts
SeverityFileLineSnippetContext
LOW…/logseq/cli/e2e/random_bidirectional_block_ops_test.py1CODE
LOW…-e2e/test/logseq/cli/e2e/compare_graph_queries_test.py1CODE
LOWcli-e2e/test/logseq/cli/e2e/wait_sync_status_test.py1CODE
LOWcli-e2e/scripts/prepare_sync_config.py4CODE
LOWcli-e2e/scripts/db_sync_server.py4CODE
LOWcli-e2e/scripts/wait_sync_status.py4CODE
LOWcli-e2e/scripts/compare_graph_queries.py4CODE
LOWcli-e2e/scripts/random_bidirectional_block_ops.py4CODE
LOWcli-e2e/scripts/sync_asset_download.py4CODE
LOWcli-e2e/scripts/sync_asset_download.py13CODE
LOW…ills/logseq-review-workflow-eval/scripts/setup_eval.py4CODE
LOW…logseq-review-workflow-eval/scripts/compare_outputs.py4CODE
Over-Commented Block11 hits · 11 pts
SeverityFileLineSnippetContext
LOWresources/404.html1<!DOCTYPE html>COMMENT
LOWios/App/App/FolderPicker.m1//COMMENT
LOWios/App/App/App-Bridging-Header.h1//COMMENT
LOWios/App/App/FileContainer.m1//COMMENT
LOWlibs/tsconfig.json21 /* Generates corresponding '.map' file. */COMMENT
LOWlibs/tsconfig.json41 /* Enable strict null checks. */COMMENT
LOWlibs/tsconfig.json61 // "typeRoots": [], /* List of folders to include type definitions from. */COMMENT
LOWlibs/guides/db_properties_references.md481 // {COMMENT
LOW…t/resources/exporter-test-graph/journals/2025_06_12.md61 #+END_QUOTECOMMENT
LOWsrc/main/frontend/extensions/pdf/finder.js61function normalize (text) {COMMENT
LOWsrc/main/frontend/extensions/pdf/finder.js81 // [6, 0], [8, 3]].COMMENT
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALresources/js/lsplugin.core.js2!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amCODE
Decorative Section Separators3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUM.i18n-lint.toml8# ── Shared settings ────────────────────────────────────────────────────────────COMMENT
MEDIUM.i18n-lint.toml83# ── [lint] settings ────────────────────────────────────────────────────────────COMMENT
MEDIUM.i18n-lint.toml306# ── [check-keys] settings ──────────────────────────────────────────────────────COMMENT
Verbosity Indicators4 hits · 9 pts
SeverityFileLineSnippetContext
LOW⚡libs/src/postmate/index.ts327 // Step 1: Remove listener from window to avoid duplicate message handlingCOMMENT
LOW⚡libs/src/postmate/index.ts330 // Step 2: Update messagePort reference (this affects this.listener validation logic)COMMENT
LOW⚡libs/src/postmate/index.ts333 // Step 3: Add the same listener to MessagePort (now all communication goes through port)COMMENT
LOW⚡libs/src/postmate/index.ts341 // Step 4: Clean up the channel-ready event listenerCOMMENT
Fake / Example Data6 hits · 6 pts
SeverityFileLineSnippetContext
LOW.i18n-lint.toml76 "placeholder",CODE
LOWresources/js/lsplugin.user.js2!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amCODE
LOWresources/js/lsplugin.core.js2!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amCODE
LOWlibs/guides/db_properties_references.md272await logseq.Editor.upsertBlockProperty(page.uuid, 'author', 'John Doe')CODE
LOWlibs/guides/db_tag_property_idents_guide.md39 'John Doe'CODE
LOWlibs/guides/db_tag_property_idents_guide.md329 'John Doe'CODE
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…ure/2026-08-24-logseq-runtime-and-engineering-guide.md517#### Outliner performance guardrailsCOMMENT
MEDIUMlibs/guides/starter_guide.md33## Create plugin package from scaffoldCOMMENT
Deep Nesting5 hits · 5 pts
SeverityFileLineSnippetContext
LOWcli-e2e/scripts/db_sync_server.py128CODE
LOWcli-e2e/scripts/graph_deletion_lifecycle_test.py102CODE
LOWcli-e2e/scripts/graph_deletion_lifecycle_test.py112CODE
LOWcli-e2e/scripts/created_entity_results.py11CODE
LOWcli-e2e/scripts/random_bidirectional_block_ops.py262CODE
Excessive Try-Catch Wrapping3 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUM.agents/skills/logseq-repl/scripts/start-repl.py144 print("Error: standard Logseq REPL ports are still occupied after cleanup.", file=sys.stderr)CODE
LOWsidecar/embedding_server.py96 except Exception as error:CODE
LOWsidecar/embedding_server.py148 except Exception:CODE
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/install-linux.sh191# Check if running as root for system-wide installationCOMMENT
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWcli-e2e/scripts/agent_bridge_e2e.py161CODE