Multi-project Manus-style planning with coordinator pattern. Supports project switching, separate planning/source paths, and cross-machine sync via git. Creates task_plan.md, findings.md, and progress.md.
Work like Manus: Use persistent markdown files as your "working memory on disk."
This skill supports multiple project contexts via a coordinator file.
FIRST, check for a coordinator file:
.planning/index.md exists (walking up from CWD like git finds .git)$MANUS_PROJECT environment variable (explicit override).planning/.active.override.$CLAUDE_CODE_SESSION_ID (session-local state)active: field in index.md (workspace default)~ to the user's home directory in paths{project_path} for all planning filesIf no .planning/ found:
{project_path} (backward compatible)Session ID:
Claude Code exposes $CLAUDE_CODE_SESSION_ID (a UUID) in all execution contexts.
Use this for session-local override files. TTY detection doesn't work because
Claude Code's Bash tool runs without a TTY attached.
All planning files use {project_path}:
{project_path}/task_plan.md{project_path}/findings.md{project_path}/progress.mdRecognize these natural language patterns:
| User Says | Action |
|---|---|
| "switch to [name]" | Write to session override file, read new project's task_plan.md |
| "set default [name]" | Update active: in index.md (workspace default for new sessions) |
| "list projects" / "show projects" | Display all projects from index.md table |
| "which project?" / "current context" | Show active project name, source, and resolved path |
| "add project [name]" | Interactive flow to create new project (see below) |
| "set default path [path]" | Update default_path in index.md |
| "where are planning files?" | Show resolved {project_path} |
| "where is source?" | Show source path for current project |
When user says "add project [name]":
First, check if project already exists in the Projects table:
Ask for planning location using AskUserQuestion:
If "somewhere else", ask for the custom planning path
Ask for source/working folder:
Create the project:
Report:
Created project "[name]":
- Planning: [resolved planning path]
- Source: [source path]
- Files: task_plan.md, findings.md, progress.md
When user requests a project switch with "switch to [name]":
.planning/index.md$CLAUDE_CODE_SESSION_ID environment variable.planning/.active.override.$CLAUDE_CODE_SESSION_ID
task_plan.md if it existsIf the requested project doesn't exist, offer to create it.
When user says "set default [name]":
active: field in .planning/index.mdThis changes the default project for all new sessions in this workspace.
If the user mentions working on a project different from the active one:
# Planning Coordinator