SuperAPI AI Directory

paper-select-journal

Writing & research

View repository

Updated 10-15 22:15

About this skill

Paper Select Journal

Core Principles

  • Current information must be verified in real time: scope, official website, industry recognition, CAS partition, and papers from the past 3 months are all time-sensitive information and cannot rely on old memory.
  • Intermediate files may only be placed under the current working directory in the .bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/paper-select-journal/ hidden directory; only if the user explicitly specifies another directory may the default value be overridden.
  • Set1 no longer relies on fixed semantic weights. The script is only responsible for minimal hard filtering and candidate pool organization; the actual semantic planning is completed by the current host model.
  • Set1 is not the final answer. The final report retains only Set3 with sufficient evidence, at most 10 journals.
  • Journals that are clearly on warning lists, predatory journals, or with an impact factor lower than 3 cannot be recommended; if an exception lower than 3 is indeed retained, it must be stated clearly "why it is still a safe choice recognized by human experts in the field".
  • Better to report fewer than to pad the list just to reach 10.

Input and Workspace

  • User requirements are optional; the manuscript is required.
  • The manuscript may come from a pasted title / abstract / full-text excerpt, or a local .md、.txt、.tex、.pdf、.docx, or may be provided as a mixture.
  • Once the hidden workspace process is entered, the subsequent analysis/*.json read by the script must remain within the current run directory; do not point manuscript_profile.json、set2_scope_review.json、final_recommendations.json outside the run directory.

First initialize the hidden workspace:

python3 <skill_root>/scripts/init_workspace.py --project-root .

The script will create .bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/paper-select-journal/{yyyy-mm-dd-hh-mm}/, which at minimum contains:

  • inputs/
  • analysis/
  • candidates/
  • pubmed/
  • reports/

All subsequent intermediate files must remain within that run directory.

Process

Input

Provide the necessary input according to the user request and configuration file; missing information should be clearly listed and steps depending on that input should stop.

Execution Steps

First write the manuscript profile

After fully understanding the paper, write the result into analysis/manuscript_profile.json。

  • Template:templates/manuscript_profile.template.json
  • How to write:references/manuscript-profile.md Minimum fields:
  • title
  • abstract
  • keywords
  • manuscript_summary

The purpose of the profile is to help the AI understand the manuscript, not to feed a fixed scoring formula. If user preferences are complex, prioritize writing the preferences in natural language into target_journal_brief or notes, do not cram many hard-coded clues for the script. If it is truly necessary to retain manually added low-IF exception journals, they can only be used as subsequent manually supplemented candidates, and the final report must explain "why, although it is below the threshold, it is still a safe choice in the field".

Use the built-in 2023IF.xlsx to make the Set1 candidate pool

Built-in directory:assets/journal_catalog/2023IF.xlsx

Run:

python3 <skill_root>/scripts/shortlist_journals.py \
  --workspace .bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/paper-select-journal/{yyyy-mm-dd-hh-mm} \
  --profile .bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/paper-select-journal/{yyyy-mm-dd-hh-mm}/analysis/manuscript_profile.json

Outputs:

  • candidates/set1_candidates.json
  • candidates/set1_candidates.md

The script here only performs minimal hard filtering:

  • Impact factor lower bound
  • Journals explicitly excluded by the user
  • Basic metadata organization (JIF, partition, OA proportion, citation count)

Do not misinterpret this step's output as "a final shortlist already sorted semantically". You must read this candidate pool, then, together with the manuscript, independently plan the journals truly worth entering Set2.

Verify scope, official website, partition, and quality online to obtain Set2

Based on candidates/set1_candidates.json With the manuscript profile, independently decide which candidates to verify first, and verify them one by one online:

  • Official website
  • Aims & Scope
  • CAS minor category and its partition
  • Industry recognition
  • Whether there are early warning / predatory journal signals

Prefer to use:

  • Journal official website
  • PubMed / NLM
  • Mainstream publisher pages
  • Trustworthy sources of partition information

Write the journals that pass verification into:

  • analysis/set2_scope_review.json

Template:templates/scope_review.template.json Verification criteria:references/journal-quality-checklist.md

4a. Fetch the raw PubMed paper evidence from the most recent 3 months for Set2

Run:

python3 <skill_root>/scripts/fetch_pubmed_recent.py \
  --workspace .bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/paper-select-journal/{yyyy-mm-dd-hh-mm} \
  --profile .bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/paper-select-journal/{yyyy-mm-dd-hh-mm}/analysis/manuscript_profile.json \
  --scope-review .bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/paper-select-journal/{yyyy-mm-dd-hh-mm}/analysis/set2_scope_review.json

Output:

  • pubmed/recent_articles.json
  • pubmed/recent_articles.md

This only provides raw evidence and is not responsible for scoring or ranking. The script only performs API calls, XML parsing, and organization by date.

4b. AI evaluates topic similarity and decides which journals enter Set3

You must read both:

  • analysis/manuscript_profile.json
  • pubmed/recent_articles.json

Here, "AI" refers to the host model currently executing this skill itself:

  • In Claude Code, completed by the current Claude session
  • In Codex, completed by the current Codex session
  • Do not call an additional external AI API, independent model service, or separate scoring script for Step 4b

That is, Step 4b's planning, semantic judgment, Set3 keep/drop decisions, and set3_similarity_review.json writing must all be completed natively using the AI compute already provided by the current working environment.

Judge one by one the semantic relevance of the most recent 3 months of papers in Set2 journals to the manuscript along the following dimensions:

  • Whether the topic is truly relevant, not just token collision
  • Whether the research question is close
  • Whether the methodology is close
  • Whether the number and density of relevant papers are sufficient to support entry into the final recommendation

During execution, first quickly skim all recent Set2 papers to form a comparison framework, then make semantic judgments journal by journal, and finally decide uniformly whether to keep or drop Set3 and write reviewable reasons. Do not degrade this step back into mechanical token scoring or hard-coded weighted formulas.

Write the conclusions into:

  • analysis/set3_similarity_review.json

Template:templates/set3_similarity_review.template.json

For each journal, at least write:

  • journal_name
  • include_in_set3
  • similarity_assessment
  • relevant_articles
  • irrelevant_articles_count
  • overall_relevance_level

overall_relevance_level Only allowed:

  • high
  • medium
  • low
  • none

Form the final recommendation JSON

Based on analysis/set3_similarity_review.json, write at most the final 10 journals into analysis/final_recommendations.json。

  • Template:templates/final_recommendations.template.json
  • Field description:references/report-schema.md

Must retain:

  • Impact factor
  • CAS minor category and its partition
  • Industry recognition
  • Official website
  • Why it is recommended
  • Papers on similar topics in the most recent 3 months
  • AI for each evidence paper relevance

Render the final Markdown report

Run:

python3 <skill_root>/scripts/render_report.py \
  --workspace .bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/paper-select-journal/{yyyy-mm-dd-hh-mm} \
  --final-json .bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/paper-select-journal/{yyyy-mm-dd-hh-mm}/analysis/final_recommendations.json

Final output:

  • reports/paper-select-journal-report.md

If needed, --output override the default filename, it may only be written inside the current run directory, and the final Markdown report must not be written outside the hidden workspace.

  • All journals are written in the same Markdown file

  • Each journal uses # level, and below it use as needed ##、###

  • Each journal must state: impact factor, CAS minor category and partition, industry recognition, official website, reasons for recommendation, as well as a table of papers on similar topics in the most recent 3 months and AI relevance explanation

  • If the scope does not match, do not push it hard even if the IF is high

  • If there is an obvious early warning / predatory journal risk, eliminate it directly

  • No papers on similar topics in the past 3 months does not necessarily mean elimination, but the recommendation level should be lowered

  • include_in_set3 For false journals, do not include in the final recommendation

  • When the CAS partition cannot be reliably verified, prioritize switching to candidates with more transparent information

  • When the user has no explicit preference, independently choose the most reliable option; do not turn questions into blockers

  • <skill_root> represents the actual installation directory of the current skill.

  • Do not assume that the user's current working directory necessarily contains a paper-select-journal/ source copy.

  • If you are already in the skill root directory, you can also directly run python3 scripts/...。

  • references/manuscript-profile.md

  • references/journal-quality-checklist.md

  • references/report-schema.md

Output

Output the deliverables promised by the Skill description, and clearly specify the format, path, and failure return form.

Output Management

New task intermediate files for this Skill are uniformly written to ./.bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/{skill名}/input|output|log/. The same task reuses one task root directory; only for multi-Skill collaboration create shared/. Formal deliverables are not written to this directory; historical hidden directories are only allowed to be explicitly read for compatibility, migrated, or cleaned up.

Validation

After completion, execute the Skill's existing static checks, script validation, or manual review, and record the pass criteria.

Failure and Recovery

Retain error evidence and completed artifacts; retry from the most recent failed step only after the input, environment, or external dependency has recovered.

Constraints

Comply with the following common constraints, and enforce this Skill's specific boundaries.

Common Hard Constraints

  • When a task requires persistence to disk, use a unique ./.bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/ root directory; place shared materials in shared/, and place Skill-specific materials in that Skill's input/、output/、log/。
  • Formal deliverables, source code, and formal plans are stored according to project conventions and are not written to the task workspace; without authorization, do not overwrite, delete, migrate, or write remotely.
  • Project maintenance changes check BAC availability and record requirements, AI outputs, tool results, file changes, and validation summaries; BAC is only for process auditing and does not replace attribution, responsibility, or compliance judgments.
  • Do not record API Keys, access tokens, passwords, Cookies, environment/credential files, private Prompts, identity information, local usernames, hostnames, or unnecessary large raw data.
  • File paths must be normalized and restricted to the authorized project scope; external URLs, subprocesses, and network access follow least privilege to prevent path traversal, SSRF, and command injection.
  • The Skill version is uniquely recorded in its own config.yaml:skill_info.version; changes to public APIs, protocols, directories, or configurations are synchronized with the documentation and CHANGELOG.md。
  • Only design flaws in the Skill or Bensz infrastructure itself are reported to bensz-collect-bugs; first write a desensitized entry to ~/.bensz-skills/bugs/, the current task is not interrupted, public reporting is only done when the user explicitly requests it, and directly modifying the user's installed Skill source code is prohibited.

Skill-Specific Constraints

Do not exceed the scope declared in this Skill description and the process above; do not disguise unverified information as definitive conclusions.