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:** 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/`. Use that, or specify a different path?"
> Options: `Use ~/projects/` | `Use a different path` (free-text)
- After resolution, recommend (don't enforce) that the user export it in their shell rc so they don't have to set it each session.
For the rest of th