screen-reader-testing
Test web applications with screen readers including VoiceOver, NVDA, and JAWS. Use when validating screen reader compatibility, debugging accessibility issues,…
Preflight and diagnose the ten known failure modes for ML training on NVIDIA DGX Spark. Use when a training run on DGX Spark fails to start, OOMs below the 128GB limit, slows down mid-run, or before any multi-hour training job on GB10.
$ npx -y skills add wshobson/agents --skill spark-training-gotchas --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/spark-training-gotchasContext preview
The summary Claude sees to decide when to auto-load this skill.
Preflight and diagnose the ten known failure modes for ML training on NVIDIA DGX Spark. Use when a training run on DGX Spark fails to start, OOMs below the 128GB limit, slows down mid-run, or before any multi-hour training job on GB10.
name: spark-training-gotchas description: Preflight and diagnose the ten known failure modes for ML training on NVIDIA DGX Spark. Use when a training run on DGX Spark fails to start, OOMs below the 128GB limit, slows down mid-run, or before any multi-hour training job on GB10.
DGX Spark's GB10 chip (Grace Blackwell, SM121, 128GB unified memory, aarch64) has ten recurring failure modes across launch, memory, thermals, bandwidth, and precision. Each is named G1–G10 so it can be checked by number — the numbering is load-bearing for tooling that runs these checks. Read this before a long run, not after hour six.
segfault that doesn't point at the real cause.
strategy.
| # | Symptom | Fix | |---|---|---| | G1 | undefined symbol / segfault | cu130 wheel or container | | G2 | flash-attn wrong backend used | skip pip build; monkeypatch on NGC | | G3 | OOM despite headroom | drop page cache | | G4 | throughput drop / reboot | expect ~100W sustained cap | | G5 | memory-bound step slow | budget 180–192 GB/s | | G6 | cache evicted mid-run | one GPU server at a time | | G7 | NVFP4 slower than FP8 | stay FP8 unless `sm_121a` | | G8 | playbook fails outright | check upstream issues | | G9 | env breaks after install | use a container | | G10 | 2-Spark TP hangs | DDP/FSDP only, never TP |
function, or a segfault on the first `.cuda()` call.
ships CUDA 13. pip never checks CUDA ABI, so it surfaces only at import or first kernel launch.
CUDA build tag.
use a matched container.
Unsloth may also silently train flash-attn over an explicitly requested SDPA.
containers ship a working SM121 flash-attn, and Unsloth auto-prefers it, dropping `attn_implementation="sdpa"`.
already present and working.
NGC — the only reliable override is the monkeypatch in `references/gotcha-checks.md` G2.
`nvidia-smi` still reports free memory under the 128GB cap — or, on some setups, `[N/A]` outright instead of a number.
during safetensors load; QLoRA can OOM *earlier* than bf16 since dequantization adds transient allocs.
and `/proc/meminfo`, not `nvidia-smi`.
`sync; echo 3 > /proc/sys/vm/drop_caches` — needs root, a between-run reset, not a mid-training step.
run, or the box spontaneously reboots under sustained load.
240W rated figure; long runs push into that ceiling and throttle or, sometimes, reboot.
`nvidia-smi --query-gpu=temperature.gpu,power.draw`.
climbs, treat throttling as the cause; improve cooling or cap run length.
especially, plateau well below expected throughput.
measured bandwidth runs 180–192 GB/s.
time vs. the measured range, not spec.
built on the 273 GB/s figure.
mid-run silently, no OOM in its own logs.
one global pool; an uncapped or near-capacity process competes with anything else and can evict it. A small, bounded workload doesn't — a <4GB LoRA coexists fine alongside vLLM capped at `gpu-memory-utilization<=0.5`.
G6 — other GPU-resident processes and whether capped.
rule applies to **uncapped or near-capacity** workloads — cap or stop unrelated servers first. A small, capped workload need not stop.
NVFP4 on Spark makes it slower, not faster.
`sm_121a`; NVFP4 runs ~32% slower without it.
reports `(12, 1)`; does the build target `sm_121a`?
fails, with no local misconfiguration explaining it.
the stack moves faster than the docs.
repo's recent issues.
before
Production-ready agentic workflow building blocks: 94 plugins, 202 agents, 183 skills, 105 commands — built for Claude Code and consumed natively by OpenAI Codex CLI, Cursor, OpenCode, the Antigravity CLI, GitHub Copilot, and Pi from a single Markdown source.
Repo: wshobson/agents
Test web applications with screen readers including VoiceOver, NVDA, and JAWS. Use when validating screen reader compatibility, debugging accessibility issues,…
Conduct WCAG 2.2 accessibility audits with automated testing, manual verification, and remediation guidance. Use when auditing websites for accessibility,…
Coordinate parallel code reviews across multiple quality dimensions with finding deduplication, severity calibration, and consolidated reporting. Use this…
Debug complex issues using competing hypotheses with parallel investigation, evidence collection, and root cause arbitration. Use this skill when debugging…
Coordinate parallel feature development with file ownership strategies, conflict avoidance rules, and integration patterns for multi-agent implementation. Use…
Decompose complex tasks, design dependency graphs, and coordinate multi-agent work with proper task descriptions and workload balancing. Use this skill when…