Blazing-fast, Neuro-symbolic Data-Wrangling toolkit
This report summarizes scanner evidence for dathere/qsv, a Rust project with 3,817 GitHub stars. SynthScan examined 552,047 lines of code across 887 source files, recording 1567 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 3.9 (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.
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.
Can maintainers explain intent, assumptions, and trade-offs? 1298 finding(s).
Are imports declared and package/API names verified? 87 finding(s).
Are wrappers, guards, and repeated structures necessary? 199 finding(s).
Which changes need focused human review? 1567 finding(s).
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.
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.
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.
The scanner identified 1567 distinct pattern matches across 19 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 21 | "COPYING", | COMMENT |
| LOW | Cargo.toml | 321 | "tls-rustls", | COMMENT |
| LOW | Cargo.toml | 341 | # "approx_quantile" powers the APPROX_QUANTILE SQL aggregate in sqlp. It is | COMMENT |
| LOW | Cargo.toml | 441 | "http2", | COMMENT |
| LOW | Cargo.toml | 541 | # polars-readstat-rs depends on these directly; redirect them onto the same git polars | COMMENT |
| LOW | Cargo.toml | 581 | webdriver-downloader = { git = "https://github.com/jqnatividad/webdriver-downloader", rev = "19795f9006f77ea3592bbc0ea26 | COMMENT |
| LOW | Cargo.toml | 601 | # - Python Polars tag | COMMENT |
| LOW | Cargo.toml | 621 | [target.'cfg(target_arch = "x86_64")'.dependencies] | COMMENT |
| LOW | Cargo.toml | 641 | # | COMMENT |
| LOW | Cargo.toml | 741 | magika = ["dep:magika", "dep:ort"] | COMMENT |
| LOW | Cargo.toml | 781 | ] | COMMENT |
| LOW | bacon.toml | 21 | "cargo", "clippy", | COMMENT |
| LOW | .serena/project.yml | 1 | # the name by which the project can be referenced within Serena/when chatting with the LLM. | COMMENT |
| LOW | .serena/project.yml | 41 | # This extends the existing inclusions (e.g. from the global configuration). | COMMENT |
| LOW | .serena/project.yml | 61 | # Otherwise, this overrides the setting from the global configuration (serena_config.yml). | COMMENT |
| LOW | .serena/project.yml | 81 | # Note: the backend is fixed at startup. If a project with a different backend | COMMENT |
| LOW | .serena/project.yml | 101 | COMMENT | |
| LOW | .serena/project.yml | 121 | # - ../shared-lib | COMMENT |
| LOW | .serena/project.yml | 141 | # backstop for non-terminating commands; on expiry the process is killed and activation continues. | COMMENT |
| LOW | .serena/project.yml | 161 | # python_pyrefly python_ty qml r rego | COMMENT |
| LOW | .serena/project.yml | 181 | # Special requirements: | COMMENT |
| LOW | resources/describegpt_defaults.toml | 21 | # otherwise inserts | COMMENT |
| LOW | resources/describegpt_defaults.toml | 41 | # {{ sample_size }} - The number of rows in the random sample. | COMMENT |
| LOW | resources/describegpt_defaults.toml | 461 | COMMENT | |
| LOW | resources/describegpt_md_defaults.toml | 1 | name = "qsv Default Markdown Template File" | COMMENT |
| LOW | resources/describegpt_md_defaults.toml | 21 | # content_type, min, max, cardinality, enumeration, null_count, | COMMENT |
| LOW | resources/describegpt_md_defaults.toml | 101 | # the `{DATASET_DESCRIPTION}` and `{SEMANTICMD_TAGS}` placeholders are substituted afterwards | COMMENT |
| LOW | resources/profiles/geoconnex.yaml | 1 | # Geoconnex hydrologic linked-data projection profile | COMMENT |
| LOW | resources/profiles/geoconnex.yaml | 21 | # Discovery merge: disabled. Geoconnex contributors typically author | COMMENT |
| LOW | resources/profiles/geoconnex.yaml | 121 | # ========================================================================= | COMMENT |
| LOW | resources/profiles/geoconnex.yaml | 261 | # Catalog envelope | COMMENT |
| LOW | resources/profiles/dcat-ap-v3.yaml | 1 | # DCAT-AP v3 projection profile (https://semiceu.github.io/DCAT-AP/releases/3.0.0/) | COMMENT |
| LOW | resources/profiles/croissant.yaml | 1 | # Croissant 1.1 ML metadata profile (https://github.com/mlcommons/croissant) | COMMENT |
| LOW | resources/profiles/croissant.yaml | 21 | # remains the faster option but is not in the Croissant vocabulary; | COMMENT |
| LOW | resources/profiles/croissant.yaml | 101 | # Schema validation: disabled | COMMENT |
| LOW | resources/profiles/croissant.yaml | 121 | external: | COMMENT |
| LOW | resources/profiles/croissant.yaml | 261 | template: '{{ pkg.version | default("") }}' | COMMENT |
| LOW | resources/profiles/croissant.yaml | 301 | emit_when: '{{ (res.description | default("")) != "" }}' | COMMENT |
| LOW | resources/profiles/croissant.yaml | 341 | # FileObject (`@id: data.csv`) and an extract directive (here, a | COMMENT |
| LOW | resources/profiles/croissant.yaml | 361 | # "Annotating Data" section defines annotations as cr:Field nodes and | COMMENT |
| LOW | resources/profiles/croissant.yaml | 541 | # ========================================================================= | COMMENT |
| LOW | resources/profiles/dcat-us-v3.yaml | 1 | # DCAT-US v3 projection profile | COMMENT |
| LOW | resources/profiles/dcat-us-v3.yaml | 41 | # | COMMENT |
| LOW | resources/profiles/dcat-us-v3.yaml | 201 | # ========================================================================= | COMMENT |
| LOW | resources/profiles/dcat-us-v3.yaml | 281 | {%- endif -%} | COMMENT |
| LOW | resources/profiles/dcat-us-v3.yaml | 601 | inherit_from_dataset: | COMMENT |
| LOW | tests/test_geocode.rs | 2821 | // (mlipper/geoclient documentation/src/docs/asciidoc/samples): each endpoint wraps its object | COMMENT |
| LOW | tests/test_geocode.rs | 4221 | // byte-exact live captures (resources/test/census_geo_{address,coords}_all.json, 2026-10-12): | COMMENT |
| LOW | tests/test_apply.rs | 1321 | ]; | COMMENT |
| LOW | tests/test_count.rs | 641 | assert_eq!( | COMMENT |
| LOW | tests/test_profile.rs | 301 | COMMENT | |
| LOW | tests/test_profile.rs | 1181 | assert_eq!( | COMMENT |
| LOW | tests/test_profile.rs | 2021 | .find(|w| w.get("field").and_then(|v| v.as_str()) == Some("contactPoint")) | COMMENT |
| LOW | tests/test_profile.rs | 2081 | #[test] | COMMENT |
| LOW | tests/test_profile.rs | 2141 | "expected no qsv:validation warnings when --delimiter ; is forwarded to validate, got: \ | COMMENT |
| LOW | tests/test_profile.rs | 3801 | "normalized timestamp must validate cleanly, got: {:?}", | COMMENT |
| LOW | tests/test_write_failure.rs | 1 | //! End-to-end coverage for issue #4516: a failed WRITE must be reported as an I/O error and a | COMMENT |
| LOW | tests/test_alloc_tuning.rs | 1 | //! Regression tests for startup allocator-tuning ordering (roborev #2717 / #2718). | COMMENT |
| LOW | tests/test_alloc_tuning.rs | 21 | COMMENT | |
| LOW | tests/test_synthesize.rs | 421 | err.contains("does not exist") || err.contains("not a file"), | COMMENT |
| 1038 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Cargo.toml | 605 | # ================================ | COMMENT |
| MEDIUM | resources/describegpt_md_defaults.toml | 232 | # ───────────────────────────────────────────────────────────────────────────── | STRING |
| MEDIUM | resources/profiles/geoconnex.yaml | 30 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/geoconnex.yaml | 32 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/geoconnex.yaml | 59 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/geoconnex.yaml | 61 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/geoconnex.yaml | 83 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/geoconnex.yaml | 85 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/geoconnex.yaml | 121 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/geoconnex.yaml | 123 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/geoconnex.yaml | 229 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/geoconnex.yaml | 231 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/geoconnex.yaml | 260 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/geoconnex.yaml | 262 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/geoconnex.yaml | 282 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/geoconnex.yaml | 284 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-ap-v3.yaml | 21 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-ap-v3.yaml | 23 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-ap-v3.yaml | 92 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-ap-v3.yaml | 94 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-ap-v3.yaml | 131 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-ap-v3.yaml | 133 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-ap-v3.yaml | 182 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-ap-v3.yaml | 184 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-ap-v3.yaml | 305 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-ap-v3.yaml | 307 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | resources/profiles/dcat-ap-v3.yaml | 395 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | resources/profiles/dcat-ap-v3.yaml | 397 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | resources/profiles/dcat-ap-v3.yaml | 405 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | resources/profiles/dcat-ap-v3.yaml | 407 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 46 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 48 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 75 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 77 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 100 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 102 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 131 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 133 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 272 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 274 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 336 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 338 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 541 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 543 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 555 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 557 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 22 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 24 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 131 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 133 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 199 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 201 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 213 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 215 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 453 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 455 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 590 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 592 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 611 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 613 | # ========================================================================= | COMMENT |
| 113 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_select.rs | 463 | // This should not panic with our new robust implementation | COMMENT |
| MEDIUM | tests/test_select.rs | 487 | // This should not panic with our new robust implementation | COMMENT |
| MEDIUM | tests/test_synthesize.rs | 507 | // "Tom"), so the "no real value leaked" assertion below is robust to | COMMENT |
| MEDIUM | tests/test_stats.rs | 1181 | // Parse the JSON and assert on fields (rather than raw substrings) so the test is robust to | COMMENT |
| MEDIUM | tests/test_pivotp.rs | 2199 | // Should use Median — outliers inflate stddev but MAD stays robust | COMMENT |
| MEDIUM | .claude/skills/src/converted-file-manager.ts | 395 | // Use path.relative() for robust cross-platform validation (handles Windows case-insensitivity) | COMMENT |
| MEDIUM | .claude/skills/src/converted-file-manager.ts | 720 | // Use more robust parsing to handle edge cases like filenames containing ".converted." | COMMENT |
| MEDIUM | .claude/skills/src/converted-file-manager.ts | 1255 | // Delete files with robust error handling | COMMENT |
| MEDIUM | contrib/completions/src/usage_parser.rs | 5 | // completion generation. It uses the qsv_docopt parser for robust option type | COMMENT |
| MEDIUM | examples/viz/smart_dict_treemap.html | 582 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_onboarding_funnel.html | 514 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_us_choropleth.html | 576 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_us_choropleth.html | 2342 | // is what makes a theme flip mid-selection look seamless | COMMENT |
| MEDIUM | examples/viz/smart_us_choropleth.html | 2358 | <script type="application/json" id="qsv-tour-config">{"key":"343f5f31","steps":[{"id":"intro","title":"Welcome to your D | CODE |
| MEDIUM | examples/viz/smart_world_choropleth.html | 606 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_world_choropleth.html | 2349 | // is what makes a theme flip mid-selection look seamless | COMMENT |
| MEDIUM | examples/viz/smart_sales.html | 582 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_wpa_211_requests.html | 544 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_smarter.html | 582 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_dict_sunburst.html | 646 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_sales_kpi.html | 638 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_world_events.html | 477 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_world_events.html | 2243 | // is what makes a theme flip mid-selection look seamless | COMMENT |
| MEDIUM | examples/viz/smart_timeseries.html | 582 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_geo_outliers.html | 535 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_geo_outliers.html | 2301 | // is what makes a theme flip mid-selection look seamless | COMMENT |
| MEDIUM | examples/viz/smart_cms_medicare.html | 598 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_cms_medicare.html | 1890 | <script type="application/json" id="qsv-tour-config">{"key":"a2a26f17","steps":[{"id":"intro","title":"Welcome to your D | CODE |
| MEDIUM | examples/viz/gen_gallery.py | 603 | # scrolls the page. The robust fix is a capture-phase wheel interceptor: inline we stopPropagation | COMMENT |
| MEDIUM | examples/viz/smart_regions_growth.html | 533 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/index_superpowers.html | 372 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/stats_growth.html | 372 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/trend.html | 372 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/validate_growth.html | 372 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/time_spent.html | 372 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/sqlp_tuning.html | 372 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/freq_growth.html | 372 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/moarstats_growth.html | 372 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/gainers.html | 372 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/heatmap.html | 372 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/index_advantage.html | 372 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/count_callout.html | 372 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/change_by_family.html | 372 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | scripts/viz-golden-check.sh | 3 | # viz-golden-check.sh -- byte-level regression harness for `qsv viz smart`. | COMMENT |
| MEDIUM | scripts/viz-golden-check.sh | 123 | # `build_cyclic_panel` needs, so this one ships with the harness. | COMMENT |
| MEDIUM | scripts/benchmarks.sh | 610 | # recompute could flip deltas) and robust to one noisy copy of the run. | COMMENT |
| MEDIUM | scripts/pgo-train.sh | 3 | # pgo-train.sh - lean, single-pass PGO training harness for qsv. | COMMENT |
| MEDIUM | scripts/pgo-train.sh | 21 | # (see the `t` helper), so the same harness works against full and reduced builds. | COMMENT |
| MEDIUM | scripts/pgo-train.sh | 209 | # 2. 8.05 GiB is still ~52% of a hosted runner's RAM. A training harness should not sit that | COMMENT |
| MEDIUM | src/help_markdown_gen.rs | 7 | // Uses qsv-docopt Parser for robust structured parsing of options, arguments and defaults, | COMMENT |
| MEDIUM | src/mcp_skills_gen.rs | 7 | // Uses qsv-docopt Parser for robust USAGE text parsing. | COMMENT |
| MEDIUM | src/mcp_skills_gen.rs | 358 | /// Parse USAGE text using qsv-docopt Parser for robust parsing | COMMENT |
| MEDIUM | src/cmd/geocode.rs | 5684 | /// `US.NY.119` -> `119`), which is robust regardless of its leading digit. | COMMENT |
| MEDIUM | src/cmd/clean.rs | 335 | // extension) as a sibling of the cache — robust to cwd, symlinks and | COMMENT |
| MEDIUM | src/cmd/validate.rs | 2091 | // This is robust to whitespace and avoids false matches on | COMMENT |
| MEDIUM | src/cmd/pivotp.rs | 371 | /// moderate skew and deliberately does not gate robust-statistic choices). | COMMENT |
| MEDIUM | src/cmd/pivotp.rs | 917 | // moarstats: robust vs non-robust spread divergence — outliers inflate stddev | COMMENT |
| MEDIUM | src/cmd/pivotp.rs | 954 | // moarstats: robust quartile-based variability | COMMENT |
| MEDIUM | src/cmd/moarstats.rs | 1251 | /// Tukey's trimean - a robust estimator of central tendency that | COMMENT |
| MEDIUM | src/cmd/moarstats.rs | 1263 | /// Midpoint of the middle 50% of data, a robust central tendency measure. | COMMENT |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | resources/describegpt_defaults.toml | 15 | ### NOTE: The following VARIABLES are available in MiniJinja templates (use {{ variable }} syntax): | COMMENT |
| LOW | resources/describegpt_md_defaults.toml | 6 | ### NOTE: The following VARIABLES are available in MiniJinja templates (use {{ variable }} syntax): | COMMENT |
| LOW | tests/test_sqlp.rs | 4497 | // Step 1: Generate stats cache with --infer-dates so DateTime type is detected | COMMENT |
| LOW | tests/test_sqlp.rs | 4511 | // Step 2: Generate Polars schema from stats cache | COMMENT |
| LOW | tests/test_sqlp.rs | 4528 | // Step 3: Use sqlp with the cached schema to verify it parses datetimes correctly | COMMENT |
| LOW | tests/test_to.rs | 1478 | // Step 1: Run `qsv schema --polars data.csv` to generate pschema | COMMENT |
| LOW | tests/test_to.rs | 1490 | // Step 2: Run `qsv to parquet out/ data.csv` — should pick up the pschema | COMMENT |
| LOW | .claude/skills/review-respond/SKILL.md | 11 | ## Step 1: Identify the PR | COMMENT |
| LOW | .claude/skills/review-respond/SKILL.md | 19 | ## Step 2: Fetch all pending review comments | COMMENT |
| LOW | .claude/skills/review-respond/SKILL.md | 31 | ## Step 3: Route comments by reviewer type | COMMENT |
| LOW | .claude/skills/review-respond/SKILL.md | 36 | ## Step 4: Apply fixes for human reviewer comments | COMMENT |
| LOW⚡ | .claude/skills/review-respond/SKILL.md | 52 | ## Step 5: Verification gate | COMMENT |
| LOW⚡ | .claude/skills/review-respond/SKILL.md | 62 | ## Step 6: Run tests | COMMENT |
| LOW⚡ | .claude/skills/review-respond/SKILL.md | 70 | ## Step 7: Commit | COMMENT |
| LOW⚡ | .claude/skills/review-respond/SKILL.md | 77 | ## Step 8: Reply to resolved comments | COMMENT |
| LOW⚡ | .claude/skills/review-respond/SKILL.md | 85 | ## Step 9: Report summary | COMMENT |
| LOW | .claude/skills/tests/duckdb.test.ts | 575 | // Step 1: Convert CSV to Parquet using qsv_to_parquet (the MCP tool) | COMMENT |
| LOW | .claude/skills/tests/duckdb.test.ts | 586 | // Step 2: Query the Parquet file with DuckDB | COMMENT |
| LOW | .claude/skills/tests/pipeline-manifest.test.ts | 349 | // Step 1: input.csv → intermediate.csv | COMMENT |
| LOW⚡ | .claude/skills/tests/pipeline-manifest.test.ts | 383 | // Step 1: read data.csv as input | COMMENT |
| LOW⚡ | .claude/skills/tests/pipeline-manifest.test.ts | 391 | // Step 2: overwrite data.csv as output (e.g., in-place sort) | COMMENT |
| LOW | .claude/skills/tests/pipeline-manifest.test.ts | 793 | // Step 1: reads data.csv (input), step 2: writes data.csv (output) — in-place overwrite | COMMENT |
| LOW⚡ | .claude/skills/docs/desktop/README-MCPB.md | 25 | ### Step 1: Download | COMMENT |
| LOW⚡ | .claude/skills/docs/desktop/README-MCPB.md | 31 | ### Step 2: Install in Claude Desktop | COMMENT |
| LOW⚡ | .claude/skills/docs/desktop/README-MCPB.md | 35 | ### Step 3: There is no step 3! The extension is ready to use. Just restart Claude Desktop and start asking Claude about | COMMENT |
| LOW | .claude/skills/docs/guides/CLAUDE_CODE.md | 62 | ### Step 1: Build the MCP Server | COMMENT |
| LOW | .claude/skills/docs/guides/CLAUDE_CODE.md | 73 | ### Step 2: Configure Claude Code | COMMENT |
| LOW | .claude/skills/docs/guides/CLAUDE_CODE.md | 123 | ### Step 3: Restart Claude Code | COMMENT |
| LOW | .claude/skills/docs/guides/START_HERE.md | 24 | ## Step 1: Install the MCP Server | COMMENT |
| LOW | .claude/skills/docs/guides/GEMINI_CLI.md | 25 | ### Step 1: Build the MCP Server | COMMENT |
| LOW | .claude/skills/docs/guides/GEMINI_CLI.md | 37 | ### Step 2: Configure Gemini CLI | COMMENT |
| LOW⚡ | .claude/skills/scripts/install-mcp.js | 344 | // Step 1: Check for qsv binary | COMMENT |
| LOW⚡ | .claude/skills/scripts/install-mcp.js | 350 | // Step 2: Build TypeScript | COMMENT |
| LOW⚡ | .claude/skills/scripts/install-mcp.js | 356 | // Step 3: Configure environment variables | COMMENT |
| LOW⚡ | .claude/skills/scripts/install-mcp.js | 360 | // Step 4: Update Claude Desktop config | COMMENT |
| LOW⚡ | .claude/skills/scripts/install-mcp.js | 366 | // Step 5: Print verification steps | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 293 | // Step 1: Clean up | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 296 | // Step 2: Build TypeScript | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 299 | // Step 3: Validate files | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 302 | // Step 4: Create archive | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 305 | // Step 5: Display summary | COMMENT |
| LOW | .claude/skills/skills/bls-query/SKILL.md | 15 | ### Step 1: Identify the topic | COMMENT |
| LOW⚡ | .claude/skills/skills/bls-query/SKILL.md | 29 | ### Step 2: Choose the right tool | COMMENT |
| LOW⚡ | .claude/skills/skills/bls-query/SKILL.md | 39 | ### Step 3: Interpret and present results | COMMENT |
| LOW⚡ | .claude/skills/skills/bls-query/SKILL.md | 47 | ### Step 4: Handle unknowns | COMMENT |
| LOW⚡ | .claude/skills/src/tool-handlers.ts | 1510 | // Step 1: Ensure stats cache is up-to-date (needed by both DuckDB and qsv to parquet paths) | COMMENT |
| LOW⚡ | .claude/skills/src/tool-handlers.ts | 1513 | // Step 3: Convert to Parquet (DuckDB with ZSTD when available, qsv to parquet with ZSTD otherwise) | COMMENT |
| LOW | .claude/skills/src/parquet-bridge.ts | 689 | // Step 2: Generate Polars schema | COMMENT |
| LOW | .claude/skills/src/parquet-bridge.ts | 718 | // Step 3: Convert to Parquet (DuckDB with ZSTD when available, qsv to parquet with ZSTD otherwise) | COMMENT |
| LOW⚡ | docs/contributor/STATS_TECHNICAL_GUIDE.md | 738 | // Step 1: Parse command-line arguments | COMMENT |
| LOW⚡ | docs/contributor/STATS_TECHNICAL_GUIDE.md | 741 | // Step 2: Handle typesonly mode (disable other stats) | COMMENT |
| LOW⚡ | docs/contributor/STATS_TECHNICAL_GUIDE.md | 748 | // Step 3: Setup boolean inference | COMMENT |
| LOW⚡ | docs/contributor/STATS_TECHNICAL_GUIDE.md | 754 | // Step 4: Check environment variable overrides | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_fixedwidth.rs | 89 | svec!["Jane Doe", "1017"], | CODE |
| LOW | tests/test_geocode.rs | 2205 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_geocode.rs | 2311 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_geocode.rs | 2333 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_geocode.rs | 2357 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_geocode.rs | 2375 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_geocode.rs | 2393 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_geocode.rs | 2410 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_geocode.rs | 2430 | .args(["--api-key", "dummy-key-for-transient-test"]) | CODE |
| LOW | tests/test_geocode.rs | 4047 | .args(["--api-key", "dummy-key"]) | CODE |
| LOW | tests/test_geocode.rs | 4076 | .args(["--api-key", "dummy-key"]) | CODE |
| LOW | tests/test_profile.rs | 1909 | "contact_point": {"fn": "Jane Doe", "hasEmail": "jane@example.gov"}, | CODE |
| LOW | tests/test_profile.rs | 2239 | "contact_point": {"fn": "Jane Doe", "hasEmail": "jane@example.gov"}, | CODE |
| LOW | tests/test_profile.rs | 3395 | "contact_point": {"fn": "Jane Doe", "hasEmail": "jane@example.gov"} | CODE |
| LOW⚡ | tests/test_validate.rs | 3494 | "user@example.com", | CODE |
| LOW⚡ | tests/test_validate.rs | 3501 | "user@example.com", | CODE |
| LOW⚡ | tests/test_validate.rs | 3508 | "user@example.com", | CODE |
| LOW⚡ | tests/test_validate.rs | 3597 | "user@example.com", | CODE |
| LOW⚡ | tests/test_validate.rs | 3604 | "user@example.com", | CODE |
| LOW⚡ | tests/test_validate.rs | 3611 | "user@example.com", | CODE |
| LOW | tests/test_validate.rs | 1327 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1329 | svec!["3", "John Doe", "john@example.com", "IT"], // Duplicate name+email | CODE |
| LOW | tests/test_validate.rs | 1369 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1378 | svec!["3", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1393 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1395 | svec!["3", "John Doe", "john@example.com", "IT"], // Duplicate name+email | CODE |
| LOW | tests/test_validate.rs | 1435 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1444 | svec!["3", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1459 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1461 | svec!["3", "John Doe", "john@example.com", "IT"], // Duplicate name+email | CODE |
| LOW | tests/test_validate.rs | 1501 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1510 | svec!["3", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1525 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1527 | svec!["3", "John Doe", "", "IT"], // Empty email | CODE |
| LOW | tests/test_validate.rs | 1576 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1578 | svec!["3", "John Doe", "", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1598 | svec!["1", "John Doe", "john.doe@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1600 | svec!["3", "John Doe", "john.doe@example.com", "IT"], // Duplicate | CODE |
| LOW | tests/test_validate.rs | 1640 | svec!["1", "John Doe", "john.doe@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1649 | svec!["3", "John Doe", "john.doe@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1855 | svec!["1", "John Doe", "john@example.com", "IT", "Developer"], | CODE |
| LOW | tests/test_validate.rs | 1857 | svec!["3", "John Doe", "john@example.com", "IT", "Developer"], // Duplicate name+email+role | CODE |
| LOW | tests/test_validate.rs | 1904 | svec!["1", "John Doe", "john@example.com", "IT", "Developer"], | CODE |
| LOW | tests/test_validate.rs | 1915 | svec!["3", "John Doe", "john@example.com", "IT", "Developer"], | CODE |
| LOW | tests/test_validate.rs | 1932 | "John Doe", | CODE |
| LOW | tests/test_validate.rs | 2347 | svec!["1", "John Doe", "not-an-email", "not-a-url", "not-currency"], | CODE |
| LOW | tests/test_validate.rs | 2427 | svec!["1", "John Doe", "not-an-email", "25"], // Format error only | CODE |
| LOW | tests/test_validate.rs | 2494 | svec!["1", "John Doe", "not-an-email", "25"], // Now valid (format ignored) | CODE |
| LOW | tests/test_validate.rs | 3087 | svec!["1", "John Doe", "user@example.com"], // Valid email | CODE |
| LOW | tests/test_validate.rs | 3087 | svec!["1", "John Doe", "user@example.com"], // Valid email | CODE |
| LOW | tests/test_validate.rs | 3131 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 3131 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 3158 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 3158 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 3209 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 3209 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 3262 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 3262 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 3480 | "user@example.com", | CODE |
| LOW | tests/test_validate.rs | 3570 | "user@example.com", | CODE |
| 12 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | examples/viz/gen_gallery.py | 216 | "<script>(function(){var target=null,until=0,iv=null,moved=false;" | CODE |
| HIGH | examples/viz/gen_gallery.py | 217 | "function stop(){if(iv){clearInterval(iv);iv=null;}}" | CODE |
| HIGH | examples/viz/gen_gallery.py | 259 | "b._t=setTimeout(function(){b.classList.remove(\"ok\");b.title=\"Copy\";b._t=null;},1200);}" | CODE |
| HIGH | examples/viz/gen_gallery.py | 329 | "var M=\"100% 0px\",reg=new Map(),io=null;" | CODE |
| HIGH | examples/viz/gen_gallery.py | 486 | "var f=document.getElementsByClassName(\"dash\"),src=null;" | CODE |
| HIGH | examples/viz/gen_gallery.py | 557 | 'if(!b||typeof b.z!=="number"||!(plotW>0)||!(plotH>0))return null;' | CODE |
| HIGH | examples/viz/gen_gallery.py | 561 | 'var ratio=Math.min((dx*plotW)/aw,(dy*plotH)/ah);if(!isFinite(ratio)||ratio<=0)return null;' | CODE |
| HIGH | examples/viz/gen_gallery.py | 575 | 'function qsvFitNow(gd,tries){if(tries===undefined)tries=20;qsvCaptureBaked(gd);' | CODE |
| HIGH | examples/viz/gen_gallery.py | 595 | 'function qsvApplyScrollZoom(gd,tries){if(tries===undefined)tries=20;var fl=gd._fullLayout||{};' | CODE |
| HIGH | examples/viz/gen_gallery.py | 648 | " cargo build --bin qsv -F all_features && python3 examples/viz/gen_gallery.py\n" | CODE |
| HIGH | scripts/gen_benchmark_viz.py | 19 | git add benchmarks && git commit # Pages redeploys on push to master | STRING |
| HIGH | scripts/gen_benchmark_viz.py | 33 | git -C qsv.wiki add Benchmarks.md && git -C qsv.wiki commit && git -C qsv.wiki push | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_sqlp.rs | 4497 | // Step 1: Generate stats cache with --infer-dates so DateTime type is detected | COMMENT |
| LOW | tests/test_sqlp.rs | 4511 | // Step 2: Generate Polars schema from stats cache | COMMENT |
| LOW | tests/test_sqlp.rs | 4528 | // Step 3: Use sqlp with the cached schema to verify it parses datetimes correctly | COMMENT |
| LOW | tests/test_to.rs | 1478 | // Step 1: Run `qsv schema --polars data.csv` to generate pschema | COMMENT |
| LOW | tests/test_to.rs | 1490 | // Step 2: Run `qsv to parquet out/ data.csv` — should pick up the pschema | COMMENT |
| LOW | .claude/skills/tests/duckdb.test.ts | 575 | // Step 1: Convert CSV to Parquet using qsv_to_parquet (the MCP tool) | COMMENT |
| LOW | .claude/skills/tests/duckdb.test.ts | 586 | // Step 2: Query the Parquet file with DuckDB | COMMENT |
| LOW | .claude/skills/tests/pipeline-manifest.test.ts | 349 | // Step 1: input.csv → intermediate.csv | COMMENT |
| LOW⚡ | .claude/skills/tests/pipeline-manifest.test.ts | 383 | // Step 1: read data.csv as input | COMMENT |
| LOW⚡ | .claude/skills/tests/pipeline-manifest.test.ts | 391 | // Step 2: overwrite data.csv as output (e.g., in-place sort) | COMMENT |
| LOW | .claude/skills/tests/pipeline-manifest.test.ts | 793 | // Step 1: reads data.csv (input), step 2: writes data.csv (output) — in-place overwrite | COMMENT |
| LOW⚡ | .claude/skills/scripts/install-mcp.js | 344 | // Step 1: Check for qsv binary | COMMENT |
| LOW⚡ | .claude/skills/scripts/install-mcp.js | 350 | // Step 2: Build TypeScript | COMMENT |
| LOW⚡ | .claude/skills/scripts/install-mcp.js | 356 | // Step 3: Configure environment variables | COMMENT |
| LOW⚡ | .claude/skills/scripts/install-mcp.js | 360 | // Step 4: Update Claude Desktop config | COMMENT |
| LOW⚡ | .claude/skills/scripts/install-mcp.js | 366 | // Step 5: Print verification steps | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 293 | // Step 1: Clean up | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 296 | // Step 2: Build TypeScript | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 299 | // Step 3: Validate files | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 302 | // Step 4: Create archive | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 305 | // Step 5: Display summary | COMMENT |
| LOW⚡ | .claude/skills/src/tool-handlers.ts | 1510 | // Step 1: Ensure stats cache is up-to-date (needed by both DuckDB and qsv to parquet paths) | COMMENT |
| LOW⚡ | .claude/skills/src/tool-handlers.ts | 1513 | // Step 3: Convert to Parquet (DuckDB with ZSTD when available, qsv to parquet with ZSTD otherwise) | COMMENT |
| LOW | .claude/skills/src/parquet-bridge.ts | 689 | // Step 2: Generate Polars schema | COMMENT |
| LOW | .claude/skills/src/parquet-bridge.ts | 718 | // Step 3: Convert to Parquet (DuckDB with ZSTD when available, qsv to parquet with ZSTD otherwise) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | resources/describegpt_md_defaults.toml | 13 | # {{ reasoning }} - LLM reasoning trace (may be empty) | COMMENT |
| MEDIUM | docs/Describegpt.md | 243 | ## SQL Query Generation and Execution ("SQL RAG" mode) | COMMENT |
| MEDIUM | docs/help/TableOfContents.md | 19 | | [describegpt](describegpt.md)<br>[📇](#legend "uses an index when available.")[🗃️](#legend "Limited Extended input supp | CODE |
| MEDIUM | docs/help/TableOfContents.md | 19 | | [describegpt](describegpt.md)<br>[📇](#legend "uses an index when available.")[🗃️](#legend "Limited Extended input supp | CODE |
| MEDIUM | examples/viz/gen_gallery.py | 1696 | # own scaffold, which carries none of viz's injected chrome — without lifting this block across, | COMMENT |
| MEDIUM | examples/viz/gen_gallery.py | 1701 | # then spliced into the scaffold by main(). | COMMENT |
| MEDIUM | examples/viz/gen_gallery.py | 2404 | # reuse the existing scaffold verbatim: everything up to and including `<div class="grid">`, | COMMENT |
| MEDIUM | examples/viz/gen_gallery.py | 2598 | # here are bare JSON reassembled under this scaffold, so without it the gallery's parcats | COMMENT |
| MEDIUM | src/cmd/describegpt.rs | 92 | # Ask detailed natural language questions that require SQL queries and auto-invoke SQL RAG mode | COMMENT |
| MEDIUM | src/cmd/describegpt.rs | 4450 | // Schema scaffold. Cache that shape regardless of the chosen output format | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …laude/skills/visual-data-dictionary/edit_dictionary.py | 397 | except curses.error: | CODE |
| HIGH | …laude/skills/visual-data-dictionary/edit_dictionary.py | 407 | except Exception: | CODE |
| HIGH | …laude/skills/visual-data-dictionary/edit_dictionary.py | 359 | except OSError: | CODE |
| HIGH | scripts/gen_benchmark_viz.py | 355 | except (KeyError, ValueError): | CODE |
| HIGH | scripts/gen_benchmark_viz.py | 752 | except (TypeError, ValueError): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .claude/skills/scripts/verify-bundles.js | 65 | function startsFromExtractedBundle(extractDir) { | CODE |
| LOW | .claude/skills/scripts/package-mcpb.js | 118 | function isExcludedFromNodeModules(entryName) { | CODE |
| LOW | .claude/skills/src/file-operations.ts | 261 | export async function resolveAndConvertInputFile( | CODE |
| LOW | .claude/skills/src/file-operations.ts | 623 | export function collectAdditionalInputFiles( | CODE |
| LOW | .claude/skills/src/command-guidance.ts | 188 | export function enhanceParameterDescription( | CODE |
| LOW | .claude/skills/src/tool-handlers.ts | 403 | async function runSqlpParquetInterception( | CODE |
| LOW | .claude/skills/src/tool-handlers.ts | 493 | export function validateLlmResponsesShape(arr: unknown[]): string | null { | CODE |
| LOW | .claude/skills/src/tool-handlers.ts | 530 | async function runDescribegptInterception( | CODE |
| LOW | .claude/skills/src/utils.ts | 196 | export function describegptFallbackResult(args: string[]): string { | CODE |
| LOW | .claude/skills/src/tool-definitions.ts | 110 | export function createGenericToolDefinition( | CODE |
| LOW | .claude/skills/src/tool-definitions.ts | 259 | export function createBrowseDirectoryTool(): McpToolDefinition { | CODE |
| LOW | .claude/skills/src/tool-definitions.ts | 446 | export function createSetupToolDefinition(): McpToolDefinition { | CODE |
| LOW | .claude/skills/src/version.ts | 76 | export function readMinimumQsvVersionFromManifest(projectRoot: string): string | null { | CODE |
| LOW | .claude/skills/src/mcp-sampling.ts | 119 | export async function executeDescribegptWithSampling( | CODE |
| LOW | examples/viz/gen_gallery.py | 2011 | def warn_panel_count_regressions(prior_counts): | CODE |
| LOW | scripts/docs-drift-check.py | 121 | def expand_all_features_for_docs(features: dict[str, set[str]]) -> set[str]: | CODE |
| LOW | scripts/gen_benchmark_viz.py | 323 | def latest_with_prev_baseline(): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .serena/project.yml | 12 | # Same syntax as gitignore, so you can use * and **. | COMMENT |
| MEDIUM | .claude/skills/.serena/project.yml | 12 | # Same syntax as gitignore, so you can use * and **. | COMMENT |
| MEDIUM | src/cmd/sqlp.rs | 72 | # In long, complex scripts that produce multiple temporary tables, note that you can use | COMMENT |
| MEDIUM | src/cmd/sqlp.rs | 151 | # note that you can also use read_csv() to read compressed files directly | COMMENT |
| MEDIUM | src/cmd/sqlp.rs | 157 | # apart from using Polar's table functions, you can also use SKIP_INPUT when the SELECT | COMMENT |
| LOW | src/cmd/replace.rs | 5 | the replacement string. But don't forget to escape your $ in bash by using a | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_py.rs | 0 | {qty} {fruit} cost ${(float(unit_cost) * float(qty)):.2f}. its quite {"cheap" if ((float(unit_cost) * float(qty)) < 20.0 | STRING |
| HIGH | docs/help/py.md | 0 | {qty} {fruit} cost ${(float(unit_cost) * float(qty)):.2f}. its quite {"cheap" if ((float(unit_cost) * float(qty)) < 20.0 | STRING |
| HIGH | src/cmd/python.rs | 0 | {qty} {fruit} cost ${(float(unit_cost) * float(qty)):.2f}. its quite {"cheap" if ((float(unit_cost) * float(qty)) < 20.0 | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …laude/skills/visual-data-dictionary/edit_dictionary.py | 288 | CODE | |
| LOW | …laude/skills/visual-data-dictionary/edit_dictionary.py | 437 | CODE | |
| LOW | …laude/skills/visual-data-dictionary/edit_dictionary.py | 530 | CODE | |
| LOW | …laude/skills/visual-data-dictionary/edit_dictionary.py | 539 | CODE | |
| LOW | docs/describegpt/check_semanticmd.py | 73 | CODE | |
| LOW | docs/describegpt/check_semanticmd.py | 118 | CODE | |
| LOW | examples/viz/gen_gallery.py | 1663 | CODE | |
| LOW | examples/viz/gen_gallery.py | 2283 | CODE | |
| LOW | examples/viz/gen_gallery.py | 2367 | CODE | |
| LOW | examples/viz/gen_world_cities.py | 58 | CODE | |
| LOW | scripts/docs-drift-check.py | 238 | CODE | |
| LOW | scripts/gen_benchmark_viz.py | 308 | CODE | |
| LOW | scripts/double-run-check.py | 111 | CODE | |
| LOW | scripts/double-run-check.py | 218 | CODE | |
| LOW | scripts/check-publish-matrix-sync.py | 53 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/cmd/applydp.rs | 115 | # Create a new column 'mailing address' from 'house number', 'street', 'city' and 'zip-code' columns: | COMMENT |
| MEDIUM | src/cmd/applydp.rs | 118 | # Create a new column 'FullName' from 'FirstName', 'MI', and 'LastName' columns: | COMMENT |
| MEDIUM | src/cmd/apply.rs | 186 | # Create a new column 'mailing address' from 'house number', 'street', 'city' | COMMENT |
| MEDIUM | src/cmd/apply.rs | 190 | # Create a new column 'FullName' from 'FirstName', 'MI', and 'LastName' columns: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | src/cmd/assets/datatables.min.js | 55 | (e=>{var i;"function"==typeof define&&define.amd?define(["datatables.net"],function(t){return e(window,document,t)}):"ob | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .serena/project.yml | 54 | # Set this to [] to disable base modes for this project. | COMMENT |
| LOW | .serena/project.yml | 55 | # Set this to a list of mode names to always include the respective modes for this project. | COMMENT |
| LOW | scripts/benchmarks.sh | 1853 | # Check if a results directory exists, if it doesn't create it | COMMENT |
| LOW | src/cmd/sortcheck.rs | 35 | # Check if file.csv is lexicographically sorted on all columns: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/viz-golden-check.sh | 11 | # Usage: | COMMENT |
| LOW | scripts/qsv-tune.sh | 29 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/describegpt/check_semanticmd.py | 27 | CODE | |
| LOW | scripts/docs-drift-check.py | 38 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …laude/skills/visual-data-dictionary/edit_dictionary.py | 407 | except Exception: | CODE |