newprojectlisted
Install: claude install-skill cabaynes/charles-claude-skills
# /newproject — Bootstrap or finish setting up a workspace project
The user wants to start a project under their workspace directory `$WORKSPACE_DIR` (default `~/projects/`). The folder may not exist yet OR it may already exist with partial setup (e.g., they did `mkdir $WORKSPACE_DIR/foo` and `code $WORKSPACE_DIR/foo` already). Your job: detect what's in place and create only what's missing — **never overwrite existing user content**.
## What ends up created
1. `$WORKSPACE_DIR/<name>/` — empty project directory
2. `$WORKSPACE_DIR/<name>/CLAUDE.md` — starter project documentation (stub)
3. `~/.claude/projects/<project-slug>/memory/` — memory dir (with universal-symlink fan-out if a `fanout-memory.sh` helper exists in `$WORKSPACE_DIR/scripts/`)
4. **Optional:** `$WORKSPACE_DIR/<name>/.git/` — initialized git repo with sensible `.gitignore`
5. **Optional:** a GitHub repo (private by default) with `origin` set and a bootstrap commit pushed — plus any web-session skills copied into `$WORKSPACE_DIR/<name>/.claude/skills/` if your workspace keeps a `scripts/web-skills/` source (private repos only)
6. **Optional:** updated `$WORKSPACE_DIR/CLAUDE.md` — if an umbrella file exists with a `## Subprojects` section, append an entry
## Step 1 — Resolve `WORKSPACE_DIR`
Check the env var:
```bash
echo "${WORKSPACE_DIR:-}"
```
- If set, use that path (expand `~` if present).
- If unset, **ask the user once** via `AskUserQuestion`:
> "WORKSPACE_DIR isn't set. Default is `~/projects/`.