← ClaudeAtlas

newprojectlisted

Use when bootstrapping a new project under a configured workspace directory ($WORKSPACE_DIR, default ~/projects/), or when an existing project folder needs the standard infrastructure (CLAUDE.md stub, memory dir, optional git init, optional umbrella entry). Triggers only when the user references a project folder under the workspace — do NOT use for generic git init, npm/Xcode init, or single-file creation. Idempotent — never overwrites existing user content.
cabaynes/charles-claude-skills · ★ 0 · AI & Automation · score 75
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