Skip to content
Data
Skill

/get-available-resources

Detects host inventory and effective CPU, memory, disk, scheduler, container, and accelerator limits when a user asks for resource-aware planning or before a clearly resource-sensitive local workload. Produces a redacted JSON snapshot and conservative planning helpers without

From plugin
scientific-agent-skills
56k177 skills

Claude Code

$ npx -y skills add K-Dense-AI/scientific-agent-skills --skill get-available-resources --agent claude-code

SKILL.md

get-available-resources.SKILL.md
name: get-available-resources
description: Detects host inventory and effective CPU, memory, disk, scheduler, container, and accelerator limits when a user asks for resource-aware planning or before a clearly resource-sensitive local workload. Produces a redacted JSON snapshot and conservative planning helpers without stress tests or assuming visible host hardware is usable.
license: MIT
compatibility: Python 3.11+ on Linux, macOS, or Windows; standard library by default, optional psutil 7.2.2; accelerator management CLIs are optional read-only probes.
metadata:
  version: "1.5"
  last-reviewed: "2026-10-01"
  skill-author: K-Dense Inc.

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

python scripts/detect_resources.py

The command emits only JSON to stdout. Redirect it only when ordinary shell permissions are acceptable.

Explicit private file

python scripts/detect_resources.py --output resource-snapshot.json

Explicit output is restricted to one `.json` filename in the current directory, uses mode 0600 on POSIX, rejects symlinks and path traversal, and refuses overwrite unless `--force` is supplied. Forced output also rejects hard links and non-regular files. Windows privacy additionally depends on the directory ACL.

Optional psutil enhancement

The standard-library detector works without installation. For broader cross-platform physical-core, affinity, available-memory, swap, and disk coverage:

uv run --no-project --with "psutil==7.2.2" python scripts/detect_resources.py

The import is lazy. Failure to import psutil becomes a warning, not a fatal error.

Skip management-tool probes

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 constrain the observed management records, not the number of framework devices. MIG and AMD partition enumeration can differ. AMD `reported_total_bytes` is a device-reported memory pool; its relationship to host RAM is not established, so it is never added to the RAM budget.

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.

The disk snapshot covers the working filesystem only, matching [psutil's path-specific semantics](https://psutil.readthedocs.io/stable/index.html#psutil.disk_usage). If scratch, caches, and final outputs use different filesystems, inspect each from its target directory and label the reports by role. Budget temporary and final copies that coexist; free space on the input filesystem does not establish space on the output filesystem.

Scheduler and container

Slurm variables describe allocation scope, but enf

Read more
@k-dense-ai
Ships withscientific-agent-skills

๐Ÿ”” Claude Scientific Skills is now Scientific Agent Skills. Same skills, broader compatibility โ€” now works with any AI agent that supports the open Agent Skills standard, not just Claude.

Stars on GitHub

Momentum

stars in total
55.6k
Star history of K-Dense-AI/scientific-agent-skills on GitHub, a chart by star-history.com

Other skills on scientific-agent-skills.

aeon

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting,โ€ฆ

More skills from other plugins.

paddleocr-doc-parsing

paddleocr-doc-parsing

Use this skill to extract structured Markdown/JSON from PDFs and document imagesโ€”tables with cell-level precision, formulas asโ€ฆ

@paddlepaddle@paddlepaddleInstall Skill
context-loader
Auto-invoked

context-loader

Search memories from earlier Pi sessions in this repository. Use it when earlier work may already explain the code, error,โ€ฆ

mem04d69k
@mem0ai@mem0aiInstall Skill
analyzing-ai-citations

analyzing-ai-citations

Answer AI citation and answer engine optimization (AEO) questions in PostHog: whether AI answer engines (ChatGPT, Claude, and anโ€ฆ

posthog10d41k
@posthog@posthogInstall Skill
qmd

qmd

Search local markdown knowledge bases, notes, docs, and wikis with QMD. Use when users ask to find notes, retrieve documents,โ€ฆ

qmd3w31k
@tobi@tobiInstall Skill

Questions about get-available-resources.

Which coding agents can use get-available-resources?
get-available-resources installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.