| name | project |
| description | Use when asked to find a project, work on a project, start a feature, fix a bug, or make changes to a repo. |
| user-invocable | true |
| allowed-tools | Bash(${CLAUDE_SKILL_DIR}/scripts/project *) |
| config | {"PROJECTS_HOME":{"description":"Directory containing primary project repos","default":"~/Projects"},"PROJECTS_CLONE_DIR":{"description":"Directory for managed working clones","default":"~/.projects"}} |
Project Manager
Primary repos stay clean on main in $PROJECTS_HOME. Working clones live in $PROJECTS_CLONE_DIR/<project>/<clone>/.
Use ${CLAUDE_SKILL_DIR}/scripts/project for all commands.
Workflow
list to find the project if you don't know the exact name
create a clone — never work in the primary repo directly
switch to get the clone path, then cd there
- Work normally — edit files, commit often
- Tell the user the clone is ready for review
- The user will
accept or discard
Commands
scripts/project list
scripts/project list auth
scripts/project list --status active --limit 5
scripts/project create <project> --name <name> --desc "what this work is for"
scripts/project create my-app
scripts/project switch <project> <clone>
scripts/project sync <project> <clone>
scripts/project diff <project> <clone>
scripts/project accept <project> <clone>
scripts/project discard <project> <clone>
scripts/project cleanup [--stale-days 7]
Rules
- Never modify the primary repo directly — always work in a clone
- Commit early and often — these become the patches on accept
- One feature per clone — keep work isolated
- Check
list first — a relevant clone may already exist