mcpbeat Sign in

Gjf Flux Agent Skill

> Assemble and extract Gaussian .gjf input file sections (directives, route, title, molecule blocks, appendices) and build single- or multi-step Link1 jobs from modular component files. USE WHEN needed for generating, refactoring, templating, or scripting Gaussian job files.

2k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
118
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/jinzhezenggroup/computational-chemistry-agent-skills --skill gjf-flux

The instruction itself

16 sections, as written by the author

gjf-flux (Gaussian Job File Assembly & Extraction)

gjf-flux is a command-line workflow for modular Gaussian .gjf files:

  • Extract a specific section from an existing .gjf (including Link1 multi-step jobs).
  • Assemble directives/route/molecule/appendix blocks into a complete .gjf, or merge multiple tasks into a Link1 job.

When to use

Use this skill when you need to:

  • Reuse parts of Gaussian inputs across many calculations (e.g., route lines, molecule blocks, basis/constraints appendices).
  • Programmatically build .gjf jobs from smaller files (fragments, templates, parameterized directives).
  • Inspect/compare .gjf files by extracting specific sections.

Assumptions / Parsing model (important)

gjf-flux assumes a standard Gaussian input layout:

  • Link1 steps are separated by a blank line, then --Link1--, then a newline.
  • Within each Link1 step, blocks are separated by blank lines.
  • The route section begins at the first line starting with # and continues through subsequent lines.
  • A molecule block is detected when the first line of a block looks like paired integers

(e.g., 0 1 or 0 1 0 1 0 1), representing charge/multiplicity pairs.

If a .gjf deviates from these conventions, extraction may fail or misclassify blocks.

Inputs you should request from the user

When helping a user, clarify:

  • Target action: extract vs assemble.
  • File paths:
  • Existing .gjf to read, or component files to assemble.
  • For Link1 jobs:
  • Which step to extract (job_index, 0-based), or how many steps to assemble.
  • Molecule content:
  • Total charge/multiplicity, fragment charge/multiplicity (if using fragments), coordinate format.
  • Appendices:
  • Whether there are basis sets, ECPs, ModRedundant constraints, etc.

Core commands (cheat sheet)

1) Extract a section from a .gjf

uvx gjf-flux extract <section_name> <FILE.gjf> [--job_index N]

Where <section_name> is one of:

  • directives
  • route
  • title
  • molecule or molecule-<idx>
  • appendix or appendix-<idx>

Notes:

  • <idx> is 0-based.
  • --job_index selects the Link1 step (0-based, default 0).

Examples:

# Extract the route line from the first Link1 step
uvx gjf-flux extract route input.gjf

# Extract the second molecule block from step 0
uvx gjf-flux extract molecule-1 input.gjf

# Extract the first appendix block from Link1 step 2
uvx gjf-flux extract appendix-0 input.gjf --job_index 2

2) Assemble directives (Link0 commands)

uvx gjf-flux assemble directives --chk FILE --mem SIZE --nprocshared N

This command accepts key/value pairs in the form --key value.

Examples:

uvx gjf-flux assemble directives --chk job.chk --mem 16GB --nprocshared 16

Tip: redirect to a file for later composition:

uvx gjf-flux assemble directives --chk job.chk --mem 16GB --nprocshared 16 > directives.txt

3) Assemble the route section (# line)

uvx gjf-flux assemble route [-l p|n|t|""] <keywords...>

Examples:

#p Opt B3LYP/6-31G(d)
uvx gjf-flux assemble route -l p Opt B3LYP/6-31G(d)

# Use quotes for keywords with parentheses
uvx gjf-flux assemble route -l p "Opt(MaxCycle=100)" "Freq"

Tip:

uvx gjf-flux assemble route -l p "Opt(MaxCycle=100)" "Freq" > route.txt

4) Merge molecule fragments into one molecule block

uvx gjf-flux assemble molecules <frag1.txt> <frag2.txt> ... [--as-fragment] [--charge INT] [--multi INT]

Each fragment file must follow this format:

  • Line 1: charge multiplicity (e.g., 0 1)
  • Following lines: atomic coordinates (Gaussian-style)

Modes:

  • Default: merges into a single molecule block.
  • --as-fragment: assigns Fragment=1,2,... tags and expands the charge/multiplicity header.

Examples:

# Merge two fragments into a single molecule block
uvx gjf-flux assemble molecules fragA.txt fragB.txt > molecule.txt

# Merge as fragments, overriding total charge/multiplicity
uvx gjf-flux assemble molecules fragA.txt fragB.txt --as-fragment --charge 0 --multi 1 > molecule.txt

5) Assemble appendices

uvx gjf-flux assemble appendices <app1.txt> <app2.txt> ...

Examples:

uvx gjf-flux assemble appendices basis.txt modredundant.txt > appendix.txt

6) Assemble a complete single-step .gjf

uvx gjf-flux assemble job \
    --directives directives.txt \
    --route route.txt \
    --title "Your title" \
    --molecule molecule.txt [molecule2.txt ...] \
    [--appendices appendix.txt ...]

7) Merge multiple tasks into a Link1 multi-step job

uvx gjf-flux assemble tasks step1.gjf step2.gjf [step3.gjf ...] > link1.gjf

End-to-end example (one-liners with command substitution)

This example shows a single-step job assembled from:

  • directives: produced directly from CLI flags
  • route: produced inline from assemble route
  • molecule: extracted from an existing .gjf, then re-merged (optionally overriding multiplicity)
  • appendices: extracted from other .gjf files and concatenated

