core-pulllisted
Install: claude install-skill AirMile/claude-config
# Pull
Pull remote changes, analyze the diff, refresh `.project/` context, analyze teammate code for features, entities, endpoints and architecture, and extract synced learnings from teammate commits.
**Trigger**: `/core-pull`, `/core-pull [remote/branch]`, or `/core-pull --no-learn`
**`--no-learn` flag**: Skip PHASE 4j (learning extraction). Use if you only want to sync context/architecture without generating learnings.
**First-time onboarding (replaces old `--full` flag)**: use `/core-setup` for a full codebase scan + LLM learnings extraction when joining a mature repo.
## References
- `shared/SYNC.md` — merge protocol (read-modify-write per section)
- `shared/DASHBOARD.md` — project.json + project-context.json schema
- `shared/LEARNING-EXTRACTION.md` — heuristics for MVP signals and LLM extraction (PHASE 4j)
## Process
### PHASE 0: Pre-flight
0. **Worktree guard** — core-pull resets `.project/` via `git checkout -- .project/`, which destroys symlinks. Run only on the main checkout:
```bash
main_root=$(git worktree list --porcelain | head -1 | awk '{print $2}')
current_root=$(git rev-parse --show-toplevel)
```
If `current_root != main_root`: **exit** with message:
> "core-pull only runs on the main checkout. You are in worktree `{current_root}`. Run `ExitWorktree(action: keep)` first, then retry `/core-pull`."
0a. **Open worktree check** — detect feature worktrees that share `.project/` via symlinks:
```bash
# macOS/Linux
open_worktrees=$(git