| name | make-project |
| description | This skill should be used when the user says "make a new project", "create a new project", "start a new project", "new project called X", "scaffold a new repo", or "set up a project". Creates a local directory in ~/projects/, initializes git, and creates and pushes a matching public GitHub repository. |
| user-invocable | true |
| argument-hint | <project-name> |
| allowed-tools | ["Bash","Write","AskUserQuestion"] |
Make New Project
Create a new local project with a matching GitHub repository.
Steps
-
Get the project name — use $ARGUMENTS if provided; otherwise ask the user with AskUserQuestion. Normalize it: lowercase, hyphens for spaces, no special characters.
-
Create local directory at ~/projects/<name>/
-
Initialize git — run git init inside the new directory
-
Create README.md with the project name as an H1 heading
-
Initial commit:
git -C ~/projects/<name> add .
git -C ~/projects/<name> commit -m "Initial commit"
-
Create GitHub repo and push:
gh repo create <name> --public --source=~/projects/<name> --remote=origin --push
-
Report back — print the local path and the GitHub URL clearly so the user can copy them.
Notes
- Default to
--public. If the user explicitly asks for a private repo, use --private instead.
- If a directory
~/projects/<name> already exists, stop and ask the user what to do — do not overwrite.
- If
gh repo create fails because the repo already exists on GitHub, report the error and stop.
- After success, update the sandbox write allowlist if needed so future work in that directory doesn't trigger permission prompts (run the
update-config skill if appropriate, or remind the user they may need to allow write access to the new directory).