Dev · Guide + Verktøy

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.

Claude Code

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:

  1. Generer kontekstfiler — en custom command som analyserer prosjektet ditt og lager 9 dokumentasjonsfiler
  2. 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 /context regelmessig — 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".
Prompt
---
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

Peiling · 2026