AI Slop Code Risk Monitor

langchain-ai/openwiki

SlopCodeMonitor badge for langchain-ai/openwiki Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

OpenWiki is a CLI that writes and maintains agent documentation for your codebase.

2.2 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for langchain-ai/openwiki, a TypeScript project with 17,644 GitHub stars. SynthScan examined 175,657 lines of code across 567 source files, recording 372 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 2.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.

2.2
Adjusted Signal
2.2
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
17.6K
Stars
TypeScript
Language
175.7K
Lines of Code
567
Files
372
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 9.8/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 0.7/100 · LOW

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

Agent Over-Engineering Ratio 8.9/100 · LOW

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

PR Review Velocity Impact 10.7/100 · LOW

Which changes need focused human review? 372 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 0HIGH 3MEDIUM 6LOW 363

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 372 distinct pattern matches across 9 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 Identifiers332 hits · 326 pts
SeverityFileLineSnippetContext
LOWevals/ledger/benchmark/validation.ts60export async function validateEvidenceMapSources(CODE
LOWevals/ledger/benchmark/source-repo.ts87export async function ensureSourceRepoAvailable(CODE
LOWevals/ledger/metrics/claims.ts44export function computeEvaluationCompleteness(CODE
LOWevals/ledger/evaluator/precision.ts941function deduplicateHistoricalEvidence(CODE
LOWevals/ledger/evaluator/precision.ts987function statementNamesMissingSourcePath(CODE
LOWevals/ledger/evaluator/precision.ts1168function toJudgmentArtifactContexts(CODE
LOWevals/ledger/evaluator/precision.ts1373async function resolvePrecisionBatchResilient(CODE
LOWevals/ledger/evaluator/prompts.ts409export function precisionExtractionPrompt(CODE
LOWevals/ledger/replay/workspace.ts47export async function assertContainedByRealpath(CODE
LOWevals/ledger/run/progress.ts110export function createCliProgressReporter(CODE
LOWevals/ledger/run/saved-run.ts131async function readSavedArtifactDocument(CODE
LOWevals/ledger/run/reevaluate-args.ts137export function resolveReevaluationConfig(CODE
LOWevals/deepswe/openwiki_codex.py36def _normalized_package_digest(package_path: Path) -> str:CODE
LOWevals/deepswe/openwiki_codex.py90def _validate_wiki_cache_archive(archive_path: Path) -> dict[str, str] | None:CODE
LOWevals/deepswe/analyze_openwiki_usage.py87def is_openwiki_filesystem_read(command: str) -> bool:CODE
LOW⚡evals/deepswe/tests/test_run.py58 def test_langsmith_feedback_programming_error_still_propagates(self) -> None:CODE
LOW⚡evals/deepswe/tests/test_run.py67 def test_openwiki_install_rebuilds_only_native_sqlite_dependency(self) -> None:CODE
LOW⚡evals/deepswe/tests/test_run.py76 def test_agent_install_ignores_broken_nodesource_apt_repository(self) -> None:CODE
LOW⚡evals/deepswe/tests/test_run.py86 def test_adapter_captures_committed_patch_for_separate_verifier(self) -> None:CODE
LOW⚡evals/deepswe/tests/test_run.py96 def test_openwiki_treatment_uses_just_in_time_navigation(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py20 def test_langsmith_feedback_rounds_scores_and_skips_invalid_metrics(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py44 def test_langsmith_feedback_http_error_does_not_abort_trial(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py113 def test_eval_defaults_use_terra_without_changing_openwiki_defaults(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py118 def test_paired_commands_share_selection_and_agent_settings(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py190 def test_custom_agent_setup_timeout_multiplier_is_forwarded(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py201 def test_openwiki_cache_key_is_stable_and_configuration_sensitive(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py211 def test_wiki_cache_archive_accepts_only_contained_regular_content(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py254 def test_compatible_cache_requires_exact_commit_and_model_metadata(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py293 def test_cache_only_cli_flags_are_forwarded(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py305 def test_custom_allowed_host_is_validated_and_included(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py318 def test_credentials_require_openai_and_langsmith(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py333 def test_langsmith_endpoint_rejects_embedded_credentials(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py340 def test_run_clears_ambient_experiment_overrides(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py359 def test_cleanup_removes_only_inactive_owned_trial_network(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py402 def test_cleanup_skips_active_or_foreign_trial_networks(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py454 def test_run_condition_cleans_docker_networks_even_when_harbor_fails(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py477 def test_cleanup_failure_does_not_mask_harbor_failure(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py495 def test_seeded_task_selection_is_reproducible(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py521 def test_named_task_suites_are_independent_and_composable(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py540 def test_named_task_suite_selects_every_exact_member(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py564 def test_named_task_suite_reports_missing_pinned_tasks(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py585 def test_named_task_suite_cannot_be_combined_with_task_filter(self) -> None:CODE
LOWevals/deepswe/tests/test_run.py597 def test_load_and_aggregate_trial_rows(self) -> None:CODE
LOWevals/deepswe/tests/test_analyze_openwiki_usage.py14 def test_canonical_call_json_and_filesystem_classification(self) -> None:CODE
LOWevals/deepswe/tests/test_analyze_openwiki_usage.py26 def test_analyze_trace_pairs_events_and_counts_direct_overhead(self) -> None:CODE
LOWevals/deepswe/tests/test_analyze_openwiki_usage.py132 def test_collect_trials_includes_complete_usage_even_after_verifier_failure(CODE
LOWevals/deepswe/tests/test_analyze_openwiki_usage.py174 def test_analyze_trace_scopes_reused_item_ids_to_each_completion(self) -> None:CODE
LOWevals/deepswe/tests/test_analyze_openwiki_usage.py223 def test_summary_subtracts_calls_and_estimated_tokens(self) -> None:CODE
LOWtest/openrouter-debug-fetch.test.ts130async function expectOpenRouterMalformedError(CODE
LOWtest/connectors/raw-connector-tools.test.ts173async function loadConnectorToolsForMode(CODE
LOWtest/connectors/tools.test.ts336async function loadToolsWithMockRegistry(CODE
LOWtest/connectors/tools.test.ts357async function loadToolsWithMockMcpRuntime(config: {CODE
LOWtest/ingestion/code-mode.test.ts93function expectFailurePreservingWorkflow(workflow: string): void {CODE
LOWtest/setup/openai-chatgpt-credentials.test.ts57function configureValidChatGptSession(): void {CODE
LOWtest/agent/repository-runner.test.ts621async function getNoDelegationWrapModelCall(): Promise<CODE
LOWtest/integrations/installer.test.ts280function failingPriorMoveOperations(CODE
LOWsrc/model-availability.ts26export async function getSelectedModelAvailability(CODE
LOWsrc/connectors/mcp-client.ts58export async function executeMcpReadOnlyOperations(CODE
LOWsrc/connectors/mcp-client.ts855async function resolveTemplateEnvReferences(CODE
LOWsrc/connectors/mcp-client.ts885async function resolveHeaderEnvReference(envKey: string): Promise<string> {CODE
272 more matches not shown…
Cross-Language Confusion3 hits · 18 pts
SeverityFileLineSnippetContext
HIGHevals/deepswe/openwiki_codex.py206 "apt-get update && apt-get install -y ripgrep; "CODE
HIGHevals/deepswe/openwiki_codex.py391 "command -v openwiki-retrieval-mcp || true"CODE
HIGH⚡evals/deepswe/tests/test_run.py101 self.assertIn("command -v openwiki-retrieval-mcp || true", adapter)CODE
Modern AI Meta-Vocabulary4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMtest/ingestion/ingestion-run.test.ts237 // An agentic connector is not pulled up front, so the message must insteadCOMMENT
MEDIUMtest/ingestion/ingestion-run.test.ts486 // Cover both message templates: an agentic source (named, no goals) and aCOMMENT
MEDIUMopenwiki/workflows/personal-ingestion.md53## Entrypoint and orchestrationCOMMENT
MEDIUMopenwiki/workflows/personal-ingestion.md121## Per-source run: deterministic pull vs. agentic discoveryCOMMENT
Over-Commented Block12 hits · 10 pts
SeverityFileLineSnippetContext
LOWvitest.config.ts21 coverage: {COMMENT
LOWpnpm-workspace.yaml1allowBuilds:COMMENT
LOWtest/connectors/connector-config-overrides.test.ts1import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";COMMENT
LOWtest/config/env-behavior.test.ts41//COMMENT
LOWtest/auth/oauth-run.test.ts1import { createHash } from "node:crypto";COMMENT
LOWtest/agent/gemini-enterprise-claude.e2e.test.ts1import { mkdtemp, rm, writeFile } from "node:fs/promises";COMMENT
LOWtest/agent/gemini-enterprise-claude.e2e.test.ts21// awaited later, on the first request). In an unauthenticated CI environment thatCOMMENT
LOWsrc/config/constants.ts1241 );COMMENT
LOWsrc/config/constants.ts1261 TRUE_ENV_VALUECOMMENT
LOWsrc/agent/okf-middleware.ts81 // model so the agent can recover, so tool/connector throws never reach the runCOMMENT
LOWsrc/agent/index.ts1601 // Gemini/Gemma over generateContent wants the bare model ID; normalize aCOMMENT
LOWsrc/telemetry/senders.ts101 ...(details.provider ? { provider: details.provider } : {}),COMMENT
Deep Nesting10 hits · 9 pts
SeverityFileLineSnippetContext
LOWevals/deepswe/run.py297CODE
LOWevals/deepswe/run.py805CODE
LOWevals/deepswe/openwiki_codex.py36CODE
LOWevals/deepswe/openwiki_codex.py90CODE
LOWevals/deepswe/openwiki_codex.py423CODE
LOWevals/deepswe/analyze_openwiki_usage.py93CODE
LOWevals/deepswe/analyze_openwiki_usage.py128CODE
LOWevals/deepswe/analyze_openwiki_usage.py159CODE
LOWevals/deepswe/tests/test_run.py211CODE
LOWevals/deepswe/tests/test_run.py212CODE
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMevals/deepswe/run.py56# Directory containing the DeepSWE harness.COMMENT
MEDIUMevals/deepswe/run.py97# Ten disjoint tasks selected for high documentation leverage.COMMENT
Unused Imports5 hits · 4 pts
SeverityFileLineSnippetContext
LOWevals/deepswe/run.py4CODE
LOWevals/deepswe/deepswe_langsmith.py3CODE
LOWevals/deepswe/openwiki_codex.py3CODE
LOWevals/deepswe/analyze_openwiki_usage.py10CODE
LOWevals/deepswe/tests/test_run.py1CODE
Fake / Example Data3 hits · 3 pts
SeverityFileLineSnippetContext
LOWtest/setup/credentials/format.test.ts222 email: "user@example.com",CODE
LOWtest/agent/entra-auth.test.ts332 token: `fake-token-${identityMocks.getToken.mock.calls.length}`,CODE
LOWtest/agent/entra-auth.test.ts403 ).toEqual(["Bearer fake-token-1", "Bearer fake-token-2"]);CODE
Excessive Try-Catch Wrapping1 hit · 1 pts
SeverityFileLineSnippetContext
LOWevals/deepswe/run.py576 except Exception:CODE