src/skills/go/SKILL.md
Manage Oracle skills — list, install, remove, find, switch profiles, update. Use when user says "go", "install skill", "remove skill", "find skill", "switch profile", "go list", "go update", "go install", "go find". Single entry point for all skill management.
npx skillsauth add Soul-Brews-Studio/oracle-skills-cli goInstall 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.
Switch gear. Single source of truth.
/go # all skills — profile tier + installed status
/go list # same as /go (no args)
/go minimal # newcomer essentials (7 skills, default)
/go standard # daily driver (13 skills)
/go full # all stable (excludes lab-only experiments)
/go lab # everything including experimental
/go cleanup # remove ALL skills → fetch latest → fresh install
/go update # check for new version + upgrade in-place
/go install team-agents # cherry-pick install specific skills
/go remove watch # uninstall specific skills
/go find feel # search all available skills by name
⚠ NEW (#285):
/go <profile>now ALIGNS your installed skills to the target profile. arra-managed skills NOT in the target profile will be removed. External / non-arra skills are never touched. A pre-removal diff is shown before any deletion occurs.
Before running any command, detect the CLI path. It may not be in $PATH on all machines.
# Try in order: global binary, bun global, bunx fallback
if command -v arra-oracle-skills &>/dev/null; then
ARRA="arra-oracle-skills"
elif [ -x "$HOME/.bun/bin/arra-oracle-skills" ]; then
ARRA="$HOME/.bun/bin/arra-oracle-skills"
else
# Not installed — use bunx (always works if bun exists)
ARRA="$HOME/.bun/bin/bunx --bun arra-oracle-skills@github:Soul-Brews-Studio/arra-oracle-skills-cli"
fi
Use $ARRA for all commands below.
Parse the user's /go arguments and run the matching $ARRA command.
/go or /go list — show all skills with profile + installed status + typeWrite this script to /tmp/go-list.sh and run it with bash /tmp/go-list.sh. The script auto-discovers profile membership from the CLI — zero hardcoded skill names.
#!/bin/bash
SKILLS_DIR="$HOME/.claude/skills"
ARRA="$HOME/.bun/bin/arra-oracle-skills"
VERSION=$($ARRA --version 2>/dev/null || echo "?")
# Auto-get skill lists from CLI (no hardcoding)
get_profile_skills() {
$ARRA profiles "$1" 2>/dev/null | grep "Skills:" | sed 's/.*Skills: //' | tr ',' '\n' | sed 's/^ *//' | tr '\n' ' '
}
STANDARD=$(get_profile_skills standard)
FULL=$(get_profile_skills full)
LAB_RAW=$(get_profile_skills lab)
# Lab-only = in lab but not in full
LAB=""
for s in $LAB_RAW; do
echo " $FULL " | grep -q " $s " || LAB="$LAB $s"
done
# Minimal-only = in minimal but not in standard
MINIMAL=$(get_profile_skills minimal)
MINIMAL_ONLY=""
for s in $MINIMAL; do
echo " $STANDARD " | grep -q " $s " || MINIMAL_ONLY="$MINIMAL_ONLY $s"
done
ALL_ARRA="$STANDARD $LAB $MINIMAL_ONLY"
detect_type() {
local dir="$SKILLS_DIR/$1"
[ -d "$dir" ] || return
local has_code=false has_agent=false
[ -d "$dir/scripts" ] && has_code=true
grep -qlE 'Agent\(|subagent|TeamCreate|SendMessage' "$dir/SKILL.md" 2>/dev/null && has_agent=true
if $has_code && $has_agent; then echo "[code+agent]"
elif $has_code; then echo "[code]"
elif $has_agent; then echo "[agent]"
fi
}
get_desc() {
local f="$SKILLS_DIR/$1/SKILL.md"
[ -f "$f" ] || return
awk '/^---$/{n++; next} n==1{print} n>=2{exit}' "$f" \
| grep -E '^description:' | head -1 \
| sed "s/description: *//; s/['\"]//g; s/\[core\].*G-SKLL | //" \
| cut -c1-40
}
echo "Oracle Skills v$VERSION"
echo ""
NUM=0; INSTALLED=0
std_count=$(echo $STANDARD | wc -w | tr -d ' ')
lab_count=$(echo $LAB | wc -w | tr -d ' ')
min_count=$(echo $MINIMAL_ONLY | wc -w | tr -d ' ')
for tier in STANDARD LAB MINIMAL_ONLY; do
case $tier in
STANDARD) skills="$STANDARD"; label="standard"; count=$std_count ;;
LAB) skills="$LAB"; label="lab"; count=$lab_count ;;
MINIMAL_ONLY) skills="$MINIMAL_ONLY"; label="minimal-only"; count=$min_count ;;
esac
[ -z "$(echo $skills | tr -d ' ')" ] && continue
printf " ─── %s (%s) " "$label" "$count"
printf '─%.0s' $(seq 1 $((52 - ${#label}))); echo ""
for name in $skills; do
NUM=$((NUM+1))
if [ -d "$SKILLS_DIR/$name" ]; then
mark="✓"; INSTALLED=$((INSTALLED+1))
else
mark="✗"
fi
tag=$(detect_type "$name")
desc=$(get_desc "$name")
if [ -n "$desc" ]; then
printf " %2d %s %-24s %-14s %s\n" "$NUM" "$mark" "$name" "$tag" "$desc"
else
printf " %2d %s %-24s %s\n" "$NUM" "$mark" "$name" "$tag"
fi
done
echo ""
done
# External (non-arra) skills
EXT=0; EXT_NAMES=""
for dir in "$SKILLS_DIR"/*/; do
[ -d "$dir" ] || continue
name=$(basename "$dir"); [ "$name" = ".trash" ] && continue
is_arra=false
for a in $ALL_ARRA; do [ "$name" = "$a" ] && is_arra=true && break; done
[ "$is_arra" = "false" ] && { EXT=$((EXT+1)); EXT_NAMES="$EXT_NAMES $name"; }
done
if [ "$EXT" -gt 0 ]; then
printf " ─── external (%d) " "$EXT"
printf '─%.0s' $(seq 1 44); echo ""
for name in $EXT_NAMES; do
NUM=$((NUM+1)); INSTALLED=$((INSTALLED+1))
tag=$(detect_type "$name")
desc=$(get_desc "$name")
if [ -n "$desc" ]; then
printf " %2d ✓ %-24s %-14s %s\n" "$NUM" "$name" "$tag" "$desc"
else
printf " %2d ✓ %-24s %s\n" "$NUM" "$name" "$tag"
fi
done
echo ""
fi
echo " $INSTALLED/$NUM installed · zombies hidden (--zombies to show)"
echo " Cherry-pick: arra-oracle-skills install -g -s <name> -y"
echo " Switch: /go standard | /go lab"
Auto-detected columns:
arra-oracle-skills profiles <name> CLI output (zero hardcoded names)[code] (scripts/), [agent] (Agent patterns), [code+agent] (both)$HOME/.claude/skills/<name>/ exists--zombies flag: append zombie skills section. Only shown when explicitly requested.
/go <profile> — switch profile$ARRA install -g --profile <name> -y
Profiles: minimal, standard, full, lab
/go minimal → $ARRA install -g --profile minimal -y/go standard → $ARRA install -g --profile standard -y/go full → $ARRA install -g --profile full -y/go lab → $ARRA install -g --profile lab -yNote: passing
--profileexplicitly triggers alignment — arra-managed skills NOT in the target are removed automatically. External skills are never touched.
/go cleanup — fresh install (safe)Crosscheck installed skills, remove stale arra-managed ones, fetch latest, reinstall. External skills are never touched.
Step 1: Crosscheck — list all installed skills, classify by installer: field in SKILL.md:
SKILLS_DIR="$HOME/.claude/skills"
LATEST=$(curl -s https://api.github.com/repos/Soul-Brews-Studio/arra-oracle-skills-cli/tags | grep -m1 '"name"' | cut -d'"' -f4)
echo "📋 Crosscheck (latest: $LATEST):"
ARRA_COUNT=0; EXT_COUNT=0; STALE_COUNT=0; CONFLICT_COUNT=0
for dir in "$SKILLS_DIR"/*/; do
[ -d "$dir" ] || continue
name=$(basename "$dir")
version=$(grep -o 'v[0-9][0-9.]*' "$dir/SKILL.md" 2>/dev/null | head -1)
installer=$(grep 'installer:' "$dir/SKILL.md" 2>/dev/null | head -1)
if echo "$installer" | grep -q "arra-oracle"; then
# Arra-managed skill — check version
if [ "$version" = "$LATEST" ]; then
echo " ✓ arra: $name ($version)"
ARRA_COUNT=$((ARRA_COUNT + 1))
else
echo " ⚠️ stale: $name ($version → $LATEST)"
STALE_COUNT=$((STALE_COUNT + 1))
fi
else
echo " ○ external: $name — will keep"
EXT_COUNT=$((EXT_COUNT + 1))
fi
done
echo ""
echo " Summary: $ARRA_COUNT ok, $STALE_COUNT stale, $EXT_COUNT external"
Step 2: Combined table — crosscheck + usage in ONE table. Mine session JSONL files, then display everything together:
# Mine usage data from all sessions
TOTAL=0
for jsonl in ~/.claude/projects/*/*.jsonl; do
[ -f "$jsonl" ] || continue
TOTAL=$((TOTAL + 1))
done
Build the combined table. For each of the 29 arra skills, show: profile tier, installed status, version, status, and usage count from session mining.
📋 Skills Overview (29 arra + N external) — $TOTAL sessions mined:
# Skill Profile Installed Version Status Usage
── ──────────────────────── ────────── ────────── ───────── ──────────── ─────
1 about-oracle standard ✓ v3.7.2 ✓ ok 2
2 awaken standard ✓ v3.7.2 ✓ ok 7
4 contacts lab ✓ v3.7.2 ✓ ok 5
5 create-shortcut lab ✗ — — 3
6 dig standard ✓ v3.7.2 ✓ ok 6
7 dream lab ✗ — — 5
8 feel lab ✗ — — 4
9 forward standard ✓ v3.7.2 ✓ ok 4
10 go standard ✓ v3.7.2 ✓ ok 3
11 inbox lab ✓ v3.7.2 ✓ ok 4
12 incubate full ✓ v3.7.2 ✓ ok 6
13 learn standard ✓ v3.7.2 ✓ ok 7
14 oracle-family-scan standard ✓ v3.7.2 ✓ ok 4
15 oracle-soul-sync-update standard ✓ v3.7.2 ✓ ok 3
16 philosophy full ✗ — — 4
17 project full ✗ — — 6
18 recap standard ✓ v3.7.2 ✓ ok 7
19 resonance full ✗ — — 6
20 rrr standard ✓ v3.7.2 ✓ ok 7
21 schedule lab ✗ — — 3
22 standup standard ✓ v3.7.2 ✓ ok 3
23 talk-to standard ✓ v3.7.2 ✓ ok 6
24 team-agents lab ✗ — — 1
25 trace standard ✓ v3.7.2 ✓ ok 5
26 vault lab ✗ — — 5
27 where-we-are full ✗ — — 4
28 who-are-you full ✓ v1.0.22 ⚠️ stale 6
29 xray standard ✓ v3.7.2 ✓ ok 4
External (will keep):
○ drink, mawjs, mawjs-local, ultrathink
💡 Skills with 0 usage might not need to be in your profile.
How to get usage counts: for each skill, count sessions containing /$skill:
for skill in about-oracle awaken contacts create-shortcut \
dig dream feel forward go inbox incubate learn oracle-family-scan \
oracle-soul-sync-update philosophy project recap resonance rrr \
schedule standup talk-to team-agents trace vault where-we-are who-are-you xray; do
count=$(grep -rl "/$skill" ~/.claude/projects/*/*.jsonl 2>/dev/null | wc -l)
echo "$count $skill"
done | sort -rn
Status legend:
✓ ok — arra-managed, current version⚠️ stale — arra-managed but outdated (needs update)— — not installed (available in higher profile)Step 3: Confirm — now with full context:
Proceed with cleanup?
- Conflicts will be replaced (backed up to .bak)
- External skills kept untouched
- Which profile? [standard / full / lab]
Step 4: Clean + reinstall (only after user confirms):
# Uninstall arra-managed via CLI
$ARRA uninstall -g -y
# For each conflict skill: rename to .bak (Nothing is Deleted)
for name in [conflicting skills]; do
mv "$SKILLS_DIR/$name" "$SKILLS_DIR/${name}.bak.$(date +%s)"
done
# Fresh install at latest
LATEST=$(curl -s https://api.github.com/repos/Soul-Brews-Studio/arra-oracle-skills-cli/tags | grep -m1 '"name"' | cut -d'"' -f4)
~/.bun/bin/bunx --bun arra-oracle-skills@github:Soul-Brews-Studio/arra-oracle-skills-cli#$LATEST install -g -y
Output:
🧹 Cleanup complete!
Kept: [N] external skills
Replaced: [N] conflicts (backed up to .bak)
Installed: [N] fresh at $LATEST
Restart required.
When to use:
[hidden] flags persisting after unhide/go update — check for new version + upgrade in-placeCURRENT=$($ARRA --version 2>/dev/null || echo "unknown")
LATEST=$(curl -s https://api.github.com/repos/Soul-Brews-Studio/arra-oracle-skills-cli/tags | grep -m1 '"name"' | cut -d'"' -f4)
echo " Installed: $CURRENT"
echo " Latest: $LATEST"
If versions differ:
$ARRA install -g -y
If already current: "Already on latest ($CURRENT). Nothing to do."
/go update → check + upgrade to latest tag/oracle-soul-sync-update but discoverable under /go/go install <skill...> — cherry-pick specific skills$ARRA install -g -s <skill...> -y
/go install team-agents → $ARRA install -g -s team-agents -y/go install dig hey xray → $ARRA install -g -s dig hey xray -yWorks for ANY skill — standard, lab, or even zombie. Does not change your profile; just adds the named skills on top of whatever you have.
/go remove <skill...> — uninstall specific skills$ARRA uninstall -g -s <skill...> -y
/go remove watch → $ARRA uninstall -g -s watch -y/go find <query> — search available skills$ARRA profiles lab 2>/dev/null
Show all skills from the lab profile (the superset) and highlight any matching the query. If the user says /go find feel, search the profile output for "feel" and show where it lives (which tier, installed or not).
/go find feel → show feel is in lab tier, not installed, description/go find team → show team-agents in standard tier, installed| Profile | Count | Description | |---------|-------|-------------| | minimal | 7 | Newcomer essentials — lite lifecycle, trace, update (token-optimized) | | standard | 13 | Daily driver — essential Oracle skills | | full | ~30 | All stable skills (excludes lab-only + minimal-only lite variants) | | lab | ~48 | Everything including experimental (excludes minimal-only lite variants) |
-g — global (user-level) skills-y — skip confirmationgo is always preserved — it's in every profileARGUMENTS: $ARGUMENTS
testing
Cut a beta pre-release — bump CalVer with --beta, PR to beta branch, CI auto-tags + publishes to npm @beta. Use when user says 'release beta', 'cut beta', '/release-beta', or wants to publish a beta version for pre-release testing.
testing
Cut an alpha pre-release — bump CalVer, PR to alpha branch, CI auto-tags + publishes to npm @alpha. Use when user says 'release alpha', 'cut alpha', '/release-alpha', or wants to publish an alpha version.
tools
Talk to another oracle via maw federation. Uses fleet machine names (white, mba, clinic-nat, oracle-world, phaith). Auto-signs with current oracle's [host:handle] from CLAUDE.md. Global — works from any oracle repo.
development
Log information for future reference. Use when user says "fyi", "remember this", "note that", "for your info".