# Bundled Skills [中文说明](README_zh.md) The 33 bundled OpenAI4S Skills live here, one directory each. A Skill is a recipe: code plus the operational knowledge needed to run it, not a provider JSON Tool. Disclosure is progressive, so the loader shows a name and a one-line summary and nothing more until a Skill is selected; only then does it read `SKILL.md` and the optional `kernel.py` sidecar. ## Subdirectories | Directory | Responsibility | | --- | --- | | [`admet_genetic/`](admet_genetic/) | A genetic loop over seed SMILES, scored with RDKit descriptors, QED, SA-Score, and ADMET-AI. The sidecar ships no GA engine on purpose: mutation, crossover, filters, and scoring weights are yours to design for the objective at hand. Every logged candidate must carry the lineage that produced it. | | [`alphafold2/`](alphafold2/) | AF2 and AF2-Multimer through the ColabFold `colabfold_batch` runner, so a prediction is one FASTA and one command instead of a local database mount. The MSA comes from the public MMseqs2 server, which means the sequence is sent there. Proteins only. For ligands or nucleic acids, route to `boltz`, `chai1`, or `openfold3`. | | [`audit-dataset/`](audit-dataset/) | The check to run before anything is trained or published: schema drift, missingness, duplicate rows and IDs, target imbalance, and entities shared across train, validation, and test. Pure stdlib. A clean structural audit still says nothing about whether the data is representative or the labels are right. | | [`bioprobench/`](bioprobench/) | Scoring a model's protocol reasoning against the BioProBench benchmark: question answering, step ordering, error correction, generation, and LLM-judged error reasoning. The contract is the trap — it scores one file that already merges ground truth into each model response, and a plain model-output file returns zeros under `"status": "failed"`. Check `Failed_Rate`. | | [`boltz/`](boltz/) | Open-weights co-folding of protein, DNA, RNA, and ligand chains, with an optional small-molecule affinity head. Among the four co-folders it is the default for binder-validation campaigns: fully open MIT weights and the fastest sampler. | | [`borzoi/`](borzoi/) | DNA in, predicted assay coverage out: RNA-seq, CAGE, DNase, and ChIP tracks over roughly 524 kb windows. Score a non-coding variant by running ref and alt windows and comparing the per-track delta. Reach for `evo2` instead when you want sequence likelihood rather than assay tracks. | | [`catalyst_sar_screening/`](catalyst_sar_screening/) | Single-atom-catalyst SAR on graphene M–N–C sites, hard-locked to FAIRChem UMA. Heuristics, lookup tables, and other MLIPs are forbidden, and so is handing the repo's committed demo outputs to a user as a result: every answer must come from a fresh pipeline run. If the weights hub is unreachable it stops and asks rather than substituting a method. | | [`chai1/`](chai1/) | The same co-folding surface as `boltz` from a different model, which is the point: run both and keep the designs that pass either. Its Python entry point makes it the easier of the two to drive from inside a loop, and Apache-2.0 explicitly permits commercial use. | | [`diffdock/`](diffdock/) | Blind docking. No search box: the diffusion model places the ligand anywhere on the surface, and a confidence head ranks the samples. That confidence tracks pose correctness, not binding free energy, and the values are not comparable across complexes, so pair it with a scorer before triaging hits. | | [`esmfold2/`](esmfold2/) | The Biohub ESM release: all-atom co-folding that works from a single sequence, plus the ESMC language models for embeddings, mutation scoring, and contacts. Pick it over the other co-folders when you can live without an MSA. | | [`evaluate-model/`](evaluate-model/) | Held-out scoring for binary classification and regression, with tie-aware ROC AUC and a deterministic bootstrap. Half of it is discipline rather than arithmetic: choose the metric before seeing the test set, compare against a baseline, check subgroups. Bootstrap intervals describe sampling variability and do not correct leakage or dataset shift. | | [`evo2/`](evo2/) | A long-context DNA language model. Per-nucleotide likelihoods for variant-effect scoring, embeddings of genomic windows, and generation from a prefix. It gives sequence probability, where `borzoi` predicts the assay tracks. | | [`example_stats/`](example_stats/) | The worked example of a user-authored Skill (`origin: personal`), and a usable one: mean, std, median, quantiles, z-scores, and Pearson correlation over plain Python lists, no NumPy or pandas. Read this one when you are about to write your own. | | [`fair-esm2/`](fair-esm2/) | Meta's ESM-2 through the `fair-esm` package: per-residue and per-sequence embeddings, masked-LM mutation scoring, contact prediction. Mind the namespace collision. `fair-esm` and the Biohub fork behind `esmfold2` both import as `esm` and are different libraries. | | [`figure-composer/`](figure-composer/) | The middle tier of the three figure Skills: make one multi-panel figure good. It turns a one-sentence claim into a panel outline on a 12-column grid, fans out a sub-agent per panel, tiles and letters the result, then runs an adversarial composite review for at most three rounds. | | [`figure-style/`](figure-style/) | The inner tier: the rules for one plot. Deliberately a checklist and not a house look, covering data fidelity, label economy, chart choice by data shape, and a render-then-verify pass. The correctness sections bind everywhere; the aesthetic sections are defaults a deliberate alternative can override. Every panel sub-agent loads this. | | [`indication-dossier/`](indication-dossier/) | Five resumable phases that build a dossier on one indication framed as a patient population rather than a disease: who they are, epidemiology, biology, standard of care, regulatory precedent, landmark trials. It expects the clinical-trials and pubmed MCP servers and falls back to web search against the public sources when they are not connected. | | [`ligandmpnn/`](ligandmpnn/) | Inverse folding when the design surface is not protein alone. Small molecules, nucleic acids, and metals are atoms the network can see, and `proteinmpnn` would simply ignore them. Its runner is also the one that threads designed sequences back onto the structure and writes PDBs. | | [`literature-review/`](literature-review/) | From "what is the seminal paper for X" to a full multi-source review. The discipline is the content: retrieve before writing, resolve every DOI instead of recalling it, check CrossRef for retractions, and produce paragraphs that open on your synthetic claim rather than on an author's name. | | [`mineral_spectra_analysis/`](mineral_spectra_analysis/) | Unmixing the Raman spectrum of an unknown mineral mixture. Preprocess once, then loop: detect residual peaks, match the library, refit all components with NNLS, subtract. The blind loop must not read `truth.json`; ground-truth evaluation is a separate step that only runs once the answer is fixed. | | [`openfold3/`](openfold3/) | An Apache-2.0 reproduction of AlphaFold3, so this is the co-folder to reach for when AF3-faithful behaviour is the point. Weights are gated on HuggingFace and need an accepted access form. The MSA server is on by default, so the sequence leaves the machine unless you opt out. | | [`paper-narrative/`](paper-narrative/) | The outermost figure tier, and it starts a step earlier than expected: it reads the manuscript and the whole deck, then a handling-editor reviewer answers whether Figure 1 would get the paper sent out. Out comes the arc, panels sitting in the wrong figure, analyses that are missing, and what to kill. The brief it derives from your manuscript is model-generated, so review it before acting. | | [`pdf-explore/`](pdf-explore/) | Parse a PDF once in the kernel and keep the page text, then work from an outline, relevance search, per-page extraction, and figure crops. Built for answers that draw on several places at once, or on every page. For a single lookup of one to four pages you will quote immediately, skip it and read the pages directly. | | [`plan-ml-experiment/`](plan-ml-experiment/) | What gets written down before training starts: hypothesis, baseline, metric, decision rule, and a split boundary that survives grouped or chronological structure. Reproducibility is mechanical here, resting on config fingerprints, dataset checksums, recorded seeds, and artifact manifests. Determinism does not prove validity, and repeating one biased split does not repair it. | | [`protein-mutation-enhancement/`](protein-mutation-enhancement/) | An orchestration layer, not a model. It builds deterministic mutant libraries with stable IDs such as `A12V+G47D`, merges sequence, structure, property, and assay scores into one ranking, and decides whether a gain-of-function round stops or expands. The heavy model calls are delegated to `fair-esm2` and `esmfold2`. | | [`proteinmpnn/`](proteinmpnn/) | The default inverse-folding step when the design surface is protein only: backbone geometry in, sequence out, small enough to run on CPU for a handful of designs. It writes sequences and nothing else, so use the `ligandmpnn` runner if you need threaded PDBs, and switch skills as soon as a cofactor or soluble expression is in play. | | [`remote-compute-nvidia/`](remote-compute-nvidia/) | Dispatch to NVIDIA NIM in either of two forms that share one job contract. `self_hosted` runs an nvcr.io container on your own GPU; `hosted` needs no GPU but every job request leaves for NVIDIA's managed gateway. Only the declared key variables are forwarded to the confined helper, and they are scrubbed from the log tails that leave the sandbox. | | [`remote-compute-ssh/`](remote-compute-ssh/) | The orchestration half of running on the user's own SSH or SLURM host: partitions, env activation, job scripts, staging, harvest, recovery. Not the science. Each submit puts an approval modal in front of the user and spends their allocation, so the shape of a good run is to read what is already known about the host, ask once for what is not, land the first submit, and write down what you learned. | | [`retrosynthesis_planning/`](retrosynthesis_planning/) | AiZynthFinder routes normalized into a stable schema, ranked, and rendered as a dashboard for chemist review and route triage. Conditions, yield ranges, verdicts, and safety notes in the report come from an LLM. They are hypotheses, not experimental validation, and each has to be checked against literature, ELN data, vendor availability, and an expert. | | [`scgpt/`](scgpt/) | A transformer foundation model for single-cell data: cell embeddings for clustering, zero-shot or fine-tuned cell-type annotation, and gene-level representations for perturbation or GRN work. Checkpoints are raw directories rather than HuggingFace repos. The code is MIT and no source states a license for the weights. | | [`scvi-tools/`](scvi-tools/) | The probabilistic counterpart to `scgpt`: scVI for a batch-corrected latent space, scANVI for label transfer from a partly annotated reference, and Bayesian differential expression. It needs raw integer UMI counts. For spatial deconvolution or mapping, use cell2location, DestVI, or Tangram instead. | | [`solublempnn/`](solublempnn/) | ProteinMPNN's architecture retrained on a soluble-PDB subset, which shifts the output away from the surface hydrophobics the full-PDB model happily places. Reach for it when designs are aggregating or going to inclusion bodies. It trades a few points of native recovery for that bias, and a sequence-only prior is not a solubility measurement. | | [`using-model-endpoint/`](using-model-endpoint/) | Documents a planned endpoint-scoped inference workflow: a Python kernel whose egress is scoped to one registered endpoint, with `BASE_URL` preloaded and no job lifecycle. The current Host implements endpoint registration and probes, but does not wire this provider into `ComputeManager` or create the scoped kernel yet. | ## Where this fits - `openai4s/skills_loader/` discovers these directories. When a writable user Skill declares a name a bundled one already owns, the bundled Skill keeps it. - Everything here is a read-only application resource. User-authored Skills live under the configured data directory and cannot replace a bundled name. - A `kernel.py` sidecar holds definitions only. It is compile-checked before use and then injected into the scientific Python kernel; it must not add a hard dependency to the core. - Provider shims are trusted extension code and run across compute or endpoint boundaries documented elsewhere. A manifest on its own does not make a capability operational. - [`evidence-walkthrough/`](evidence-walkthrough/) — the reference pass: fixed query, local analysis, artifacts carrying lineage, and a package that verifies in a clean environment. - [`bioprobench/`](bioprobench/) — protocol-reasoning evaluation.