Repository Analysis

Yuan1z0825/nature-skills

符合nature论文学术表达和科研绘图的Skill

10.7 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of Yuan1z0825/nature-skills, a Python project with 28,552 GitHub stars. SynthScan v2.0 examined 46,277 lines of code across 433 source files, recording 288 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 10.7 places this repository in the Low 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).

10.7
Adjusted Score
10.7
Raw Score
100%
Time Factor
2026-07-13
Last Push
28.6K
Stars
Python
Language
46.3K
Lines of Code
433
Files
288
Pattern Hits
2026-07-14
Scan Date
0.03
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

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.

Severity Breakdown

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.

CRITICAL 0HIGH 14MEDIUM 61LOW 213

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 288 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.

Decorative Section Separators55 hits · 180 pts
SeverityFileLineSnippetContext
MEDIUM…e-academic-search/mcp-server/academic_search_server.py645# ---------------------------------------------------------------------------COMMENT
MEDIUM…e-academic-search/mcp-server/academic_search_server.py647# ---------------------------------------------------------------------------COMMENT
MEDIUM…e-academic-search/mcp-server/academic_search_server.py36# ---------------------------------------------------------------------------COMMENT
MEDIUM…e-academic-search/mcp-server/academic_search_server.py38# ---------------------------------------------------------------------------COMMENT
MEDIUM…e-academic-search/mcp-server/academic_search_server.py83# ---------------------------------------------------------------------------COMMENT
MEDIUM…e-academic-search/mcp-server/academic_search_server.py85# ---------------------------------------------------------------------------COMMENT
MEDIUM…e-academic-search/mcp-server/academic_search_server.py159# ---------------------------------------------------------------------------COMMENT
MEDIUM…e-academic-search/mcp-server/academic_search_server.py161# ---------------------------------------------------------------------------COMMENT
MEDIUM…ature-academic-search/mcp-server/tests/test_sources.py44# ===================================================================COMMENT
MEDIUM…ature-academic-search/mcp-server/tests/test_sources.py46# ===================================================================COMMENT
MEDIUM…ature-academic-search/mcp-server/tests/test_sources.py221# ===================================================================COMMENT
MEDIUM…ature-academic-search/mcp-server/tests/test_sources.py223# ===================================================================COMMENT
MEDIUM…ature-academic-search/mcp-server/tests/test_sources.py671# ===================================================================COMMENT
MEDIUM…ature-academic-search/mcp-server/tests/test_sources.py673# ===================================================================COMMENT
MEDIUM…ature-academic-search/mcp-server/tests/test_sources.py15# ---------------------------------------------------------------------------COMMENT
MEDIUM…ature-academic-search/mcp-server/tests/test_sources.py17# ---------------------------------------------------------------------------COMMENT
MEDIUM…ature-academic-search/mcp-server/tests/test_sources.py464# ===================================================================COMMENT
MEDIUM…ature-academic-search/mcp-server/tests/test_sources.py466# ===================================================================COMMENT
MEDIUM…lls/nature-academic-search/mcp-server/sources/arxiv.py34 # ------------------------------------------------------------------COMMENT
MEDIUM…lls/nature-academic-search/mcp-server/sources/arxiv.py36 # ------------------------------------------------------------------COMMENT
MEDIUM…lls/nature-academic-search/mcp-server/sources/arxiv.py114 # ------------------------------------------------------------------COMMENT
MEDIUM…lls/nature-academic-search/mcp-server/sources/arxiv.py116 # ------------------------------------------------------------------COMMENT
MEDIUM…lls/nature-academic-search/mcp-server/sources/arxiv.py164 # ------------------------------------------------------------------COMMENT
MEDIUM…lls/nature-academic-search/mcp-server/sources/arxiv.py166 # ------------------------------------------------------------------COMMENT
MEDIUM…lls/nature-academic-search/mcp-server/sources/arxiv.py216 # ------------------------------------------------------------------COMMENT
MEDIUM…lls/nature-academic-search/mcp-server/sources/arxiv.py218 # ------------------------------------------------------------------COMMENT
MEDIUM…lls/nature-academic-search/mcp-server/sources/arxiv.py294 # ------------------------------------------------------------------COMMENT
MEDIUM…lls/nature-academic-search/mcp-server/sources/arxiv.py296 # ------------------------------------------------------------------COMMENT
MEDIUM…lls/nature-academic-search/mcp-server/sources/arxiv.py319# ------------------------------------------------------------------COMMENT
MEDIUM…lls/nature-academic-search/mcp-server/sources/arxiv.py321# ------------------------------------------------------------------COMMENT
MEDIUM…/nature-academic-search/mcp-server/sources/crossref.py26 # ------------------------------------------------------------------COMMENT
MEDIUM…/nature-academic-search/mcp-server/sources/crossref.py28 # ------------------------------------------------------------------COMMENT
MEDIUM…/nature-academic-search/mcp-server/sources/crossref.py109 # ------------------------------------------------------------------COMMENT
MEDIUM…/nature-academic-search/mcp-server/sources/crossref.py111 # ------------------------------------------------------------------COMMENT
MEDIUM…/nature-academic-search/mcp-server/sources/crossref.py137 # ------------------------------------------------------------------COMMENT
MEDIUM…/nature-academic-search/mcp-server/sources/crossref.py139 # ------------------------------------------------------------------COMMENT
MEDIUM…lls/nature-academic-search/scripts/format-converter.py48# ── PubMed ──────────────────────────────────────────────────────COMMENT
MEDIUM…lls/nature-academic-search/scripts/format-converter.py121# ── CrossRef ────────────────────────────────────────────────────COMMENT
MEDIUM…lls/nature-academic-search/scripts/format-converter.py159# ── arXiv ───────────────────────────────────────────────────────COMMENT
MEDIUM…lls/nature-academic-search/scripts/format-converter.py197# ── Input parsing ───────────────────────────────────────────────COMMENT
MEDIUM…lls/nature-academic-search/scripts/format-converter.py295# ── Main ────────────────────────────────────────────────────────COMMENT
MEDIUMskills/nature-academic-search/scripts/converters.py66# ── MEDLINE -> RIS ──────────────────────────────────────────────COMMENT
MEDIUMskills/nature-academic-search/scripts/converters.py126# ── MEDLINE -> BibTeX ────────────────────────────────────────────COMMENT
MEDIUMskills/nature-academic-search/scripts/converters.py177# ── CrossRef JSON -> RIS ─────────────────────────────────────────COMMENT
MEDIUMskills/nature-academic-search/scripts/converters.py238# ── CrossRef JSON -> BibTeX ──────────────────────────────────────COMMENT
MEDIUMskills/nature-academic-search/scripts/converters.py297# ── arXiv XML -> RIS ─────────────────────────────────────────────COMMENT
MEDIUMskills/nature-academic-search/scripts/converters.py352# ── arXiv XML -> BibTeX ──────────────────────────────────────────COMMENT
MEDIUMskills/nature-academic-search/scripts/converters.py410# ── MEDLINE -> ENW ───────────────────────────────────────────────COMMENT
MEDIUMskills/nature-academic-search/scripts/converters.py454# ── CrossRef JSON -> ENW ──────────────────────────────────────────COMMENT
MEDIUMskills/nature-academic-search/scripts/converters.py505# ── arXiv XML -> ENW ──────────────────────────────────────────────COMMENT
MEDIUMskills/nature-academic-search/scripts/converters.py556# ── Format dispatch ─────────────────────────────────────────────COMMENT
MEDIUMskills/nature-figure/references/api.md135 # ── MANDATORY: editable SVG text ──────────────────────────────────────────COMMENT
MEDIUMskills/nature-figure/references/api.md139 # ── Layout & style ────────────────────────────────────────────────────────COMMENT
MEDIUMskills/nature-figure/references/design-theory.md337# ── PRIMARY ── editable vector, text as <text> nodes ─────────────────────────COMMENT
MEDIUMskills/nature-figure/references/design-theory.md340# ── SECONDARY ── raster for quick preview / submission portals ────────────────COMMENT
Cross-Language Confusion13 hits · 75 pts
SeverityFileLineSnippetContext
HIGH…aper-to-patent/scripts/disclosure/cnipa_epub_search.py20需已安装:pip install -r scripts/disclosure/requirements-cnipa.txt && python -m playwright install chromiumSTRING
HIGH…aper-to-patent/scripts/disclosure/cnipa_epub_search.py110 "ERROR: pip install -r scripts/disclosure/requirements-cnipa.txt && python -m playwright install chromium",CODE
HIGHskills/nature-citation/scripts/nature_citation.py1720 let currentDownloadUrl = null;CODE
HIGHskills/nature-citation/scripts/nature_citation.py1748 currentDownloadUrl = null;CODE
HIGHskills/nature-citation/scripts/nature_citation.py1774 articles.push(item.zotero_rdf_article);CODE
HIGHskills/nature-citation/scripts/nature_citation.py1776 if (item.journal_resource && item.zotero_rdf_journal && !journals.has(item.journal_resource)) {{CODE
HIGHskills/nature-citation/scripts/nature_citation.py1838 const fromYear = Number(yearFromInput.value || 0);CODE
HIGHskills/nature-citation/scripts/nature_citation.py1839 const toYear = Number(yearToInput.value || 0);CODE
HIGHskills/nature-citation/scripts/nature_citation.py1840 const y = Number(year || 0);CODE
HIGHskills/nature-citation/scripts/nature_citation.py1841 if (fromYear && (!y || y < fromYear)) return false;CODE
HIGHskills/nature-citation/scripts/nature_citation.py1842 if (toYear && (!y || y > toYear)) return false;CODE
HIGHskills/nature-citation/scripts/nature_citation.py1865 const matches = yearPass(year) && queryPass(searchText) && (!selectedOnlyInput.checked || selectedMap.has(key)CODE
HIGHskills/nature-citation/scripts/nature_citation.py1871 const matches = !selectedOnlyInput.checked && queryPass(card.dataset.segment || '');CODE
Hyper-Verbose Identifiers62 hits · 65 pts
SeverityFileLineSnippetContext
LOWskills/nature-paper-to-patent/tests/test_validation.py142 def test_unmapped_claim_fails(self):CODE
LOWskills/nature-paper-to-patent/tests/test_validation.py148 def test_missing_core_equation_fails(self):CODE
LOW…ature-paper-to-patent/scripts/disclosure/md_to_docx.py58def _parse_hidden_image_comment(line: str) -> tuple[str, str] | None:CODE
LOW…ature-paper-to-patent/scripts/disclosure/md_to_docx.py65def _try_embed_hidden_comment_line(CODE
LOW…ature-paper-to-patent/scripts/disclosure/md_to_docx.py141def _fit_image_display_inches(CODE
LOW…ature-paper-to-patent/scripts/disclosure/md_to_docx.py332def _add_rich_content_to_paragraph(CODE
LOW…ature-paper-to-patent/scripts/disclosure/md_to_docx.py667def _line_has_embeddable_images(line: str) -> bool:CODE
LOW…ature-paper-to-patent/scripts/disclosure/md_to_docx.py676def _add_paragraph_with_inline_images(CODE
LOW…paper-to-patent/scripts/disclosure/cnipa_epub_parse.py39def _extract_abstract_from_item_html(item_html: str) -> str | None:CODE
LOW…paper-to-patent/scripts/disclosure/cnipa_epub_parse.py118def _parse_overview_card_layout(html: str) -> list[EpubSearchHit]:CODE
LOW…paper-to-patent/scripts/disclosure/cnipa_epub_parse.py195def _parse_search_result_fallback_links(html: str) -> list[EpubSearchHit]:CODE
LOW…e-paper-to-patent/scripts/disclosure/mermaid_render.py159def _is_mermaid_figure_comment(alt: str, src: str) -> bool:CODE
LOW…ature-paper-to-patent/scripts/disclosure/docx_to_md.py33def _extension_for_content_type(content_type: str) -> str:CODE
LOW…per-to-patent/scripts/disclosure/cnipa_epub_crawler.py100def _wait_result_page_settled(page: Page) -> None:CODE
LOW…per-to-patent/scripts/disclosure/cnipa_epub_crawler.py180def search_epub_keyword_with_page(CODE
LOW…ture-paper-to-patent/scripts/disclosure/math_render.py52def normalize_latex_for_mathtext(body: str) -> str:STRING
LOWskills/nature-citation/scripts/nature_citation.py411def build_zotero_citation_key(item: Candidate) -> str:CODE
LOWskills/nature-citation/scripts/nature_citation.py537def fallback_queries_from_segment(text: str) -> list[str]:CODE
LOWskills/nature-citation/scripts/nature_citation.py813def build_zotero_rdf_document(candidates: list[Candidate]) -> str:CODE
LOW…s/nature-downloader/tests/python/test_config_wizard.py17 def test_start_asks_for_library_resource_url_first(self):CODE
LOW…s/nature-downloader/tests/python/test_config_wizard.py32 def test_infer_whu_metaersp_portal_from_resource_url(self):CODE
LOW…s/nature-downloader/tests/python/test_config_wizard.py48 def test_infer_cas_login_service_callback_from_resource_url(self):CODE
LOW…s/nature-downloader/tests/python/test_config_wizard.py66 def test_resource_url_flow_can_save_schema_valid_config(self):CODE
LOW…s/nature-downloader/tests/python/test_config_wizard.py92 def test_preset_configuration_uses_temp_config_dir(self):CODE
LOW…s/nature-downloader/tests/python/test_config_wizard.py119 def test_sjtu_preset_does_not_use_parameterless_oauth_login(self):CODE
LOW…s/nature-downloader/tests/python/test_config_wizard.py132 def test_cli_show_reports_missing_config(self):CODE
LOW…s/nature-downloader/tests/python/test_config_wizard.py147 def test_cli_url_configures_from_resource_entry(self):CODE
LOW…s/nature-downloader/tests/python/test_config_wizard.py165 def test_cli_infer_does_not_save_config(self):CODE
LOW…s/nature-downloader/tests/python/test_config_wizard.py183 def test_cli_cnki_url_updates_existing_config(self):CODE
LOWskills/nature-downloader/src/schools_loader.py42def _load_schools_without_yaml(text: str) -> list[dict[str, Any]]:CODE
LOWskills/nature-downloader/src/wizard.py521 def configure_from_resource_url(self, resource_url: str) -> dict[str, Any]:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py320def search_scopus_affiliations(query: str, rows: int = 5) -> str:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py263def get_scopus_citation_overview(CODE
LOW…e-academic-search/mcp-server/academic_search_server.py346def search_scopus_serial_titles(CODE
LOW…e-academic-search/mcp-server/academic_search_server.py437def get_sciencedirect_article_metadata(CODE
LOW…ure-academic-search/mcp-server/tests/test_mcp_tools.py16def test_search_papers_mcp_dispatch_uses_default_sources(monkeypatch):CODE
LOW…ure-academic-search/mcp-server/tests/test_mcp_tools.py50def test_search_papers_mcp_dispatch_accepts_elsevier_sources(monkeypatch):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py54 def test_search_returns_unified_format(self, mock_get, mock_config):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py231 def test_search_esearch_efetch_flow(self, mock_get, mock_config):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py641 def test_normalize_id_strips_url_prefix_and_version(self):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py651 def test_build_date_filter_syntax(self):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py657 def test_build_date_filter_only_from(self):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py665 def test_build_date_filter_empty(self):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py699 def test_detect_doi_with_whitespace(self):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py704 def test_detect_unknown_raises(self):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py710 def test_detect_short_number_raises(self):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py101 def test_search_with_type_filter(self, mock_get, mock_config):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py382 def test_search_empty_query_raises(self, mock_config):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py393 def test_search_no_email_raises(self, mock_config):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py407 def test_search_multiple_articles(self, mock_get, mock_config):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py518 def test_search_returns_unified_format(self, mock_request, mock_config):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py556 def test_search_with_date_filter(self, mock_request, mock_config):CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py577 def test_search_with_categories(self, mock_request, mock_config):CODE
LOW…academic-search/mcp-server/tests/test_elsevier_live.py35def test_scopus_live_search_exact_doi():CODE
LOW…academic-search/mcp-server/tests/test_elsevier_live.py44def test_sciencedirect_live_search_title_query():CODE
LOW…academic-search/mcp-server/tests/test_elsevier_live.py53def test_sciencedirect_live_article_metadata_doi_query():CODE
LOW…academic-search/mcp-server/tests/test_elsevier_live.py65def test_default_search_papers_uses_free_sources_only():CODE
LOW…academic-search/mcp-server/tests/test_elsevier_live.py76def test_explicit_search_papers_includes_elsevier_sources():CODE
LOW…ls/nature-academic-search/mcp-server/sources/scopus.py401 def _normalize_affiliation_entry(data: dict[str, Any]) -> dict[str, Any]:CODE
LOW…ls/nature-academic-search/mcp-server/sources/scopus.py443 def _normalize_citation_overview(overview: Any) -> dict[str, Any]:CODE
2 more matches not shown…
Unused Imports59 hits · 56 pts
SeverityFileLineSnippetContext
LOWscripts/generate-star-history.py4CODE
LOWskills/nature-paper-to-patent/tests/test_validation.py2CODE
LOWskills/nature-paper-to-patent/tests/test_validation.py4CODE
LOW…nature-paper-to-patent/scripts/render_flowchart_svg.py366CODE
LOW…ature-paper-to-patent/scripts/disclosure/md_to_docx.py22CODE
LOW…paper-to-patent/scripts/disclosure/cnipa_epub_parse.py7CODE
LOW…r-to-patent/scripts/disclosure/iteration_dialog_log.py5CODE
LOW…e-paper-to-patent/scripts/disclosure/mermaid_render.py27CODE
LOW…ature-paper-to-patent/scripts/disclosure/docx_to_md.py14CODE
LOW…ature-paper-to-patent/scripts/disclosure/pptx_to_md.py14CODE
LOW…aper-to-patent/scripts/disclosure/cnipa_epub_search.py35CODE
LOW…aper-to-patent/scripts/disclosure/cnipa_epub_search.py107CODE
LOW…per-to-patent/scripts/disclosure/cnipa_epub_crawler.py41CODE
LOW…ture-paper-to-patent/scripts/disclosure/math_render.py18CODE
LOWskills/nature-paper2ppt/scripts/audit_pptx_quality.py9CODE
LOWskills/nature-paper2ppt/scripts/audit_pptx_quality.py14CODE
LOWskills/nature-citation/scripts/nature_citation.py9CODE
LOWskills/nature-downloader/scripts/configure_school.py4CODE
LOWskills/nature-downloader/scripts/configure_school.py16CODE
LOWskills/nature-downloader/src/config.py7CODE
LOWskills/nature-downloader/src/validators.py11CODE
LOWskills/nature-downloader/src/schools_loader.py3CODE
LOWskills/nature-downloader/src/wizard.py20CODE
LOWskills/nature-downloader/src/wizard.py26CODE
LOWskills/nature-downloader/src/wizard.py27CODE
LOWskills/nature-downloader/src/health_check.py7CODE
LOWskills/nature-downloader/src/health_check.py11CODE
LOW…e-academic-search/mcp-server/academic_search_server.py7CODE
LOW…e-academic-search/mcp-server/academic_search_server.py23CODE
LOW…ure-academic-search/mcp-server/tests/test_mcp_tools.py3CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py6CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py9CODE
LOW…ature-academic-search/mcp-server/tests/test_sources.py10CODE
LOW…academic-search/mcp-server/tests/test_elsevier_live.py7CODE
LOW…ls/nature-academic-search/mcp-server/utils/__init__.py3CODE
LOW…ls/nature-academic-search/mcp-server/utils/__init__.py3CODE
LOW…ls/nature-academic-search/mcp-server/utils/__init__.py4CODE
LOW…ls/nature-academic-search/mcp-server/utils/__init__.py4CODE
LOW…ls/nature-academic-search/mcp-server/utils/__init__.py4CODE
LOW…ls/nature-academic-search/mcp-server/utils/__init__.py4CODE
LOW…ls/nature-academic-search/mcp-server/utils/__init__.py5CODE
LOW…ls/nature-academic-search/mcp-server/sources/pubmed.py3CODE
LOW…ls/nature-academic-search/mcp-server/sources/scopus.py3CODE
LOW…-academic-search/mcp-server/sources/elsevier_common.py3CODE
LOW…/nature-academic-search/mcp-server/sources/__init__.py3CODE
LOW…/nature-academic-search/mcp-server/sources/__init__.py4CODE
LOW…/nature-academic-search/mcp-server/sources/__init__.py5CODE
LOW…/nature-academic-search/mcp-server/sources/__init__.py6CODE
LOW…/nature-academic-search/mcp-server/sources/__init__.py7CODE
LOW…re-academic-search/mcp-server/sources/sciencedirect.py3CODE
LOW…lls/nature-academic-search/scripts/format-converter.py27CODE
LOWskills/nature-figure/scripts/nature_figure_backend.py4CODE
LOWskills/nature-figure/scripts/nature_figure_backend.py9CODE
LOW…nature-figure/scripts/generate_openrouter_schematic.py4CODE
LOW…nature-figure/scripts/generate_openrouter_schematic.py11CODE
LOW…re/assets/figures4papers/figure_VIGIL/plot_ablation.py4CODE
LOW…ssets/figures4papers/figure_VIGIL/plot_posttraining.py4CODE
LOW…s/figures4papers/figure_CellSpliceNet/plot_ablation.py4CODE
LOW…assets/figures4papers/figure_RNAGenScape/plot_sweep.py2CODE
Excessive Try-Catch Wrapping49 hits · 50 pts
SeverityFileLineSnippetContext
LOWscripts/generate-star-history.py137 except Exception:CODE
LOW…ature-paper-to-patent/scripts/disclosure/md_to_docx.py303 except Exception:CODE
LOW…ature-paper-to-patent/scripts/disclosure/md_to_docx.py328 except Exception:CODE
LOW…e-paper-to-patent/scripts/disclosure/mermaid_render.py238 except Exception as e:CODE
LOW…ature-paper-to-patent/scripts/disclosure/docx_to_md.py74 except Exception as e:CODE
LOW…ature-paper-to-patent/scripts/disclosure/pptx_to_md.py86 except Exception as e:CODE
LOW…ature-paper-to-patent/scripts/disclosure/pptx_to_md.py111 except Exception as e:CODE
MEDIUM…ature-paper-to-patent/scripts/disclosure/pptx_to_md.py21def _require_pptx():CODE
LOW…aper-to-patent/scripts/disclosure/cnipa_epub_search.py127 except Exception as e:CODE
LOW…per-to-patent/scripts/disclosure/cnipa_epub_crawler.py103 except Exception:CODE
LOW…per-to-patent/scripts/disclosure/cnipa_epub_crawler.py107 except Exception:CODE
LOW…per-to-patent/scripts/disclosure/cnipa_epub_crawler.py124 except Exception:CODE
LOW…per-to-patent/scripts/disclosure/cnipa_epub_crawler.py233 except Exception as e:CODE
LOW…ture-paper-to-patent/scripts/disclosure/math_render.py123 except Exception as e:CODE
LOWskills/nature-citation/scripts/nature_citation.py346 except Exception as exc: # noqa: BLE001CODE
LOWskills/nature-citation/scripts/nature_citation.py653 except Exception as exc: # noqa: BLE001CODE
LOWskills/nature-citation/scripts/nature_citation.py911 except Exception as exc: # noqa: BLE001CODE
LOWskills/nature-citation/scripts/nature_citation.py1031 except Exception as exc: # noqa: BLE001CODE
LOWskills/nature-downloader/scripts/extract_pdf_text.py15 except Exception:CODE
LOWskills/nature-downloader/scripts/extract_pdf_text.py61 except Exception:CODE
LOWskills/nature-downloader/src/validators.py100 except Exception as e:CODE
LOWskills/nature-downloader/src/validators.py138 except Exception as e:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py314 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py327 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py638 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py207 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py234 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py257 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py288 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py301 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py340 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py384 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py401 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py414 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py431 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py449 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py494 except Exception as exc:CODE
LOW…e-academic-search/mcp-server/academic_search_server.py551 except Exception as exc:CODE
LOW…ls/nature-academic-search/mcp-server/sources/scopus.py340 except Exception as exc:CODE
LOW…re-academic-search/mcp-server/sources/sciencedirect.py94 except Exception as exc:CODE
LOW…lls/nature-academic-search/scripts/format-converter.py61 except Exception as e:CODE
LOW…lls/nature-academic-search/scripts/format-converter.py73 except Exception as e:CODE
LOW…lls/nature-academic-search/scripts/format-converter.py137 except Exception as e:CODE
LOW…lls/nature-academic-search/scripts/format-converter.py176 except Exception as e:CODE
MEDIUM…lls/nature-academic-search/scripts/format-converter.py249 print(f"Error: Input file not found: {input_file}")CODE
LOW…lls/nature-academic-search/scripts/format-converter.py306 except Exception as e:CODE
LOW…lls/nature-academic-search/scripts/format-converter.py327 except Exception as e:CODE
LOW…lls/nature-academic-search/scripts/format-converter.py347 except Exception as e:CODE
LOWskills/nature-academic-search/scripts/preflight.py52 except Exception as e:CODE
Deep Nesting21 hits · 20 pts
SeverityFileLineSnippetContext
LOWscripts/generate-star-history.py71CODE
LOW…s/nature-paper-to-patent/scripts/render_patent_docx.py249CODE
LOW…nature-paper-to-patent/scripts/render_flowchart_svg.py30CODE
LOWskills/nature-paper-to-patent/scripts/math_to_omml.py60CODE
LOW…ature-paper-to-patent/scripts/disclosure/md_to_docx.py90CODE
LOW…ature-paper-to-patent/scripts/disclosure/md_to_docx.py527CODE
LOW…ature-paper-to-patent/scripts/disclosure/md_to_docx.py700CODE
LOW…e-paper-to-patent/scripts/disclosure/mermaid_render.py167CODE
LOW…e-paper-to-patent/scripts/disclosure/mermaid_render.py341CODE
LOW…ature-paper-to-patent/scripts/disclosure/pptx_to_md.py65CODE
LOW…ture-paper-to-patent/scripts/disclosure/math_render.py166CODE
LOWskills/nature-downloader/src/validators.py19CODE
LOWskills/nature-downloader/src/wizard.py38CODE
LOW…e-academic-search/mcp-server/academic_search_server.py455CODE
LOW…ls/nature-academic-search/mcp-server/sources/pubmed.py67CODE
LOW…lls/nature-academic-search/scripts/format-converter.py224CODE
LOW…ills/nature-academic-search/scripts/academic_search.py210CODE
LOW…ills/nature-academic-search/scripts/academic_search.py304CODE
LOWskills/nature-academic-search/scripts/converters.py19CODE
LOWskills/nature-academic-search/scripts/preflight.py41CODE
LOW…nature-figure/scripts/generate_openrouter_schematic.py169CODE
Structural Annotation Overuse11 hits · 16 pts
SeverityFileLineSnippetContext
LOWskills/nature-ref-verifier/SKILL.md24### Step 1: 解析输入COMMENT
LOWskills/nature-ref-verifier/SKILL.md39### Step 2: 多源并行查询COMMENT
LOWskills/nature-ref-verifier/SKILL.md53### Step 3: 字段级对比COMMENT
LOWskills/nature-ref-verifier/SKILL.md84### Step 4: 置信度评估COMMENT
LOWskills/nature-ref-verifier/SKILL.md95### Step 5: 输出报告COMMENT
LOW…/nature-literature-pipeline/references/gap-analysis.md12### Step 1: Multi-source searchCOMMENT
LOW…/nature-literature-pipeline/references/gap-analysis.md21### Step 2: Decompose and classifyCOMMENT
LOW…/nature-literature-pipeline/references/gap-analysis.md37### Step 3: Extract edge papersCOMMENT
LOW…/nature-literature-pipeline/references/gap-analysis.md46### Step 4: Output gap reportCOMMENT
LOW…ls/nature-academic-search/mcp-server/sources/pubmed.py192 # Step 1: esearch to get WebEnv + query_keyCOMMENT
LOW…ls/nature-academic-search/mcp-server/sources/pubmed.py217 # Step 2: efetch to get article detailsCOMMENT
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…/nature-figure/references/figure-legend-conventions.md59## Length & title limits (consistency with style-guardrails)COMMENT
MEDIUMskills/nature-figure/references/r-workflow.md31## Contract scaffoldCOMMENT
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH…ls/nature-academic-search/mcp-server/sources/pubmed.py240Fetch a single article by PMID. Args: pmid: PubMed ID (numeric string). Returns: STRING
Modern Structural Boilerplate3 hits · 3 pts
SeverityFileLineSnippetContext
LOW…s/nature-paper-to-patent/scripts/render_patent_docx.py18def set_run_font(run, name: str, size: float, bold: bool = False) -> None:CODE
LOW…ls/nature-academic-search/mcp-server/utils/__init__.py7__all__ = [CODE
LOW…/nature-academic-search/mcp-server/sources/__init__.py9__all__ = [CODE
Verbosity Indicators2 hits · 3 pts
SeverityFileLineSnippetContext
LOW…ls/nature-academic-search/mcp-server/sources/pubmed.py192 # Step 1: esearch to get WebEnv + query_keyCOMMENT
LOW…ls/nature-academic-search/mcp-server/sources/pubmed.py217 # Step 2: efetch to get article detailsCOMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM…/figures4papers/figure_Dispersion/plot_illustration.py46 # normalize (robust against tiny numerical drift)COMMENT
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM…ets/figures4papers/figure_RNAGenScape/plot_manifold.py23 # Define a multi-well "energy" function (inverted to form valleys)COMMENT
AI Structural Patterns3 hits · 2 pts
SeverityFileLineSnippetContext
LOW…ture-paper-to-patent/scripts/disclosure/math_render.py70CODE
LOW…e-academic-search/mcp-server/academic_search_server.py346CODE
LOW…/figures4papers/figure_Dispersion/plot_illustration.py65CODE
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/update-codex-skills.sh1#!/usr/bin/env bashCOMMENT
LOWskills/nature-downloader/data/schools.yaml1# 预设学校库COMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/update-codex-skills.sh18# Usage:COMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWskills/nature-academic-search/install.sh76 # Check if academic-search already existsCOMMENT
Fake / Example Data1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…/nature-academic-search/mcp-server/sources/crossref.py20 mailto = config.crossref_mailto or "user@example.com"CODE