Source profileQuality 92/100Review permissions

K-Dense-AI/scientific-agent-skills/skills/pufferlib/SKILL.md

pufferlib

Version-aware guidance for PufferLib reinforcement-learning environments, vectorization, policies, PuffeRL training, evaluation, and safe checkpoint review. Use when adapting Gymnasium/PettingZoo environments to published PufferLib 3.0.0 or working with the redesigned native 4.0 source line.

Source repository stars
31,966
Declared platforms
0
Static risk flags
2
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

Use PufferLib with an explicit version profile. Upstream currently has two incompatible surfaces:

Best for

  • Use when adapting Gymnasium/PettingZoo environments to published PufferLib 3.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills --skill "skills/pufferlib"
Safe inspection promptEditorial

Inspect the Agent Skill "pufferlib" from https://github.com/K-Dense-AI/scientific-agent-skills/blob/e7ac42510774624f327003c95b6650e2883bc01d/skills/pufferlib/SKILL.md at commit e7ac42510774624f327003c95b6650e2883bc01d. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Environment workflow

    Gymnasium reset returns (observation, info). Step returns:

    Gymnasium reset returns (observation, info). Step returns:Validate spaces, shapes, dtypes, finite rewards, booleans, reset-before-step, reset-after-end, seeding, and cleanup. terminated is an MDP terminal; truncated is an external cutoff such as a time limit. Preserve the dist…Published 3.0 uses explicit wrappers:
  2. 02

    2. Adapt only after review

    Published 3.0 uses explicit wrappers:

    Published 3.0 uses explicit wrappers:For a reviewed PettingZoo Parallel environment:There is no supported 3.0 pufferlib.emulate(...) shortcut matching the old skill. Read references/environments.md and references/integration.md.
  3. 03

    Vectorization workflow

    Move to Multiprocessing only after serial traces pass. Record numenvs, numworkers, batchsize, zero-copy mode, start method, agent count, masks, and actual returned shapes. For multi-agent environments, batch length is based on agent slots, not necessarily numenvs.

    Move to Multiprocessing only after serial traces pass. Record numenvs, numworkers, batchsize, zero-copy mode, start method, agent count, masks, and actual returned shapes. For multi-agent environments, batch length is b…Current 4.0 config instead uses:Read references/vectorization.md. Benchmark fixed work with warmup and at least three repeats; report simulation and end-to-end training SPS separately. The bundled benchmark measures only its synthetic harness.
  4. 04

    Policy workflow

    Published 3.0 policies are Torch modules sized from singleobservationspace/singleactionspace. Stable recurrent composition uses encodeobservations and decodeactions; structured emulation uses pufferlib.pytorch.nativizedtype and nativizetensor.

    Published 3.0 policies are Torch modules sized from singleobservationspace/singleactionspace. Stable recurrent composition uses encodeobservations and decodeactions; structured emulation uses pufferlib.pytorch.nativized…Current 4.0 Torch fallback composes:It provides MLP, MinGRU, LSTM, and GRU network choices; --slowly selects this fallback instead of the native backend. Check output/state shapes, masks, finite values, gradients, and eager-versus-compiled behavior. See r…
  5. 05

    Checkpoint workflow

    PufferLib 3.0 and the 4.0 Torch fallback use Torch serialization; current native 4.0 writes opaque .bin weights. PyTorch warns that untrusted models are programs and that torch.load uses unpickling.

    PufferLib 3.0 and the 4.0 Torch fallback use Torch serialization; current native 4.0 writes opaque .bin weights. PyTorch warns that untrusted models are programs and that torch.load uses unpickling.The inspector hashes and classifies only. It does not call torch.load, import pickle/Torch, inspect archive members, or extract files. Verify source, license, architecture, environment revision, sidecar metadata, and ch…

Permission review

Static risk signals and limitations

Runs scripts

medium · line 40

The documentation asks the agent to run terminal commands or scripts.

python3 scripts/env_template.py --help

Runs scripts

medium · line 41

The documentation asks the agent to run terminal commands or scripts.

python3 scripts/env_contract_validator.py

Network access

medium · line 89

The documentation includes network, browsing, or remote request actions.

"pufferlib @ git+https://github.com/PufferAI/PufferLib.git@25647630e1b15330bb3153a5a0d3ff8d234c3acf"

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score92/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars31,966SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
K-Dense-AI/scientific-agent-skills
Skill path
skills/pufferlib/SKILL.md
Commit
e7ac42510774624f327003c95b6650e2883bc01d
License
MIT
Collected
2026-07-28
Default branch
main
View the original SKILL.md

PufferLib

Use PufferLib with an explicit version profile. Upstream currently has two incompatible surfaces:

ProfileStatus on 2026-07-23Main use
pufferlib==3.0.0Latest stable PyPI release, published 2025-06-23Python/Gymnasium/PettingZoo emulation, pufferlib.vector, Torch PuffeRL
source 4.0Upstream default branch; not the latest stable PyPI artifactNative C Ocean environments, native CUDA trainer, optional Torch fallback

