AI Slop Code RIsk Monitor

Lum1104/Understand-Anything

Graphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.

4.8 Low pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for Lum1104/Understand-Anything, a TypeScript project with 85,857 GitHub stars. SynthScan examined 113,600 lines of code across 430 source files, recording 320 pattern matches distributed across 15 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
85.9K
Stars
TypeScript
Language
113.6K
Lines of Code
430
Files
320
Pattern Hits
2026-10-12
Scan Date
0.03
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 9.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.1/100 · LOW

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

Agent Over-Engineering Ratio 16.5/100 · LOW

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

PR Review Velocity Impact 22.1/100 · LOW

Which changes need focused human review? 320 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 11MEDIUM 96LOW 213

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 320 distinct pattern matches across 15 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.

Decorative Section Separators81 hits · 255 pts
SeverityFileLineSnippetContext
MEDIUM…plugin/packages/dashboard/src/components/GraphView.tsx108// ── Helper components that must live inside <ReactFlow> ────────────────COMMENT
MEDIUM…plugin/packages/dashboard/src/components/GraphView.tsx237// ── Overview level: layers as cluster nodes ────────────────────────────COMMENT
MEDIUM…plugin/packages/dashboard/src/components/GraphView.tsx359// ── Layer detail level: topology (ELK Stage 1) + visual overlay ─────────COMMENT
MEDIUM…plugin/packages/dashboard/src/components/GraphView.tsx679 // ── Async ELK Stage 1 layout ────────────────────────────────────────────COMMENT
MEDIUM…plugin/packages/dashboard/src/components/GraphView.tsx797 // ── Stage 2: lazy per-container layout on expand ───────────────────────COMMENT
MEDIUM…plugin/packages/dashboard/src/components/GraphView.tsx1042 // ── Container visual overlay flags (Task 14) ────────────────────────────COMMENT
MEDIUM…plugin/packages/dashboard/src/components/GraphView.tsx1319// ── Main inner component (must be inside ReactFlowProvider) ────────────COMMENT
MEDIUM…plugin/packages/dashboard/src/components/GraphView.tsx1411 // ── Auto-expand triggers (Task 13) ─────────────────────────────────────COMMENT
MEDIUM…n/skills/understand-knowledge/merge-knowledge-graph.py53# ---------------------------------------------------------------------------COMMENT
MEDIUM…n/skills/understand-knowledge/merge-knowledge-graph.py55# ---------------------------------------------------------------------------COMMENT
MEDIUM…n/skills/understand-knowledge/merge-knowledge-graph.py97# ---------------------------------------------------------------------------COMMENT
MEDIUM…n/skills/understand-knowledge/merge-knowledge-graph.py99# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…n/skills/understand-knowledge/merge-knowledge-graph.py116# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…n/skills/understand-knowledge/merge-knowledge-graph.py118# ---------------------------------------------------------------------------COMMENT
MEDIUM…in/skills/understand-knowledge/parse-knowledge-base.py30# ---------------------------------------------------------------------------COMMENT
MEDIUM…in/skills/understand-knowledge/parse-knowledge-base.py32# ---------------------------------------------------------------------------COMMENT
MEDIUM…in/skills/understand-knowledge/parse-knowledge-base.py63# ---------------------------------------------------------------------------COMMENT
MEDIUM…in/skills/understand-knowledge/parse-knowledge-base.py65# ---------------------------------------------------------------------------COMMENT
MEDIUM…in/skills/understand-knowledge/parse-knowledge-base.py103# ---------------------------------------------------------------------------COMMENT
MEDIUM…in/skills/understand-knowledge/parse-knowledge-base.py105# ---------------------------------------------------------------------------COMMENT
MEDIUM…in/skills/understand-knowledge/parse-knowledge-base.py197# ---------------------------------------------------------------------------COMMENT
MEDIUM…in/skills/understand-knowledge/parse-knowledge-base.py199# ---------------------------------------------------------------------------COMMENT
MEDIUM…in/skills/understand-knowledge/parse-knowledge-base.py228# ---------------------------------------------------------------------------COMMENT
MEDIUM…in/skills/understand-knowledge/parse-knowledge-base.py230# ---------------------------------------------------------------------------COMMENT
MEDIUM…in/skills/understand-knowledge/parse-knowledge-base.py250# ---------------------------------------------------------------------------COMMENT
MEDIUM…in/skills/understand-knowledge/parse-knowledge-base.py252# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡…nything-plugin/skills/understand/merge-batch-graphs.py806# ── Main merge + normalize ────────────────────────────────────────────────COMMENT
MEDIUM⚡…nything-plugin/skills/understand/merge-batch-graphs.py816 # ── Pattern counters for "Fixed" report ──────────────────────────COMMENT
MEDIUM⚡…nything-plugin/skills/understand/merge-batch-graphs.py820 # ── Detail lists for "Could not fix" report ──────────────────────COMMENT
MEDIUM⚡…nything-plugin/skills/understand/merge-batch-graphs.py823 # ── Step 1: Combine all nodes and edges ──────────────────────────COMMENT
MEDIUM⚡…nything-plugin/skills/understand/merge-batch-graphs.py833 # ── Step 2: Normalize node IDs and build ID mapping ──────────────COMMENT
MEDIUM⚡…nything-plugin/skills/understand/merge-batch-graphs.py885 # ── Step 5: Deduplicate nodes by ID (keep last) ─────────────────COMMENT
MEDIUM⚡…nything-plugin/skills/understand/merge-batch-graphs.py894 # ── Step 5b: Deterministic tested_by linker ──────────────────────COMMENT
MEDIUM⚡…nything-plugin/skills/understand/merge-batch-graphs.py900 # ── Step 6: Deduplicate edges, drop dangling ─────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py36# ── Configuration ─────────────────────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py98# ── tested_by linker configuration ────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py187# ── Batch loading ─────────────────────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py207# ── ID normalization ──────────────────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py307# ── Deterministic tested_by linker ────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py420 # ── JS/TS family ──────────────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py450 # ── Go ────────────────────────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py455 # ── Python ────────────────────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py479 # ── Java ──────────────────────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py497 # ── Kotlin ────────────────────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py513 # ── Scala ─────────────────────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py532 # ── C# ────────────────────────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py579 # ── C/C++ ─────────────────────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py857 # ── Step 3: Normalize complexity ─────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py873 # ── Step 4: Rewrite edge references ──────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py941 # ── Build report ─────────────────────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py1014# ── Imports-edge recovery from importMap ──────────────────────────────────COMMENT
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py1152# ── Main ──────────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡…ing-plugin/skills/understand/merge-subdomain-graphs.py74 # ── Pattern counters for "Fixed" report ──────────────────────────COMMENT
MEDIUM⚡…ing-plugin/skills/understand/merge-subdomain-graphs.py77 # ── Detail lists for "Could not fix" report ──────────────────────COMMENT
MEDIUM⚡…ing-plugin/skills/understand/merge-subdomain-graphs.py83 # ── Nodes: deduplicate by id, later occurrence wins ───────────────COMMENT
MEDIUM…ing-plugin/skills/understand/merge-subdomain-graphs.py135 # ── Layers: merge by id, union nodeIds ────────────────────────────COMMENT
MEDIUM…ing-plugin/skills/understand/merge-subdomain-graphs.py156 # ── Tour: concatenate, merge steps with same title ─────────────────COMMENT
MEDIUM…ing-plugin/skills/understand/merge-subdomain-graphs.py187 # ── Project metadata: merge ───────────────────────────────────────COMMENT
MEDIUM…ing-plugin/skills/understand/merge-subdomain-graphs.py212 # ── Build report ─────────────────────────────────────────────────COMMENT
MEDIUM…gin/skills/understand-domain/extract-domain-context.py29# ── Configuration ──────────────────────────────────────────────────────────COMMENT
21 more matches not shown…
Hyper-Verbose Identifiers126 hits · 106 pts
SeverityFileLineSnippetContext
LOWunderstand-anything-plugin/packages/core/src/schema.ts501function buildInvalidCollectionIssue(name: string): GraphIssue {CODE
LOW…-anything-plugin/packages/core/src/ignore-generator.ts263export function generateStarterIgnoreFile(projectRoot: string): string {CODE
LOW…-anything-plugin/packages/core/src/embedding-search.ts39function cosineSimilarityWithQueryMag(CODE
LOW…ckages/core/src/plugins/extractors/kotlin-extractor.ts154function collectPrimaryConstructorProperties(CODE
LOW…ackages/core/src/plugins/extractors/swift-extractor.ts207function extractAssociatedTypeName(node: TreeSitterNode): string | null {CODE
LOW…ackages/core/src/plugins/extractors/scala-extractor.ts122function collectClassParameterProperties(CODE
LOW…packages/core/src/plugins/extractors/java-extractor.ts68function extractScopedIdentifierPath(node: TreeSitterNode): string {CODE
LOW…/plugins/extractors/__tests__/python-extractor.test.ts162class DataProcessor:CODE
LOW…g-plugin/packages/core/src/analyzer/language-lesson.ts112export function buildLanguageLessonPrompt(CODE
LOW…g-plugin/packages/core/src/analyzer/language-lesson.ts178export function parseLanguageLessonResponse(CODE
LOW…ng-plugin/packages/core/src/analyzer/tour-generator.ts7export function buildTourGenerationPrompt(graph: KnowledgeGraph): string {CODE
LOW…ng-plugin/packages/core/src/analyzer/tour-generator.ts70export function parseTourGenerationResponse(response: string): TourStep[] {CODE
LOW…hing-plugin/packages/core/src/analyzer/llm-analyzer.ts48export function buildProjectSummaryPrompt(CODE
LOW…hing-plugin/packages/core/src/analyzer/llm-analyzer.ts102export function parseFileAnalysisResponse(CODE
LOW…hing-plugin/packages/core/src/analyzer/llm-analyzer.ts148export function parseProjectSummaryResponse(CODE
LOW…ng-plugin/packages/core/src/analyzer/layer-detector.ts154export function buildLayerDetectionPrompt(graph: KnowledgeGraph): string {CODE
LOW…ng-plugin/packages/core/src/analyzer/layer-detector.ts181export function parseLayerDetectionResponse(CODE
LOW…tand-anything-plugin/packages/dashboard/vite.config.ts260export function createDashboardDataMiddleware(CODE
LOW…nd-anything-plugin/packages/dashboard/src/freshness.ts149export function isDashboardFreshnessReport(CODE
LOW…hing-plugin/packages/dashboard/src/utils/containers.ts77function shouldFallbackToCommunity(CODE
LOW…kages/dashboard/src/__tests__/store-navigation.test.ts47function expectContainerStateCleared(): void {CODE
LOW…n/skills/understand-knowledge/merge-knowledge-graph.py34def _find_markdown_case_insensitive(parent: Path, name: str) -> Path:CODE
LOW…in/skills/understand-knowledge/parse-knowledge-base.py43def find_markdown_case_insensitive(parent: Path, name: str) -> Path:CODE
LOW…nything-plugin/skills/understand/merge-batch-graphs.py396def _js_ts_sibling_candidates(dir_path: str, base_stem: str) -> list[str]:CODE
LOW…nything-plugin/skills/understand/merge-batch-graphs.py1021def build_whole_file_node_index(CODE
LOW…nything-plugin/skills/understand/merge-batch-graphs.py1066def recover_imports_from_scan(CODE
LOW…ing-plugin/skills/understand/merge-subdomain-graphs.py270def load_pending_structural_edges(report_path: Path) -> list[dict[str, Any]]:CODE
LOWtests/skill/understand/test_merge_subdomain_graphs.py73 def test_structural_drop_emits_warning_and_is_recorded(self) -> None:CODE
LOWtests/skill/understand/test_merge_subdomain_graphs.py85 def test_non_structural_drop_stays_in_could_not_fix(self) -> None:CODE
LOWtests/skill/understand/test_merge_subdomain_graphs.py93 def test_valid_edges_are_untouched(self) -> None:CODE
LOWtests/skill/understand/test_merge_subdomain_graphs.py104 def test_dropped_structural_edge_recovers_when_endpoint_arrives(self) -> None:CODE
LOWtests/skill/understand/test_merge_subdomain_graphs.py126 def test_non_structural_dropped_edges_are_not_retried(self) -> None:CODE
LOWtests/skill/understand/test_merge_subdomain_graphs.py138 def test_missing_or_corrupt_report_yields_no_pending(self) -> None:CODE
LOW⚡tests/skill/understand/test_merge_batch_graphs.py285 def test_scala_multimodule_sbt_layout(self) -> None:CODE
LOW⚡tests/skill/understand/test_merge_batch_graphs.py289 def test_js_ts_test_subdir_walkout(self) -> None:CODE
LOW⚡tests/skill/understand/test_merge_batch_graphs.py297 def test_python_in_package_tests_walkout(self) -> None:CODE
LOW⚡tests/skill/understand/test_merge_batch_graphs.py306 def test_csharp_tests_subdir_mirror_to_src(self) -> None:CODE
LOW⚡tests/skill/understand/test_merge_batch_graphs.py343 def test_priority_mirrored_tree_sibling_before_mirror(self) -> None:CODE
LOW⚡tests/skill/understand/test_merge_batch_graphs.py358 def test_basic_pairing_emits_forward_edge(self) -> None:CODE
LOW⚡tests/skill/understand/test_merge_batch_graphs.py1563 def test_fresh_project_uses_dot_ua(self) -> None:CODE
LOW⚡tests/skill/understand/test_merge_batch_graphs.py1571 def test_legacy_project_keeps_understand_anything(self) -> None:CODE
LOW⚡tests/skill/understand/test_merge_batch_graphs.py1580 def test_legacy_dir_wins_when_both_present(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py70 def test_indexes_supported_whole_file_types(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py81 def test_prefers_file_and_rejects_child_or_malformed_nodes(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py100 def test_js_ts_sibling_test_extensions(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py117 def test_underscore_test_dir_with_test_extension(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py121 def test_tests_directory_with_test_extension(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py191 def test_production_files_rejected(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py212 def test_helper_in_tests_dir_without_test_extension_is_not_test(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py239 def test_underscore_tests_dir(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py322 def test_csharp_dotnet_sibling_project_mirror(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py332 def test_priority_underscore_tests_sibling_before_walkup(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py382 def test_scala_sbt_pairing_emits_forward_edge(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py403 def test_scala_multimodule_sbt_pairing_emits_forward_edge(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py430 def test_swift_canonical_llm_edge_is_preserved(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py457 def test_other_missing_language_patterns_preserve_canonical_edges(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py488 def test_swift_inverted_llm_edge_is_swapped_and_tagged(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py512 def test_no_production_counterpart_no_edge(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py525 def test_inverted_llm_edge_is_swapped_not_stripped(self) -> None:CODE
LOWtests/skill/understand/test_merge_batch_graphs.py560 def test_canonical_llm_edge_kept_unchanged(self) -> None:CODE
66 more matches not shown…
Structural Annotation Overuse49 hits · 61 pts
SeverityFileLineSnippetContext
LOW…n/skills/understand-knowledge/merge-knowledge-graph.py233 # Step 1: Build entity/claim → article mapping from edgesCOMMENT
LOW…n/skills/understand-knowledge/merge-knowledge-graph.py244 # Step 2: For orphan entities/claims, try to match by ID prefixCOMMENT
LOW…n/skills/understand-knowledge/merge-knowledge-graph.py298 # Step 3: Place children into their parent article's layerCOMMENT
LOW⚡…s/superpowers/plans/2026-03-27-token-reduction-impl.md688### Step 7: VerifyCOMMENT
LOW⚡…s/superpowers/plans/2026-03-27-token-reduction-impl.md698### Step 8: CommitCOMMENT
LOW⚡…s/superpowers/plans/2026-03-27-token-reduction-impl.md714### Step 1: Update Phase 1 to note importMap is now in scan-result.jsonCOMMENT
LOW⚡…s/superpowers/plans/2026-03-27-token-reduction-impl.md848### Step 1: Read current versionCOMMENT
LOW⚡…s/superpowers/plans/2026-03-27-token-reduction-impl.md856### Step 2: Bump patch version in all four filesCOMMENT
LOW⚡…s/superpowers/plans/2026-03-27-token-reduction-impl.md866### Step 3: Verify all four files matchCOMMENT
LOW⚡…s/superpowers/plans/2026-03-27-token-reduction-impl.md874### Step 4: CommitCOMMENT
LOW⚡…s/superpowers/plans/2026-03-27-token-reduction-impl.md929### Step 4: Smoke test on a larger project (~100+ files)COMMENT
LOW⚡…s/superpowers/plans/2026-03-27-token-reduction-impl.md939### Step 5: Test `--review` flagCOMMENT
LOW⚡…s/superpowers/plans/2026-03-27-token-reduction-impl.md948### Step 6: Final commit (if any fixes needed from smoke test)COMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md22### Step 1: Open SKILL.md and locate Phase 6COMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md26### Step 2: Replace Phase 6 steps 3–6 with conditional reviewer logicCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md152### Step 3: Verify the editCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md160### Step 4: CommitCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md176### Step 1: Locate the Phase 4 dispatch prompt in SKILL.mdCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md187### Step 2: Update the file node formatCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md199### Step 3: VerifyCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md203### Step 4: CommitCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md220### Step 1: Locate the Phase 5 dispatch prompt in SKILL.mdCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md240### Step 2: Replace all three payload sectionsCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md261### Step 3: Update tour-builder-prompt.md input schemaCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md303### Step 4: VerifyCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md308### Step 5: CommitCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md326### Step 1: Update the "Build the combined prompt template" block in SKILL.md Phase 2COMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md361### Step 2: Add Language and Framework Quick Reference to file-analyzer-prompt.mdCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md397### Step 3: VerifyCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md403### Step 4: CommitCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md420### Step 1: Add Step 8 to the scanner script requirementsCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md460### Step 2: Update the scanner script output formatCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md500### Step 3: Update the final assembly section to preserve importMapCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md528### Step 4: VerifyCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md536### Step 5: CommitCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md552### Step 1: Update the input JSON schema (Script Requirements, step 1)COMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md585### Step 2: Remove the imports extraction from "What the Script Must Extract"COMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md604### Step 3: Update the script output format to remove importsCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md640### Step 4: Update "Preparing the Script Input" sectionCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md664### Step 5: Update Step 3 (Create Edges) — Import edge creation ruleCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md676### Step 6: Remove `allProjectFiles` references from Critical ConstraintsCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md735### Step 2: Change batch size and concurrency in Phase 2COMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md757### Step 3: Add batchImportData construction to the dispatch blockCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md807### Step 4: Update incremental update pathCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md819### Step 5: Verify all Phase 2 changesCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md829### Step 6: CommitCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md892### Step 1: Build the packagesCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md901### Step 2: Find installed plugin version and copy to cacheCOMMENT
LOW…s/superpowers/plans/2026-03-27-token-reduction-impl.md915### Step 3: Smoke test on a small project (~20 files)COMMENT
Cross-File Repetition5 hits · 25 pts
SeverityFileLineSnippetContext
HIGH…n/skills/understand-knowledge/merge-knowledge-graph.py0mirror core resolveuadir: legacy .understand-anything/ wins if present.STRING
HIGH…in/skills/understand-knowledge/parse-knowledge-base.py0mirror core resolveuadir: legacy .understand-anything/ wins if present.STRING
HIGH…nything-plugin/skills/understand/merge-batch-graphs.py0mirror core resolveuadir: legacy .understand-anything/ wins if present.STRING
HIGH…ing-plugin/skills/understand/merge-subdomain-graphs.py0mirror core resolveuadir: legacy .understand-anything/ wins if present.STRING
HIGH…gin/skills/understand-domain/extract-domain-context.py0mirror core resolveuadir: legacy .understand-anything/ wins if present.STRING
Cross-Language Confusion (JS/TS)4 hits · 20 pts
SeverityFileLineSnippetContext
HIGH…/plugins/extractors/__tests__/python-extractor.test.ts69 print(name)CODE
HIGH…/plugins/extractors/__tests__/python-extractor.test.ts557print("hello")CODE
HIGH…/plugins/extractors/__tests__/python-extractor.test.ts614 return NoneCODE
HIGH…/plugins/extractors/__tests__/python-extractor.test.ts621 print(args, kwargs)CODE
Excessive Try-Catch Wrapping11 hits · 19 pts
SeverityFileLineSnippetContext
MEDIUM⚡…n/skills/understand-knowledge/merge-knowledge-graph.py125 print(f"Error: {manifest_path} not found. Run parse-knowledge-base.py first.",CODE
MEDIUM…n/skills/understand-knowledge/merge-knowledge-graph.py419 print(f"Error: {root} is not a directory", file=sys.stderr)CODE
MEDIUM…in/skills/understand-knowledge/parse-knowledge-base.py543 print(f"Error: {root} is not a directory", file=sys.stderr)CODE
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py1166 print(f"Error: {intermediate_dir} does not exist", file=sys.stderr)CODE
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py1177 print("Error: no batch-*.json files found in intermediate/", file=sys.stderr)CODE
MEDIUM…nything-plugin/skills/understand/merge-batch-graphs.py1272 print("Error: no valid batch files loaded", file=sys.stderr)CODE
MEDIUM…ing-plugin/skills/understand/merge-subdomain-graphs.py321 print(f"Error: {ua_dir} does not exist", file=sys.stderr)CODE
MEDIUM…ing-plugin/skills/understand/merge-subdomain-graphs.py357 print("Error: no valid subdomain graphs loaded", file=sys.stderr)CODE
MEDIUM…gin/skills/understand-domain/extract-domain-context.py390 print(f"Error: {project_root} is not a directory", file=sys.stderr)CODE
LOW…gin/skills/understand-domain/extract-domain-context.py429 except Exception as e:CODE
MEDIUM…gin/skills/understand-domain/extract-domain-context.py430 print(f"Error: {e}", file=sys.stderr)CODE
Modern AI Meta-Vocabulary5 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMREADME.md47Understand Anything is a [Claude Code Plugin](https://code.claude.com/docs/en/plugins-reference#plugins-reference) that CODE
MEDIUM…powers/plans/2026-06-24-understand-figma-foundation.md1172### Task 10: `/understand-figma` skill orchestration (`SKILL.md`)COMMENT
MEDIUM⚡…s/superpowers/plans/2026-03-27-token-reduction-impl.md707## Task 7: C1c + C2 — Update SKILL.md Phase 2 orchestrationCOMMENT
MEDIUMREADMEs/README.zh-TW.md46Understand Anything 是一個 [Claude Code Plugin](https://code.claude.com/docs/en/plugins-reference#plugins-reference),透過多智能體CODE
MEDIUMREADMEs/README.zh-CN.md46Understand Anything 是一个 [Claude Code Plugin](https://code.claude.com/docs/en/plugins-reference#plugins-reference),通过多智能体CODE
Deep Nesting13 hits · 11 pts
SeverityFileLineSnippetContext
LOW…n/skills/understand-knowledge/merge-knowledge-graph.py120CODE
LOW…in/skills/understand-knowledge/parse-knowledge-base.py144CODE
LOW…in/skills/understand-knowledge/parse-knowledge-base.py283CODE
LOW…in/skills/understand-knowledge/parse-knowledge-base.py323CODE
LOW…nything-plugin/skills/understand/merge-batch-graphs.py279CODE
LOW…nything-plugin/skills/understand/merge-batch-graphs.py405CODE
LOW…nything-plugin/skills/understand/merge-batch-graphs.py640CODE
LOW…nything-plugin/skills/understand/merge-batch-graphs.py808CODE
LOW…ing-plugin/skills/understand/merge-subdomain-graphs.py66CODE
LOW…gin/skills/understand-domain/extract-domain-context.py158CODE
LOW…gin/skills/understand-domain/extract-domain-context.py204CODE
LOW…gin/skills/understand-domain/extract-domain-context.py313CODE
LOW…gin/skills/understand-domain/extract-domain-context.py166CODE
Over-Commented Block11 hits · 10 pts
SeverityFileLineSnippetContext
LOWinstall.sh1#!/usr/bin/env bashCOMMENT
LOW…-anything-plugin/packages/core/src/ignore-generator.ts1import { existsSync, readdirSync, readFileSync, type Dirent } from "node:fs";COMMENT
LOW…-anything-plugin/packages/core/src/ignore-generator.ts41// Directory-name suffixes matched case-insensitively via String.endsWith.COMMENT
LOW…-anything-plugin/packages/core/src/ignore-generator.ts121 "**/conftest.py",COMMENT
LOW…-anything-plugin/packages/core/src/ignore-generator.ts141 "**/bench_*.rs",COMMENT
LOW…-anything-plugin/packages/core/src/ignore-generator.ts161 "**/test_*.rb",COMMENT
LOW…-anything-plugin/packages/core/src/ignore-generator.ts181 // The globs below use *exact* directory names rather than a `*Tests`COMMENT
LOW…plugin/packages/dashboard/src/components/GraphView.tsx1201 expandedContainers,COMMENT
LOW…nything-plugin/skills/understand/merge-batch-graphs.py301 else:COMMENT
LOW…nything-plugin/skills/understand/merge-batch-graphs.py321# Pass 2 — supplement with path-convention pairings.COMMENT
LOW…uperpowers/specs/2026-04-10-understandignore-design.md161# Built-in defaults (always excluded unless negated):COMMENT
Unused Imports6 hits · 6 pts
SeverityFileLineSnippetContext
LOW…n/skills/understand-knowledge/merge-knowledge-graph.py21CODE
LOW…in/skills/understand-knowledge/parse-knowledge-base.py19CODE
LOW…gin/skills/understand-domain/extract-domain-context.py17CODE
LOWtests/skill/understand/test_merge_subdomain_graphs.py10CODE
LOWtests/skill/understand/test_merge_batch_graphs.py9CODE
LOWtests/skill/knowledge/test_parse_knowledge_base.py10CODE
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH…n/skills/understand-knowledge/merge-knowledge-graph.py390except (OSError, subprocess.TimeoutExpired):CODE
Synthetic Comment Markers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH…/superpowers/plans/2026-03-14-phase3-implementation.md968**Context:** Users should be able to click "Explain" on any node to get a detailed plain-English explanation generated bCODE
Verbosity Indicators3 hits · 4 pts
SeverityFileLineSnippetContext
LOW…n/skills/understand-knowledge/merge-knowledge-graph.py233 # Step 1: Build entity/claim → article mapping from edgesCOMMENT
LOW…n/skills/understand-knowledge/merge-knowledge-graph.py244 # Step 2: For orphan entities/claims, try to match by ID prefixCOMMENT
LOW…n/skills/understand-knowledge/merge-knowledge-graph.py298 # Step 3: Place children into their parent article's layerCOMMENT
Overly Generic Function Names3 hits · 3 pts
SeverityFileLineSnippetContext
LOW…c/plugins/extractors/__tests__/scala-extractor.test.ts245 def helper(x: Int): Int = xCODE
LOW…c/plugins/extractors/__tests__/scala-extractor.test.ts414 const { tree, parser, root } = parse(`private[service] def helper(): Unit = ()CODE
LOW…c/plugins/extractors/__tests__/scala-extractor.test.ts464 def helper(args: List[String]): AnyRef = nullCODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWinstall.sh4# Usage:COMMENT