Optimaliser Koding med Claude Code
Slik setter du opp Claude Code for å faktisk forstå prosjektet ditt — med kontekstfiler, CLAUDE.md og en custom command som gjør jobben for deg.
Problemet med "vibe coding"
De fleste som bruker AI til koding gjor dette: de ber om noe, far noe tilbake, og haper det fungerer. Det er "vibe coding" — du koder pa vibben uten struktur.
Problemet er at AI-en ikke vet noe om prosjektet ditt. Den kjenner ikke arkitekturen, konvensjonene, eller hva du har bygget for. Hver samtale starter fra null.
Losningen: Gi Claude Code en komplett forstaelse av prosjektet ditt, sa den alltid har kontekst.
Slik fungerer det
Det er to steg:
- Generer kontekstfiler — en custom command som analyserer prosjektet ditt og lager 9 dokumentasjonsfiler
- Lag CLAUDE.md — bruk kontekstfilene til a skrive en god CLAUDE.md som Claude leser automatisk
Steg 1: Legg til context-kommandoen
Kopier prompten over og legg den i:
.claude/commands/context.md
Na kan du kjore /context i Claude Code, og den vil automatisk:
- Sjekke prosjekttypen (Node.js, Python, Rust, Go, etc.)
- Analysere mappestruktur og avhengigheter
- Lese README og eksisterende dokumentasjon
- Lage 9 kontekstfiler i
.claude/context/
Hva den lager
| Fil | Innhold |
|---|---|
progress.md |
Gjeldende status, nylige commits, neste steg |
project-structure.md |
Mappestruktur og filorganisering |
tech-context.md |
Avhengigheter, sprakversjoner, dev-verkoy |
system-patterns.md |
Arkitekturmonstre og designbeslutninger |
product-context.md |
Produktkrav, malgruppe, kjernefunksjonalitet |
project-brief.md |
Prosjektomfang, mal og suksesskriterier |
project-overview.md |
Oversikt over features og integrasjoner |
project-vision.md |
Langsiktig visjon og strategisk retning |
project-style-guide.md |
Kodekonvensjoner og stilpreferanser |
Steg 2: Generer CLAUDE.md
Etter at kontekstfilene er laget, si dette til Claude Code:
Bruk innholdet i .claude/context mappen for a skrive en god CLAUDE.md fil.
Claude vil lese alle 9 filene og lage en CLAUDE.md som inneholder:
- Prosjektbeskrivelse og mal
- Tech stack og avhengigheter
- Kodekonvensjoner og monstre
- Viktige kommandoer (build, test, lint)
- Arkitekturbeslutninger
Hvorfor dette fungerer
Uten kontekst: Claude vet ingenting om prosjektet. Hver samtale starter pa null. Du ma forklare alt hver gang.
Med kontekst: Claude leser CLAUDE.md automatisk ved oppstart. Den kjenner prosjektet, folger konvensjonene dine, og gir mye bedre svar fra forste melding.
Tips
- Kjor
/contextregelmessig — prosjektet endrer seg, og kontekstfilene bor folge med. - Rediger CLAUDE.md manuelt — den automatisk genererte filen er et godt utgangspunkt, men legg til dine egne regler og preferanser.
- Commit kontekstfilene — sa hele teamet far nytte av dem.
- Vaer spesifikk i CLAUDE.md — "Bruk Tailwind, ikke inline styles" er bedre enn "folg beste praksis".
---
allowed-tools: Bash, Read, Write, LS
---
# Create Initial Context
This command creates the initial project context documentation in `.claude/context/` by analyzing the current project state and establishing comprehensive baseline documentation.
## Required Rules
**IMPORTANT:** Before executing this command, read and follow:
- `.claude/rules/datetime.md` - For getting real current date/time
## Preflight Checklist
Before proceeding, complete these validation steps.
Do not bother the user with preflight checks progress ("I'm not going to ..."). Just do them and move on.
### 1. Context Directory Check
- Run: `ls -la .claude/context/ 2>/dev/null`
- If directory exists and has files:
- Count existing files: `ls -1 .claude/context/*.md 2>/dev/null | wc -l`
- Ask user: "Found {count} existing context files. Overwrite all context? (yes/no)"
- Only proceed with explicit 'yes' confirmation
- If user says no, suggest: "Use /context:update to refresh existing context"
### 2. Project Type Detection
- Check for project indicators:
- Node.js: `test -f package.json && echo "Node.js project detected"`
- Python: `test -f requirements.txt || test -f pyproject.toml && echo "Python project detected"`
- Rust: `test -f Cargo.toml && echo "Rust project detected"`
- Go: `test -f go.mod && echo "Go project detected"`
- Run: `git status 2>/dev/null` to confirm this is a git repository
- If not a git repo, ask: "Not a git repository. Continue anyway? (yes/no)"
### 3. Directory Creation
- If `.claude/` doesn't exist, create it: `mkdir -p .claude/context/`
- Verify write permissions: `touch .claude/context/.test && rm .claude/context/.test`
- If permission denied, tell user: "Cannot create context directory. Check permissions."
### 4. Get Current DateTime
- Run: `date -u +"%Y-%m-%dT%H:%M:%SZ"`
- Store this value for use in all context file frontmatter
## Instructions
### 1. Pre-Analysis Validation
- Confirm project root directory is correct (presence of .git, package.json, etc.)
- Check for existing documentation that can inform context (README.md, docs/)
- If README.md doesn't exist, ask user for project description
### 2. Systematic Project Analysis
Gather information in this order:
**Project Detection:**
- Run: `find . -maxdepth 2 \( -name 'package.json' -o -name 'requirements.txt' -o -name 'pyproject.toml' -o -name 'pom.xml' -o -name 'build.gradle' -o -name 'build.gradle.kts' -o -name '*.sln' -o -name '*.csproj' -o -name 'Gemfile' -o -name 'Cargo.toml' -o -name 'go.mod' -o -name 'composer.json' -o -name 'pubspec.yaml' -o -name 'CMakeLists.txt' -o -name 'Dockerfile' -o -name 'docker-compose.yml' -o -name 'Package.swift' -o -type d -name '*.xcodeproj' -o -type d -name '*.xcworkspace' \) 2>/dev/null`
- Run: `git remote -v 2>/dev/null` to get repository information
- Run: `git branch --show-current 2>/dev/null` to get current branch
**Codebase Analysis:**
- Run: `find . -type f \( -name '*.js' -o -name '*.ts' -o -name '*.jsx' -o -name '*.tsx' -o -name '*.py' -o -name '*.rs' -o -name '*.go' -o -name '*.php' -o -name '*.swift' -o -name '*.java' -o -name '*.kt' -o -name '*.kts' -o -name '*.cs' -o -name '*.rb' -o -name '*.dart' -o -name '*.c' -o -name '*.h' -o -name '*.cpp' -o -name '*.hpp' -o -name '*.sh' \) 2>/dev/null | head -20`
- Run: `ls -la` to see root directory structure
- Read README.md if it exists
### 3. Context File Creation with Frontmatter
Each context file MUST include frontmatter with real datetime:
```yaml
---
created: [Use REAL datetime from date command]
last_updated: [Use REAL datetime from date command]
version: 1.0
author: Claude Code PM System
---
```
Generate the following initial context files:
- `progress.md` - Document current project status, completed work, and immediate next steps
- `project-structure.md` - Map out the directory structure and file organization
- `tech-context.md` - Catalog current dependencies, technologies, and development tools
- `system-patterns.md` - Identify existing architectural patterns and design decisions
- `product-context.md` - Define product requirements, target users, and core functionality
- `project-brief.md` - Establish project scope, goals, and key objectives
- `project-overview.md` - Provide a high-level summary of features and capabilities
- `project-vision.md` - Articulate long-term vision and strategic direction
- `project-style-guide.md` - Document coding standards, conventions, and style preferences
### 4. Quality Validation
After creating each file:
- Verify file was created successfully
- Check file is not empty (minimum 10 lines of content)
- Ensure frontmatter is present and valid
- Validate markdown formatting is correct
### 5. Post-Creation Summary
Provide comprehensive summary with file counts and line counts.
$ARGUMENTS