portfolio-notebook-synclisted
Install: claude install-skill ksdisch/claude-config
# portfolio-notebook-sync
## Overview
Keeps the **Interview Prep — Research Portfolio** notebook
(`442368c1-0e26-4d17-a2b7-e4225a570be3`, alias `research-portfolio-prep`) in step with
`~/Projects/portfolio/`.
**Core principle: `MANIFEST.md` is the contract.** The sidecar's manifest records what every
source in the notebook was made from and the hash it was made at. Drift is not a judgment
call — it is a hash comparison. Never re-derive "what should be in the notebook" from
scratch; read the manifest and diff against it.
Sidecar: `~/Projects/NotebookLMs/research-portfolio-prep/` — `README.md` (human record),
`MANIFEST.md` (drift backbone).
Tool preference: **MCP-first** (`mcp__notebooklm-mcp__*`); `nlm` CLI via Bash as fallback.
See `nlm-skill` for full tool docs.
## Three modes — and the walls between them
| Mode | Invocation | Does |
|---|---|---|
| **Drift check** | bare | Re-hashes what's already tracked; repairs what moved. |
| **Onboard** | `--add <project>` | Adds a project that isn't in the notebook yet. |
| **Onboard a paper** | `--add-paper <project>` | Adds a merged `/research-paper` write-up for a project already in the notebook. |
**A drift check never onboards.** If a drift check notices a project card with no source —
or a merged paper with no source — say it in the report and stop there. Adding it is
`--add`'s or `--add-paper`'s job, and each runs only when Kyle asks for it by name. Silently
growing the notebook during a "sync" is the failure this wall