.cursor/skills/capture-wsl-systemctl/SKILL.md
Captures systemctl diagnostics from a WSL Ubuntu distro over SSH and saves to logs/wsl-systemctl/ with a timestamped filename. Use when the user asks to capture, collect, or log systemctl output from WSL, or when diagnosing WSL service state.
npx skillsauth add doesitscript/dotfile-vnext capture-wsl-systemctlInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Collects systemctl diagnostics from a WSL distro via SSH and writes a timestamped log
to logs/wsl-systemctl/ in the project root.
systemctl status — top-level system statesystemctl list-units --type=service --all — all servicessystemctl list-units --failed — failed unitssystemctl status keepwsl.service — keepalive service statejournalctl -b -n 150 — last 150 lines from current bootDetermine the SSH target. Default is server-225-wsl (resolves via ~/.ssh/config
to the Ubuntu WSL distro on DESKTOP-VLLM). If the user specifies a different host,
use that instead.
Build the output filename:
TIMESTAMP=$(date '+%Y%m%d_%H%M%S')
OUT="logs/wsl-systemctl/${TIMESTAMP}_<ssh_target>.log"
Run the collector script from the project root:
cd /Users/joshc/develop/dotfile-vnext
bash .cursor/skills/capture-wsl-systemctl/scripts/collect.sh server-225-wsl "${OUT}"
Report the written path and any FAILED units found in the output.
Highlight keepwsl.service state explicitly.
| Alias | Port | Lands in | Use for |
|--------------------|------|------------------|--------------------------------|
| server-225-wsl | 22 | WSL bash (Ubuntu) | systemctl — use this |
| server-225-win | 2222 | WSL bash (Ubuntu) | same, alternate name |
| server-225-win-powershell | 2223 | PowerShell | Windows-only tasks |
Both server-225-wsl and server-225-win connect to port 2222 on DESKTOP-VLLM and
land directly in WSL bash — no wsl wrapper needed, run systemctl directly.
Requires WSL to be running. If WSL is down, re-deploy keepwsl.service:
ansible-playbook playbooks/access_windows.yaml --limit server-225-win --tags wsl
logs/wsl-systemctl/YYYYMMDD_HHMMSS_<host>.log
Example: logs/wsl-systemctl/20260310_143022_server-225-wsl.log
testing
Creates a zip archive from the project root while excluding .git and downloaded dependency/source folders. Use when the user asks to zip a project without git metadata or dependencies, including short trigger prompts like zipprojectroot, @zipprojectroot, archiveproject, or run zipprojectroot.
documentation
Reads .envrc, creates or updates .envrc.sample with sanitized placeholder values safe for committing, and ensures .envrc is in .gitignore. Use when adding secrets to .envrc, setting up a new project environment, creating a sample env file, protecting secrets from git, or when asked to sanitize, clean, or document environment variables.
documentation
Registers remote documentation URLs in project-level .cursor/config.json and processes them for active use. Use when the user provides doc sources, asks to add/index docs, or requests @doc handles with suggested titles.
testing
Stage only related work, exclude unrelated dirty files, and create one or more grouped multiline git commits with clear titles and bodies. Use when the user asks to add and commit current work cleanly, especially in a dirty worktree.