get-available-resources
The get-available-resources skill detects available computational resources including CPU cores, GPUs, memory, and disk space before scientific computing tasks. Use this skill at the start of computationally intensive work such as model training, large dataset processing, or parallel analysis to determine whether to employ strategies like GPU acceleration, parallel processing libraries, or out-of-core computing methods.
git clone --depth 1 https://github.com/K-Dense-AI/scientific-agent-skills /tmp/get-available-resources && cp -r /tmp/get-available-resources/skills/get-available-resources ~/.claude/skills/get-available-resourcesSKILL.md
# Get Available Resources Build a conservative picture of resources available to the **current process**. Keep host inventory, process affinity, cgroup/container limits, scheduler allocation, and accelerator runtime usability separate. ## Safety contract Follow these rules: - Run detection when the user requests it or a specific workload needs resource planning. Do not persist a fingerprint for every scientific task. - Use stdout by default. Persist only when the user chooses an explicit generic local filename. - Do not run stress tests, benchmarks, large allocations, write probes, device resets, driver installation, or clock/power changes. - Do not dump the environment. Read only the named Slurm and accelerator variables implemented by the detector. - Do not report hostnames, absolute paths, cgroup paths, job IDs, device UUIDs, PCI addresses, or raw visibility-variable values. - Treat a missing observation as unknown. Never convert unknown to unlimited. - Never infer that a visible host CPU, memory pool, or GPU is usable inside a scheduler allocation or container. The bundled detector uses only fixed executable/argument tuples, no shell, short timeouts, bounded stdout/stderr, and partial-failure warnings. ## Quick start Run from this skill directory. ### Ephemeral stdout snapshot ```bash python scripts/detect_resources.py ``` The command emits only JSON to stdout. Redirect it only when ordinary shell permissions are acceptable. ### Explicit private file ```bash python scripts/detect_resources.py --output resource-snapshot.json ``` Explicit output is restricted to one `.json` filename in the current directory, uses private permissions, rejects symlinks and path traversal, and refuses overwrite unless `--force` is supplied. ### Optional psutil enhancement The standard-library detector works without installation. For broader cross-platform physical-core, affinity, available-memory, swap, and disk coverage: ```bash uv pip install "psutil==7.2.2" ``` The import is lazy. Failure to import psutil becomes a warning, not a fatal error. ### Skip management-tool probes ```bash python scripts/detect_resources.py --skip-accelerators ``` Use this when accelerator discovery latency is undesirable. The detector still summarizes the presence and state of allowlisted visibility variables without returning their values. ## Required interpretation ### CPU Read these as different facts: - `cpu.host.logical`: system-visible scheduling units. - `cpu.host.physical`: physical topology, or null; never inferred from logical count. - `cpu.process.affinity_logical`: current affinity-set size when supported. - `cpu.cgroup_v2.cpuset_logical`: effective cgroup cpuset size. - `cpu.cgroup_v2.quota_cores`: finite `cpu.max` capacity, possibly fractional. - `scheduler.allocation.cpu_per_process`: bounded Slurm per-task interpretation when scope is clear. - `cpu.effective.capacity_cores`: minimum positive observed constraint. - `cpu.effective.worker_ceiling`: conservative floor for CPU process workers. A quota of 1.5 is CPU-time capacity, not 1.5 physical cores. Affinity and cpusets constrain placement; quota constrains bandwidth. ### Memory Keep these separate: - host total/available memory; - current cgroup usage, hard `memory.max`, and remaining hierarchical capacity; - `memory.high`, which is a pressure/throttle boundary rather than a hard cap; - scheduler memory allocation and its scope; and - conservative effective hard limit and available estimate. On Apple silicon, `memory.model` is `unified_cpu_gpu`. Do not add integrated GPU memory to RAM or describe it as separate VRAM. ### Accelerators Each device is a backend **candidate**: - NVIDIA GPU → CUDA candidate; - AMD GPU → ROCm candidate; - Apple integrated GPU → Metal candidate. Management-query visibility does not establish: 1. scheduler/container permission; 2. device-node access; 3. driver/runtime compatibility; 4. framework package compatibility; or 5. operator/data-type support. Therefore `runtime_usable_devices` remains null and each device says `runtime_compatibility: not_tested`. Visibility/allocation counts are upper bounds, not guarantees. ### Disk `capacity_bytes`, filesystem `free_bytes`, user-available blocks, and a non-writing permission check are distinct. Filesystem or project quotas can still be stricter. The absolute working path is always redacted. ### Scheduler and container Slurm variables describe allocation scope, but enforcement depends on site configuration such as task affinity or cgroups. Prefer affinity and cgroup observations as enforcement evidence. Container markers identify context; cgroup controls identify limits. A container with no finite cgroup value can still see host inventory, and a non-root cgroup is not automatically labeled a container. See [`references/resource_semantics.md`](references/resource_semantics.md) for the detailed platform rules. ## Plan a workload The planner consumes a validated snapshot and performs no work: ```bash python scripts/plan_workload.py resource-snapshot.json \ --workload cpu \ --tasks 100 \ --memory-per-worker-mib 2048 ``` Optional controls: - `--workers N`: explicit upper bound. - `--reserve-memory-mib N`: memory kept outside the worker budget. - `--workload cpu|mixed|io`: selects a bounded worker heuristic. - `--accelerator none|any|cuda|rocm|metal`: requests a candidate backend decision without claiming usability. - `--output plan.json`: explicit private local output; stdout is default. For CPU or mixed work, use `suggested_workers` and `threads_per_worker` together. Process workers multiplied by BLAS/OpenMP native threads can oversubscribe an allocation. The I/O plan permits bounded oversubscription (maximum 32) but labels it a heuristic. Benchmark only the real representative workload and stay within scheduler/container limits. ## Validate or diff snapshots Validate: ```bash python scripts/snapshot_tools.py validate re
How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.
This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.
Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.
Observe the user's screen via screenpipe, detect repeated research workflows, match them against existing scientific-agent-skills, and draft new skills (or composition recipes that chain existing ones) for the patterns not yet covered. Use when the user asks to analyze their recent work and propose skills based on what they actually do. Requires the screenpipe daemon (https://github.com/screenpipe/screenpipe) running locally on port 3030 — the skill has no other data source and will refuse to run if screenpipe is unreachable. All detection runs locally; only redacted cluster summaries reach the LLM.
Benchling Python SDK and REST API integration for registry entities, inventory, ELN entries, workflows, Benchling Apps, and Data Warehouse queries. Use when automating lab data with benchling-sdk or the v2 API.
Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server. Returns 25+ fields per paper including methods, results, sample sizes, quality scores, and conclusions. Use for literature reviews, evidence synthesis, and finding experimental details not available in abstracts alone.