$npx -y skills add Soul-Brews-Studio/arra-oracle-skills-cli --skill budCreate a new oracle via maw bud — yeast-colony reproduction. Use when user says "bud", "new oracle", "create oracle", "spawn oracle", or wants to create a new permanent oracle from the current one.
| 1 | # /bud — Create New Oracle |
| 2 | |
| 3 | > "Yeast budding — any oracle can spawn a new oracle." |
| 4 | |
| 5 | Facilitate `maw bud` from inside a Claude Code session. The oracle reproduction command. |
| 6 | |
| 7 | ## Usage |
| 8 | |
| 9 | ``` |
| 10 | /bud myoracle # Bud from current oracle |
| 11 | /bud myoracle --split # Bud + show child in right pane |
| 12 | /bud myoracle --split --birth # Bud + split + child runs /birth |
| 13 | /bud myoracle --from mawjs # Bud from specific parent |
| 14 | /bud myoracle --org ARRA-01 # Target different GitHub org |
| 15 | /bud myoracle --note "why" # Birth note in ψ/memory/learnings/ |
| 16 | /bud myoracle --dry-run # Preview only |
| 17 | /bud myoracle --root # Root oracle — no parent lineage |
| 18 | ``` |
| 19 | |
| 20 | --- |
| 21 | |
| 22 | ## Step 0: Detect maw CLI |
| 23 | |
| 24 | ```bash |
| 25 | if command -v maw &>/dev/null; then |
| 26 | MAW="maw" |
| 27 | elif [ -x "$HOME/.bun/bin/maw" ]; then |
| 28 | MAW="$HOME/.bun/bin/maw" |
| 29 | else |
| 30 | MAW="" |
| 31 | echo "⚠️ maw CLI not found — using standalone mode" |
| 32 | fi |
| 33 | ``` |
| 34 | |
| 35 | --- |
| 36 | |
| 37 | ## Mode 1: With maw (preferred) |
| 38 | |
| 39 | Delegate to `maw bud` — it handles all 8 steps (repo, ψ/, CLAUDE.md, fleet config, soul-sync, commit, wake): |
| 40 | |
| 41 | ```bash |
| 42 | $MAW bud "$NAME" ${FROM:+--from "$FROM"} ${ORG:+--org "$ORG"} ${NOTE:+--note "$NOTE"} ${SPLIT:+--split} ${DRY_RUN:+--dry-run} |
| 43 | ``` |
| 44 | |
| 45 | ### If --birth flag |
| 46 | |
| 47 | After bud completes, chain /birth via wake: |
| 48 | |
| 49 | ```bash |
| 50 | $MAW wake "$NAME" --task '/birth' |
| 51 | ``` |
| 52 | |
| 53 | This sends `/birth` as the new oracle's first message — creates Issue #1 with birth props before /awaken. |
| 54 | |
| 55 | ### Show result |
| 56 | |
| 57 | ``` |
| 58 | 🧬 Budded: ${FROM:-current} → $NAME |
| 59 | |
| 60 | Repo: ${ORG}/${NAME}-oracle |
| 61 | Fleet: ~/.config/maw/fleet/${NUM}-${NAME}.json |
| 62 | Purpose: (to be defined by /awaken) |
| 63 | |
| 64 | Next: run /awaken in the new oracle for full identity setup |
| 65 | Or: maw hey $NAME '/awaken' |
| 66 | ``` |
| 67 | |
| 68 | ### If --split flag (watch the child being born) |
| 69 | |
| 70 | With maw: `--split` is handled natively by `maw bud` (commit a8ffce9). It uses `hostExec` + `listSessions()` to resolve the child session and split the pane. No raw tmux needed. |
| 71 | |
| 72 | Without maw (standalone fallback): |
| 73 | |
| 74 | ```bash |
| 75 | # Check if in tmux |
| 76 | if [ -n "$TMUX" ]; then |
| 77 | tmux split-window -h -l 50% "cd $TARGET && claude" |
| 78 | echo "✓ Split — child oracle visible on the right pane" |
| 79 | else |
| 80 | echo "⚠️ Not in tmux — --split requires tmux." |
| 81 | fi |
| 82 | ``` |
| 83 | |
| 84 | ``` |
| 85 | ┌──────────────────┬──────────────────┐ |
| 86 | │ parent-oracle │ ${NAME}-oracle │ |
| 87 | │ (you are here) │ (just born) │ |
| 88 | │ │ > /awaken │ |
| 89 | │ Pane 0 │ Pane 1 │ |
| 90 | └──────────────────┴──────────────────┘ |
| 91 | ``` |
| 92 | |
| 93 | The parent watches the child awaken. Same UX as `/team-agents` panes. |
| 94 | |
| 95 | --- |
| 96 | |
| 97 | ## Mode 2: Standalone (no maw) |
| 98 | |
| 99 | For oracles without maw-js installed. Manual steps: |
| 100 | |
| 101 | ### Step 1: Create GitHub repo |
| 102 | |
| 103 | ```bash |
| 104 | ORG="${ORG:-Soul-Brews-Studio}" |
| 105 | REPO_NAME="${NAME}-oracle" |
| 106 | |
| 107 | gh repo create "${ORG}/${REPO_NAME}" --private --add-readme |
| 108 | ``` |
| 109 | |
| 110 | ### Step 2: Clone |
| 111 | |
| 112 | ```bash |
| 113 | if command -v ghq &>/dev/null; then |
| 114 | ghq get -p "github.com/${ORG}/${REPO_NAME}" |
| 115 | TARGET="$(ghq root)/github.com/${ORG}/${REPO_NAME}" |
| 116 | else |
| 117 | TARGET="$HOME/Code/github.com/${ORG}/${REPO_NAME}" |
| 118 | mkdir -p "$(dirname "$TARGET")" |
| 119 | git clone "https://github.com/${ORG}/${REPO_NAME}" "$TARGET" |
| 120 | fi |
| 121 | ``` |
| 122 | |
| 123 | ### Step 3: Scaffold ψ/ |
| 124 | |
| 125 | ```bash |
| 126 | mkdir -p "$TARGET/ψ"/{memory/{learnings,retrospectives,traces,resonance},inbox,outbox,plans} |
| 127 | ``` |
| 128 | |
| 129 | ### Step 4: Generate CLAUDE.md |
| 130 | |
| 131 | Write the standard Oracle identity stub with blank purpose: |
| 132 | |
| 133 | ```bash |
| 134 | PARENT="${FROM:-$(basename $(pwd) | sed 's/-oracle$//')}" |
| 135 | DATE=$(date +%Y-%m-%d) |
| 136 | |
| 137 | cat > "$TARGET/CLAUDE.md" << 'CLAUDEEOF' |
| 138 | # ${NAME}-oracle |
| 139 | |
| 140 | > Budded from **${PARENT}** on ${DATE} |
| 141 | |
| 142 | ## Identity |
| 143 | - **Name**: ${NAME} |
| 144 | - **Purpose**: (to be defined by /awaken) |
| 145 | - **Budded from**: ${PARENT} |
| 146 | |
| 147 | ## Principles (inherited from Oracle) |
| 148 | 1. Nothing is Deleted |
| 149 | 2. Patterns Over Intentions |
| 150 | 3. External Brain, Not Command |
| 151 | 4. Curiosity Creates Existence |
| 152 | 5. Form and Formless |
| 153 | |
| 154 | ## Rule 6: Oracle Never Pretends to Be Human |
| 155 | CLAUDEEOF |
| 156 | ``` |
| 157 | |
| 158 | **Note**: The full Rule 6 three-context signing template is generated by `maw bud`. In standalone mode, `/awaken` fills in the complete signing conventions. |
| 159 | |
| 160 | ### Step 5: Birth note (if --note) |
| 161 | |
| 162 | ```bash |
| 163 | if [ -n "$NOTE" ]; then |
| 164 | cat > "$TARGET/ψ/memory/learnings/${DATE}_birth-note.md" << NOTEEOF |
| 165 | --- |
| 166 | pattern: Birth note from ${PARENT} |
| 167 | date: ${DATE} |
| 168 | source: /bud (standalone) |
| 169 | --- |
| 170 | |
| 171 | # Why ${NAME} was born |
| 172 | |
| 173 | ${NOTE} |
| 174 | |
| 175 | Budded from: ${PARENT} |
| 176 | NOTEEOF |
| 177 | fi |
| 178 | ``` |
| 179 | |
| 180 | ### Step 6: Poor man's soul-sync |
| 181 | |
| 182 | Copy parent's learnings to child (if parent has ψ/): |
| 183 | |
| 184 | ```bash |
| 185 | PARENT_PSI="$(pwd)/ψ/memory/learnings" |
| 186 | if [ -d "$PARENT_PSI" ]; then |
| 187 | cp -r "$PARENT_PSI"/*.md "$TARGET/ψ/memory/learnings/" 2>/dev/null |
| 188 | echo "✓ Copied parent learnings to child" |
| 189 | fi |
| 190 | ``` |
| 191 | |
| 192 | ### Step 7: Commit + push |
| 193 | |
| 194 | ```bash |
| 195 | git -C "$TARGET" add -A |
| 196 | git -C "$TARGET" co |