Help us improve
Share bugs, ideas, or general feedback.
From project-brain
Manages persistent project context across AI sessions using a brain/ folder. Scaffolds memory, resumes work, updates entries, and handles handoffs on explicit user request.
npx claudepluginhub ethan-ys/project-brain --plugin project-brainHow this skill is triggered — by the user, by Claude, or both
Slash command
/project-brain:project-brainThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
A folder structure + collaboration protocol for persistent project context across AI sessions. Use it to scaffold a `brain/` folder in the user's project, resume work from an existing one, or update entries when work happens.
Manages persistent memory across sessions with .claude/memory/ for state and .ai/ for architecture/patterns. Guides scratchpad updates, session workflows, and live docs.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Share bugs, ideas, or general feedback.
A folder structure + collaboration protocol for persistent project context across AI sessions. Use it to scaffold a brain/ folder in the user's project, resume work from an existing one, or update entries when work happens.
| User signal | Workflow |
|---|---|
| "set up project brain" / "scaffold project" / "建项目脑" / "init project context" | Kick-off — see §1 |
User is in a directory containing brain/ AND explicitly says "load" / "resume" / "what's the status" / "继续这个项目" | Startup — see §2 |
| User says "switch windows" / "context's getting full" / "I'll head out" / "压缩了" / "切窗口" | Handoff — see §3 |
| User says "update the project brain" / "let's record this" / "更新项目脑" | Update — see §4 |
Activation boundary (important): Do not activate just because a brain/ folder exists in the current directory. Casual conversation that happens to occur inside a project does not require this skill — only explicit user requests do. This is intentional: the methodology refuses to auto-monitor or auto-trigger; user judgment decides when to engage.
brain/. Always propose; user approves.brain/ has multiple STATUS_<workstream>.md files, don't guess this window's workstream — ask the user.When the user wants to scaffold:
bash "${CLAUDE_PLUGIN_ROOT}/scripts/scaffold.sh" <user-project-root> (defaults to all four AI adapters: Claude, Cursor, Copilot, AGENTS.md). Add --lang zh if the project will be documented in Chinese — gives Chinese brain/ templates + Chinese CLAUDE.md (other adapters stay English regardless, since they're consumed by AI tools, not humans).brain/PROJECT.md on day one — fill the one-line definition + "what we explicitly DON'T do." Don't let this drift into the future.grep -rn "⚠️ TODO ⚠️" <user-project>/brain/ — go through with the user. Empty fields should be intentional.brain/)Single-workstream (only STATUS.md):
brain/MAP.mdbrain/STATUS.mdbrain/HANDOFF.md exists, read itMulti-workstream (multiple STATUS_<workstream>.md):
brain/MAP.md + brain/PROJECT.mdbrain/STATUS_<workstream>.md + brain/HANDOFF_<workstream>.mdUniversal discipline: if cwd switches to another project mid-session, re-read the new project's files; if the user switches workstreams in the same window, re-read the new workstream's files. Don't carry over memory.
When the user says they're switching windows / context is getting full / heading out:
git mv brain/HANDOFF.md brain/handoffs/$(date +%Y-%m-%d-%H%M).md
(For multi-workstream: brain/HANDOFF_<current>.md → brain/handoffs/<current>/....)brain/HANDOFF.md capturing:
When the user says "update the project brain":
- STATUS overwrite: now at [X], next [Y]. Reason: you said "that's it"
- DECISIONS: about to append? Reason: that section felt like it landed — does this count as decided?
- MAP §5 register: new file at brain/topics/systems/[X].md. Reason: doc we just wrote
- HANDOFF: not needed — you didn't say switch windows
Never reverse this: don't ask the user "which files do you want to update?" That hands the wrong layer of judgment to the wrong person.
${CLAUDE_PLUGIN_ROOT}/METHODOLOGY.mdscaffold.sh copies): ${CLAUDE_PLUGIN_ROOT}/templates/bash "${CLAUDE_PLUGIN_ROOT}/scripts/doctor.sh" <user-project-root>