From qwen-stack
One-glance overview of qwen-stack — plugin version, supervisor process state, dist build freshness, configured backends with live health, config-file path, and any obvious red flags (stale binary, env override masking config, dead default backend). Use when the user types `/qwen-stack:status` or asks "is the qwen stack healthy" / "what's running" / "is everything wired up".
How this skill is triggered — by the user, by Claude, or both
Slash command
/qwen-stack:status (no args)(no args)This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Single-screen sanity check for the whole stack. Read-only — never writes anything. Designed so the operator can paste the output in a bug report or share with another collaborator.
Single-screen sanity check for the whole stack. Read-only — never writes anything. Designed so the operator can paste the output in a bug report or share with another collaborator.
pgrep -f qwen-agent-server/dist/server.js | head -1 | xargs -I{} ps -p {} -o args= and back out the repo root from the dist/server.js path (strip the mcp-bridges/qwen-agent-server/dist/server.js suffix). If the supervisor isn't running, fall back to git rev-parse --show-toplevel from the user's current cwd (only useful when they're inside the repo).cat <repo>/.claude-plugin/plugin.json — read name, version.git -C <repo> log -1 --format='%h %s (%cr)' for the current commit.git -C <repo> status --short | head -3 if dirty (note as "uncommitted local changes").pgrep -f qwen-agent-server/dist/server.js — there should be exactly one PID.ps -p <pid> -o pid,etime,rss,args — capture start-elapsed time + working set.dist/server.js mtime to the supervisor process's start time. If the binary is newer than the running process, the operator did npm run build after CC started and the running supervisor is on stale code. Surface this loudly — it's the same gotcha we hit during 0.2 development.
stat -f %m dist/server.js (Mac) or stat -c %Y (Linux) for binary mtime. Process start: parse ps -o lstart= or compute from etime.qwen_backends (no args).true, ✗ for false, ? for null (unprobed).qwen_sessions (no args).task_id / backend_id / state / turns / est-tokens (% of cap) / tool-calls (% of cap).0 (disabled / unlimited) show — instead of a percent, since 0 doesn't mean "100 % full." When the cap is non-zero, render est_tokens / max_tokens and the percent rounded to nearest integer.last_polled_at ascending so the staler ones bubble up — easy spotting of sessions a caller forgot to drain.This section is the operator's window into the budget guardrail in action; it's also how a stalled session that the orchestrator has stopped polling becomes visible.
echo "${QWEN_BACKENDS:-}" — flag if non-empty (env override is masking the file).~/.qwen-coprocessor-stack/config.json:
echo "${QWEN_DEFAULT_EXTENSIONS:-}", echo "${QWEN_ADMIN_TOOLS:-}", echo "${QWEN_MAX_CONTEXT_TOKENS:-}", echo "${QWEN_MAX_TOOL_CALLS:-}" — operator-facing knobs worth surfacing. Show "(unset)" if not set.A separate "Notes" section listing anything noteworthy:
QWEN_BACKENDS env set — silently overrides the config file; operator might not realise.QWEN_MAX_CONTEXT_TOKENS / QWEN_MAX_TOOL_CALLS env set — silently overrides config.session_budget. Same surprise risk; the operator might be editing config.json without realising the env wins.healthy: false — supervisor can't reach it; spawns may fail.healthy: null — never been probed; first spawn will be the cold-probe.est_tokens ≥ 75 % of max_tokens and state=running — caller probably hasn't reacted to the warn pressure event; flag it.state=error that hasn't been stopped (still in pool) — orchestrator forgot to call qwen_stop; minor but it's pool slots.qwen-coprocessor MCP registration in claude mcp list (the dead Python server.py from before the TypeScript rewrite). Probe with claude mcp list 2>/dev/null | grep -i 'qwen' | grep -v 'plugin:' — if anything matches, it's stale.If no red flags, say "no red flags."
qwen-coprocessor-stack
Plugin: 0.2.0 (commit abc1234, "v0.2.0 ship: backend lifecycle ...", 3 hours ago)
Supervisor: PID 12345, up 4h22m, RSS 142 MB
Build: dist/server.js — 4h25m old (synced; fresh build)
Backends (from ~/.qwen-coprocessor-stack/config.json)
✓ qwentescence http://qwentescence:1234/v1 qwen3.6-35b-a3b remote / heavy
Sessions
q-438f5d14 qwentescence running turn 0 2.4K / 50K (5%) 3 / —
q-117a916b qwentescence error turn 0 9.4K / 1K (940%) 3 / —
Config
QWEN_BACKENDS: (unset)
QWEN_DEFAULT_EXTENSIONS: (unset)
QWEN_MAX_CONTEXT_TOKENS: (unset)
QWEN_MAX_TOOL_CALLS: (unset)
QWEN_ADMIN_TOOLS: (unset)
config.json: 192 B, modified 3h ago
Notes
no red flags
? glyphs only inside the backends table./reload-plugins.npx claudepluginhub hellblazer/qwen-coprocessor-stack --plugin qwen-stackCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.