A general purpose scientific writer
This report summarizes scanner evidence for K-Dense-AI/claude-scientific-writer, a Python project with 2,441 GitHub stars. SynthScan examined 376,511 lines of code across 1362 source files, recording 4186 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 31.8 (High pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1264 finding(s).
Are imports declared and package/API names verified? 491 finding(s).
Are wrappers, guards, and repeated structures necessary? 2903 finding(s).
Which changes need focused human review? 4186 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 4186 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 |
| 1563 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 | 34 | print("Error: requests library not found. Install with: uv pip install requests") | CODE |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 383 | except Exception as e: | CODE |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 486 | except Exception as e: | CODE |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 649 | except Exception as e: | CODE |
| MEDIUM⚡ | …scientific-schematics/scripts/generate_schematic_ai.py | 908 | print("Error: OPENROUTER_API_KEY not found") | STRING |
| MEDIUM⚡ | …scientific-schematics/scripts/generate_schematic_ai.py | 917 | print("Error: Iterations must be between 1 and 2") | STRING |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 943 | except Exception as e: | STRING |
| MEDIUM⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 159 | print("Error: OPENROUTER_API_KEY not found") | STRING |
| MEDIUM⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 173 | print(f"Error: AI generation script not found: {ai_script}") | STRING |
| LOW | …ls/scientific-schematics/scripts/generate_schematic.py | 191 | except Exception as e: | STRING |
| MEDIUM | …ls/scientific-schematics/scripts/generate_schematic.py | 192 | print(f"Error executing AI generation: {e}") | STRING |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 152 | print(f'Error: CrossRef API returned status {response.status_code} for DOI: {doi}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 156 | print(f'Error extracting metadata from DOI {doi}: {e}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 224 | print(f'Error: PubMed API returned status {response.status_code} for PMID: {pmid}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 228 | print(f'Error extracting metadata from PMID {pmid}: {e}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 315 | print(f'Error: arXiv API returned status {response.status_code} for ID: {arxiv_id}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 319 | print(f'Error extracting metadata from arXiv {arxiv_id}: {e}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 491 | print(f'Error: ID converter returned status {response.status_code} for {pmcid}', file=sys.stderr) | CODE |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 498 | print(f'Error: Could not resolve {pmcid} to a PMID or DOI', file=sys.stderr) | CODE |
| MEDIUM⚡ | …skills/citation-management/scripts/extract_metadata.py | 504 | print(f'Error resolving PMCID {pmcid}: {e}', file=sys.stderr) | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 192 | print(f'Error: No article found for PMID: {pmid}', file=sys.stderr) | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 271 | print(f'Error: No entry found for arXiv ID: {arxiv_id}', file=sys.stderr) | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 517 | print(f'Error: URL returned status {response.status_code}: {url}', file=sys.stderr) | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 534 | print(f'Error: No DOI found in page metadata for {url}', file=sys.stderr) | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 538 | print(f'Error fetching {url}: {e}', file=sys.stderr) | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 569 | print(f'Error: Unknown identifier type: {identifier}', file=sys.stderr) | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 593 | print(f'Error: Unknown identifier type: {identifier}', file=sys.stderr) | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 641 | print(f'Error reading input file: {e}', file=sys.stderr) | CODE |
| MEDIUM | …skills/citation-management/scripts/extract_metadata.py | 663 | print('Error: No successful extractions', file=sys.stderr) | CODE |
| LOW⚡ | …skills/citation-management/scripts/extract_metadata.py | 155 | except Exception as e: | CODE |
| LOW⚡ | …skills/citation-management/scripts/extract_metadata.py | 227 | except Exception as e: | CODE |
| LOW⚡ | …skills/citation-management/scripts/extract_metadata.py | 318 | except Exception as e: | CODE |
| LOW | …skills/citation-management/scripts/extract_metadata.py | 640 | except Exception as e: | CODE |
| MEDIUM | …de/skills/citation-management/scripts/format_bibtex.py | 267 | print(f'Error writing file: {e}', file=sys.stderr) | CODE |
| LOW | …s/citation-management/scripts/search_google_scholar.py | 52 | except Exception as e: | CODE |
| MEDIUM | …s/citation-management/scripts/search_google_scholar.py | 72 | print('Error: scholarly library not installed', file=sys.stderr) | CODE |
| LOW | …s/citation-management/scripts/search_google_scholar.py | 118 | except Exception as e: | CODE |
| MEDIUM | …s/citation-management/scripts/search_google_scholar.py | 119 | print(f'Error during search: {e}', file=sys.stderr) | CODE |
| MEDIUM | .claude/skills/citation-management/scripts/_common.py | 191 | print(f'Error reading file: {error}', file=sys.stderr) | CODE |
| LOW | …ills/citation-management/scripts/validate_citations.py | 317 | except Exception as e: | CODE |
| MEDIUM | …ills/citation-management/scripts/validate_citations.py | 318 | 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 |
| MEDIUM⚡ | …de/skills/citation-management/scripts/doi_to_bibtex.py | 153 | print(f'Error reading input file: {e}', file=sys.stderr) | CODE |
| MEDIUM | …de/skills/citation-management/scripts/doi_to_bibtex.py | 173 | print('Error: No successful conversions', file=sys.stderr) | CODE |
| LOW | …de/skills/citation-management/scripts/doi_to_bibtex.py | 191 | except Exception as e: | CODE |
| MEDIUM | …de/skills/citation-management/scripts/doi_to_bibtex.py | 192 | print(f'Error writing output file: {e}', file=sys.stderr) | CODE |
| MEDIUM | …/skills/citation-management/scripts/search_openalex.py | 116 | print(f'Error searching OpenAlex: {e}', file=sys.stderr) | CODE |
| MEDIUM | …/skills/citation-management/scripts/search_openalex.py | 119 | print(f'Error: OpenAlex returned invalid JSON: {e}', file=sys.stderr) | CODE |
| LOW | …de/skills/citation-management/scripts/search_pubmed.py | 115 | except Exception as e: | CODE |
| MEDIUM | …de/skills/citation-management/scripts/search_pubmed.py | 116 | print(f'Error searching PubMed: {e}', file=sys.stderr) | CODE |
| LOW | …de/skills/citation-management/scripts/search_pubmed.py | 169 | except Exception as e: | CODE |
| 638 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 | 113 | CODE | |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 852 | CODE | |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 310 | CODE | |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 416 | CODE | |
| LOW | …scientific-schematics/scripts/generate_schematic_ai.py | 494 | CODE | |
| LOW | …ls/scientific-schematics/scripts/generate_schematic.py | 43 | CODE | |
| LOW | …skills/citation-management/scripts/extract_metadata.py | 159 | CODE | |
| LOW | …skills/citation-management/scripts/extract_metadata.py | 245 | CODE | |
| LOW | …skills/citation-management/scripts/extract_metadata.py | 507 | CODE | |
| LOW | …skills/citation-management/scripts/extract_metadata.py | 542 | CODE | |
| LOW | …s/citation-management/scripts/search_google_scholar.py | 55 | CODE | |
| LOW | .claude/skills/citation-management/scripts/_common.py | 45 | CODE | |
| LOW | .claude/skills/citation-management/scripts/_common.py | 72 | CODE | |
| LOW | .claude/skills/citation-management/scripts/_common.py | 97 | CODE | |
| LOW | .claude/skills/citation-management/scripts/_common.py | 273 | CODE | |
| LOW | …ills/citation-management/scripts/validate_citations.py | 88 | CODE | |
| LOW | …ills/citation-management/scripts/validate_citations.py | 342 | CODE | |
| LOW | …de/skills/citation-management/scripts/search_pubmed.py | 119 | CODE | |
| LOW | …de/skills/citation-management/scripts/search_pubmed.py | 187 | 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 | 114 | CODE | |
| LOW | …skills/infographics/scripts/generate_infographic_ai.py | 445 | CODE | |
| LOW | …skills/infographics/scripts/generate_infographic_ai.py | 699 | CODE | |
| LOW | …skills/infographics/scripts/generate_infographic_ai.py | 882 | 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 | |
| 481 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 |
| 403 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 | 11 | CODE | |
| LOW | .claude/skills/citation-management/scripts/_common.py | 20 | CODE | |
| LOW | …/skills/citation-management/scripts/search_openalex.py | 17 | 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 | |
| 294 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | …scientific-schematics/scripts/generate_schematic_ai.py | 910 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …scientific-schematics/scripts/generate_schematic_ai.py | 911 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 163 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 164 | 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⚡ | …skills/infographics/scripts/generate_infographic_ai.py | 1411 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …skills/infographics/scripts/generate_infographic_ai.py | 1412 | 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 | 910 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …lls/literature-review/scripts/generate_schematic_ai.py | 911 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …skills/literature-review/scripts/generate_schematic.py | 163 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …skills/literature-review/scripts/generate_schematic.py | 164 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …/skills/latex-posters/scripts/generate_schematic_ai.py | 910 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …/skills/latex-posters/scripts/generate_schematic_ai.py | 911 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …ude/skills/latex-posters/scripts/generate_schematic.py | 163 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …ude/skills/latex-posters/scripts/generate_schematic.py | 164 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …lls/scientific-slides/scripts/generate_schematic_ai.py | 910 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …lls/scientific-slides/scripts/generate_schematic_ai.py | 911 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …s/scientific-slides/scripts/generate_slide_image_ai.py | 839 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …s/scientific-slides/scripts/generate_slide_image_ai.py | 840 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …skills/scientific-slides/scripts/generate_schematic.py | 163 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …skills/scientific-slides/scripts/generate_schematic.py | 164 | 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 | 910 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …scientific-schematics/scripts/generate_schematic_ai.py | 911 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 163 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 164 | 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⚡ | skills/infographics/scripts/generate_infographic_ai.py | 1411 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | skills/infographics/scripts/generate_infographic_ai.py | 1412 | 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 | 910 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …lls/literature-review/scripts/generate_schematic_ai.py | 911 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | skills/literature-review/scripts/generate_schematic.py | 163 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | skills/literature-review/scripts/generate_schematic.py | 164 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | skills/latex-posters/scripts/generate_schematic_ai.py | 910 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | skills/latex-posters/scripts/generate_schematic_ai.py | 911 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | skills/latex-posters/scripts/generate_schematic.py | 163 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | skills/latex-posters/scripts/generate_schematic.py | 164 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …lls/scientific-slides/scripts/generate_schematic_ai.py | 910 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …lls/scientific-slides/scripts/generate_schematic_ai.py | 911 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …s/scientific-slides/scripts/generate_slide_image_ai.py | 839 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …s/scientific-slides/scripts/generate_slide_image_ai.py | 840 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | skills/scientific-slides/scripts/generate_schematic.py | 163 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | skills/scientific-slides/scripts/generate_schematic.py | 164 | 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⚡ | …scientific-schematics/scripts/generate_schematic_ai.py | 910 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …scientific-schematics/scripts/generate_schematic_ai.py | 911 | print("\nOr add OPENROUTER_API_KEY=your_api_key to a .env file") | STRING |
| HIGH⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 163 | print(" export OPENROUTER_API_KEY='your_api_key'") | STRING |
| HIGH⚡ | …ls/scientific-schematics/scripts/generate_schematic.py | 164 | 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 |
| 22 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | CHANGELOG.md | 1054 | # Step 1: Identify topics | COMMENT |
| LOW⚡ | CHANGELOG.md | 1058 | # Step 2: Review/edit topics.txt manually | COMMENT |
| LOW⚡ | CHANGELOG.md | 1060 | # 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: Apply the safe corrections | COMMENT |
| LOW | …/citation-management/references/citation_validation.md | 567 | ### Step 5: Manual Review | COMMENT |
| LOW | …/citation-management/references/citation_validation.md | 578 | ### 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 | 49 | # Step 7: Review any issues | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 52 | # Step 8: Use in LaTeX | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 78 | # Step 1: Format and standardize | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 82 | # Step 2: Remove duplicates | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 87 | # Step 3: Check what is still wrong before sorting | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 91 | # Step 4: Sort by year | COMMENT |
| LOW⚡ | …ls/citation-management/references/example_workflows.md | 97 | # 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 | …s/citation-management/scripts/search_google_scholar.py | 110 | except ValueError: | CODE |
| HIGH | .claude/skills/xlsx/scripts/office/validators/docx.py | 459 | except Exception: | CODE |
| HIGH | …ude/skills/xlsx/scripts/office/validators/redlining.py | 247 | except (subprocess.CalledProcessError, FileNotFoundError, Exception): | CODE |
| HIGH | .claude/skills/xlsx/scripts/office/validators/base.py | 157 | except Exception: | CODE |
| HIGH | .claude/skills/pptx-posters/scripts/_common.py | 140 | except FileNotFoundError: | CODE |
| HIGH | .claude/skills/pptx-posters/scripts/generate_poster.py | 348 | except FileNotFoundError: | CODE |
| HIGH | .claude/skills/treatment-plans/scripts/_common.py | 1077 | except OSError: | CODE |
| HIGH | …e/skills/literature-review/scripts/search_databases.py | 200 | except (ValueError, TypeError): | CODE |
| HIGH | .claude/skills/pptx/scripts/office/validators/docx.py | 459 | except Exception: | CODE |
| HIGH | …ude/skills/pptx/scripts/office/validators/redlining.py | 247 | except (subprocess.CalledProcessError, FileNotFoundError, Exception): | CODE |
| HIGH | .claude/skills/pptx/scripts/office/validators/base.py | 157 | except Exception: | CODE |
| HIGH | …s/scientific-slides/scripts/generate_slide_image_ai.py | 769 | except Exception: | CODE |
| HIGH | .claude/skills/generate-image/scripts/generate_image.py | 250 | except (json.JSONDecodeError, AttributeError): | CODE |
| HIGH | .claude/skills/generate-image/scripts/generate_image.py | 239 | except ValueError: | CODE |
| HIGH | .claude/skills/docx/scripts/comment.py | 130 | except ValueError: | CODE |
| HIGH | .claude/skills/docx/scripts/comment.py | 143 | except ValueError: | CODE |
| HIGH | .claude/skills/docx/scripts/office/validators/docx.py | 459 | except Exception: | CODE |
| HIGH | …ude/skills/docx/scripts/office/validators/redlining.py | 247 | except (subprocess.CalledProcessError, FileNotFoundError, Exception): | CODE |
| HIGH | .claude/skills/docx/scripts/office/validators/base.py | 157 | except Exception: | CODE |
| HIGH | …s/citation-management/scripts/search_google_scholar.py | 110 | except ValueError: | CODE |
| HIGH | skills/xlsx/scripts/office/validators/docx.py | 459 | except Exception: | CODE |
| HIGH | skills/xlsx/scripts/office/validators/redlining.py | 247 | except (subprocess.CalledProcessError, FileNotFoundError, Exception): | CODE |
| HIGH | skills/xlsx/scripts/office/validators/base.py | 157 | except Exception: | CODE |
| HIGH | skills/pptx-posters/scripts/_common.py | 140 | except FileNotFoundError: | CODE |
| HIGH | skills/pptx-posters/scripts/generate_poster.py | 348 | except FileNotFoundError: | CODE |
| HIGH | skills/treatment-plans/scripts/_common.py | 1077 | except OSError: | CODE |
| HIGH | skills/literature-review/scripts/search_databases.py | 200 | except (ValueError, TypeError): | CODE |
| HIGH | skills/pptx/scripts/office/validators/docx.py | 459 | except Exception: | CODE |
| HIGH | skills/pptx/scripts/office/validators/redlining.py | 247 | except (subprocess.CalledProcessError, FileNotFoundError, Exception): | CODE |
| HIGH | skills/pptx/scripts/office/validators/base.py | 157 | except Exception: | CODE |
| HIGH | …s/scientific-slides/scripts/generate_slide_image_ai.py | 769 | except Exception: | CODE |
| HIGH | skills/generate-image/scripts/generate_image.py | 250 | except (json.JSONDecodeError, AttributeError): | CODE |
| HIGH | skills/generate-image/scripts/generate_image.py | 239 | except ValueError: | CODE |
| HIGH | skills/docx/scripts/comment.py | 130 | except ValueError: | CODE |
| HIGH | skills/docx/scripts/comment.py | 143 | except ValueError: | CODE |
| HIGH | skills/docx/scripts/office/validators/docx.py | 459 | except Exception: | CODE |
| HIGH | skills/docx/scripts/office/validators/redlining.py | 247 | except (subprocess.CalledProcessError, FileNotFoundError, Exception): | CODE |
| HIGH | skills/docx/scripts/office/validators/base.py | 157 | except Exception: | CODE |
| HIGH | …s/citation-management/scripts/search_google_scholar.py | 110 | except ValueError: | CODE |
| HIGH | …/.claude/skills/xlsx/scripts/office/validators/docx.py | 459 | except Exception: | CODE |
| HIGH | …ude/skills/xlsx/scripts/office/validators/redlining.py | 247 | except (subprocess.CalledProcessError, FileNotFoundError, Exception): | CODE |
| HIGH | …/.claude/skills/xlsx/scripts/office/validators/base.py | 157 | except Exception: | CODE |
| HIGH | …_writer/.claude/skills/pptx-posters/scripts/_common.py | 140 | except FileNotFoundError: | CODE |
| HIGH | ….claude/skills/pptx-posters/scripts/generate_poster.py | 348 | except FileNotFoundError: | CODE |
| HIGH | …iter/.claude/skills/treatment-plans/scripts/_common.py | 1077 | except OSError: | CODE |
| HIGH | …e/skills/literature-review/scripts/search_databases.py | 200 | except (ValueError, TypeError): | CODE |
| HIGH | …/.claude/skills/pptx/scripts/office/validators/docx.py | 459 | except Exception: | CODE |
| HIGH | …ude/skills/pptx/scripts/office/validators/redlining.py | 247 | except (subprocess.CalledProcessError, FileNotFoundError, Exception): | CODE |
| HIGH | …/.claude/skills/pptx/scripts/office/validators/base.py | 157 | except Exception: | CODE |
| HIGH | …s/scientific-slides/scripts/generate_slide_image_ai.py | 769 | except Exception: | CODE |
| HIGH | …claude/skills/generate-image/scripts/generate_image.py | 250 | except (json.JSONDecodeError, AttributeError): | CODE |
| HIGH | …claude/skills/generate-image/scripts/generate_image.py | 239 | except ValueError: | CODE |
| HIGH | …ientific_writer/.claude/skills/docx/scripts/comment.py | 130 | except ValueError: | CODE |
| HIGH | …ientific_writer/.claude/skills/docx/scripts/comment.py | 143 | except ValueError: | CODE |
| HIGH | …/.claude/skills/docx/scripts/office/validators/docx.py | 459 | except Exception: | CODE |
| HIGH | …ude/skills/docx/scripts/office/validators/redlining.py | 247 | except (subprocess.CalledProcessError, FileNotFoundError, Exception): | CODE |
| HIGH | …/.claude/skills/docx/scripts/office/validators/base.py | 157 | except Exception: | CODE |
| 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 | 792 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | …skills/citation-management/scripts/extract_metadata.py | 55 | # Check if URL | COMMENT |
| LOW | …skills/infographics/scripts/generate_infographic_ai.py | 1259 | # Check if quality is acceptable | STRING |
| LOW | …lls/literature-review/scripts/generate_schematic_ai.py | 792 | # 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 | 792 | # 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 | 792 | # 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 | 792 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | skills/citation-management/scripts/extract_metadata.py | 55 | # Check if URL | COMMENT |
| LOW | skills/infographics/scripts/generate_infographic_ai.py | 1259 | # Check if quality is acceptable | STRING |
| LOW | …lls/literature-review/scripts/generate_schematic_ai.py | 792 | # 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 | 792 | # 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 | 792 | # 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 | 792 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| LOW | …skills/citation-management/scripts/extract_metadata.py | 55 | # Check if URL | COMMENT |
| LOW | …skills/infographics/scripts/generate_infographic_ai.py | 1259 | # Check if quality is acceptable | STRING |
| LOW | …lls/literature-review/scripts/generate_schematic_ai.py | 792 | # 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 | 792 | # 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 | 792 | # Check if quality is acceptable - STOP EARLY if so | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …scientific-schematics/scripts/generate_schematic_ai.py | 173 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …lls/literature-review/scripts/generate_schematic_ai.py | 173 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …/skills/latex-posters/scripts/generate_schematic_ai.py | 173 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …lls/scientific-slides/scripts/generate_schematic_ai.py | 173 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …scientific-schematics/scripts/generate_schematic_ai.py | 173 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …lls/literature-review/scripts/generate_schematic_ai.py | 173 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | skills/latex-posters/scripts/generate_schematic_ai.py | 173 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …lls/scientific-slides/scripts/generate_schematic_ai.py | 173 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …scientific-schematics/scripts/generate_schematic_ai.py | 173 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …lls/literature-review/scripts/generate_schematic_ai.py | 173 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …/skills/latex-posters/scripts/generate_schematic_ai.py | 173 | # Scientific diagram best practices prompt template | COMMENT |
| MEDIUM | …lls/scientific-slides/scripts/generate_schematic_ai.py | 173 | # 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 | …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 |
|---|---|---|---|---|
| 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 | …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 | 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 | …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 |
|---|---|---|---|---|
| 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 | 1102 | 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 | 1102 | 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 | 1102 | CODE |