Blazing-fast Data-Wrangling toolkit
This report presents the forensic synthetic code analysis of dathere/qsv, a Rust project with 3,719 GitHub stars. SynthScan v2.0 examined 395,989 lines of code across 753 source files, recording 909 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 3.7 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 909 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Cargo.toml | 527 | # ================================ | COMMENT |
| MEDIUM | resources/describegpt_md_defaults.toml | 230 | # ───────────────────────────────────────────────────────────────────────────── | 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 | 39 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 41 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 68 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 70 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 93 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 95 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 119 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 121 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 249 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 251 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 313 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 315 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 510 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 512 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 524 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/croissant.yaml | 526 | # ========================================================================= | 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 | 112 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 114 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 182 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 184 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 208 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 210 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 422 | # ========================================================================= | COMMENT |
| MEDIUM | resources/profiles/dcat-us-v3.yaml | 424 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | resources/profiles/dcat-us-v3.yaml | 531 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | resources/profiles/dcat-us-v3.yaml | 533 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | resources/profiles/dcat-us-v3.yaml | 541 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | resources/profiles/dcat-us-v3.yaml | 543 | # ========================================================================= | COMMENT |
| 103 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 21 | "LICENSE-MIT", | COMMENT |
| LOW | Cargo.toml | 461 | # https://github.com/plotly/plotly.rs/pull/425), a strict superset of the earlier pins: | COMMENT |
| LOW | Cargo.toml | 481 | # pulled in by a NON-optional dependency edge, not by a feature we control — | COMMENT |
| LOW | Cargo.toml | 501 | COMMENT | |
| LOW | Cargo.toml | 521 | # (e.g. py-1.19.0) | COMMENT |
| LOW | Cargo.toml | 621 | # evaluation; polars (SQL context) backs the SQL-requiring helpers | COMMENT |
| LOW | bacon.toml | 21 | "cargo", "clippy", | COMMENT |
| LOW | .serena/project.yml | 1 | # the name by which the project can be referenced within Serena | COMMENT |
| LOW | .serena/project.yml | 21 | # Note: | COMMENT |
| LOW | .serena/project.yml | 61 | - search_for_pattern | COMMENT |
| LOW | .serena/project.yml | 81 | base_modes: | COMMENT |
| LOW | .serena/project.yml | 101 | symbol_info_budget: | COMMENT |
| LOW | .serena/project.yml | 121 | # and cannot be accessed via read_memory or write_memory. | COMMENT |
| LOW | .serena/project.yml | 141 | # symbols and references across package boundaries. | COMMENT |
| LOW | resources/describegpt_defaults.toml | 21 | # otherwise inserts | COMMENT |
| LOW | resources/describegpt_defaults.toml | 41 | # (the curated qsv vocabulary) | 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 | 241 | # 1.1: `citeAs` is a first-class cr: term defined in the @context; | COMMENT |
| LOW | resources/profiles/croissant.yaml | 281 | # `res.url` if one was supplied (URL inputs, --initial-context), else | COMMENT |
| LOW | resources/profiles/croissant.yaml | 301 | COMMENT | |
| LOW | resources/profiles/croissant.yaml | 321 | # build_croissant_fields helper) so we can include the canonical | COMMENT |
| LOW | resources/profiles/dcat-us-v3.yaml | 1 | # DCAT-US v3 projection profile | COMMENT |
| LOW | tests/test_geocode.rs | 2261 | // the input column is preserved & three dyncols columns are appended | COMMENT |
| LOW | tests/test_apply.rs | 1321 | svec!["Just enter SSN when prompted. Also try SSN if it doesn't work."], | COMMENT |
| LOW | tests/test_profile.rs | 301 | COMMENT | |
| LOW | tests/test_profile.rs | 1641 | // and lands at the default "stdin.metadata.json" in the workdir. | COMMENT |
| LOW | tests/test_profile.rs | 1921 | ); | COMMENT |
| LOW | tests/test_profile.rs | 2041 | #[test] | COMMENT |
| LOW | tests/test_sniff.rs | 741 | // Build a wide CSV (rows ~1KB each) of `n` data rows with columns id,code,pad. | 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 |
| LOW | tests/test_synthesize.rs | 781 | ); | COMMENT |
| LOW | tests/test_applydp.rs | 401 | #[test] | COMMENT |
| LOW | tests/test_describegpt.rs | 3401 | assert_eq!( | COMMENT |
| LOW | tests/test_stats.rs | 4521 | // The following tests verify the layered OOM-fallback behavior: when | COMMENT |
| LOW | tests/test_sample.rs | 2041 | // These spin up a local actix-web server with hand-built fixture bytes and | COMMENT |
| LOW | tests/workdir.rs | 421 | } | COMMENT |
| LOW | tests/test_split.rs | 1661 | // B2 — empty input + `--filter` no longer underflows in sequential split. | COMMENT |
| LOW | tests/test_sqlp.rs | 2341 | // let wrk = Workdir::new("sqlp_select_1"); | COMMENT |
| LOW | tests/test_sqlp.rs | 3541 | // vec![ | COMMENT |
| LOW | tests/test_sqlp.rs | 3561 | // ) | COMMENT |
| LOW | tests/test_get.rs | 221 | COMMENT | |
| LOW | tests/test_get.rs | 261 | // Path-style S3 object: object_store issues `GET /{bucket}/{key}` | COMMENT |
| LOW | tests/test_get.rs | 1341 | .and_then(|n| n.to_str()) | COMMENT |
| LOW | tests/test_to.rs | 261 | // let wrk = Workdir::new("to_sqlite_dir"); | COMMENT |
| LOW | tests/test_to.rs | 281 | COMMENT | |
| LOW | tests/test_to.rs | 301 | COMMENT | |
| LOW | tests/test_to.rs | 321 | COMMENT | |
| LOW | tests/test_to.rs | 341 | // let places_iter = stmt | COMMENT |
| LOW | tests/test_to.rs | 361 | // let wrk = Workdir::new("to_sqlite"); | COMMENT |
| 432 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 | 1191 | // Parse the JSON and assert on fields (rather than raw substrings) so the test is robust to | COMMENT |
| MEDIUM | tests/test_pivotp.rs | 1112 | // Should use Median — outliers inflate stddev but MAD stays robust | COMMENT |
| MEDIUM | .claude/skills/src/converted-file-manager.ts | 400 | // Use path.relative() for robust cross-platform validation (handles Windows case-insensitivity) | COMMENT |
| MEDIUM | .claude/skills/src/converted-file-manager.ts | 725 | // Use more robust parsing to handle edge cases like filenames containing ".converted." | COMMENT |
| MEDIUM | .claude/skills/src/converted-file-manager.ts | 1260 | // 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 | 251 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_us_choropleth.html | 283 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_world_choropleth.html | 291 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_sales.html | 290 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_smarter.html | 274 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_dict_sunburst.html | 323 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_sales_kpi.html | 338 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_timeseries.html | 290 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/smart_geo_outliers.html | 323 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | examples/viz/gen_gallery.py | 354 | # scrolls the page. The robust fix is a capture-phase wheel interceptor: inline we stopPropagation | COMMENT |
| MEDIUM | benchmarks/index_superpowers.html | 184 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/stats_growth.html | 184 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/trend.html | 184 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/validate_growth.html | 184 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/time_spent.html | 184 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/sqlp_tuning.html | 184 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/freq_growth.html | 184 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/gainers.html | 184 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/heatmap.html | 184 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/index_advantage.html | 184 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/count_callout.html | 184 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | COMMENT |
| MEDIUM | benchmarks/change_by_family.html | 184 | // live) and MapLibre (setScrollZoom toggles the GL handler), the robust fix is a capture-phase | 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 | 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 | 269 | /// Parse USAGE text using qsv-docopt Parser for robust parsing | COMMENT |
| MEDIUM | src/cmd/geocode.rs | 3830 | /// `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/count.rs | 588 | // now leverage the magic of Polars SQL with its lazy evaluation, to count the records | COMMENT |
| MEDIUM | src/cmd/validate.rs | 1297 | // This is robust to whitespace and avoids false matches on | COMMENT |
| MEDIUM | src/cmd/pivotp.rs | 711 | // moarstats: robust vs non-robust spread divergence — outliers inflate stddev | COMMENT |
| MEDIUM | src/cmd/pivotp.rs | 737 | // moarstats: robust quartile-based variability | COMMENT |
| MEDIUM | src/cmd/moarstats.rs | 956 | /// Tukey's trimean - a robust estimator of central tendency that | COMMENT |
| MEDIUM | src/cmd/moarstats.rs | 968 | /// Midpoint of the middle 50% of data, a robust central tendency measure. | COMMENT |
| MEDIUM | src/cmd/moarstats.rs | 979 | /// Uses robust measures (MAD and median magnitude) instead of stddev and mean. | COMMENT |
| MEDIUM | src/cmd/moarstats.rs | 3863 | // Trimean: (Q1 + 2*median + Q3) / 4 - Tukey's robust central tendency estimator | COMMENT |
| MEDIUM | src/cmd/moarstats.rs | 4123 | // Add robust spread ratios (replace "mean" with empty string and clean up double | COMMENT |
| 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 | 4573 | // Step 1: Generate stats cache with --infer-dates so DateTime type is detected | COMMENT |
| LOW | tests/test_sqlp.rs | 4588 | // Step 2: Generate Polars schema from stats cache | COMMENT |
| LOW | tests/test_sqlp.rs | 4605 | // Step 3: Use sqlp with the cached schema to verify it parses datetimes correctly | COMMENT |
| LOW | tests/test_to.rs | 1449 | // Step 1: Run `qsv schema --polars data.csv` to generate pschema | COMMENT |
| LOW | tests/test_to.rs | 1461 | // 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 | 271 | // Step 1: Clean up | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 274 | // Step 2: Build TypeScript | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 277 | // Step 3: Validate files | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 280 | // Step 4: Create archive | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 283 | // 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 | 1498 | // 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 | 1501 | // 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 | 2016 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_geocode.rs | 2132 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_geocode.rs | 2154 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_geocode.rs | 2178 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_geocode.rs | 2196 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_geocode.rs | 2214 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_geocode.rs | 2231 | .args(["--api-key", "dummy-key-for-arg-validation"]) | CODE |
| LOW | tests/test_profile.rs | 1813 | "contact_point": {"fn": "Jane Doe", "hasEmail": "jane@example.gov"}, | CODE |
| LOW | tests/test_profile.rs | 2135 | "contact_point": {"fn": "Jane Doe", "hasEmail": "jane@example.gov"}, | CODE |
| LOW⚡ | tests/test_validate.rs | 3034 | "user@example.com", | CODE |
| LOW⚡ | tests/test_validate.rs | 3041 | "user@example.com", | CODE |
| LOW⚡ | tests/test_validate.rs | 3048 | "user@example.com", | CODE |
| LOW⚡ | tests/test_validate.rs | 3139 | "user@example.com", | CODE |
| LOW⚡ | tests/test_validate.rs | 3146 | "user@example.com", | CODE |
| LOW⚡ | tests/test_validate.rs | 3153 | "user@example.com", | CODE |
| LOW | tests/test_validate.rs | 758 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 760 | svec!["3", "John Doe", "john@example.com", "IT"], // Duplicate name+email | CODE |
| LOW | tests/test_validate.rs | 802 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 811 | svec!["3", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 828 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 830 | svec!["3", "John Doe", "john@example.com", "IT"], // Duplicate name+email | CODE |
| LOW | tests/test_validate.rs | 872 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 881 | svec!["3", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 898 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 900 | svec!["3", "John Doe", "john@example.com", "IT"], // Duplicate name+email | CODE |
| LOW | tests/test_validate.rs | 942 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 951 | svec!["3", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 968 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 970 | svec!["3", "John Doe", "", "IT"], // Empty email | CODE |
| LOW | tests/test_validate.rs | 1021 | svec!["1", "John Doe", "john@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1023 | svec!["3", "John Doe", "", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1045 | svec!["1", "John Doe", "john.doe@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1047 | svec!["3", "John Doe", "john.doe@example.com", "IT"], // Duplicate | CODE |
| LOW | tests/test_validate.rs | 1089 | svec!["1", "John Doe", "john.doe@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1098 | svec!["3", "John Doe", "john.doe@example.com", "IT"], | CODE |
| LOW | tests/test_validate.rs | 1316 | svec!["1", "John Doe", "john@example.com", "IT", "Developer"], | CODE |
| LOW | tests/test_validate.rs | 1318 | svec!["3", "John Doe", "john@example.com", "IT", "Developer"], // Duplicate name+email+role | CODE |
| LOW | tests/test_validate.rs | 1367 | svec!["1", "John Doe", "john@example.com", "IT", "Developer"], | CODE |
| LOW | tests/test_validate.rs | 1378 | svec!["3", "John Doe", "john@example.com", "IT", "Developer"], | CODE |
| LOW | tests/test_validate.rs | 1397 | "John Doe", | CODE |
| LOW | tests/test_validate.rs | 1835 | svec!["1", "John Doe", "not-an-email", "not-a-url", "not-currency"], | CODE |
| LOW | tests/test_validate.rs | 1919 | svec!["1", "John Doe", "not-an-email", "25"], // Format error only | CODE |
| LOW | tests/test_validate.rs | 1986 | svec!["1", "John Doe", "not-an-email", "25"], // Now valid (format ignored) | CODE |
| LOW | tests/test_validate.rs | 2615 | svec!["1", "John Doe", "user@example.com"], // Valid email | CODE |
| LOW | tests/test_validate.rs | 2615 | svec!["1", "John Doe", "user@example.com"], // Valid email | CODE |
| LOW | tests/test_validate.rs | 2661 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 2661 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 2688 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 2688 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 2741 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 2741 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 2796 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 2796 | svec!["1", "John Doe", "user@example.com"], | CODE |
| LOW | tests/test_validate.rs | 3020 | "user@example.com", | CODE |
| LOW | tests/test_validate.rs | 3112 | "user@example.com", | CODE |
| LOW | tests/test_luau.rs | 3409 | svec!["user@example.com", "yes"], | CODE |
| LOW | tests/test_luau.rs | 3422 | let expected = vec![svec!["email", "valid"], svec!["user@example.com", "yes"]]; | CODE |
| LOW | tests/resources/profile/dcat-init-context.json | 17 | "contact_point": {"fn": "Jane Doe", "hasEmail": "jane.doe@example.gov"}, | CODE |
| LOW | …/profile/golden/wprdc-311-subset.dataset.expected.json | 15 | "vcard:fn": "Jane Doe", | CODE |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_sqlp.rs | 4573 | // Step 1: Generate stats cache with --infer-dates so DateTime type is detected | COMMENT |
| LOW | tests/test_sqlp.rs | 4588 | // Step 2: Generate Polars schema from stats cache | COMMENT |
| LOW | tests/test_sqlp.rs | 4605 | // Step 3: Use sqlp with the cached schema to verify it parses datetimes correctly | COMMENT |
| LOW | tests/test_to.rs | 1449 | // Step 1: Run `qsv schema --polars data.csv` to generate pschema | COMMENT |
| LOW | tests/test_to.rs | 1461 | // 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 | 271 | // Step 1: Clean up | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 274 | // Step 2: Build TypeScript | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 277 | // Step 3: Validate files | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 280 | // Step 4: Create archive | COMMENT |
| LOW⚡ | .claude/skills/scripts/package-mcpb.js | 283 | // Step 5: Display summary | COMMENT |
| LOW⚡ | .claude/skills/src/tool-handlers.ts | 1498 | // 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 | 1501 | // 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 |
|---|---|---|---|---|
| HIGH | examples/viz/gen_gallery.py | 181 | "<script>(function(){var target=null,until=0,iv=null,moved=false;" | CODE |
| HIGH | examples/viz/gen_gallery.py | 182 | "function stop(){if(iv){clearInterval(iv);iv=null;}}" | CODE |
| HIGH | examples/viz/gen_gallery.py | 222 | "b._t=setTimeout(function(){b.classList.remove(\"ok\");b.title=\"Copy\";b._t=null;},1200);}" | CODE |
| HIGH | examples/viz/gen_gallery.py | 308 | 'if(!b||typeof b.z!=="number"||!(plotW>0)||!(plotH>0))return null;' | CODE |
| HIGH | examples/viz/gen_gallery.py | 312 | 'var ratio=Math.min((dx*plotW)/aw,(dy*plotH)/ah);if(!isFinite(ratio)||ratio<=0)return null;' | CODE |
| HIGH | examples/viz/gen_gallery.py | 326 | 'function qsvFitNow(gd,tries){if(tries===undefined)tries=20;qsvCaptureBaked(gd);' | CODE |
| HIGH | examples/viz/gen_gallery.py | 346 | 'function qsvApplyScrollZoom(gd,tries){if(tries===undefined)tries=20;var fl=gd._fullLayout||{};' | CODE |
| HIGH | examples/viz/gen_gallery.py | 396 | " 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 |
|---|---|---|---|---|
| MEDIUM | CHANGELOG.md | 1145 | - **Seamlessly works with both [Claude Code](https://code.claude.com/docs/en/overview) and the just launched [Claude Cow | CODE |
| MEDIUM | resources/describegpt_md_defaults.toml | 13 | # {{ reasoning }} - LLM reasoning trace (may be empty) | COMMENT |
| MEDIUM | docs/Describegpt.md | 231 | ## 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 | 993 | # reuse the existing scaffold verbatim: everything up to and including `<div class="grid">`, | COMMENT |
| MEDIUM | src/cmd/describegpt.rs | 88 | # Ask detailed natural language questions that require SQL queries and auto-invoke SQL RAG mode | COMMENT |
| MEDIUM | src/cmd/describegpt.rs | 3595 | // Schema scaffold. Cache that shape regardless of the chosen output format | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .serena/project.yml | 44 | # Same syntax as gitignore, so you can use * and **. | COMMENT |
| MEDIUM | .claude/skills/.serena/project.yml | 44 | # 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 | 136 | # note that you can also use read_csv() to read compressed files directly | COMMENT |
| MEDIUM | src/cmd/sqlp.rs | 142 | # 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 | .claude/skills/tests/elicitation.test.ts | 72 | async function buildDirectorySuggestions(currentWorkingDir: string): Promise<string> { | 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 | 108 | export function createGenericToolDefinition( | CODE |
| LOW | .claude/skills/src/tool-definitions.ts | 257 | export function createBrowseDirectoryTool(): McpToolDefinition { | CODE |
| LOW | .claude/skills/src/tool-definitions.ts | 444 | 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 | scripts/docs-drift-check.py | 117 | def expand_all_features_for_docs(features: dict[str, set[str]]) -> set[str]: | 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 |
|---|---|---|---|---|
| LOW | …laude/skills/visual-data-dictionary/edit_dictionary.py | 274 | CODE | |
| LOW | …laude/skills/visual-data-dictionary/edit_dictionary.py | 363 | CODE | |
| LOW | docs/describegpt/check_semanticmd.py | 73 | CODE | |
| LOW | docs/describegpt/check_semanticmd.py | 118 | CODE | |
| LOW | examples/viz/gen_gallery.py | 831 | CODE | |
| LOW | examples/viz/gen_gallery.py | 983 | CODE | |
| LOW | examples/viz/gen_world_cities.py | 48 | CODE | |
| LOW | scripts/docs-drift-check.py | 196 | CODE | |
| LOW | scripts/gen_benchmark_viz.py | 192 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CHANGELOG.md | 1682 | * Created [Event Logo Archive](https://github.com/dathere/qsv/tree/master/docs/images/event-logos) with AI-generated sea | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .serena/project.yml | 79 | # Set this to [] to disable base modes for this project. | COMMENT |
| LOW | .serena/project.yml | 80 | # Set this to a list of mode names to always include the respective modes for this project. | COMMENT |
| LOW | scripts/benchmarks.sh | 902 | # 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 | docs/describegpt/check_semanticmd.py | 27 | CODE | |
| LOW | scripts/docs-drift-check.py | 34 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/qsv-tune.sh | 29 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …laude/skills/visual-data-dictionary/edit_dictionary.py | 244 | except Exception: | CODE |