Do not combine 3.0 imports with 4.0 config/CLI examples. The 4.0 redesign removed the 3.0 emulation, vector, and pytorch modules from the current package tree.

Safe defaults

  1. Start with bundled synthetic, CPU-only, network-free tools.
  2. Do not import an arbitrary environment by dotted path. Bundled tools accept only allowlisted built-ins and slug identifiers.
  3. Do not install or execute an unreviewed environment package, native extension, ROM, map, checkpoint, or pickle file.
  4. Verify official source, immutable revision, licenses, checksums or attestations, and build hooks. Sandbox native builds and first execution.
  5. Cap steps, environments, agents, workers, threads, buffers, memory, disk, render size, and wall time.
  6. Keep training and evaluation environments/seeds separate.
  7. Default logging to local/none. External logging requires explicit opt-in, disclosure acknowledgment, and separate artifact-upload approval.
  8. Never pass W&B or Neptune credentials via CLI, INI, JSON, tags, run names, or logger configuration. Never print them.
  9. Never dump all environment variables or recursively search for .env.
  10. Hash checkpoint bytes before trusted, sandboxed loading; metadata inspection is not proof of safety.

First local checks

All bundled CLIs are dependency-free and emit strict JSON:

python3 scripts/env_template.py --help
python3 scripts/env_contract_validator.py
python3 scripts/benchmark_vectorization.py --backend serial
python3 scripts/train_template.py
python3 scripts/validate_plan.py
python3 scripts/repro_plan.py

Defaults are synthetic, deterministic, bounded, local, CPU-only, no-network, and dry-run where training would otherwise occur.

Installation and provenance

Published 3.0.0

PyPI supplies only pufferlib-3.0.0.tar.gz:

sha256: 7df3a3e3f5f894d78d2a1f5374097890aec01473183e748abefe4f3faa10eaa9
Requires-Python: >=3.9

After source/build review, create a pinned uv project:

uv venv --python 3.11
uv add --exact --no-sync "pufferlib==3.0.0"
uv lock
uv sync --frozen

Commit pyproject.toml and uv.lock; verify the archive digest and every resolved dependency. The source build can compile native code and fetch build assets, so resolve/build in a sandbox without credentials or sensitive mounts. The uploaded metadata does not pin Torch or CUDA; do not claim a supported CUDA matrix that PyPI does not declare.

Current 4.0 source

The reviewed branch head on 2026-07-23 was:

25647630e1b15330bb3153a5a0d3ff8d234c3acf

Pin the commit, not branch 4.0:

uv add --no-sync \
  "pufferlib @ git+https://github.com/PufferAI/PufferLib.git@25647630e1b15330bb3153a5a0d3ff8d234c3acf"
uv lock

The current package declares Python >=3.10 and Torch >=2.9. Upstream PufferTank currently uses Ubuntu 24.04, Python 3.12, and an NVIDIA CUDA 13.0.2/cuDNN development image with the cu130 Torch index, but does not pin the exact Torch wheel or all system packages. Treat it as a reference, not a complete lock. Never execute a remote installer directly from a pipe.

Read references/training.md before any installation or build.

Environment workflow

1. Validate the contract

Gymnasium reset returns (observation, info). Step returns:

(observation, reward, terminated, truncated, info)

Validate spaces, shapes, dtypes, finite rewards, booleans, reset-before-step, reset-after-end, seeding, and cleanup. terminated is an MDP terminal; truncated is an external cutoff such as a time limit. Preserve the distinction for bootstrapping and metrics.

python3 scripts/env_contract_validator.py \
  --steps 64 --episodes 8 --seed 42

2. Adapt only after review

Published 3.0 uses explicit wrappers:

import pufferlib.emulation

wrapped = pufferlib.emulation.GymnasiumPufferEnv(reviewed_gymnasium_instance)

For a reviewed PettingZoo Parallel environment:

wrapped = pufferlib.emulation.PettingZooPufferEnv(reviewed_parallel_instance)

There is no supported 3.0 pufferlib.emulate(...) shortcut matching the old skill. Read references/environments.md and references/integration.md.

3. Native environments

Published 3.0 PufferEnv requires single_observation_space, single_action_space, and num_agents before super().__init__(buf). It uses in-place vector buffers and returns separate terminal/truncation arrays plus a list of info dictionaries.

Current 4.0 uses C bindings. Start from upstream ocean/squared (single-agent) or ocean/target (multi-agent), build one environment in local/sanitized mode, and verify every buffer size/type/index before optimization.

Vectorization workflow

Published 3.0:

import pufferlib.vector

vecenv = pufferlib.vector.make(
    reviewed_creator,
    backend=pufferlib.vector.Serial,
    num_envs=4,
    seed=42,
)

Move to Multiprocessing only after serial traces pass. Record num_envs, num_workers, batch_size, zero-copy mode, start method, agent count, masks, and actual returned shapes. For multi-agent environments, batch length is based on agent slots, not necessarily num_envs.

Current 4.0 config instead uses:

[vec]
total_agents = 4096
num_buffers = 2
num_threads = 16

Read references/vectorization.md. Benchmark fixed work with warmup and at least three repeats; report simulation and end-to-end training SPS separately. The bundled benchmark measures only its synthetic harness.

