Daglig arbeidsflyt
Denne guiden dekker den daglige arbeidsflyten fra morgensjekk til feature-utvikling, PR-opprettelse og release.
Morgenrutine
heading.anchorLabelStart hver dag med en rask sjekk av prosjektets tilstand.
# 1. Hent siste endringercd ~/GitHub/imgit pull origin main
# 2. Sjekk deploy-status (CI, staging, produksjon)gh run list --limit 5
# 3. Sjekk at lokale tjenester kjorerpnpm docker:start
# 4. Start utvikling med Doppler (hemmeligheter injisert)doppler run -- pnpm devFeature-utvikling
heading.anchorLabel1. Opprett branch
heading.anchorLabelBruk navnekonvensjonen feature/, fix/ eller refactor/:
# Ny featuregit checkout -b feature/check-in-improvements
# Bugfixgit checkout -b fix/session-timeout-crash
# Refaktoreringgit checkout -b refactor/insights-store-cleanup| Prefiks | Bruk |
|---|---|
feature/ | Ny funksjonalitet |
fix/ | Bugfix |
refactor/ | Kodestruktur-endring uten ny funksjonalitet |
chore/ | Bygg, avhengigheter, konfig |
docs/ | Dokumentasjon |
2. Kode og test
heading.anchorLabel# Kjor API-server isolertdoppler run -- pnpm --filter api dev
# Type-sjekk altpnpm type-check
# Kjor testerpnpm test
# KMP quick compile check (13s vs 3+ min full build)cd apps/mobile-kmp && ./gradlew :shared:compileKotlinIosSimulatorArm643. Commit
heading.anchorLabelFolg Conventional Commits-formatet:
# Se hva som er endretgit diffgit status
# Stage spesifikke filer (unnga `git add .`)git add apps/api/src/routes/check-ins/create.tsgit add packages/shared/src/types/check-ins.ts
# Commit med konvensjonelt formatgit commit -m "feat(api): add check-in conversion endpoint"Commit-meldingsformat
heading.anchorLabel<type>(<scope>): <beskrivelse>
[valgfri body]| Type | Beskrivelse |
|---|---|
feat | Ny feature |
fix | Bugfix |
build | Bygg-system, avhengigheter |
chore | Vedlikehold, opprydding |
docs | Dokumentasjon |
refactor | Kodestruktur uten funksjonell endring |
test | Legge til eller fikse tester |
perf | Ytelsesoptimalisering |
Scope er valgfritt, men anbefalt: api, ios, android, shared, db, docs.
Eksempler:
git commit -m "feat(ios): add haptic feedback to session completion"git commit -m "fix(api): handle null classification in impulse create"git commit -m "build: upgrade turbo to 2.3.3"git commit -m "chore(db): remove deprecated ai_workload_status column"git commit -m "docs: update API endpoint reference"4. Push og CI
heading.anchorLabel# Push til remotegit push -u origin feature/check-in-improvementsCI kjorer automatisk pa push:
- Detect changes — finner hvilke deler av monorepo-et som er endret
- Database — migrasjoner + typesjekk (kun ved
packages/database/-endringer) - API — type-check + lint + test (kun ved
apps/api/-endringer) - iOS/Android — KMP compile check (kun ved
apps/mobile-kmp/-endringer)
# Sjekk CI-statusgh run list --branch feature/check-in-improvementsPR-arbeidsflyt
heading.anchorLabelOpprett PR
heading.anchorLabel# Opprett PR mot maingh pr create --title "feat(api): add check-in conversion" --body "## Summary- Add POST /check-ins/:id/convert endpoint- Convert check-in assessment to impulse
## Test plan- [ ] Test conversion with contraction check-in- [ ] Test conversion with expansion check-in- [ ] Verify impulse classification matches"Review og merge
heading.anchorLabel# Se PR-statusgh pr status
# Se PR-kommentarergh pr view <pr-number>
# Merge nar klar (squash-merge er standard)gh pr merge <pr-number> --squashRelease-arbeidsflyt
heading.anchorLabelStaging (automatisk)
heading.anchorLabelAlle push til main deployer DB+API automatisk til staging:
- API deployes via Railway (overvaker
mainbranch) - Database-migrasjoner kjores mot staging-Supabase
Produksjon — DB + API
heading.anchorLabelPromoter staging til production nar du er fornoyd med staging:
# Via Claude Code (anbefalt):/deploy-prod
# Eller manuelt:git push origin main:productionRailway production overvaker production-branchen og deployer automatisk. DB-migrasjoner kjores mot produksjons-Supabase.
iOS-release (separat syklus)
heading.anchorLabeliOS har sin egen release-syklus, uavhengig av DB+API:
# 1. Bump versjon og opprett git tag/release ios patch# eller: cd apps/mobile-kmp/iosApp && bundle exec fastlane ios bump type:patch
# 2. Git tag v* trigger TestFlight-bygg automatisk
# 3. Etter TestFlight-testing, promoter til App Store/promote# eller: bundle exec fastlane ios promoteVanlige Claude Code-kommandoer
heading.anchorLabel| Kommando | Beskrivelse |
|---|---|
git status | Se utrackede og endrede filer |
git diff | Se stage/unstage-endringer |
pnpm type-check | Type-sjekk hele monorepo-et |
pnpm test | Kjor alle tester |
pnpm --filter api dev | Start kun API-serveren |
pnpm db:reset | Nullstill lokal database |
pnpm db:types | Generer TypeScript-typer fra skjema |
gh pr create | Opprett pull request |
gh run list | Se CI-kjoringshistorikk |
Feilsoking
heading.anchorLabelCI feiler
heading.anchorLabel# Se feilloggergh run view <run-id> --log-failed
# Kjor de samme sjekkene lokaltpnpm type-checkpnpm lintpnpm testDatabase-endringer ikke reflektert
heading.anchorLabel# Nullstill lokal database og kjor alle migrasjoner pa nyttpnpm db:reset
# Generer typer pa nyttpnpm db:typesKMP-kompileringsfeil
heading.anchorLabel# Rens og bygg pa nyttcd apps/mobile-kmp./gradlew clean./gradlew :shared:compileKotlinIosSimulatorArm64