A general purpose scientific writer
This report presents the forensic synthetic code analysis of K-Dense-AI/claude-scientific-writer, a Python project with 2,264 GitHub stars. SynthScan v2.0 examined 373,792 lines of code across 1368 source files, recording 4006 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 29.5 places this repository in the Moderate AI signal 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 4006 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 |
|---|---|---|---|---|
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | pure helpers for building manuscript-ready research packets. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | pure helpers for building manuscript-ready research packets. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | pure helpers for building manuscript-ready research packets. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | return a stable url for deduplication without tracking parameters. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | return a stable url for deduplication without tracking parameters. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | return a stable url for deduplication without tracking parameters. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | normalize a title for conservative duplicate detection. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | normalize a title for conservative duplicate detection. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | normalize a title for conservative duplicate detection. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | join source title and excerpts into searchable text. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | join source title and excerpts into searchable text. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | join source title and excerpts into searchable text. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | extract the first doi from text and strip sentence punctuation. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | extract the first doi from text and strip sentence punctuation. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | extract the first doi from text and strip sentence punctuation. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | extract a simple labeled metadata value from source text. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | extract a simple labeled metadata value from source text. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | extract a simple labeled metadata value from source text. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | split excerpts into useful, reasonably bounded sentences. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | split excerpts into useful, reasonably bounded sentences. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | split excerpts into useful, reasonably bounded sentences. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | map external evidence to manuscript sections without using results. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | map external evidence to manuscript sections without using results. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | map external evidence to manuscript sections without using results. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | merge duplicate search/extract records by doi, pmid, url, or title. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | merge duplicate search/extract records by doi, pmid, url, or title. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | merge duplicate search/extract records by doi, pmid, url, or title. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | convert a source into a structured evidence-matrix record. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | convert a source into a structured evidence-matrix record. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | convert a source into a structured evidence-matrix record. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | sort by exclusion status, verification, quality, and recency. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | sort by exclusion status, verification, quality, and recency. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | sort by exclusion status, verification, quality, and recency. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | build a structured packet without adding facts beyond source excerpts. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | build a structured packet without adding facts beyond source excerpts. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | build a structured packet without adding facts beyond source excerpts. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | render a conservative citation without inventing missing metadata. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | render a conservative citation without inventing missing metadata. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | render a conservative citation without inventing missing metadata. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | render the packet as a concise, source-linked markdown artifact. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | render the packet as a concise, source-linked markdown artifact. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | render the packet as a concise, source-linked markdown artifact. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | render minimal bibtex records using only verified metadata. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | render minimal bibtex records using only verified metadata. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | render minimal bibtex records using only verified metadata. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | write reproducible packet artifacts and return their paths. | STRING |
| HIGH | skills/research-lookup/scripts/manuscript_packet.py | 0 | write reproducible packet artifacts and return their paths. | STRING |
| HIGH | …de/skills/research-lookup/scripts/manuscript_packet.py | 0 | write reproducible packet artifacts and return their paths. | STRING |
| HIGH | …aude/skills/research-lookup/scripts/research_lookup.py | 0 | parallel-first research retrieval for manuscript evidence compilation. the public ``researchlookup`` class and cli remai | STRING |
| HIGH | skills/research-lookup/scripts/research_lookup.py | 0 | parallel-first research retrieval for manuscript evidence compilation. the public ``researchlookup`` class and cli remai | STRING |
| HIGH | …aude/skills/research-lookup/scripts/research_lookup.py | 0 | parallel-first research retrieval for manuscript evidence compilation. the public ``researchlookup`` class and cli remai | STRING |
| HIGH | …aude/skills/research-lookup/scripts/research_lookup.py | 0 | research lookup with parallel search as the stable default backend. | STRING |
| HIGH | skills/research-lookup/scripts/research_lookup.py | 0 | research lookup with parallel search as the stable default backend. | STRING |
| HIGH | …aude/skills/research-lookup/scripts/research_lookup.py | 0 | research lookup with parallel search as the stable default backend. | STRING |
| HIGH | …aude/skills/research-lookup/scripts/research_lookup.py | 0 | initialize routing and retrieval options. ``parallel`` remains a compatibility alias for the explicit ``research`` backe | STRING |
| HIGH | skills/research-lookup/scripts/research_lookup.py | 0 | initialize routing and retrieval options. ``parallel`` remains a compatibility alias for the explicit ``research`` backe | STRING |
| HIGH | …aude/skills/research-lookup/scripts/research_lookup.py | 0 | initialize routing and retrieval options. ``parallel`` remains a compatibility alias for the explicit ``research`` backe | STRING |
| HIGH | …aude/skills/research-lookup/scripts/research_lookup.py | 0 | select search by default; provider changes require explicit intent. | STRING |
| HIGH | skills/research-lookup/scripts/research_lookup.py | 0 | select search by default; provider changes require explicit intent. | STRING |
| HIGH | …aude/skills/research-lookup/scripts/research_lookup.py | 0 | select search by default; provider changes require explicit intent. | STRING |
| 1419 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …aude/skills/research-lookup/scripts/research_lookup.py | 936 | except Exception as exc: | CODE |
| LOW | …aude/skills/research-lookup/scripts/research_lookup.py | 951 | except Exception as fallback_exc: | CODE |
| LOW | …aude/skills/research-lookup/scripts/research_lookup.py | 1167 | except Exception as exc: | STRING |
| MEDIUM | …aude/skills/research-lookup/scripts/research_lookup.py | 1168 | print(f"Error: {exc}", file=sys.stderr) | STRING |
| MEDIUM | …scientific-schematics/scripts/generate_schematic_ai.py | 33 | print("Error: requests library not found. Install with: pip install requests") | CODE |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 307 | except Exception as e: | CODE |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 410 | except Exception as e: | CODE |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 567 | except Exception as e: | CODE |
| MEDIUM⚡ | …scientific-schematics/scripts/generate_schematic_ai.py | 801 | print("Error: OPENROUTER_API_KEY not found") | STRING |
| MEDIUM⚡ | …scientific-schematics/scripts/generate_schematic_ai.py | 810 | print("Error: Iterations must be between 1 and 2") | STRING |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 830 | except Exception as e: | STRING |
| MEDIUM⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 154 | print("Error: OPENROUTER_API_KEY not found") | STRING |
| MEDIUM⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 168 | print(f"Error: AI generation script not found: {ai_script}") | STRING |
| LOW | …ls/scientific-schematics/scripts/generate_schematic.py | 189 | except Exception as e: | STRING |
| MEDIUM | …ls/scientific-schematics/scripts/generate_schematic.py | 190 | print(f"Error executing AI generation: {e}") | STRING |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 134 | print(f'Error: CrossRef API returned status {response.status_code} for DOI: {doi}', file=sys.stderr) | CODE |
| LOW⚡ | …skills/citation-management/scripts/extract_metadata.py | 137 | except Exception as e: | CODE |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 138 | print(f'Error extracting metadata from DOI {doi}: {e}', file=sys.stderr) | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 174 | print(f'Error: No article found for PMID: {pmid}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 206 | print(f'Error: PubMed API returned status {response.status_code} for PMID: {pmid}', file=sys.stderr) | CODE |
| LOW⚡ | …skills/citation-management/scripts/extract_metadata.py | 209 | except Exception as e: | CODE |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 210 | print(f'Error extracting metadata from PMID {pmid}: {e}', file=sys.stderr) | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 239 | print(f'Error: No entry found for arXiv ID: {arxiv_id}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 276 | print(f'Error: arXiv API returned status {response.status_code} for ID: {arxiv_id}', file=sys.stderr) | CODE |
| LOW⚡ | …skills/citation-management/scripts/extract_metadata.py | 279 | except Exception as e: | CODE |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 280 | print(f'Error extracting metadata from arXiv {arxiv_id}: {e}', file=sys.stderr) | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 480 | print(f'Error: Unknown identifier type: {identifier}', file=sys.stderr) | CODE |
| LOW | …skills/citation-management/scripts/extract_metadata.py | 523 | except Exception as e: | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 524 | print(f'Error reading input file: {e}', file=sys.stderr) | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 546 | print('Error: No successful extractions', file=sys.stderr) | CODE |
| MEDIUM | …s/citation-management/scripts/generate_schematic_ai.py | 33 | print("Error: requests library not found. Install with: pip install requests") | CODE |
| LOW | …s/citation-management/scripts/generate_schematic_ai.py | 307 | except Exception as e: | CODE |
| LOW | …s/citation-management/scripts/generate_schematic_ai.py | 410 | except Exception as e: | CODE |
| LOW | …s/citation-management/scripts/generate_schematic_ai.py | 567 | except Exception as e: | CODE |
| MEDIUM⚡ | …s/citation-management/scripts/generate_schematic_ai.py | 801 | print("Error: OPENROUTER_API_KEY not found") | STRING |
| MEDIUM⚡ | …s/citation-management/scripts/generate_schematic_ai.py | 810 | print("Error: Iterations must be between 1 and 2") | STRING |
| LOW | …s/citation-management/scripts/generate_schematic_ai.py | 830 | except Exception as e: | STRING |
| LOW | …de/skills/citation-management/scripts/format_bibtex.py | 40 | except Exception as e: | CODE |
| MEDIUM | …de/skills/citation-management/scripts/format_bibtex.py | 41 | print(f'Error reading file: {e}', file=sys.stderr) | CODE |
| LOW | …de/skills/citation-management/scripts/format_bibtex.py | 287 | except Exception as e: | CODE |
| MEDIUM | …de/skills/citation-management/scripts/format_bibtex.py | 288 | print(f'Error writing file: {e}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …ills/citation-management/scripts/generate_schematic.py | 154 | print("Error: OPENROUTER_API_KEY not found") | STRING |
| MEDIUM⚡ | …ills/citation-management/scripts/generate_schematic.py | 168 | print(f"Error: AI generation script not found: {ai_script}") | STRING |
| LOW | …ills/citation-management/scripts/generate_schematic.py | 189 | except Exception as e: | STRING |
| MEDIUM | …ills/citation-management/scripts/generate_schematic.py | 190 | print(f"Error executing AI generation: {e}") | STRING |
| LOW | …s/citation-management/scripts/search_google_scholar.py | 44 | except Exception as e: | CODE |
| MEDIUM | …s/citation-management/scripts/search_google_scholar.py | 64 | print('Error: scholarly library not installed', file=sys.stderr) | CODE |
| LOW | …s/citation-management/scripts/search_google_scholar.py | 110 | except Exception as e: | CODE |
| MEDIUM | …s/citation-management/scripts/search_google_scholar.py | 111 | print(f'Error during search: {e}', file=sys.stderr) | CODE |
| LOW | …ills/citation-management/scripts/validate_citations.py | 56 | except Exception as e: | CODE |
| MEDIUM | …ills/citation-management/scripts/validate_citations.py | 57 | print(f'Error reading file: {e}', file=sys.stderr) | CODE |
| LOW | …ills/citation-management/scripts/validate_citations.py | 236 | except Exception: | CODE |
| LOW | …ills/citation-management/scripts/validate_citations.py | 316 | except Exception as e: | CODE |
| MEDIUM | …ills/citation-management/scripts/validate_citations.py | 317 | print(f'Error reading manuscript file {filepath}: {e}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …de/skills/citation-management/scripts/doi_to_bibtex.py | 59 | print(f'Error: DOI not found: {doi}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …de/skills/citation-management/scripts/doi_to_bibtex.py | 62 | print(f'Error: Failed to retrieve BibTeX for {doi} (status {response.status_code})', file=sys.stderr) | CODE |
| MEDIUM⚡ | …de/skills/citation-management/scripts/doi_to_bibtex.py | 66 | print(f'Error: Request timeout for DOI: {doi}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …de/skills/citation-management/scripts/doi_to_bibtex.py | 69 | print(f'Error: Request failed for {doi}: {e}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …de/skills/citation-management/scripts/doi_to_bibtex.py | 150 | print(f'Error: Input file not found: {args.input}', file=sys.stderr) | CODE |
| LOW⚡ | …de/skills/citation-management/scripts/doi_to_bibtex.py | 152 | except Exception as e: | CODE |
| 659 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …de/skills/research-lookup/scripts/manuscript_packet.py | 433 | CODE | |
| LOW | …aude/skills/research-lookup/scripts/research_lookup.py | 603 | CODE | |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 36 | CODE | |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 233 | CODE | |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 340 | CODE | |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 418 | CODE | |
| LOW | …ls/scientific-schematics/scripts/generate_schematic.py | 43 | CODE | |
| LOW | …skills/citation-management/scripts/extract_metadata.py | 141 | CODE | |
| LOW | …skills/citation-management/scripts/extract_metadata.py | 213 | CODE | |
| LOW | …s/citation-management/scripts/generate_schematic_ai.py | 36 | CODE | |
| LOW | …s/citation-management/scripts/generate_schematic_ai.py | 233 | CODE | |
| LOW | …s/citation-management/scripts/generate_schematic_ai.py | 340 | CODE | |
| LOW | …s/citation-management/scripts/generate_schematic_ai.py | 418 | CODE | |
| LOW | …de/skills/citation-management/scripts/format_bibtex.py | 201 | CODE | |
| LOW | …de/skills/citation-management/scripts/format_bibtex.py | 213 | CODE | |
| LOW | …ills/citation-management/scripts/generate_schematic.py | 43 | CODE | |
| LOW | …s/citation-management/scripts/search_google_scholar.py | 47 | CODE | |
| LOW | …ills/citation-management/scripts/validate_citations.py | 95 | CODE | |
| LOW | …ills/citation-management/scripts/validate_citations.py | 341 | CODE | |
| LOW | …de/skills/citation-management/scripts/search_pubmed.py | 98 | CODE | |
| LOW | …de/skills/citation-management/scripts/search_pubmed.py | 154 | CODE | |
| LOW | .claude/skills/xlsx/scripts/recalc.py | 81 | CODE | |
| LOW | .claude/skills/xlsx/scripts/recalc.py | 164 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/docx.py | 69 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/docx.py | 115 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/docx.py | 260 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/docx.py | 316 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/docx.py | 409 | CODE | |
| LOW | …ude/skills/xlsx/scripts/office/validators/redlining.py | 181 | CODE | |
| LOW | …ude/skills/xlsx/scripts/office/validators/redlining.py | 252 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/pptx.py | 228 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/pptx.py | 270 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/pptx.py | 376 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/base.py | 127 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/base.py | 218 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/base.py | 310 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/base.py | 408 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/base.py | 494 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/base.py | 517 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/base.py | 661 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/validators/base.py | 728 | CODE | |
| LOW | .claude/skills/xlsx/scripts/office/helpers/__init__.py | 85 | CODE | |
| LOW | .claude/skills/pdf/scripts/fill_fillable_fields.py | 11 | CODE | |
| LOW | .claude/skills/pdf/scripts/fill_fillable_fields.py | 55 | CODE | |
| LOW | .claude/skills/pdf/scripts/extract_form_field_info.py | 19 | CODE | |
| LOW | .claude/skills/pdf/scripts/extract_form_field_info.py | 47 | CODE | |
| LOW | .claude/skills/pdf/scripts/extract_form_structure.py | 20 | CODE | |
| LOW | .claude/skills/pdf/scripts/check_bounding_boxes.py | 15 | CODE | |
| LOW | …skills/infographics/scripts/generate_infographic_ai.py | 39 | CODE | |
| LOW | …skills/infographics/scripts/generate_infographic_ai.py | 370 | CODE | |
| LOW | …skills/infographics/scripts/generate_infographic_ai.py | 624 | CODE | |
| LOW | …skills/infographics/scripts/generate_infographic_ai.py | 807 | CODE | |
| LOW | …de/skills/infographics/scripts/generate_infographic.py | 56 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/_manifest.py | 763 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/_pptx.py | 787 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/_pptx.py | 1112 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/_pptx.py | 1321 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/_pptx.py | 1405 | CODE | |
| LOW | .claude/skills/treatment-plans/scripts/_common.py | 711 | CODE | |
| LOW | .claude/skills/treatment-plans/scripts/_common.py | 895 | CODE | |
| 463 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_utils.py | 15 | def test_reads_bibliographystyle_from_tex(self, tmp_path): | CODE |
| LOW⚡ | tests/test_utils.py | 20 | def test_reads_biblatex_style_option(self, tmp_path): | CODE |
| LOW⚡ | tests/test_utils.py | 25 | def test_defaults_to_bibtex_without_tex(self): | CODE |
| LOW⚡ | tests/test_utils.py | 28 | def test_defaults_to_bibtex_when_tex_has_no_style(self, tmp_path): | CODE |
| LOW⚡ | tests/test_utils.py | 46 | def test_topic_match_with_search_keyword(self, tmp_path): | CODE |
| LOW⚡ | tests/test_utils.py | 52 | def test_new_paper_request_returns_none(self, tmp_path): | CODE |
| LOW⚡ | tests/test_utils.py | 57 | def test_count_citations_in_bib(tmp_path): | CODE |
| LOW⚡ | tests/test_utils.py | 64 | def test_count_citations_ignores_bibtex_directives(tmp_path): | CODE |
| LOW | tests/test_utils.py | 76 | def test_count_words_preserves_formatted_text_and_ignores_preamble(tmp_path): | CODE |
| LOW | tests/test_utils.py | 90 | def test_extract_title_handles_nested_braces(tmp_path): | CODE |
| LOW | tests/test_utils.py | 97 | def test_scan_directory_reports_generic_artifacts_and_sources(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 56 | def test_shipped_plugin_roots_conform(root): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 60 | def test_shipped_manifest_version_matches_pyproject(): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 66 | def test_every_repository_skill_is_discoverable(): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 82 | def test_missing_manifest_rejects_the_plugin(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 91 | def test_unsupported_spec_version_is_rejected(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 98 | def test_invalid_name_is_rejected(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 104 | def test_valid_names_are_accepted(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 110 | def test_unknown_top_level_field_is_reported_but_not_fatal(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 117 | def test_non_object_extensions_is_reported_but_not_fatal(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 124 | def test_extension_namespace_must_be_reverse_domain(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 129 | def test_reverse_domain_extension_namespace_is_accepted(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 137 | def test_author_object_rejects_unknown_fields(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 148 | def test_nested_skills_are_not_discovered(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 158 | def test_skill_name_must_match_directory(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 163 | def test_skill_description_length_is_enforced(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 169 | def test_skill_metadata_mapping_is_parsed(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 181 | def test_invalid_skill_does_not_invalidate_the_plugin(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 191 | def test_skills_path_that_is_not_a_directory_invalidates_the_component(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 202 | def test_valid_mcp_document_passes(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 216 | def test_mcp_command_escaping_the_plugin_root_is_rejected(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 222 | def test_mcp_relative_command_leaving_root_is_rejected(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 228 | def test_mcp_reserved_env_names_are_rejected(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 237 | def test_mcp_unknown_transport_is_rejected(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 243 | def test_unexpandable_placeholder_is_warned(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 254 | def test_mcp_json_that_is_not_a_file_invalidates_the_component(tmp_path): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 265 | def test_vendored_schemas_declare_their_canonical_ids(): | CODE |
| LOW⚡ | tests/test_agent_plugin.py | 272 | def test_non_canonical_schema_id_is_rejected(): | CODE |
| LOW⚡ | tests/test_docs.py | 21 | def test_documented_example_files_exist(): | CODE |
| LOW⚡ | tests/test_docs.py | 26 | def test_plugin_templates_are_generated_from_canonical_instructions(): | CODE |
| LOW⚡ | tests/test_docs.py | 34 | def test_agents_md_mirrors_claude_md(): | CODE |
| LOW⚡ | tests/test_docs.py | 41 | def test_instruction_surfaces_do_not_reference_removed_parallel_wrapper(): | CODE |
| LOW | tests/test_docs.py | 56 | def test_skills_document_has_one_section_per_locked_skill(): | CODE |
| LOW | tests/test_docs.py | 63 | def test_first_party_markdown_file_links_resolve(): | CODE |
| LOW | tests/test_core.py | 32 | def test_copies_claude_dir_when_missing(tmp_path): | CODE |
| LOW | tests/test_core.py | 46 | def test_refreshes_bundled_skills_when_claude_exists(tmp_path): | CODE |
| LOW | tests/test_core.py | 70 | def test_preserves_user_files_when_refreshing(tmp_path): | CODE |
| LOW | tests/test_core.py | 91 | def test_agents_dir_receives_the_payload_when_the_project_uses_it(tmp_path): | CODE |
| LOW | tests/test_core.py | 106 | def test_agents_dir_is_not_created_when_absent(tmp_path): | CODE |
| LOW | tests/test_core.py | 120 | def test_bundled_payload_can_be_shipped_as_dot_agents(tmp_path): | CODE |
| LOW | tests/test_core.py | 134 | def test_plugin_manifest_is_refreshed_on_upgrade(tmp_path): | CODE |
| LOW | tests/test_core.py | 148 | def test_instructions_are_found_across_layouts(tmp_path): | CODE |
| LOW | tests/test_core.py | 169 | def test_missing_instructions_fall_back_with_a_warning(tmp_path, caplog): | CODE |
| LOW | tests/test_core.py | 180 | def test_missing_bundle_logs_warning_instead_of_silence(tmp_path, caplog): | CODE |
| LOW | tests/test_core.py | 192 | def test_stop_hook_blocks_once_then_allows_stop(): | CODE |
| LOW⚡ | tests/test_core.py | 207 | def test_stop_hook_disabled_allows_stop(): | CODE |
| LOW⚡ | tests/test_core.py | 217 | def test_resolve_auto_continue_environment_override(): | CODE |
| LOW⚡ | tests/test_core.py | 223 | def test_relative_output_folder_is_anchored_to_cwd(tmp_path): | CODE |
| LOW⚡ | tests/test_core.py | 227 | def test_create_output_project_is_collision_safe(tmp_path): | CODE |
| LOW | tests/test_core.py | 243 | def test_explicit_data_files_resolve_against_cwd(tmp_path): | CODE |
| 406 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | …scientific-schematics/scripts/generate_schematic_ai.py | 803 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …scientific-schematics/scripts/generate_schematic_ai.py | 804 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 158 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 159 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH | …skills/citation-management/references/pubmed_search.md | 385 | api_key=YOUR_API_KEY | CODE |
| HIGH | …skills/citation-management/references/pubmed_search.md | 418 | api_key=YOUR_API_KEY | CODE |
| HIGH | …skills/citation-management/references/pubmed_search.md | 442 | api_key=YOUR_API_KEY | CODE |
| HIGH⚡ | …s/citation-management/scripts/generate_schematic_ai.py | 803 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …s/citation-management/scripts/generate_schematic_ai.py | 804 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …ills/citation-management/scripts/generate_schematic.py | 158 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …ills/citation-management/scripts/generate_schematic.py | 159 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …skills/infographics/scripts/generate_infographic_ai.py | 1308 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …skills/infographics/scripts/generate_infographic_ai.py | 1309 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …de/skills/infographics/scripts/generate_infographic.py | 241 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …de/skills/infographics/scripts/generate_infographic.py | 242 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …lls/literature-review/scripts/generate_schematic_ai.py | 803 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …lls/literature-review/scripts/generate_schematic_ai.py | 804 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …skills/literature-review/scripts/generate_schematic.py | 158 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …skills/literature-review/scripts/generate_schematic.py | 159 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …/skills/latex-posters/scripts/generate_schematic_ai.py | 803 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …/skills/latex-posters/scripts/generate_schematic_ai.py | 804 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …ude/skills/latex-posters/scripts/generate_schematic.py | 158 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …ude/skills/latex-posters/scripts/generate_schematic.py | 159 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …lls/scientific-slides/scripts/generate_schematic_ai.py | 803 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …lls/scientific-slides/scripts/generate_schematic_ai.py | 804 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …s/scientific-slides/scripts/generate_slide_image_ai.py | 727 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …s/scientific-slides/scripts/generate_slide_image_ai.py | 728 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …skills/scientific-slides/scripts/generate_schematic.py | 158 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …skills/scientific-slides/scripts/generate_schematic.py | 159 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …ills/scientific-slides/scripts/generate_slide_image.py | 155 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …ills/scientific-slides/scripts/generate_slide_image.py | 156 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH | docs/API.md | 366 | api_key="sk-ant-your-api-key-here" | CODE |
| HIGH⚡ | …scientific-schematics/scripts/generate_schematic_ai.py | 803 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …scientific-schematics/scripts/generate_schematic_ai.py | 804 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 158 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 159 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH | skills/citation-management/references/pubmed_search.md | 385 | api_key=YOUR_API_KEY | CODE |
| HIGH | skills/citation-management/references/pubmed_search.md | 418 | api_key=YOUR_API_KEY | CODE |
| HIGH | skills/citation-management/references/pubmed_search.md | 442 | api_key=YOUR_API_KEY | CODE |
| HIGH⚡ | …s/citation-management/scripts/generate_schematic_ai.py | 803 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …s/citation-management/scripts/generate_schematic_ai.py | 804 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …ills/citation-management/scripts/generate_schematic.py | 158 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …ills/citation-management/scripts/generate_schematic.py | 159 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | skills/infographics/scripts/generate_infographic_ai.py | 1308 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | skills/infographics/scripts/generate_infographic_ai.py | 1309 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | skills/infographics/scripts/generate_infographic.py | 241 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | skills/infographics/scripts/generate_infographic.py | 242 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …lls/literature-review/scripts/generate_schematic_ai.py | 803 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …lls/literature-review/scripts/generate_schematic_ai.py | 804 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | skills/literature-review/scripts/generate_schematic.py | 158 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | skills/literature-review/scripts/generate_schematic.py | 159 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | skills/latex-posters/scripts/generate_schematic_ai.py | 803 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | skills/latex-posters/scripts/generate_schematic_ai.py | 804 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | skills/latex-posters/scripts/generate_schematic.py | 158 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | skills/latex-posters/scripts/generate_schematic.py | 159 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …lls/scientific-slides/scripts/generate_schematic_ai.py | 803 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …lls/scientific-slides/scripts/generate_schematic_ai.py | 804 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …s/scientific-slides/scripts/generate_slide_image_ai.py | 727 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …s/scientific-slides/scripts/generate_slide_image_ai.py | 728 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | skills/scientific-slides/scripts/generate_schematic.py | 158 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| 34 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | example_api_usage.py | 3 | CODE | |
| LOW | …de/skills/research-lookup/scripts/manuscript_packet.py | 3 | CODE | |
| LOW | …aude/skills/research-lookup/scripts/research_lookup.py | 9 | CODE | |
| LOW | …de/skills/citation-management/scripts/format_bibtex.py | 10 | CODE | |
| LOW | …aude/skills/markitdown/scripts/inspect_installation.py | 4 | CODE | |
| LOW | …aude/skills/markitdown/scripts/inspect_installation.py | 45 | CODE | |
| LOW | .claude/skills/markitdown/scripts/convert_literature.py | 4 | CODE | |
| LOW | .claude/skills/markitdown/scripts/batch_convert.py | 8 | CODE | |
| LOW | …aude/skills/xlsx/scripts/office/validators/__init__.py | 5 | CODE | |
| LOW | …aude/skills/xlsx/scripts/office/validators/__init__.py | 6 | CODE | |
| LOW | …aude/skills/xlsx/scripts/office/validators/__init__.py | 7 | CODE | |
| LOW | …aude/skills/xlsx/scripts/office/validators/__init__.py | 8 | CODE | |
| LOW | …laude/skills/xlsx/scripts/office/helpers/pptx_chart.py | 8 | CODE | |
| LOW | …laude/skills/xlsx/scripts/office/helpers/pptx_slide.py | 8 | CODE | |
| LOW | …laude/skills/xlsx/scripts/office/helpers/pptx_theme.py | 8 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/plan_export.py | 4 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/_manifest.py | 4 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/_pptx.py | 4 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/check_layout.py | 4 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/inventory_images.py | 4 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/_common.py | 4 | CODE | |
| LOW | …laude/skills/pptx-posters/scripts/validate_manifest.py | 4 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/inspect_pptx.py | 4 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/check_palette.py | 4 | CODE | |
| LOW | .claude/skills/pptx-posters/scripts/generate_poster.py | 4 | CODE | |
| LOW | …e/skills/treatment-plans/scripts/check_completeness.py | 4 | CODE | |
| LOW | …lls/treatment-plans/scripts/validate_treatment_plan.py | 4 | CODE | |
| LOW | …kills/treatment-plans/scripts/validate_traceability.py | 4 | CODE | |
| LOW | .claude/skills/treatment-plans/scripts/_common.py | 4 | CODE | |
| LOW | …kills/treatment-plans/scripts/privacy_process_check.py | 4 | CODE | |
| LOW | …de/skills/treatment-plans/scripts/check_consistency.py | 4 | CODE | |
| LOW | …e/skills/treatment-plans/scripts/timeline_generator.py | 4 | CODE | |
| LOW | …de/skills/treatment-plans/scripts/generate_template.py | 4 | CODE | |
| LOW | …ills/scientific-writing/scripts/validate_authorship.py | 3 | CODE | |
| LOW | …ills/scientific-writing/scripts/scaffold_manuscript.py | 3 | CODE | |
| LOW | …entific-writing/scripts/select_reporting_guidelines.py | 3 | CODE | |
| LOW | …/skills/scientific-writing/scripts/check_references.py | 3 | CODE | |
| LOW | …e/skills/scientific-writing/scripts/lint_manuscript.py | 3 | CODE | |
| LOW | .claude/skills/scientific-writing/scripts/_common.py | 3 | CODE | |
| LOW | …aude/skills/scientific-writing/scripts/audit_claims.py | 3 | CODE | |
| LOW | …skills/scientific-writing/scripts/validate_manifest.py | 3 | CODE | |
| LOW | …skills/scientific-writing/scripts/check_consistency.py | 3 | CODE | |
| LOW | …cal-decision-support/scripts/cohort_table_generator.py | 4 | CODE | |
| LOW | …cal-decision-support/scripts/evidence_profile_check.py | 4 | CODE | |
| LOW | …de/skills/clinical-decision-support/scripts/_common.py | 4 | CODE | |
| LOW | …decision-support/scripts/deidentification_checklist.py | 4 | CODE | |
| LOW | …ecision-support/scripts/decision_logic_traceability.py | 4 | CODE | |
| LOW | …decision-support/scripts/model_biomarker_evaluation.py | 4 | CODE | |
| LOW | …al-decision-support/scripts/survival_plan_validator.py | 4 | CODE | |
| LOW | …ical-decision-support/scripts/validate_cds_artifact.py | 4 | CODE | |
| LOW | …e/skills/literature-review/scripts/verify_citations.py | 11 | CODE | |
| LOW | …ills/scholar-evaluation/scripts/summarize_agreement.py | 4 | CODE | |
| LOW | …ude/skills/scholar-evaluation/scripts/check_process.py | 4 | CODE | |
| LOW | …scholar-evaluation/scripts/generate_report_scaffold.py | 4 | CODE | |
| LOW | …kills/scholar-evaluation/scripts/check_traceability.py | 4 | CODE | |
| LOW | …/skills/scholar-evaluation/scripts/calculate_scores.py | 4 | CODE | |
| LOW | .claude/skills/scholar-evaluation/scripts/_common.py | 4 | CODE | |
| LOW | …kills/scholar-evaluation/scripts/weight_sensitivity.py | 4 | CODE | |
| LOW | …e/skills/scholar-evaluation/scripts/validate_rubric.py | 4 | CODE | |
| LOW | …aude/skills/pptx/scripts/office/validators/__init__.py | 5 | CODE | |
| 288 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | CHANGELOG.md | 1041 | # Step 1: Identify topics | COMMENT |
| LOW⚡ | CHANGELOG.md | 1045 | # Step 2: Review/edit topics.txt manually | COMMENT |
| LOW⚡ | CHANGELOG.md | 1047 | # Step 3: Research in parallel | COMMENT |
| LOW | …skills/citation-management/references/core_workflow.md | 163 | #### Step 1: Scan for Incomplete Entries | COMMENT |
| LOW | …skills/citation-management/references/core_workflow.md | 178 | #### Step 2: Web Search for Missing Metadata | COMMENT |
| LOW | …skills/citation-management/references/core_workflow.md | 232 | #### Step 3: Update BibTeX Entries | COMMENT |
| LOW | …skills/citation-management/references/core_workflow.md | 244 | #### Step 4: Handle Unfindable Metadata | COMMENT |
| LOW | …/citation-management/references/citation_validation.md | 469 | ### Step 1: Basic Validation | COMMENT |
| LOW | …/citation-management/references/citation_validation.md | 485 | ### Step 2: Review Report | COMMENT |
| LOW | …/citation-management/references/citation_validation.md | 525 | ### Step 3: Fix Issues | COMMENT |
| LOW | …/citation-management/references/citation_validation.md | 542 | ### Step 4: Auto-Fix | COMMENT |
| LOW | …/citation-management/references/citation_validation.md | 565 | ### Step 5: Manual Review | COMMENT |
| LOW | …/citation-management/references/citation_validation.md | 576 | ### Step 6: Re-Validate | COMMENT |
| LOW⚡ | …skills/citation-management/references/pubmed_search.md | 704 | # Step 1: Basic search | COMMENT |
| LOW⚡ | …skills/citation-management/references/pubmed_search.md | 707 | # Step 2: Add specificity | COMMENT |
| LOW⚡ | …skills/citation-management/references/pubmed_search.md | 710 | # Step 3: Add treatment | COMMENT |
| LOW⚡ | …skills/citation-management/references/pubmed_search.md | 713 | # Step 4: Add study type | COMMENT |
| LOW⚡ | …skills/citation-management/references/pubmed_search.md | 717 | # Step 5: Add date range | COMMENT |
| LOW | …ls/citation-management/references/example_workflows.md | 11 | # Step 1: Find key papers on your topic | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 22 | # Step 2: Extract metadata from search results | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 31 | # Step 3: Add specific papers you already know | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 35 | # Step 4: Combine all BibTeX files | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 38 | # Step 5: Format and deduplicate | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 45 | # Step 6: Validate | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 51 | # Step 7: Review any issues | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 54 | # Step 8: Use in LaTeX | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 80 | # Step 1: Format and standardize | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 84 | # Step 2: Remove duplicates | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 89 | # Step 3: Validate and auto-fix | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 94 | # Step 4: Sort by year | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 100 | # Step 5: Final validation report | COMMENT |
| LOW | …kills/citation-management/assets/citation_checklist.md | 73 | ### Step 1: Format and Clean | COMMENT |
| LOW | …kills/citation-management/assets/citation_checklist.md | 89 | ### Step 2: Validate | COMMENT |
| LOW | …kills/citation-management/assets/citation_checklist.md | 105 | ### Step 3: Review Report | COMMENT |
| LOW | …kills/citation-management/assets/citation_checklist.md | 116 | ### Step 4: Final Check | COMMENT |
| LOW | .claude/skills/pdf/forms.md | 81 | ## Step 1: Try Structure Extraction First | COMMENT |
| LOW | .claude/skills/pdf/forms.md | 270 | ## Step 2: Validate Before Filling | COMMENT |
| LOW | .claude/skills/pdf/forms.md | 281 | ## Step 3: Fill the Form | COMMENT |
| LOW | .claude/skills/pdf/forms.md | 286 | ## Step 4: Verify Output | COMMENT |
| LOW | …ls/latex-posters/references/ai_graphics_for_posters.md | 231 | ### Step 0: MANDATORY Pre-Generation Review (DO THIS FIRST) | COMMENT |
| LOW | …ls/latex-posters/references/ai_graphics_for_posters.md | 259 | ### Step 1: Plan Your Poster Elements | COMMENT |
| LOW | …ls/latex-posters/references/ai_graphics_for_posters.md | 270 | ### Step 2: Generate Each Element (After Pre-Generation Review) | COMMENT |
| LOW | …ls/latex-posters/references/ai_graphics_for_posters.md | 353 | ### Step 3: Assemble in LaTeX Template | COMMENT |
| LOW⚡ | …cientific-slides/references/slide_design_principles.md | 726 | ### Step 1: Define Visual Identity | COMMENT |
| LOW⚡ | …cientific-slides/references/slide_design_principles.md | 734 | ### Step 2: Create Master Templates | COMMENT |
| LOW⚡ | …cientific-slides/references/slide_design_principles.md | 744 | ### Step 3: Apply Consistently | COMMENT |
| LOW⚡ | …cientific-slides/references/slide_design_principles.md | 753 | ### Step 4: Review and Refine | COMMENT |
| LOW | …entific-slides/references/data_visualization_slides.md | 548 | ### Step 1: Start with High-Quality Source | COMMENT |
| LOW | …entific-slides/references/data_visualization_slides.md | 561 | ### Step 2: Simplify for Presentation | COMMENT |
| LOW | …entific-slides/references/data_visualization_slides.md | 577 | ### Step 3: Optimize for Projection | COMMENT |
| LOW | …entific-slides/references/data_visualization_slides.md | 592 | ### Step 4: Add Context and Annotations | COMMENT |
| LOW⚡ | extensions/docx-editor-zotero/EXAMPLES.md | 280 | # Step 1: Preview | COMMENT |
| LOW⚡ | extensions/docx-editor-zotero/EXAMPLES.md | 283 | # Step 2: First batch of deletions | COMMENT |
| LOW⚡ | extensions/docx-editor-zotero/EXAMPLES.md | 287 | # Step 3: Reorganize | COMMENT |
| LOW⚡ | extensions/docx-editor-zotero/EXAMPLES.md | 291 | # Step 4: Terminology update | COMMENT |
| LOW⚡ | extensions/docx-editor-zotero/EXAMPLES.md | 295 | # Step 5: Validate and save | COMMENT |
| LOW | commands/scientific-writer-init.md | 24 | ## Step 1: Check for Existing Instruction Files | COMMENT |
| LOW | commands/scientific-writer-init.md | 39 | ## Step 2: Locate the Template File Paths | COMMENT |
| LOW | commands/scientific-writer-init.md | 55 | ## Step 3: Create or Update Each Instruction File | COMMENT |
| LOW | commands/scientific-writer-init.md | 93 | ## Step 4: Summarize What Was Installed | COMMENT |
| 97 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …aude/skills/research-lookup/scripts/research_lookup.py | 126 | "Find conflicting, contradictory, null, negative, replication, and limitation " | CODE |
| HIGH | .claude/skills/xlsx/scripts/office/soffice.py | 165 | if (sv[0] >= 0 && sv[0] < 1024) { | CODE |
| HIGH | .claude/skills/xlsx/scripts/office/soffice.py | 184 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | .claude/skills/xlsx/scripts/office/soffice.py | 193 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | .claude/skills/xlsx/scripts/office/soffice.py | 207 | if (fd >= 0 && fd < 1024 && is_shimmed[fd]) { | CODE |
| HIGH | .claude/skills/pptx/scripts/office/soffice.py | 165 | if (sv[0] >= 0 && sv[0] < 1024) { | CODE |
| HIGH | .claude/skills/pptx/scripts/office/soffice.py | 184 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | .claude/skills/pptx/scripts/office/soffice.py | 193 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | .claude/skills/pptx/scripts/office/soffice.py | 207 | if (fd >= 0 && fd < 1024 && is_shimmed[fd]) { | CODE |
| HIGH | .claude/skills/docx/scripts/office/soffice.py | 165 | if (sv[0] >= 0 && sv[0] < 1024) { | CODE |
| HIGH | .claude/skills/docx/scripts/office/soffice.py | 184 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | .claude/skills/docx/scripts/office/soffice.py | 193 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | .claude/skills/docx/scripts/office/soffice.py | 207 | if (fd >= 0 && fd < 1024 && is_shimmed[fd]) { | CODE |
| HIGH⚡ | scripts/bump_version.py | 333 | print(f" 3. Commit changes: git add -A && git commit -m 'Bump version to {new_version}'") | CODE |
| HIGH | skills/research-lookup/scripts/research_lookup.py | 126 | "Find conflicting, contradictory, null, negative, replication, and limitation " | CODE |
| HIGH | skills/xlsx/scripts/office/soffice.py | 165 | if (sv[0] >= 0 && sv[0] < 1024) { | CODE |
| HIGH | skills/xlsx/scripts/office/soffice.py | 184 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | skills/xlsx/scripts/office/soffice.py | 193 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | skills/xlsx/scripts/office/soffice.py | 207 | if (fd >= 0 && fd < 1024 && is_shimmed[fd]) { | CODE |
| HIGH | skills/pptx/scripts/office/soffice.py | 165 | if (sv[0] >= 0 && sv[0] < 1024) { | CODE |
| HIGH | skills/pptx/scripts/office/soffice.py | 184 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | skills/pptx/scripts/office/soffice.py | 193 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | skills/pptx/scripts/office/soffice.py | 207 | if (fd >= 0 && fd < 1024 && is_shimmed[fd]) { | CODE |
| HIGH | skills/docx/scripts/office/soffice.py | 165 | if (sv[0] >= 0 && sv[0] < 1024) { | CODE |
| HIGH | skills/docx/scripts/office/soffice.py | 184 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | skills/docx/scripts/office/soffice.py | 193 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | skills/docx/scripts/office/soffice.py | 207 | if (fd >= 0 && fd < 1024 && is_shimmed[fd]) { | CODE |
| HIGH | …aude/skills/research-lookup/scripts/research_lookup.py | 126 | "Find conflicting, contradictory, null, negative, replication, and limitation " | CODE |
| HIGH | …c_writer/.claude/skills/xlsx/scripts/office/soffice.py | 165 | if (sv[0] >= 0 && sv[0] < 1024) { | CODE |
| HIGH | …c_writer/.claude/skills/xlsx/scripts/office/soffice.py | 184 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …c_writer/.claude/skills/xlsx/scripts/office/soffice.py | 193 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …c_writer/.claude/skills/xlsx/scripts/office/soffice.py | 207 | if (fd >= 0 && fd < 1024 && is_shimmed[fd]) { | CODE |
| HIGH | …c_writer/.claude/skills/pptx/scripts/office/soffice.py | 165 | if (sv[0] >= 0 && sv[0] < 1024) { | CODE |
| HIGH | …c_writer/.claude/skills/pptx/scripts/office/soffice.py | 184 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …c_writer/.claude/skills/pptx/scripts/office/soffice.py | 193 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …c_writer/.claude/skills/pptx/scripts/office/soffice.py | 207 | if (fd >= 0 && fd < 1024 && is_shimmed[fd]) { | CODE |
| HIGH | …c_writer/.claude/skills/docx/scripts/office/soffice.py | 165 | if (sv[0] >= 0 && sv[0] < 1024) { | CODE |
| HIGH | …c_writer/.claude/skills/docx/scripts/office/soffice.py | 184 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …c_writer/.claude/skills/docx/scripts/office/soffice.py | 193 | if (sockfd >= 0 && sockfd < 1024 && is_shimmed[sockfd]) { | CODE |
| HIGH | …c_writer/.claude/skills/docx/scripts/office/soffice.py | 207 | if (fd >= 0 && fd < 1024 && is_shimmed[fd]) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_agent_plugin.py | 46 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_agent_plugin.py | 48 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_agent_plugin.py | 77 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_agent_plugin.py | 79 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_agent_plugin.py | 143 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_agent_plugin.py | 145 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_agent_plugin.py | 197 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_agent_plugin.py | 199 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_agent_plugin.py | 260 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_agent_plugin.py | 262 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | extensions/docx-editor-zotero/word_editor.py | 46 | # =========================== | COMMENT |
| MEDIUM | extensions/docx-editor-zotero/word_editor.py | 48 | # =========================== | COMMENT |
| MEDIUM | extensions/docx-editor-zotero/word_editor.py | 70 | # =========================== | COMMENT |
| MEDIUM | extensions/docx-editor-zotero/word_editor.py | 72 | # =========================== | COMMENT |
| MEDIUM | extensions/docx-editor-zotero/word_editor.py | 162 | # =========================== | COMMENT |
| MEDIUM | extensions/docx-editor-zotero/word_editor.py | 164 | # =========================== | COMMENT |
| MEDIUM | extensions/docx-editor-zotero/word_editor.py | 210 | # =========================== | COMMENT |
| MEDIUM | extensions/docx-editor-zotero/word_editor.py | 212 | # =========================== | COMMENT |
| MEDIUM | extensions/docx-editor-zotero/word_editor.py | 254 | # =========================== | COMMENT |
| MEDIUM | extensions/docx-editor-zotero/word_editor.py | 256 | # =========================== | COMMENT |
| MEDIUM | extensions/docx-editor-zotero/word_editor.py | 268 | # =========================== | COMMENT |
| MEDIUM | extensions/docx-editor-zotero/word_editor.py | 270 | # =========================== | COMMENT |
| MEDIUM | scripts/validate_agent_plugin.py | 117 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/validate_agent_plugin.py | 119 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/validate_agent_plugin.py | 303 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/validate_agent_plugin.py | 305 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/validate_agent_plugin.py | 444 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/validate_agent_plugin.py | 446 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .claude/skills/markitdown/references/workflows.md | 129 | ## 5. RAG Ingestion | COMMENT |
| MEDIUM | …/skills/scholar-evaluation/references/local_tooling.md | 191 | ## 7. Report scaffold | COMMENT |
| MEDIUM | .claude/skills/market-research-reports/SKILL.md | 140 | #### Measurement guardrails | COMMENT |
| MEDIUM | .claude/skills/venue-templates/SKILL.md | 143 | ### Poster scaffold | COMMENT |
| MEDIUM | .claude/skills/venue-templates/SKILL.md | 209 | ### Copy and customize a scaffold | COMMENT |
| MEDIUM | …ills/venue-templates/references/grants_requirements.md | 98 | ### Bundled NSF scaffold | COMMENT |
| MEDIUM | …lls/hypothesis-generation/references/tool_reference.md | 210 | ## 7. Preregistration scaffold generator | COMMENT |
| MEDIUM | …generation/assets/preregistration_scaffold_template.md | 1 | # Preregistration scaffold: {{PROJECT_ID}} | COMMENT |
| MEDIUM | .claude/skills/peer-review/references/tool_reference.md | 182 | ## Review scaffold generator | COMMENT |
| MEDIUM | skills/markitdown/references/workflows.md | 129 | ## 5. RAG Ingestion | COMMENT |
| MEDIUM | skills/scholar-evaluation/references/local_tooling.md | 191 | ## 7. Report scaffold | COMMENT |
| MEDIUM | skills/market-research-reports/SKILL.md | 140 | #### Measurement guardrails | COMMENT |
| MEDIUM | skills/venue-templates/SKILL.md | 143 | ### Poster scaffold | COMMENT |
| MEDIUM | skills/venue-templates/SKILL.md | 209 | ### Copy and customize a scaffold | COMMENT |
| MEDIUM | …ills/venue-templates/references/grants_requirements.md | 98 | ### Bundled NSF scaffold | COMMENT |
| MEDIUM | …lls/hypothesis-generation/references/tool_reference.md | 210 | ## 7. Preregistration scaffold generator | COMMENT |
| MEDIUM | …generation/assets/preregistration_scaffold_template.md | 1 | # Preregistration scaffold: {{PROJECT_ID}} | COMMENT |
| MEDIUM | skills/peer-review/references/tool_reference.md | 182 | ## Review scaffold generator | COMMENT |
| MEDIUM | …iter/.claude/skills/markitdown/references/workflows.md | 129 | ## 5. RAG Ingestion | COMMENT |
| MEDIUM | …/skills/scholar-evaluation/references/local_tooling.md | 191 | ## 7. Report scaffold | COMMENT |
| MEDIUM | …writer/.claude/skills/market-research-reports/SKILL.md | 140 | #### Measurement guardrails | COMMENT |
| MEDIUM | …entific_writer/.claude/skills/venue-templates/SKILL.md | 143 | ### Poster scaffold | COMMENT |
| MEDIUM | …entific_writer/.claude/skills/venue-templates/SKILL.md | 209 | ### Copy and customize a scaffold | COMMENT |
| MEDIUM | …ills/venue-templates/references/grants_requirements.md | 98 | ### Bundled NSF scaffold | COMMENT |
| MEDIUM | …lls/hypothesis-generation/references/tool_reference.md | 210 | ## 7. Preregistration scaffold generator | COMMENT |
| MEDIUM | …generation/assets/preregistration_scaffold_template.md | 1 | # Preregistration scaffold: {{PROJECT_ID}} | COMMENT |
| MEDIUM | …claude/skills/peer-review/references/tool_reference.md | 182 | ## Review scaffold generator | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | …skills/citation-management/scripts/extract_metadata.py | 46 | # Check if URL | COMMENT |
| LOW | …s/citation-management/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | …skills/infographics/scripts/generate_infographic_ai.py | 1164 | # Check if quality is acceptable | STRING |
| LOW | …lls/literature-review/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW⚡ | …laude/skills/literature-review/scripts/generate_pdf.py | 44 | # Check if pandoc is installed | COMMENT |
| LOW | …/skills/latex-posters/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | .claude/skills/latex-posters/scripts/review_poster.sh | 13 | # Check if file argument provided | COMMENT |
| LOW | .claude/skills/latex-posters/scripts/review_poster.sh | 22 | # Check if file exists | COMMENT |
| LOW | .claude/skills/latex-posters/scripts/review_poster.sh | 93 | # Check if file is too large for email | COMMENT |
| LOW | …lls/scientific-slides/scripts/validate_presentation.py | 392 | # Print results | STRING |
| LOW | …lls/scientific-slides/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | scripts/publish.py | 239 | # Check if tag already exists | COMMENT |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | skills/citation-management/scripts/extract_metadata.py | 46 | # Check if URL | COMMENT |
| LOW | …s/citation-management/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | skills/infographics/scripts/generate_infographic_ai.py | 1164 | # Check if quality is acceptable | STRING |
| LOW | …lls/literature-review/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW⚡ | skills/literature-review/scripts/generate_pdf.py | 44 | # Check if pandoc is installed | COMMENT |
| LOW | skills/latex-posters/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | skills/latex-posters/scripts/review_poster.sh | 13 | # Check if file argument provided | COMMENT |
| LOW | skills/latex-posters/scripts/review_poster.sh | 22 | # Check if file exists | COMMENT |
| LOW | skills/latex-posters/scripts/review_poster.sh | 93 | # Check if file is too large for email | COMMENT |
| LOW | …lls/scientific-slides/scripts/validate_presentation.py | 392 | # Print results | STRING |
| LOW | …lls/scientific-slides/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | scientific_writer/core.py | 441 | # Read the file from the zip and write it to the output | COMMENT |
| LOW | scientific_writer/cli.py | 238 | # Check if user wants to start a new paper | STRING |
| LOW | scientific_writer/utils.py | 114 | # Check if user mentions continuation or search keywords | COMMENT |
| LOW | scientific_writer/utils.py | 128 | # Check if topic words appear in user input | COMMENT |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | …skills/citation-management/scripts/extract_metadata.py | 46 | # Check if URL | COMMENT |
| LOW | …s/citation-management/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | …skills/infographics/scripts/generate_infographic_ai.py | 1164 | # Check if quality is acceptable | STRING |
| LOW | …lls/literature-review/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW⚡ | …laude/skills/literature-review/scripts/generate_pdf.py | 44 | # Check if pandoc is installed | COMMENT |
| LOW | …/skills/latex-posters/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | …/.claude/skills/latex-posters/scripts/review_poster.sh | 13 | # Check if file argument provided | COMMENT |
| LOW | …/.claude/skills/latex-posters/scripts/review_poster.sh | 22 | # Check if file exists | COMMENT |
| LOW | …/.claude/skills/latex-posters/scripts/review_poster.sh | 93 | # Check if file is too large for email | COMMENT |
| LOW | …lls/scientific-slides/scripts/validate_presentation.py | 392 | # Print results | STRING |
| LOW | …lls/scientific-slides/scripts/generate_schematic_ai.py | 697 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …scientific-schematics/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …s/citation-management/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …lls/literature-review/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …/skills/latex-posters/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …lls/scientific-slides/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …scientific-schematics/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …s/citation-management/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …lls/literature-review/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | skills/latex-posters/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …lls/scientific-slides/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …scientific-schematics/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …s/citation-management/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …lls/literature-review/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …/skills/latex-posters/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …lls/scientific-slides/scripts/generate_schematic_ai.py | 96 | # Scientific diagram best practices prompt template | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …aude/skills/xlsx/scripts/office/validators/__init__.py | 10 | __all__ = [ | CODE |
| LOW | .claude/skills/pptx/scripts/clean.py | 233 | def update_content_types(unpacked_dir: Path, removed_files: list[str]) -> None: | CODE |
| LOW | …aude/skills/pptx/scripts/office/validators/__init__.py | 10 | __all__ = [ | CODE |
| LOW | .claude/skills/docx/scripts/accept_changes.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | …aude/skills/docx/scripts/office/validators/__init__.py | 10 | __all__ = [ | CODE |
| LOW | extensions/docx-editor-zotero/word_editor.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | extensions/docx-editor-zotero/zotero_docx_preserver.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | scripts/bump_version.py | 115 | def update_pyproject_version(pyproject_path: Path, new_version: str) -> None: | CODE |
| LOW | scripts/bump_version.py | 143 | def update_init_version(init_path: Path, new_version: str) -> None: | CODE |
| LOW | scripts/bump_version.py | 171 | def update_marketplace_version(marketplace_path: Path, new_version: str) -> None: | CODE |
| LOW | scripts/sync_skills.py | 283 | def update_hashes(data: dict[str, Any], root: Path) -> None: | CODE |
| LOW | skills/xlsx/scripts/office/validators/__init__.py | 10 | __all__ = [ | CODE |
| LOW | skills/pptx/scripts/clean.py | 233 | def update_content_types(unpacked_dir: Path, removed_files: list[str]) -> None: | CODE |
| LOW | skills/pptx/scripts/office/validators/__init__.py | 10 | __all__ = [ | CODE |
| LOW | skills/docx/scripts/accept_changes.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | skills/docx/scripts/office/validators/__init__.py | 10 | __all__ = [ | CODE |
| LOW | scientific_writer/__init__.py | 50 | __all__ = [ | CODE |
| LOW | scientific_writer/core.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | scientific_writer/api.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | scientific_writer/utils.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | …aude/skills/xlsx/scripts/office/validators/__init__.py | 10 | __all__ = [ | CODE |
| LOW | scientific_writer/.claude/skills/pptx/scripts/clean.py | 233 | def update_content_types(unpacked_dir: Path, removed_files: list[str]) -> None: | CODE |
| LOW | …aude/skills/pptx/scripts/office/validators/__init__.py | 10 | __all__ = [ | CODE |
| LOW | …c_writer/.claude/skills/docx/scripts/accept_changes.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | …aude/skills/docx/scripts/office/validators/__init__.py | 10 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 41 | Changelog = "https://github.com/K-Dense-AI/claude-scientific-writer/blob/main/CHANGELOG.md" | COMMENT |
| LOW | pyproject.toml | 141 | ignore-regex = '\b[a-z]+[A-Z]\w*\b|\b[A-Z][a-z]+[A-Z]\w*\b|\*\*.\*\*\w+|\\textbf\{.\}\w+' | COMMENT |
| LOW | pyproject.toml | 161 | # fallow - Gutenberg diagram layout term (fallow area) | COMMENT |
| LOW | …ls/citation-management/references/example_workflows.md | 61 | # You have a text file with DOIs (one per line) | COMMENT |
| LOW | …kills/literature-review/references/example_workflow.md | 41 | # - Use parallel-cli extract to fetch full content from promising URLs | COMMENT |
| LOW | …ls/literature-review/references/database_strategies.md | 421 | # 2. Search bioRxiv | COMMENT |
| LOW | …ls/latex-posters/references/ai_graphics_for_posters.md | 281 | # Drug discovery workflow - HIGH-LEVEL ONLY, 3 stages | COMMENT |
| LOW | …ls/citation-management/references/example_workflows.md | 61 | # You have a text file with DOIs (one per line) | COMMENT |
| LOW | skills/literature-review/references/example_workflow.md | 41 | # - Use parallel-cli extract to fetch full content from promising URLs | COMMENT |
| LOW | …ls/literature-review/references/database_strategies.md | 421 | # 2. Search bioRxiv | COMMENT |
| LOW | …ls/latex-posters/references/ai_graphics_for_posters.md | 281 | # Drug discovery workflow - HIGH-LEVEL ONLY, 3 stages | COMMENT |
| LOW | …ls/citation-management/references/example_workflows.md | 61 | # You have a text file with DOIs (one per line) | COMMENT |
| LOW | …kills/literature-review/references/example_workflow.md | 41 | # - Use parallel-cli extract to fetch full content from promising URLs | COMMENT |
| LOW | …ls/literature-review/references/database_strategies.md | 421 | # 2. Search bioRxiv | COMMENT |
| LOW | …ls/latex-posters/references/ai_graphics_for_posters.md | 281 | # Drug discovery workflow - HIGH-LEVEL ONLY, 3 stages | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …skills/pptx-posters/references/poster_content_guide.md | 158 | The validator rejects common placeholder forms such as TODO, TBD, Lorem ipsum, | CODE |
| LOW | …e/skills/scientific-writing/scripts/lint_manuscript.py | 24 | re.compile(r"\blorem ipsum\b", re.IGNORECASE), | CODE |
| LOW | …-posters/references/compilation_and_quality_control.md | 270 | - [ ] No placeholder text remaining (Lorem ipsum, TODO, etc.) | CODE |
| LOW | .claude/skills/latex-posters/scripts/review_poster.sh | 179 | echo " [ ] No placeholder text (Lorem ipsum, TODO, etc.)" | CODE |
| LOW | …kills/latex-posters/assets/poster_quality_checklist.md | 15 | - [ ] No placeholder text remaining (TODO, Lorem ipsum, etc.) | CODE |
| LOW | skills/pptx-posters/references/poster_content_guide.md | 158 | The validator rejects common placeholder forms such as TODO, TBD, Lorem ipsum, | CODE |
| LOW | skills/scientific-writing/scripts/lint_manuscript.py | 24 | re.compile(r"\blorem ipsum\b", re.IGNORECASE), | CODE |
| LOW | …-posters/references/compilation_and_quality_control.md | 270 | - [ ] No placeholder text remaining (Lorem ipsum, TODO, etc.) | CODE |
| LOW | skills/latex-posters/scripts/review_poster.sh | 179 | echo " [ ] No placeholder text (Lorem ipsum, TODO, etc.)" | CODE |
| LOW | skills/latex-posters/assets/poster_quality_checklist.md | 15 | - [ ] No placeholder text remaining (TODO, Lorem ipsum, etc.) | CODE |
| LOW | …skills/pptx-posters/references/poster_content_guide.md | 158 | The validator rejects common placeholder forms such as TODO, TBD, Lorem ipsum, | CODE |
| LOW | …e/skills/scientific-writing/scripts/lint_manuscript.py | 24 | re.compile(r"\blorem ipsum\b", re.IGNORECASE), | CODE |
| LOW | …-posters/references/compilation_and_quality_control.md | 270 | - [ ] No placeholder text remaining (Lorem ipsum, TODO, etc.) | CODE |
| LOW | …/.claude/skills/latex-posters/scripts/review_poster.sh | 179 | echo " [ ] No placeholder text (Lorem ipsum, TODO, etc.)" | CODE |
| LOW | …kills/latex-posters/assets/poster_quality_checklist.md | 15 | - [ ] No placeholder text remaining (TODO, Lorem ipsum, etc.) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ls/latex-posters/references/ai_graphics_for_posters.md | 80 | The #1 issue with AI-generated poster graphics is **TOO MUCH CONTENT**. This causes: | CODE |
| HIGH | …ls/latex-posters/references/ai_graphics_for_posters.md | 80 | The #1 issue with AI-generated poster graphics is **TOO MUCH CONTENT**. This causes: | CODE |
| HIGH | …ls/latex-posters/references/ai_graphics_for_posters.md | 80 | The #1 issue with AI-generated poster graphics is **TOO MUCH CONTENT**. This causes: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | extensions/docx-editor-zotero/word_editor.py | 219 | Validate and save the edited document Args: output_path: Path for output .docx | STRING |
| HIGH | scientific_writer/core.py | 201 | Get the Anthropic API key. Args: api_key: Optional API key to use. If not provided, reads from environ | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …aude/skills/research-lookup/scripts/research_lookup.py | 143 | CODE | |
| LOW | …skills/infographics/scripts/generate_infographic_ai.py | 1013 | CODE | |
| LOW | scripts/publish.py | 91 | CODE | |
| LOW | skills/research-lookup/scripts/research_lookup.py | 143 | CODE | |
| LOW | skills/infographics/scripts/generate_infographic_ai.py | 1013 | CODE | |
| LOW | scientific_writer/api.py | 62 | CODE | |
| LOW | scientific_writer/api.py | 695 | CODE | |
| LOW | …aude/skills/research-lookup/scripts/research_lookup.py | 143 | CODE | |
| LOW | …skills/infographics/scripts/generate_infographic_ai.py | 1013 | CODE |