Scaffold a brand-new project with the full Graphify + Caveman + Superpower combo stack — CLAUDE.md, RULES.md, .claudeignore, .gitignore, and the Graphify knowledge graph — all wired and ready in one shot. Trigger: user says "scaffold project", "new project setup", "set up combo stack", "initialise project with claude code", or similar.
This skill creates all config files and runs the initial indexing for a brand-new project. Run it once from the project root.
CLAUDE.md (lean, compressed-ready)RULES.md (shorthand dictionary template).claudeignore (sensible defaults).gitignore entries for stack-generated filesgraphify claude install to wire the PreToolUse hook + CLAUDE.md directive/graphify . to build the initial knowledge graph/caveman-compress to compress CLAUDE.md (~46% token saving)Invoke in a Claude Code session from your new project root:
/scaffold-new-project
Or ask Claude:
"Set up the full combo stack for this new project."
When this skill is invoked, Claude MUST execute the following steps in order. Do not skip steps. Confirm completion of each before proceeding.
pwd
ls -la
Confirm you are in the correct project root. If package.json, pyproject.toml,
go.mod, or similar exists, note the tech stack for CLAUDE.md generation.
CLAUDE.mdCreate ./CLAUDE.md with this lean template. Replace <STACK> with detected
tech stack. Keep it short — Caveman Compress will tighten it further.
## Stack
- <STACK> (e.g. Python 3.12, FastAPI, PostgreSQL)
- Tests: <TEST_FRAMEWORK>
## Graphify
- Knowledge graph at graphify-out/GRAPH_REPORT.md
- Read GRAPH_REPORT.md before any architecture questions
- Query graph before Glob/Grep (hook already installed)
## Output Rules
- No greetings, sign-offs, or preamble
- No narrating what you're about to do — just do it
- Code blocks: always include language tag
- Errors: show exact message + fix only
## Shorthand (see RULES.md)
- crt = create, upd = update, del = delete
- ref = refactor, tst = test, doc = document
RULES.mdCreate ./RULES.md with a starter shorthand dictionary. Extend with
project-specific abbreviations as the codebase grows.
# RULES.md — Shorthand Dictionary
## General
- crt = create
- upd = update
- del = delete
- ref = refactor
- tst = test / write tests
- doc = document / add docstring
- chk = check / validate
- fix = fix bug
- rev = review
- dep = dependency / dependencies
## Architecture
- svc = service
- repo = repository (data layer)
- mdl = model / data model
- api = API endpoint/handler
- mw = middleware
- cfg = config / configuration
- env = environment / .env
- db = database
- q = query
- res = response
- req = request
## Usage example
# "crt svc for user auth w/ jwt"
# = "create a service for user authentication with JWT"
.claudeignoreCreate ./.claudeignore to hide irrelevant files from Claude's context:
# Dependencies — never read these
node_modules/
vendor/
.venv/
__pycache__/
*.pyc
# Build outputs
dist/
build/
out/
.next/
.nuxt/
# Generated / compiled
*.lock
package-lock.json
yarn.lock
poetry.lock
Pipfile.lock
*.min.js
*.min.css
# Stack-generated files (Graphify)
graphify-out/
# Test fixtures / snapshots (large, noisy)
__snapshots__/
fixtures/
testdata/
# Logs
*.log
logs/
# IDE / OS
.DS_Store
.idea/
.vscode/
*.swp
.gitignoreAppend the following to ./.gitignore (create the file if it doesn't exist).
Do NOT remove existing entries:
# ── Graphify (regenerated per machine) ────────────────────
graphify-out/
# ── Caveman backup (personal, not for sharing) ────────────
CLAUDE.original.md
# ── Claude Code local settings (machine-specific) ─────────
.claude/settings.local.json
# ── Commit these (teammates need them) ────────────────────
# CLAUDE.md ← keep
# RULES.md ← keep
# .claudeignore ← keep
graphify claude install
This writes the Graphify directive into CLAUDE.md and installs the
PreToolUse hook in ~/.claude/settings.json. If the command fails, check
that graphifyy is installed globally (pip show graphifyy).
graphify .
This indexes the project. For large repos this may take 1–2 minutes.
Output appears in graphify-out/GRAPH_REPORT.md.
If the project has docs/PDFs/images you want indexed semantically:
graphify . --deep
Run in the Claude Code session:
/caveman-compress
This compresses CLAUDE.md by ~46% and saves a backup to CLAUDE.original.md.
The backup is already in .gitignore — do not commit it.
After all steps complete, print this checklist for the user:
✅ CLAUDE.md created + compressed
✅ RULES.md created (extend with project shorthands)
✅ .claudeignore created
✅ .gitignore updated (graphify-out/, CLAUDE.original.md, settings.local.json)
✅ Graphify hook installed in ~/.claude/settings.json
✅ Knowledge graph built at graphify-out/GRAPH_REPORT.md
✅ Caveman auto-activates via SessionStart hook
Next steps:
• Extend RULES.md with project-specific abbreviations
• Run /graphify . after major structural refactors
• Run /update after adding new files
• Optional: set up ~/notes/ (or Obsidian vault) for cross-session decision memory
For cross-session decision memory, you have two options:
Option A — Plain Markdown (recommended, zero dependencies):
mkdir -p ~/notes/<project-name>/{architecture,decisions,logs}
Add to ~/.claude/CLAUDE.md:
## Memory
- Project notes at ~/notes/<project-name>/
- Read logs/ for recent decisions before starting a session
Option B — Obsidian vault:
graphify . --obsidian --obsidian-dir ~/vault/graphify/<project-name>
| File | Action | Commit? |
|---|---|---|
CLAUDE.md | Created | ✅ Yes |
RULES.md | Created | ✅ Yes |
.claudeignore | Created | ✅ Yes |
.gitignore | Updated | ✅ Yes |
graphify-out/ | Generated | ❌ No (in .gitignore) |
CLAUDE.original.md | Generated by compress | ❌ No (in .gitignore) |
~/.claude/settings.json | Modified (global hook) | ❌ Global, not project |