about-oracle
What is Oracle — told by the AI itself. Origin story, stats, family count, ecosystem overview. Use when someone asks "what is…
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 -y skills add soul-brews-studio/arra-oracle-skills-cli --skill go --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/goContext preview
The summary Claude sees to decide when to auto-load this skill.
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.
name: go description: 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. argument-hint: "[list] | <standard|full|lab|cleanup|update> | install|remove|find <skill...>" disable-model-invocation: true
> 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.
Two variables, because reading and writing have different safety requirements.
# $ARRA — READ-ONLY commands (profiles, list, --version). The local binary is fine # here: it is fast, and a slightly stale profile listing is harmless. 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 ARRA="$HOME/.bun/bin/bunx --bun github:Soul-Brews-Studio/arra-oracle-skills-cli#alpha" fi # $ARRA_INSTALL — anything that WRITES skills to disk. Always from GitHub. ARRA_INSTALL="$HOME/.bun/bin/bunx --bun github:Soul-Brews-Studio/arra-oracle-skills-cli#alpha"
**Why they differ.** The installed binary carries its own frozen copy of every skill — the set as of the day you installed it. Installing through it therefore writes *those* skills over whatever you have now. Once the binary is older than your skills (normal after a few weeks) every "install" is really a downgrade; a `26.5.15` binary was seen overwriting `26.7.25` skills. Reading through it costs you nothing, so keep the fast path for reads and take the network hit only when writing.
Use `$ARRA` for reads and `$ARRA_INSTALL` for installs/updates below.
---
Parse the user's `/go` arguments and run the matching `$ARRA` command.
Write 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 $name25 skills for AI coding agents — persistent memory, session awareness, and collaborative tools.
What is Oracle — told by the AI itself. Origin story, stats, family count, ecosystem overview. Use when someone asks "what is…
Guided Oracle birth and awakening ritual. Default is Soul Sync (~20min), or --fast (~5min). Use when creating a new Oracle in a…
บำเพ็ญเพียร — diligent practice. A guided conversation between human and Oracle about doing hard things without knowing why. Like…
Create a new oracle via maw bud — yeast-colony reproduction. Use when user says "bud", "new oracle", "create oracle", "spawn…
Create local skills as shortcuts — makes real /commands in .claude/skills/. Use when user says "create shortcut", "create skill",…
Mine Claude Code sessions — timeline, gaps, repo attribution, session history. Use when user says "dig", "sessions", "past…