Policy workflow

Published 3.0 policies are Torch modules sized from single_observation_space/single_action_space. Stable recurrent composition uses encode_observations and decode_actions; structured emulation uses pufferlib.pytorch.nativize_dtype and nativize_tensor.

Current 4.0 Torch fallback composes:

pufferlib.models.Policy(encoder=encoder, decoder=decoder, network=network)

It provides MLP, MinGRU, LSTM, and GRU network choices; --slowly selects this fallback instead of the native backend. Check output/state shapes, masks, finite values, gradients, and eager-versus-compiled behavior. See references/policies.md.

Training and evaluation

Published 3.0 trainer import:

from pufferlib import pufferl

trainer = pufferl.PuffeRL(train_config, vecenv, policy)

Current 4.0 CLI:

puffer train ENV_NAME
puffer eval ENV_NAME --load-model-path EXACT_TRUSTED_PATH
puffer sweep ENV_NAME

Generate a plan instead of launching by default:

python3 scripts/train_template.py \
  --profile pypi-3.0.0 \
  --environment synthetic \
  --device cpu \
  --total-timesteps 10000

Validate a custom strict-JSON plan:

python3 scripts/validate_plan.py --root . --config plan.json

The schema rejects secret-bearing keys, unbounded resources, dotted environment paths, invalid vector divisibility, mixed-version options, and coupled train/eval seeds. See references/training.md.

Logging

PufferLib 3.0 exposes W&B and Neptune; current 4.0 CLI exposes W&B. Both are optional external services. They may transmit configuration, metrics, source metadata, hardware telemetry, output, and approved artifacts, with privacy, retention, access-control, and cost implications.

  • W&B credential: named environment variable WANDB_API_KEY.
  • Neptune credential: named environment variable NEPTUNE_API_TOKEN.
  • Never put values in arguments/config/logs.
  • Sanitize config keys before logging.
  • Keep source/model upload off unless explicitly approved.

The planner requires both:

python3 scripts/train_template.py \
  --logger wandb \
  --enable-external-logging \
  --acknowledge-external-disclosure

It reports only the required variable name and never reads its value.

Checkpoint workflow

PufferLib 3.0 and the 4.0 Torch fallback use Torch serialization; current native 4.0 writes opaque .bin weights. PyTorch warns that untrusted models are programs and that torch.load uses unpickling.

python3 scripts/inspect_checkpoint.py checkpoint.pt \
  --root . \
  --expected-sha256 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef

The inspector hashes and classifies only. It does not call torch.load, import pickle/Torch, inspect archive members, or extract files. Verify source, license, architecture, environment revision, sidecar metadata, and checksum before any sandboxed load. Never use latest in a reproducible evaluation.

Bundled files

Scripts

  • scripts/env_template.py — deterministic synthetic Gymnasium-style template.
  • scripts/env_contract_validator.py — bounded contract and seed checks.
  • scripts/benchmark_vectorization.py — capped serial/spawn synthetic benchmark.
  • scripts/train_template.py — non-executing 3.0/4.0 training-plan generator.
  • scripts/validate_plan.py — strict config/resource/security validator.
  • scripts/inspect_checkpoint.py — metadata/hash inspection without deserialization.
  • scripts/repro_plan.py — separate-seed evaluation and benchmark plan.

References

  • references/environments.md — Gymnasium, stable PufferEnv, emulation, native C.
  • references/vectorization.md — backends, shapes, start methods, benchmarks.
  • references/policies.md — stable/current policy contracts and state safety.
  • references/training.md — installs, config, CLI, PuffeRL, eval, logs, checkpoints.
  • references/integration.md — migration matrix, third-party and credential safety.

Dated upstream sources

Alternatives

Compare before choosing

Computed 9831,966

K-Dense-AI/scientific-agent-skills

dask

Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.

Computed 9831,966

K-Dense-AI/scientific-agent-skills

medchem

Medicinal chemistry filters for compound triage. Apply drug-likeness rules (Lipinski, Veber, CNS), structural alert catalogs (PAINS, NIBR, ChEMBL), complexity metrics, and the medchem query language for library filtering.

Computed 9831,966

K-Dense-AI/scientific-agent-skills

neurokit2

Use NeuroKit2 to build or audit reproducible research workflows for physiological time-series preprocessing, event/interval analysis, multimodal alignment, variability, and complexity. Trigger when code imports neurokit2 or needs its current APIs, schemas, and method-aware validation—not for diagnosis or device validation.

Computed 9637,126

github/awesome-copilot

flowstudio-power-automate-mcp

Foundation skill for Power Automate via FlowStudio MCP — auth setup, the reusable MCP helper (Python + Node.js), tool discovery via `list_skills` / `tool_search`, and oversized-response handling. Load this skill first when connecting an agent to Power Automate. For specialized workflows, load `flowstudio-power-automate-build`, `flowstudio-power-automate-debug`, `flowstudio-power-automate-monitoring` (Pro+), or `flowstudio-power-automate-governance` (Pro+) — each contains the workflow narrative,