project
project-manager
Track and manage external repos: Learn (study) | Incubate (develop)
Golden Rule
ghq owns the clone → ψ/ owns the symlink
Never copy. Always symlink. One source of truth.
When to Use
Invoke this skill when:
- User shares a GitHub URL and wants to study/clone it
- User mentions wanting to learn from a codebase
- User wants to start developing on an external repo
- Need to find where a previously cloned project lives
Actions
learn [url|slug]
Clone repo for study (read-only reference).
# 1. Clone via ghq
ghq get -u https://github.com/owner/repo
# 2. Create org/repo symlink structure
GHQ_ROOT=$(ghq root)
mkdir -p ψ/learn/owner
ln -sf "$GHQ_ROOT/github.com/owner/repo" ψ/learn/owner/repo
Output: "✓ Linked [repo] to ψ/learn/owner/repo"
incubate [url|slug] [--offload|--contribute|--flash]
Clone repo for active development with optional workflow flags.
# Same flow, different target
ghq get -u https://github.com/owner/repo
GHQ_ROOT=$(ghq root)
mkdir -p ψ/incubate/owner
ln -sf "$GHQ_ROOT/github.com/owner/repo" ψ/incubate/owner/repo
Output: "✓ Linked [repo] to ψ/incubate/owner/repo"
Workflow Flags
| Flag | Scope | Duration | Cleanup |
|---|---|---|---|
| (none) | Long-term dev | Weeks/months | Manual |
--offload |
Manual trigger | — | Remove symlink (keep ghq) |
--contribute |
Multi-feature | Days/weeks | Offload when all done (keep ghq for PR feedback) |
--flash |
Single fix | Minutes | Issue → PR → offload → purge (one shot) |
--offload
Remove symlink after work is done (manual trigger):
unlink ψ/incubate/owner/repo
rmdir ψ/incubate/owner 2>/dev/null
# ghq clone preserved for future use
--contribute
For multi-feature contributions over days/weeks. Offload when ALL features are done:
# 1. Work on multiple features/fixes over time
git -C ψ/incubate/owner/repo checkout -b feat/feature-1
# ... work, commit, push, PR ...
git -C ψ/incubate/owner/repo checkout -b feat/feature-2
# ... work, commit, push, PR ...
# 2. When all done, offload (ghq kept for PR feedback)
unlink ψ/incubate/owner/repo
Use case: Extended contribution period. Keep ghq for addressing PR reviews.
--flash
Complete contribution cycle with full cleanup:
/project incubate URL --flash
↓
1. gh issue create → #N (document intent)
↓
2. ghq get → symlink to ψ/incubate/
↓
3. git checkout -b issue-N-description
↓
4. Make changes, commit
↓
5. git push → gh pr create --body "Closes #N"
↓
6. cd back to main repo
↓
7. Auto-offload + purge ghq clone
↓
"✓ Issue #N → PR #M → Offloaded & Purged"
Use case: Quick external contributions without leaving traces.
find [query]
Search for project across all locations:
# Search ghq repos
ghq list | grep -i "query"
# Search learn/incubate symlinks (org/repo structure)
find ψ/learn ψ/incubate -type l 2>/dev/null | grep -i "query"
Output: List matches with their ghq paths
list
Show all tracked projects:
echo "📚 Learn"
find ψ/learn -type l 2>/dev/null | while read link; do
target=$(readlink "$link")
echo " ${link#ψ/learn/} → $target"
done
echo "🌱 Incubate"
find ψ/incubate -type l 2>/dev/null | while read link; do
target=$(readlink "$link")
echo " ${link#ψ/incubate/} → $target"
done
echo "🏠 External (ghq)"
ghq list | grep -v "laris-co/Nat-s-Agents" | head -10
Directory Structure
ψ/
├── learn/owner/repo → ~/Code/github.com/owner/repo (symlink)
└── incubate/owner/repo → ~/Code/github.com/owner/repo (symlink)
~/Code/ ← ghq root (source of truth)
└── github.com/owner/repo/ (actual clone)
Health Check
When listing, verify symlinks are valid:
# Check for broken symlinks
find ψ/learn ψ/incubate -type l ! -exec test -e {} \; -print 2>/dev/null
If broken: ghq get -u [url] to restore source.
Examples
# User shares URL to study
User: "I want to learn from https://github.com/SawyerHood/dev-browser"
→ ghq get -u https://github.com/SawyerHood/dev-browser
→ mkdir -p ψ/learn/SawyerHood
→ ln -sf ~/Code/github.com/SawyerHood/dev-browser ψ/learn/SawyerHood/dev-browser
# User wants to develop long-term
User: "I want to work on claude-mem"
→ /project incubate https://github.com/thedotmack/claude-mem
→ Symlink created, work until done
# User wants to contribute (keep ghq for follow-up)
User: "Fix a bug in arra-oracle-v3"
→ /project incubate https://github.com/Soul-Brews-Studio/arra-oracle-v3 --contribute
→ [edit, commit, push]
→ Auto-offload, ghq kept for PR feedback
# User wants quick flash contribution (full cleanup)
User: "Quick README fix on oracle-skills-cli"
→ /project incubate https://github.com/Soul-Brews-Studio/oracle-skills-cli --flash
→ Issue #17 created
→ Branch: issue-17-fix-readme
→ [edit, commit, push]
→ PR #18 created (Closes #17)
→ Auto-offload + purge
→ "✓ Issue #17 → PR #18 → Offloaded & Purged"
Anti-Patterns
| ❌ Wrong | ✅ Right |
|---|---|
git clone directly to ψ/ |
ghq get then symlink |
Flat: ψ/learn/repo-name |
Org structure: ψ/learn/owner/repo |
| Copy files | Symlink always |
| Manual clone outside ghq | Everything through ghq |
Quick Reference
# Add to learn
ghq get -u URL && mkdir -p ψ/learn/owner && ln -sf "$(ghq root)/github.com/owner/repo" ψ/learn/owner/repo
# Add to incubate
ghq get -u URL && mkdir -p ψ/incubate/owner && ln -sf "$(ghq root)/github.com/owner/repo" ψ/incubate/owner/repo
# Offload (remove symlink only)
unlink ψ/incubate/owner/repo && rmdir ψ/incubate/owner 2>/dev/null
# Offload + purge (remove symlink AND ghq clone)
unlink ψ/incubate/owner/repo && rm -rf "$(ghq root)/github.com/owner/repo"
# Update source
ghq get -u URL
# Find repo
ghq list | grep name
Workflow Intensity Scale
incubate → Long-term dev (manual cleanup)
↓
--contribute → Push → offload (keep ghq)
↓
--flash → Issue → Branch → PR → offload → purge (complete cycle)
More from soul-brews-studio/oracle-skills-cli
philosophy
Display Oracle philosophy — the 5 Principles + Rule 6. Use when user asks about principles, "nothing deleted", "patterns over intentions", Oracle philosophy, or needs alignment check. Do NOT trigger for "who are you" (use /who-are-you), "what is oracle" (use /about-oracle), or session status questions.
50feel
Capture how the system feels — energy, momentum, burnout, breakthrough. Emotional intelligence for Oracle-human collaboration. Use when user says 'feel', 'how are we', 'energy check', 'burnout', 'momentum', or wants emotional awareness of the work.
36template
Skill template with Bun Shell pattern. Copy this folder to create new skills.
29schedule
Query schedule via Oracle API (Drizzle DB). Use when user says "schedule", "upcoming events", "what's on today", "calendar".
29forward
Create handoff + enter plan mode for next session. Use when user says "forward", "handoff", "wrap up", or before ending session.
29trace
Find projects, code, and knowledge across git history, repos, docs, and Oracle. Use when user asks "trace", "find project", "where is [project]", "search history", or needs to locate something across the codebase. Supports --oracle (fast), --smart (default), --deep (wave execution), --deep --dig (combo). Do NOT trigger for session mining or "past sessions" (use /dig), or codebase exploration "learn repo" (use /learn).
28