Skills and rules for AI coding agents (Claude Code, Cursor, Continue) tailored to the Digital Research Alliance of Canada's HPC environment.
Skills give AI coding agents specialized knowledge about Alliance HPC systems — how to discover and load software via CVMFS/Lmod, submit Slurm jobs that actually work, and look up cluster policies from current documentation. Instead of guessing module versions, GPU types, or partition names (and getting them wrong), the agent follows the same discovery workflow a human would.
| Skill | What it does |
|---|---|
alliance-cvmfs |
Software discovery and loading. module spider, Lmod tier hierarchy, Python venvs, the cluster wheelhouse, Apptainer containers. |
alliance-slurm |
Job submission and monitoring. GPU/GRES discovery, MIG and soft-MIG, Lua auto-routing, proxy/cache rules, job script templates. |
alliance-docs |
Documentation lookup. Queries the Alliance docs RAG API for current policies on storage, accounts, quotas, Globus, cloud, and cluster-specific behaviour. |
Each skill includes when_to_use triggers so the agent loads it automatically at the right time — you don't need to invoke them manually.
Pre-built Claude Code settings files for different LLM backends. Each one points at a different API and model lineup — swap them by copying the one you want to ~/.claude/settings.json.
| File | Backend | Models |
|---|---|---|
settings.json.deepseek |
DeepSeek API | deepseek-v4-pro (opus), deepseek-v4-flash (sonnet/haiku) |
settings.json.vulcan |
Vulcan (hosted Aleph inference) | qwen35-122b (opus), qwen38-27b (sonnet), gpt-oss-120b (haiku) |
settings.json.zai |
Z.AI (GLM) | glm-5.3 (opus), glm-5.2 (sonnet), glm-4.7 (haiku) |
settings.json.kimi |
Kimi (Moonshot) | kimi-k3[1m] (all tiers) |
Each file sets ANTHROPIC_BASE_URL, the model mappings, and a timeout. Tokens are placeholders — fill in your own key. For Vulcan, ask Rahim or Karim for the token.
# Switch to DeepSeek
cp claude/settings.json.deepseek ~/.claude/settings.json
# Switch to Vulcan (on-cluster)
cp claude/settings.json.vulcan ~/.claude/settings.json
# Switch to Z.AI
cp claude/settings.json.zai ~/.claude/settings.json
# Switch to Kimi
cp claude/settings.json.kimi ~/.claude/settings.jsonSystem-level configs that ship to /etc/claude-code/ and /etc/cron.d/ for managed, multi-user deployments. These enforce cluster-wide rules and keep things fun.
| File | Purpose |
|---|---|
etc/claude-code/CLAUDE.md |
Organization-level policy injected into every Claude Code session. Teaches the agent about Vulcan's Slurm setup, storage quotas, and login-node rules so it doesn't do dumb things. |
etc/claude-code/managed-settings.json |
Managed (admin-locked) settings. Disables bypass mode, denies credential/PII reads, requires approval for ssh/scp/crontab/job-kill, turns off updates + telemetry + error reporting, 14-day session cleanup. |
etc/claude-code/.claude/skills/ |
Canonical enterprise skills source (/etc/claude-code/.claude/skills). Update this one tree and every agent follows. |
etc/agents/skills |
Symlink → ../claude-code/.claude/skills. Feeds Codex and the per-user skill links. |
etc/agents/AGENTS.md |
Condensed shared instructions (do-nots, Slurm/module rules) for non-Claude agents. |
etc/codex/{config,requirements}.toml |
Codex defaults + admin-enforced floor: workspace-write sandbox, approvals always on, no danger-full-access. |
etc/codex/skills |
Symlink → ../agents/skills. |
etc/gemini-cli/ |
Settings + hpc-guardrails.toml policy (dormant until Gemini CLI ships on the nodes). |
etc/opencode/opencode.json |
Autoupdate off + permission rules. No trailing catch-all allow — rules are last-match-wins. |
etc/profile.d/ai-agent-skills.sh |
Login hook: symlinks central skills into ~/.agents/skills/, ~/.gemini/antigravity-cli/skills/, ~/.codex/ — never clobbers existing files. |
etc/claude-code/update-motd.sh |
Rotates the companyAnnouncements banner through sci-fi quotes every 5 minutes. Keeps the MOTD fresh with lines from HAL 9000, Star Wars, The Matrix, Hitchhiker's Guide, and more. |
etc/cron.d/claude-motd |
Cron job that fires update-motd.sh every 5 minutes. |
etc/ansible/playbooks/93-ai-agents.yaml |
Boot-time agent install only: Claude Code (apt), Codex + opencode (pinned binaries), Antigravity CLI (official installer). No config copying. |
The per-user login banner stack: renderer, root cache baker, config, login hook, and systemd timer. The baker refreshes /run/vulcan-motd/ every 10 min so vulcan-status never calls Slurm synchronously at login.
| File | Target |
|---|---|
usr/local/bin/vulcan-status |
/usr/local/bin/ — the renderer (fairshare tiers, LevelFS verdicts, --help) |
usr/local/sbin/vulcan-motd-bake |
/usr/local/sbin/ — 10-min cache baker (emits gpu_usable) |
etc/vulcan-motd/{motd.conf,announce.txt} |
/etc/vulcan-motd/ — tier thresholds/color bands; announcements placeholder |
etc/profile.d/zz-vulcan-motd.sh |
/etc/profile.d/ — login hook that runs the renderer |
etc/systemd/system/vulcan-motd-bake.{service,timer} |
/etc/systemd/system/ — run systemctl enable --now vulcan-motd-bake.timer |
The renderer falls back to raw free GPUs if gpu_usable is absent, so old/new baker+renderer combos are safe in any order.
# System-level Claude Code policy (one-time setup)
sudo mkdir -p /etc/claude-code
sudo cp etc/claude-code/CLAUDE.md /etc/claude-code/
sudo cp etc/claude-code/managed-settings.json /etc/claude-code/
sudo cp etc/claude-code/update-motd.sh /etc/claude-code/
sudo chmod +x /etc/claude-code/update-motd.sh
# MOTD rotator cron job
sudo cp etc/cron.d/claude-motd /etc/cron.d/
sudo systemctl restart cronie # or crond, depending on distro
# vulcan-status login banner
sudo cp usr/local/bin/vulcan-status /usr/local/bin/
sudo cp usr/local/sbin/vulcan-motd-bake /usr/local/sbin/
sudo cp -r etc/vulcan-motd /etc/
sudo cp etc/profile.d/zz-vulcan-motd.sh /etc/profile.d/
sudo cp etc/systemd/system/vulcan-motd-bake.* /etc/systemd/system/
sudo systemctl enable --now vulcan-motd-bake.timerManaged settings are locked — users can't override them in their own settings.json. Use this to enforce safety rules across a shared cluster. The MOTD script needs python3 and write access to /etc/claude-code/managed-settings.json.
Skills are markdown files — drop them into the skills directory for your agent.
git clone https://github.com/ualberta-rcg/drac-agent-skills.git
cp -r drac-agent-skills/skills/* ~/.claude/skills/git clone https://github.com/ualberta-rcg/drac-agent-skills.git
cp -r drac-agent-skills/skills/* ~/.cursor/skills/git clone https://github.com/ualberta-rcg/drac-agent-skills.git
cp -r drac-agent-skills/skills/* ~/.continue/skills/Hermes picks up skills from this repo directly — point your Hermes config at ualberta-rcg/drac-agent-skills and it will sync the latest skill definitions for all connected agents.
Any agent that supports Claude Code-style skill files (SKILL.md with YAML frontmatter) can use these. The convention is <skills-dir>/<skill-name>/SKILL.md. Copy the skills/ directory to wherever your agent looks for skills.
The claude/ directory has pre-built settings.json files for different LLM backends. Pick one and copy it to ~/.claude/settings.json. See Agent Configs above for the available backends.
For admins deploying to a shared cluster — the etc/ directory has system-level CLAUDE.md, managed settings, and an MOTD rotator. See Organization Policies above for setup instructions.
Many Bothans died to bring us this information. This project is provided as-is, but reasonable questions may be answered based on my coffee intake or mood. ;)
Feel free to open an issue or email khoja1@ualberta.ca or kali2@ualberta.ca for U of A related deployments.
This project is released under the MIT License - one of the most permissive open-source licenses available.
What this means:
- ✅ Use it for anything (personal, commercial, whatever)
- ✅ Modify it however you want
- ✅ Distribute it freely
- ✅ Include it in proprietary software
The only requirement: Keep the copyright notice somewhere in your project.
That's it! No other strings attached. The MIT License is trusted by major projects worldwide and removes virtually all legal barriers to using this code.
Full license text: MIT License
The Research Computing Group supports high-performance computing, data-intensive research, and advanced infrastructure for researchers at the University of Alberta and across Canada.
We help design and operate compute environments that power innovation — from AI training clusters to national research infrastructure.

