Prompt 01: Build my Command Center
Module 01 · Set Up Your Command Center · The Prompts Pack
Paste everything below the line into Claude Code, running from anywhere on your machine. Claude will build the whole shared-memory hub for you. You do not edit any files by hand.
If Claude asks where your projects live, tell it the folder that holds all your project folders (commonly ~/projects or ~/Documents/projects).
The prompt to paste
Click the box to select it, then press ⌘C (or Ctrl+C)
I want you to set up a "Command Center": a single shared-memory and oversight layer that every Claude session, in every one of my projects, reads on the way in and writes on the way out. This fixes the problem where I run multiple Claude sessions and nothing coordinates them.
First, confirm with me the absolute path to the folder that contains all my project folders (my "projects root"). Default guess: `~/projects`. Wait for my answer, then do everything below. Use real absolute paths in every file you create.
**1. Create `<projects-root>/command-center/` with this structure:**
```
command-center/
README.md
STATE.md
PROJECTS.md
shared/
ids.md
agents.md
log/
outbox/
templates/
PROJECT_CLAUDE_BLOCK.md
SESSION_HANDOFF_TEMPLATE.md
NEW_PROJECT_CHECKLIST.md
bin/
cc-register.sh
```
**2. `STATE.md`**: the live index of everything in flight. Make it a markdown table with columns: Workstream | Owner (session/project) | Status | Blocked on | Updated. Add one example row so the format is obvious, and a short "how to use" line at top: read first, update your row when status changes, one row per workstream.
**3. `PROJECTS.md`**: a registry table: Project | Type | Purpose | Status. Then scan my projects root and add one row per existing project folder you find (skip dotfolders and obvious junk). Where you can't tell the purpose, put `[confirm]`.
**4. `shared/ids.md`**: a single source of truth for important IDs and accounts (GHL sub-accounts, Stripe, Cloudflare, etc.). Start it with headers and a note: "If an ID is here, trust this copy." Leave it mostly empty for me to fill.
**5. `shared/agents.md`**: a place to define any named agents/roles I use and what each does. Start with a short explanation and a placeholder.
**6. `templates/PROJECT_CLAUDE_BLOCK.md`**: write EXACTLY this content (it is the rule every project's CLAUDE.md will carry; keep the marker comments):
```
<!-- COMMAND-CENTER-BLOCK v1: canonical source; do not edit per-project, edit here -->
## Command Center (shared cross-session memory)
This project participates in the shared hub at `<projects-root>/command-center/`.
- **Start:** read `command-center/STATE.md` and this project's row in `command-center/PROJECTS.md`. If this project is not listed, register it: `command-center/bin/cc-register.sh "$(pwd)"`.
- **During:** update a workstream's row in `STATE.md` when you start / finish / block it. Do not work a workstream another session owns; note it and let me relay.
- **End:** append a dated entry to `command-center/log/<date>-<project>.md` and update your `STATE.md` row.
- **Messages to another session:** drop a prompt in `command-center/outbox/`; I relay it.
`STATE.md` is the source of truth for what is happening outside this session.
<!-- /COMMAND-CENTER-BLOCK -->
```
(Replace `<projects-root>` with the real path.)
**7. `templates/SESSION_HANDOFF_TEMPLATE.md`**: a reusable end-of-session handoff: sections for LIVE/watch-first, what shipped, in flight, decisions, open questions, key IDs.
**8. `templates/NEW_PROJECT_CHECKLIST.md`**: the steps to onboard a new project (run cc-register, confirm its PROJECTS.md row, add any IDs to shared/ids.md).
**9. `bin/cc-register.sh`**: write EXACTLY this, then `chmod +x` it:
```bash
#!/usr/bin/env bash
# cc-register.sh: register an existing project with the Command Center, or
# bootstrap a new one. Idempotent: safe to run repeatedly.
set -euo pipefail
CC_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
PROJECT_PATH="${1:-$(pwd)}"
PROJECT_PATH="$(cd "$PROJECT_PATH" && pwd)"
PROJECT_NAME="$(basename "$PROJECT_PATH")"
BLOCK_FILE="$CC_DIR/templates/PROJECT_CLAUDE_BLOCK.md"
MARKER="COMMAND-CENTER-BLOCK"
CLAUDE_MD="$PROJECT_PATH/CLAUDE.md"
TODAY="$(date +%F)"
echo "Registering: $PROJECT_NAME ($PROJECT_PATH)"
if [[ -f "$CLAUDE_MD" ]] && grep -q "$MARKER" "$CLAUDE_MD"; then
echo " CLAUDE.md already has the block. Skipping."
else
{ echo ""; cat "$BLOCK_FILE"; } >> "$CLAUDE_MD"
echo " Appended Command Center block to CLAUDE.md."
fi
if grep -q "\`$PROJECT_NAME\`" "$CC_DIR/PROJECTS.md"; then
echo " Already in PROJECTS.md."
else
echo "| \`$PROJECT_NAME\` | [confirm] | [confirm purpose] | active |" >> "$CC_DIR/PROJECTS.md"
echo " Added to PROJECTS.md."
fi
LOG_FILE="$CC_DIR/log/$TODAY-$PROJECT_NAME.md"
[[ -f "$LOG_FILE" ]] || { echo "# $TODAY: $PROJECT_NAME session"; echo ""; } > "$LOG_FILE"
echo "Done."
```
**10. `README.md`**: explain what the Command Center is, the start/during/end contract, the folder layout, and that it is not a runtime yet (coordination is me relaying prompts between sessions).
**11. Install the global rule.** Append the contents of `templates/PROJECT_CLAUDE_BLOCK.md` (the section, you can drop the marker comments) to my global Claude instructions file at `~/.claude/CLAUDE.md`, retitled "## Command Center (READ FIRST, every session, every project)". This is what makes EVERY session in EVERY project, now and in the future, follow the contract automatically. If `~/.claude/CLAUDE.md` does not exist, create it.
**12. Initialize git** in `command-center/` (`git init`, add a `.gitignore` with `.DS_Store`). Do not commit; tell me it is ready to commit.
When done: show me the tree you created, confirm the global rule is installed, and tell me the one habit that matters: paste new work-prompts into whichever project session owns that work, and let STATE.md be the source of truth for everything else.