> Note: This uses bash/zsh process substitution (<(...)). If you are on a shell that does not support it, redirect each block into a file first.

# 1) Build directives to a file (recommended; easier to audit)
uvx gjf-flux assemble directives --chk job.chk --mem 16GB --nprocshared 16 > directives.txt

# 2) Assemble a full .gjf using inline-generated route/molecule/appendix blocks
uvx gjf-flux assemble job \
    --directives directives.txt \
    --route <(uvx gjf-flux assemble route -l p "Opt(MaxCycle=100)" "Freq" B3LYP/6-31G(d)) \
    --title "Opt+Freq from extracted building blocks" \
    --molecule <( \
        gjf-flux assemble molecules \
        <(uvx gjf-flux extract molecule-0 reactant.gjf) \
        fragment_extra.xyz \
        --multi 1 \
    ) \
    --appendices \
    <(uvx gjf-flux extract appendix-1 reactant.gjf) \
    <(uvx gjf-flux extract appendix-0 reference.gjf) \
    app_manual.txt \
    > job.gjf

Variants:

  • If you only want to reuse an extracted molecule block verbatim (no merge), pass:
  • --molecule <(uvx gjf-flux extract molecule-0 input.gjf)
  • If you are assembling a Link1 workflow, build each step as its own .gjf and then:
  • uvx gjf-flux assemble tasks step1.gjf step2.gjf > link1.gjf
  • Create/derive component blocks:
  • directives.txt (from assemble directives or manual)
  • route.txt (from assemble route)
  • molecule.txt (from assemble molecules or extracted from a prior .gjf)
  • appendix.txt (optional)
  • Assemble a complete job via assemble job.
  • If you have multiple steps, build each step as a .gjf and then merge using assemble tasks.
  • Verify by extracting critical sections from the final output.

Common pitfalls

  • Wrong indexing: job_index, molecule-<idx>, and appendix-<idx> are all 0-based.
  • Non-standard .gjf formatting: unusual blank-line structure can break parsing.
  • Fragment files must start with charge multiplicity: otherwise molecule merge will fail.
  • Keyword quoting: route keywords with parentheses should be quoted in the shell.

Notes for agents

  • Prefer asking the user for a concrete example .gjf if parsing fails.
  • When assembling, keep each component file small and purpose-specific; it makes debugging far easier.
  • If the user wants a repeatable pipeline, suggest storing reusable components (route templates, basis set appendices, fragment libraries) in version control.

Other skills for the same job

different authors, same section of the catalogue
CSS Development Refactor
by ComeOnOliver
×1

This skill should be used when refactoring existing CSS from inline styles or utility classes to semantic patterns. Triggers on "refactor CSS", "extract styles", "consolidate CSS", "convert inline", "clean up styles", "migrate to semantic". Transforms to semantic classes with dark mode and tests.

5k tokens
Swiftui Performance Audit
by ComeOnOliver
×1

Audit and improve SwiftUI runtime performance from code review and architecture. Use for requests to diagnose slow rendering, janky scrolling, high CPU/memory usage, excessive view updates, or layout thrash in SwiftUI apps, and to provide guidance for user-run Instruments profiling when code review alone is insufficient.

8k tokens
Lint Check
by microsoft
vendor

Run lint on affected packages, parse errors, and auto-fix common issues (design tokens, React.FC, SSR safety, import restrictions)

567 tokens
Azldev Build Component
by microsoft
vendor

Read this before building a component or diagnosing a build failure; do not guess build flags or the inner loop. Explains how to build, iterate on, and debug an azldev component, covering comp build flags (local-repo, preserve-buildenv), the render/build/test inner loop, diff-sources, and disabling a failing %check via check.skip. Triggers include build component, build failed, build error, inner loop, preserve buildenv, local repo, disable check.

824 tokens
Cupynumeric Parallel Data Load
by NVIDIA
vendor

Load a sharded, on-disk dataset (sharded .npy, Parquet/Arrow, raw binary, sharded HDF5, custom layouts) into a distributed cuPyNumeric ndarray via a manual partition + leaf @task launch with CPU/OMP/GPU variants. Use when no single-call loader fits, including when per-shard row counts differ across files. Prefer cupynumeric.load or legate.io.hdf5.from_file when they apply.

19k tokens scripts
Wp Phpstan
by WordPress
vendor

Use when configuring, running, or fixing PHPStan static analysis in WordPress projects (plugins/themes/sites): phpstan.neon setup, baselines, WordPress-specific typing, and handling third-party plugin classes.

5k tokens scripts
Unity Script
by Besty0728

Create, read, and analyze C# scripts — create, read, replace, append, search, rename, move, and delete scripts, plus compile feedback. Use when authoring or editing C# code, searching across scripts, refactoring file layout, or checking compile errors, even if the user just says "写个脚本" or "改代码". 对 C# 脚本进行增删改查与分析(创建、读取、替换、追加、搜索、重命名、移动、删除脚本,以及编译反馈);当用户要编写或编辑 C# 代码、跨脚本搜索、重构文件布局、或检查编译错误时使用。

3k tokens
Ss Lint
by bitjaru

Quick automated lint — detects common design system violations in seconds

874 tokens

How to use it

Copy the folder

Take jinzhezenggroup/gjf-flux from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference uvx. Without those the skill loads but fails at the first command.