psi
Attach a code repo's ψ vault to a caretaker oracle — check, link, heal, unlink.
Skill by Soul-Brews-Studio
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/soul-brews-studio-psi
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/psi
What's inside
- Skill name
psi- Description
- Attach a code repo's ψ vault to a caretaker oracle — check, link, heal, unlink. Use when a plain code repo (open-source, not an oracle) should keep memory in another oracle's vault, when the user says "psi check", "psi link", "share the vault", "symlink ψ to neo", "who takes care of this repo's memory", or when a ψ symlink went missing after a checkout. Do NOT trigger for creating an oracle (use /awaken), cloning repos for development (use /incubate), or writing a retrospective (use /rrr).
- License
- MIT
- Instructions
- 420 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# /psi
> "A code repo does not need to be an oracle to have a memory."
Point a plain code repo's `ψ` at a **caretaker oracle's** vault, so the repo keeps a brain
without becoming an oracle and without committing vault content into public source history.
```text
/psi # same as check
/psi check # what is ψ here, who takes care of it, is it safe
/psi link # ask which oracle, then absorb → symlink → ignore → verify
/psi heal # symlink vanished after a checkout, or ignore rules incomplete
/psi unlink # go back to a standalone real ψ
```
## The model
```
code repo/ψ ──symlink──▶ caretaker oracle/ψ
(ignored, never committed) (tracked — it IS the brain)
```
| Repo kind | ψ | git |
|---|---|---|
| **code repo** — software someone else could clone and build | symlink to caretaker | **ignored, never tracked** |
| **oracle repo** — has an oracle identity | real directory | **tracked** |
## Pick the caretaker — show, don't guess
Never assume which oracle takes care of a repo. **Show the fleet and let the human name
it.** Linking to the wrong vault mixes two oracles' memory.
```bash
maw ls
```
Ask: *"Which oracle should take care of this repo's memory?"* The human answers with a
name (`neo`, `pulse`, `beta`). Resolve it — the short name works:
```bash
maw locate "$ORACLE_NAME" # prints: repo: /path/to/<name>-oracle and ψ/: present
```
Take the `repo:` line as `CARETAKER`. If `maw locate` finds nothing, or its `ψ/` is not
`present`, stop and say so — do not fall back to a guess.
Do **not** loop over repos or scan the filesystem looking for candidates. One repo, one
question, one answer.
## `check`
Report what you verified, never what you assume. Every line is the output of a command —
`readlink -f` for the real target, `ls-files -s` for the mode bits, `check-ignore -v` for
the rule that actually matched. Close with one **FOCUS** line: the single next action.
```bash
REPO=$(git rev-parse --show-toplevel) || exit 1
GI="$REPO/.gitignore"
# ── ψ: type, size, staleness ─────────────────────────────────────────────
if [ -L "$REPO/ψ" ]; then
TARGET=$(readlink "$REPO/ψ"); REAL=$(readlink -f "$REPO/ψ")
[ -e "$REPO/ψ/" ] && ALIVE=alive || ALIVE='DANGLING'
case "$TARGET" in /*) ABS=' ⚠️ absolute';; *) ABS='';; esac
PSI="symlink → $TARGET$ABS"; PSI2="resolves $REAL ($ALIVE)"
elif [ -d "$REPO/ψ" ]; then
N=$(find "$REPO/ψ" -type f ! -name '.DS_Store' | wc -l | tr -d ' ')
NEW=$(find "$REPO/ψ" -type f ! -name '.DS_Store' -exec stat -f '%m' {} \; 2>/dev/null | sort -rn | head -1)
AGE=$(( ( $(date +%s) - ${NEW:-$(date +%s)} ) / 86400 ))
PSI="real dir · $N files · newest $(date -r "${NEW:-0}" +%F 2>/dev/null) (${AGE}d old)"; PSI2=""
else
PSI="absent"; PSI2=""
fi
# ── git: is any of it tracked? is the LINK itself committed? ─────────────
TRACKED=$(git -C "$REPO" ls-files ψ | wc -l | tr -d ' ')
git -C "$REPO" ls-files -s ψ | rg -q '^120000' && BLOB='⚠️ SYMLINK COMMITTED' || BLOB=no
# ── ignore: both forms, and the rule git actually matched ───────────────
rg -qx 'ψ' "$GI" 2>/dev/null && BARE=yes || BARE='NO ⚠️'
rg -qx 'ψ/' "$GI" 2>/dev/null && SLASH=yes || SLASH=NO
# cut -f1, NOT an awk positional field ref — see "Never use positional parameters"
# below. check-ignore -v separates source from pathname with a TAB, so field 1 is
# the matching rule.
RULE=$(git -C "$REPO" check-ignore -v ψ 2>/dev/null | cut -f1)
[ -n "$RULE" ] || RULE='NOT IGNORED ⚠️'
# ── kind + caretaker ────────────────────────────────────────────────────
[ "$TRACKED" -gt 0 ] && KIND='oracle repo (ψ is tracked — it IS the brain)' \
|| KIND='code repo (ψ must stay ignored)'
# NOTE: no \K — this rg build rejects it, and the error would silently read as "none".
CARE=$(sed -n 's/^oracle: *//p' "$REPO/.claude/PSI_CARETAKER" 2>/dev/null)
[ -n "$CARE" ] || CARE='none recorded'
# ── render: no borders. two-space margin, aligned columns, grouped by blank
# lines. identity block first, then the checks, then one FOCUS line.
# Each check names the command that proved it — the report is its own audit.
# NOTE: printf inline per row — no row()/fact() helpers, because a helper
# would need positional parameters and the host rewrites those. See below.
F=' %-14s%s\n' # identity line
R=' %-14s%-42s%-3s %s\n' # check line
echo
printf "$F" repo "$(basename "$REPO")"
printf "$F" kind "$KIND"
printf "$F" ψ "$PSI"
[ -n "$PSI2" ] && printf "$F" '' "$PSI2"
echo
printf "$R" tracked "$TRACKED entries" "$([ "$TRACKED" -eq 0 ] && echo ✓ || echo ⚠)" 'git ls-files ψ'
printf "$R" symlink-blob "$BLOB" "$([ "$BLOB" = no ] && echo ✓ || echo ⚠)" 'ls-files -s ψ → 120000'
printf "$R" bare-ψ "$BARE" "$([ "$BARE" = yes ] && echo ✓ || echo ⚠)" 'rg -qx ψ .gitignore'
printf "$R" 'ψ/' "$SLASH" "$([ "$SLASH" = yes ] && echo ✓ || echo ·)" 'rg -qx ψ/ .gitignore'
printf "$R" ignore-rule "$RULE" "$(case $RULE in *NOT*) echo ⚠;; *) echo ✓;; esac)" 'git check-ignore -v ψ'
printf "$R" caretaker "$CARE" "$([ "$CARE" = 'none recorded' ] && echo · || echo ✓)" '.claude/PSI_CARETAKER'
echo
```
Keep the two-space margin and the blank-line grouping — the whitespace is what makes it
readable without rules. Widen a column only if a value would otherwise wrap; never addFrom Soul-Brews-Studio/arra-oracle-skills-cli, MIT.
More from Soul-Brews-Studio/arra-oracle-skills-cli
- 0.786score
round-table
Soul-Brews-Studio
Convene a Round Table (โต๊ะกลม): 3–8 souls — persona files, Oracles, or real people's DNA — debate ONE stakes-bearing decision over exactly 4 rounds (OPEN…
SkillAFreshness: A★ 125Claude Code +9 - 0.786score
soul
Soul-Brews-Studio
Bring an Oracle into the current repo — its soul, ALL its skills and its expertise — by link, never by copy.
SkillAFreshness: A★ 125Claude Code +9 - 0.740score
recap
Soul-Brews-Studio
Session orientation and awareness — retro summaries, handoffs, git state, focus.
SkillBFreshness: B★ 125Claude Code +9 - 0.740score
forward
Soul-Brews-Studio
Hand off the current session to the next one.
SkillBFreshness: B★ 125Claude Code +9 - 0.736score
rrr
Soul-Brews-Studio
Create a session retrospective with an AI diary and reusable lessons.
SkillBFreshness: B★ 125Claude Code +9 - 0.734score
feel
Soul-Brews-Studio
Capture how the system feels — energy, momentum, burnout, breakthrough.
SkillBFreshness: B★ 125Claude Code +9 - 0.734score
oracle-title-forge
Soul-Brews-Studio
Forge a title + subtitle (or reframe) for a BOOK, article, talk, or any technical piece, then hand off to a cover so it has LIFE and honesty — not…
SkillBFreshness: B★ 125Claude Code +9 - 0.729score
learn
Soul-Brews-Studio
Explore a codebase with parallel Haiku agents — clone, read, and document.
SkillBFreshness: B★ 125Claude Code +9 - 0.729score
incubate
Soul-Brews-Studio
Clone or create repos for active development — the right hand of /learn.
SkillBFreshness: B★ 125Claude Code +9 - 0.724score
oracle-write-complete-book
Soul-Brews-Studio
Write a complete book from scratch — outline, parallel Sonnet drafting, Thai word break, typst PDF rendering, review, title brainstorm, publish to GitHub.
SkillBFreshness: B★ 125Claude Code +9 - 0.682score
dig
Soul-Brews-Studio
Mine Claude Code sessions — timeline, gaps, repo attribution, session history.
SkillCFreshness: C★ 125Claude Code +9 - 0.682score
project
Soul-Brews-Studio
Clone and track external repos.
SkillCFreshness: C★ 125Claude Code +9
Signals
- Stars
- 125
- Forks
- 58
- Open issues
- 26
- Last commit (this folder)
- Aug 20, 2026 (2 months ago)
- Last release
- Jul 25, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Soul-Brews-Studio
- 0.786score
soul
Soul-Brews-Studio
Bring an Oracle into the current repo — its soul, ALL its skills and its expertise — by link, never by copy.
SkillAFreshness: A★ 125Claude Code +9 - 0.786score
round-table
Soul-Brews-Studio
Convene a Round Table (โต๊ะกลม): 3–8 souls — persona files, Oracles, or real people's DNA — debate ONE stakes-bearing decision over exactly 4 rounds (OPEN…
SkillAFreshness: A★ 125Claude Code +9 - 0.740score
recap
Soul-Brews-Studio
Session orientation and awareness — retro summaries, handoffs, git state, focus.
SkillBFreshness: B★ 125Claude Code +9 - 0.740score
forward
Soul-Brews-Studio
Hand off the current session to the next one.
SkillBFreshness: B★ 125Claude Code +9 - 0.736score
rrr
Soul-Brews-Studio
Create a session retrospective with an AI diary and reusable lessons.
SkillBFreshness: B★ 125Claude Code +9 - 0.734score
feel
Soul-Brews-Studio
Capture how the system feels — energy, momentum, burnout, breakthrough.
SkillBFreshness: B★ 125Claude Code +9
Cite this page
psi skill. Agent Mart. https://agentmart.dev/skills/soul-brews-studio-psi (last updated 2026-10-24)