agents365-ai/365-skills

journal-if

Use when looking up journal impact factors (JCR IF), checking a journal's impact factor by name, comparing IF across journals, or answering questions about "影响因子" / "impact factor" / "IF".

Ver código-fonte
Documento original do Skill

Renderizado do repositório de origem, preservando títulos, exemplos, código, tabelas, links e imagens.

Journal Impact Factor Lookup

Look up journal impact factors using a two-source cascade: bundled CSV cache (~200 common journals) → OpenAlex API (approximate 2-year IF for any journal).

Critical rule: Always use journal_if.py for lookups. Never guess impact factors — they change yearly and vary by edition.

Quick Reference

User wants...TierCommand
Look up IF of a journalreadpython3 journal_if.py lookup "Nature Medicine"
Search for a journalreadpython3 journal_if.py search "cancer immunology"
Process a list of journalsreadpython3 journal_if.py batch journals.txt
Cache-only (no network)readpython3 journal_if.py --offline lookup "Cell"
Inspect cache statereadpython3 journal_if.py cache status
Refresh upstream CSVwritepython3 journal_if.py cache update
Machine-readable CLI contractreadpython3 journal_if.py schema
Schema for one subcommandreadpython3 journal_if.py schema lookup

Output format

Stdout is a stable JSON envelope when the CLI is not attached to a terminal (piped or captured by an agent), and a human-readable view when run on a TTY. To force a format: --format json|table|human|auto. --json is a back-compat alias for --format json.

Envelope shape:

  • Success: { "ok": true, "data": {...}, "meta": { "schema_version", "cli_version", "latency_ms" } }
  • Partial success (batch): { "ok": "partial", "data": { "succeeded": [...], "failed": [...] }, "meta": {...} }
  • Error: { "ok": false, "error": { "code", "message", "retryable", ... }, "meta": {...} }

Exit codes

CodeMeaning
0success (including partial success)
1runtime / upstream error
2validation / bad input (missing file, bad flag)
3not found (no journal matched)

Error codes (inside error.code)

CodeRetryableExitMeaning
not_foundno3Lookup completed but no source matched
upstream_unavailableyes1OpenAlex API failed transiently; retry later or use --offline
file_not_foundno2Input file path does not exist
validation_errorno2Bad argument or flag combination
runtime_erroryes1Unexpected internal error

Data Sources

  1. Bundled CSV — ~200 top journals across life sciences, medicine, chemistry, physics, and engineering. Curated from JCR data, shipped with the skill. Always available, instant.
  1. OpenAlex API — Free, open API that computes an approximate 2-year impact factor from citation counts. Covers virtually all academic journals. The number differs from the official JCR IF — it's a citation-rate metric computed from the same formula (citations in year Y to items published in Y-1 and Y-2, divided by citable items in those two years) but using OpenAlex's own article classification. Adequate for ranking and comparison; do not cite as "the JCR impact factor" in formal contexts.

When to use which

ScenarioSource
Quick check of a major journalBundled CSV (instant)
Niche or newer journalOpenAlex fallback (automatic)
Formal submission / grantNote: OpenAlex IF ≠ official JCR IF. Cite only as approximate.
Batch processing many journalsCSV for cached ones, OpenAlex for misses
Offline / air-gapped--offline flag (bundled CSV only)

Workflow

Step 1: Detect Intent

IntentAction
"What's the IF of Nature?"lookup "Nature"
"Compare IF of Cell and Science"Run lookup twice, compare results
"Which immunology journals have IF > 20?"search "immunology" then filter
"Process this list of journals"batch journals.txt
"Is this a high-impact journal?"lookup then interpret IF in field context

Step 2: Execute

Run the appropriate journal_if.py command. The script handles:

  1. Local CSV lookup (instant, ~200 curated journals)
  2. OpenAlex API fallback (automatic, approximate 2-year IF)
  3. Fuzzy matching — catches minor name variations

Step 3: Present Results

  • Show the journal name, impact factor, and data year
  • Note the source (CSV cache vs OpenAlex approximate)
  • For search results: show a table with IF, year, and category

Understanding Impact Factor

IF RangeTypical TierExample
> 30Elite (top 0.1%)Nature (64.8), Science (56.9), Cell (64.5)
20–30Exceptional (top 1%)Cancer Cell (50.3), Immunity (32.4)
10–20Excellent (top 5%)Nature Communications (16.6), Sci Adv (13.6)
5–10Strong (top 15%)eLife (7.7), Cell Reports (8.8)
2–5SolidPLOS ONE (3.7), Sci Rep (4.6)
< 2Niche / newMany field-specific and new journals

Caveats:

  • IF varies dramatically by field — a top mathematics journal may have IF < 5 while a mid-tier oncology journal has IF > 10.
  • Always compare IF within the same field.
  • The IF data year matters; values shift annually.
  • OpenAlex approximate IF differs from official JCR IF; treat as a ranking metric, not a certified number.

Batch Processing

Create a text file with one journal name per line:

Nature Medicine
Journal of Biological Chemistry
Proceedings of the National Academy of Sciences

Then run:

bash
python3 journal_if.py batch journals.txt

Troubleshooting

IssueSolution
"No data found"Try a shorter/alternative name; use search for fuzzy matching
OpenAlex returns 0 or None IFThe journal may be too new (needs 2+ years of data); use --offline to check cache only
OpenAlex IF differs from JCRExpected — OpenAlex uses its own article classification. Use for ranking, not formal citation.
Cache download failsCheck network; the bundled CSV still works offline
Wrong journal matchedUse more specific name; the fuzzy matcher picks the closest substring match
do mesmo repositório

Mais Skills

Todos os Skills
agents365-ai
Comunidade

drawio-skill

Create, edit, synchronize, inspect, test, and publish editable draw.io diagrams. Use when the user explicitly requests draw.io/diagrams.net, needs a polished architecture, ERD, UML, sequence, C4, SysML, BPMN, network, swimlane, ML, or infrastructure diagram, wants code/IaC/SQL/OpenAPI/AsyncAPI/Protobuf converted into a diagram, or wants an existing diagram queried, reviewed, diffed, restyled, kept in sync, or made interactive. Prefer Mermaid/PlantUML elsewhere when the requested artifact is diagrams-as-code rather than an editable draw.io file.

instalações
9
GitHub Stars
48
Atualizado
11 de set.
agents365-ai
Comunidade

agent-native-design

Use when designing, reviewing, or refactoring a CLI that must serve AI agents alongside humans, or when converting an API or SDK into an agent-usable CLI interface.

instalações
3
GitHub Stars
48
Atualizado
11 de set.
agents365-ai
Comunidade

assetseeker

Search free commercial-use creative assets across multiple online sources — photos, illustrations, icons, video footage, music, sound effects, and fonts. Use when the user needs to find assets for videos, PPTs, articles, or any content creation. Trigger on phrases like "find me a photo of", "search for icons", "I need background music", "find video footage", "search fonts", "找一张图片", "搜素材", "帮我找图标/视频/音乐/字体". Covers Pexels, Unsplash, Pixabay, Iconify, Freesound, Google Fonts and more — with API-backed search where available.

instalações
3
GitHub Stars
48
Atualizado
11 de set.
agents365-ai
Comunidade

asta-skill

Domain expertise for Ai2 Asta MCP tools (Semantic Scholar corpus). Intent-to-tool routing, safe defaults, workflow patterns, and pitfall warnings for academic paper search, citation traversal, and author discovery.

instalações
3
GitHub Stars
48
Atualizado
11 de set.