From neuralscape
List the user's Neuralscape projects and pick (or create) the one to scope memory to for this session. Use when the user says "switch project", "what projects do I have", "set project to X", or when a recall/remember needs a project and none is active. Especially useful in Claude Cowork, which has no working directory to infer a project from. MCP-driven — works in both platforms.
How this skill is triggered — by the user, by Claude, or both
Slash command
/neuralscape:projectThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Choose the project that `recall`, `remember`, and `save-session` should scope to. In Claude Code the working directory usually determines this automatically; in Claude Cowork there's no working directory, so this skill is how you select a project.
Choose the project that recall, remember, and save-session should scope to. In Claude Code the working directory usually determines this automatically; in Claude Cowork there's no working directory, so this skill is how you select a project.
Projects are implicit in Neuralscape — a project_id is just a scoping label. There is no separate "project" entity to create or delete: a project comes into existence the moment you remember the first fact under its project_id, and is removed by deleting its memories. So picking a brand-new name is a valid way to start a new project.
Resolve user_id — see the Identity block below.
List existing projects — call the MCP list_projects(user_id=<resolved>) tool. It returns a sorted list of project_ids the user can scope to: their own private projects plus all team-shared projects (so a teammate's shared project is selectable even if the user hasn't written to it yet).
Present the choices to the user:
remember; nothing else is needed.Validate a typed new name (do this first, before anything is recorded or persisted). Trim the input and reject it if it's empty / whitespace-only, or contains a newline or any control character — a malformed id must never become the active project or get written to .neuralscape-project (where it would be reused across sessions). On a bad name, explain briefly and re-prompt. Keep ids to a clean single-line slug (letters, digits, and simple separators like -/_).
Near-duplicate guard (before accepting a valid typed new name). If the user types a name rather than picking one from the list, normalize both the typed name and every existing project from step 2 — lowercase and strip everything that isn't a letter or digit (so Neuralscape, neural-scape, neural_scape, and neural scape all reduce to neuralscape). If the normalized typed name matches an existing project's normalized form but the raw spelling differs, don't silently create a variant — ask:
You typed
Neural-Scape, butneuralscapealready exists. Use the existing one, or createNeural-Scapeas a separate project?
Default to the existing canonical spelling unless the user confirms they really want a new, distinct project. (A new name with no near-match needs no confirmation — just proceed.)
Record the selection as the active project for this session. State it back clearly (e.g. "Active project: neuralscape. I'll scope recall/remember/save to it until you switch."). For the rest of the conversation, pass this project_id to recall, remember, and save-session.
If the user picked (global), treat the active project as unset (omit project_id on subsequent calls).
Offer to persist the selection to disk (when a writable working directory is available — always in Claude Code; in Cowork only if the session has the repo mounted). Pinning the choice to a .neuralscape-project marker makes it stick across future sessions and lets the SessionStart hook (and every subdirectory) pick it up automatically — turning a one-session choice into a durable, repo-wide default. Offer it:
Want me to pin this by writing
.neuralscape-projectat the repo root? Future sessions will use<id>automatically.
If the user accepts:
git rev-parse --show-toplevel; fall back to the current working directory if it isn't a git repo.project_id to <repo-root>/.neuralscape-project (use the Write tool)..neuralscape-project with the same id already exists at the repo root.If there's no writable working directory (e.g. a Cowork session without the repo mounted), you can't persist to disk — keep the selection in conversation context for this session and suggest the user commit a one-line .neuralscape-project to their repo through their normal workflow if they want it to stick.
user_id)list_projects accepts user_id but does not require it; under token auth the server scopes by the authenticated token identity regardless.
CLAUDE_PLUGIN_OPTION_USER_ID (or NEURALSCAPE_USER_ID) is set → pass that value.user_id, or pass a placeholder like "cowork"; the OAuth token determines the real identity.user_id is unknown..neuralscape-project pins the id for every future session and subdirectory. If you didn't (or couldn't), the active project lives only in this conversation's context — re-select at the start of a new session. In Cowork without the repo mounted, in-context selection is the only option./neuralscape:recall, /neuralscape:remember, or /neuralscape:save-session.npx claudepluginhub ehfazrezwan/neuralscape --plugin neuralscapeCreates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.