Borrowing it
Nothing to install: this file belongs to maoxx241/vllm-ascend-workspace. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/maoxx241/vllm-ascend-workspace/main/.agents/skills/machine-management/SKILL.mdgit clone --depth 1 https://github.com/maoxx241/vllm-ascend-workspaceWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/maoxx241/vllm-ascend-workspace/machine-management)<a href="https://agentmods.dev/skills/maoxx241/vllm-ascend-workspace/machine-management"><img src="https://agentmods.dev/badge/skills/maoxx241/vllm-ascend-workspace/machine-management/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/maoxx241/vllm-ascend-workspace/machine-management"><img src="https://agentmods.dev/badge/skills/maoxx241/vllm-ascend-workspace/machine-management.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00066 | $0.03686 |
| Opus 5 | $0.00033 | $0.01843 |
| Sonnet 5 | $0.00013 | $0.00737 |
| Haiku 4.5 | $0.00007 | $0.00369 |
Grade A, and why
machine-management scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 248 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Machine Management
Manage the remote-machine layer for vllm-ascend-workspace.
A machine is ready only when the managed container:
- accepts direct local -> container SSH by key, and
- passes the container-side
torch+torch_npusmoke test.
Ready does not imply code sync, rebuild, serving, or benchmark readiness.
Use this skill when
- the user asks to add or configure a remote NPU machine
- the user asks whether a managed machine is ready
- the user asks to repair host SSH, container SSH, or managed-container drift
- the user asks to remove a managed machine
- repo-init was skipped and the local machine profile is still missing
Do not use this skill when
- the task is code sync into the remote container
- the task is replacing
vllmorvllm-ascendsource trees - the task is rebuilding Python packages or native extensions
- the task is serving, benchmarking, or unrelated SSH work
Critical rules
- Probe first.
- Be idempotent and conservative.
- Keep mutations bounded to the requested machine.
- Treat the bare-metal host as a maintenance plane, not a developer workspace.
- Keep local runtime state only under
.vaws-local/. - Never write passwords or tokens into tracked files or
.vaws-local/. - Never use
scp,sftp,sshpass, orexpectin this workflow. - Never default the container image silently. Ask the user to choose one of:
local-latest: inspect every image in the target host Docker daemon, keep repositories whose basename containsvllm-ascend(including registry / namespace prefixes and names such ascompany-vllm-ascendorvllm-ascend-dev), filter them for the detected A2 / A3 / A5 / 310P machine type, and deploy the newest compatible image by Docker image creation time; this never pullsrc: resolve the newest official prereleasevllm-ascendtag, then tryquay.nju.edu.cn/ascend/vllm-ascend:<tag>first andquay.io/ascend/vllm-ascend:<tag>second; this is the recommended developer trackmain:quay.nju.edu.cn/ascend/vllm-ascend:main, thenquay.io/ascend/vllm-ascend:mainstable: resolve the latest official non-prereleasevllm-ascendrelease tag, then try NJU first andquay.iosecondcustom: a full image reference with a concrete non-latesttag or digest
- Treat
auto, direct*:latest, and bare repositories without a tag as forbidden defaults for managed-machine bootstrap;local-latestis the explicit bounded discovery policy, not a moving registry tag. - Report and persist the actual selected image for the managed container, not only the requested image policy.
- Resolve hardware-specific image tags from the detected machine type whenever the user chose
rc,main, orstable: A2 uses the base tag, A3 appends-a3, A5 appends-a5, and 310P appends-310p. - Prefer a fresh detailed
npu-smiboard query over the bareAscend910label. Query an NPU ID withnpu-smi info -l, query both board forms (-t board -i <id>and-t board -i <id> -c <chip-id>), and construct the SoC fromChip Type/Chip Name/NPU Nameas applicable. In particular,Chip Name: Ascend910plusNPU Name: 9362meansascend910_9362/ A3. If detailed queries are unavailable, accept an exact bareAscend910token as an A3 compatibility fallback. - Treat
/etc/profile.d/vaws-ascend-env.sh,SOC_VERSION,VAWS_NPU_SOC, inventory, and image-name inference as fallbacks or consistency hints only. A successful fresh detailed hardware query wins when old persisted metadata disagrees. - When detection remains inconclusive, stop and ask for an explicit machine type override instead of guessing.
- Persist
host.machine_type,host.soc, andcontainer.machine_typeinto inventory, and write matching metadata under/etc/vaws/plus/etc/profile.d/vaws-ascend-env.shon the host and inside the managed container. - Before running
apt-get update/apt-get installinside the container, rewrite apt sources to the fixed A3-tested NJU mirror (mirrors.nju.edu.cn). Do not spend bootstrap time probing alternate mirrors. - Prepend
/usr/local/Ascend/driver/lib64/common,/usr/local/Ascend/driver/lib64/driver, and/usr/local/Ascend/driver/lib64before callingnpu-smior the smoke test; source/etc/profile.d/vaws-ascend-env.shwhen it exists. - Persist and reuse an explicit ATB C++ ABI setting during container bootstrap. Do not let login shells repeatedly call ATB
set_env.shwithout--cxx_abi, because that can importtorchduring shell startup and add 10+ seconds to ordinary SSH commands. - Long probe / bootstrap / smoke operations must expose bounded phase progress and have an overall timeout budget, not only a connect timeout.
- On a missing local machine profile, never call
workspace_profile.py ensurebare. Use either:--username <letters-or-digits>after the user chose a name--generateonly after the user explicitly accepted the default/random option
- If host key SSH is missing and the user already supplied the host password in the request, prefer one-shot scripted bootstrap first. Do not immediately push the user to a manual terminal command.
What ships with it
12 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/acceptance.md 11 KB
- references/behavior.md 15 KB
- references/command-recipes.md 7.2 KB
- scripts/_workflow_common.py 41 KB runs code
- scripts/inventory.py 22 KB runs code
- scripts/machine_add.py 17 KB runs code
- scripts/machine_remove.py 3.1 KB runs code
- scripts/machine_repair.py 14 KB runs code
- scripts/machine_verify.py 2.6 KB runs code
- scripts/manage_machine.py 120 KB runs code
- tests/test_image_selection.py 6.7 KB runs code
- tests/test_machine_type_detection.py 3.3 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago Changed · +2 lines 1f2d249375de
- 11d ago First seen · 246 lines · 66 tokens per session scan A c3cf7e5d0426
machine-management is a skill published in the GitHub repository maoxx241/vllm-ascend-workspace (36 stars, last pushed 6d ago), licensed MIT. It adds 66 tokens to every session and 3,686 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…