Hver sesjon: teori + demo + hands-on øvelse
CLAUDE.md — Kontekst & minne
Skills & Plugins — Ferdige verktøy
MCP — Koble til verden
Custom Skills — Teamets ekspertise
Hooks & Sikkerhet — Guardrails
Workflow & Verifikasjon — Spec til kvalitet
Alt sammen — Teamøvelse
09:00–09:15 Oppstart – Velkommen tilbake, recap-quiz fra dag 1
09:15–10:30 Hooks & Sikkerhet – Guardrails agenten ikke kan omgå
10:45–12:30 Workflow & Verifikasjon – Fra spec til kvalitet
12:30–13:15 Lunsj
13:15–15:45 Alt sammen – Teamøvelse i paramedic-learnings
15:45–16:00 Avslutning – Oppsummering og veien videre
Hva gjør /compact?
Plugin vs. skill — hva er forskjellen?
Hva er den offisielle MCP-metaforen?
Maks anbefalt lengde for CLAUDE.md?
Hva gjør context: fork?
Én kommando fra commit til PR?
Hva om agenten skriver en API-nøkkel inn i koden?
Hva om den sletter en viktig konfigurasjonsfil?
Hva om den kjører en destruktiv database-kommando?
TILLIT KREVER KONTROLL. KONTROLL = HOOKS.
Skripter som kjører automatisk ved bestemte hendelser — shell-kommandoer, HTTP-endepunkter eller LLM-prompts.
Agenten kan ikke omgå dem — de er utenfor agentens kontroll.
Shell-kommando. JSON på stdin, exit-kode som svar.
Claude evaluerer input. Returnerer approve eller deny.
Begge konfigureres med "type": "command" eller "type": "prompt" — matcher + timeout er felles.
exit 0 = OK · exit 2 = blokker (stderr går tilbake til Claude) · andre exit-koder = ikke-blokkerende feil.
PreToolUse og PostToolUse dekker ~95% av hooks man skriver i praksis.
Eksempel: blokker endringer i.env
~/.claude/settings.json
Alle prosjekter — personlig global
.claude/settings.json
Prosjekt — delt i repo
.claude/settings.local.json
Lokal — gitignored
Managed policy
Enterprise — admin-styrt
{ "hooks": { "PreToolUse": [{ "matcher": "Edit|Write", "hooks": [{ "type": "command", "command": "bash .claude/hooks/block-env.sh" }] }] } }settings.json
"Edit|Write" matcher begge fil-verktøy; "mcp__.*" matcher alle MCP. PreToolUse kjører FØR verktøyet — skriptet sjekker tool_input.file_path og returnerer exit 2 for å blokkere.
Fra verst til best — velg det høyeste nivået praktisk mulig
API_KEY="sk-..."
git add .env
export KEY=...
~/.claude/
.credentials.json
roterende, enterprise
claude login lagrer i macOS Keychain eller kryptert ~/.claude/.credentials.json. For rotering: apiKeyHelper-script i settings.json peker til vault.
// Bruker input rett inn i RegExp const pattern = req.query.q const re = new RegExp(pattern)
error Found non-literal argument
to RegExp Constructor
security/detect-non-literal-regexp
❌ ReDoS-risiko — må fikses
$ npm i -D eslint-plugin-security // eslint.config.js import pluginSecurity from "eslint-plugin-security" export default [pluginSecurity.configs.recommended]
detect-eval-with-expression · detect-unsafe-regex (ReDoS) · detect-non-literal-regexp · detect-object-injection · detect-pseudoRandomBytes · detect-possible-timing-attacks · detect-bidi-characters (trojan source)
🛡 Automatisk sikkerhetssjekk etter hver kodeendring
Agenten skriver kode
Skanner OWASP Top 10
Claude justerer
Semgrep-plugin installerer MCP-server + settings hook — én kommando: /plugin install semgrep.
Eksplisitt revisjon — komplementerer hooks som kjører automatisk
Skanner pending changes / PR-diff for SQL-injection, XSS, auth-feil, hardkodede secrets
Innebygd i Claude Code — ingen plugin, ingen install
Kan kjøres i CI via anthropics/claude-code-action@v1 på hver PR
Hooks = automatisk enforcement · /security-review = eksplisitt revisjon
> /security-review
Skanner pending changes...
12 filer, 340 linjer endret
✓ Analyse ferdig
FUNN
⚠ HIGH: Hardkodet API-key i config.ts:42
⚠ MED: Usafe SQL concat i db.ts:87
ⓘ LOW: Svak random i session.ts:23
>
Passiv plugin som foreslår secure-by-default-bibliotek når Claude skriver kode. Vi har sett den i aksjon i denne sesjonen — secure-defaults-lista dukker opp automatisk.
Autonome sikkerhetsskanninger — Claude planlegger, kjører, tolker
nmap_scanport scanner
nikto_scanweb vuln-scanner
dirb_scandirectory brute
sqlmap_scanSQLi-tester
wpscan_analyzeWordPress-scanner
gobuster_scandir/DNS brute
hydra_attackbrute-force login
john_crackpassword cracker
metasploit_runexploit framework
execute_commandvilkårlig shell
server_healthMCP-status
Kali-teamet publiserer kali-mcp-server via kali.org apt-repo. Sjekk alltid MCP-server-opphav før installasjon — tredjeparts repos kjører tilfeldig kode med Claudes rettigheter.
3000 | Next.js | ✓ expected |
5432 | PostgreSQL | ⚠ exposed |
5000 | Kali API | MCP backend |
CVE-2025-29927 — Next.js middleware bypass
✓ Not affected — 16.1.7 is safe
| FINDING | SEVERITY | STATUS |
|---|---|---|
| X-Powered-By header exposed | Low | Leaks tech stack |
| Missing Content-Security-Policy | Medium | No CSP at all |
| Missing X-Content-Type-Options | Low | MIME sniffing possible |
| CSRF tokens rotate per-request | Good | ✓ |
| CVE-2025-29927 middleware bypass | Not affected | Next.js 16.1.7 |
| Dev Login gated by NODE_ENV | Good | Not in production |
nmap finner åpne porter → searchsploit sjekker CVE-er → curl tester auth-bypass → Claude syntetiserer alt i én rapport med severity og "What's Good" / "Issues to Fix".
Veiledende — kontekst
Scopet — Deny → Ask → Allow
Håndhevende — automatisk, kan ikke omgås
Organisasjonsbred — admin-satt, trumfer alt
KOMBINER ALLE FIRE LAGENE FOR EKTE SIKKERHET
Sentral policy som trumfer individuelle innstillinger
{ "allowManagedPermissionRulesOnly": true, "disableBypassPermissionsMode": "disable", "permissions": { "deny": [ "Edit(**/*.env)", "Bash(curl *)" ] } }
Sikkerhetsteamet låser når flåten uten å stole på individuell disiplin. Bypass-permissions-mode kan deaktiveres globalt.
/claude-automation-recommender analyserer codebasen
Analyserer repo-struktur, CLAUDE.md, pakker og eksisterende config
Foreslår hooks, skills, subagenter, MCP-servere, quick wins
Prioritert liste med konkret JSON du kan bruke direkte
> /claude-automation-recommender
Analyserer codebasen...
Sjekker .claude/, pakker, workflows...
✓ Fant 5 anbefalinger:
HOOKS
A. PreToolUse: Blokker .env-endringer
B. PostToolUse: Auto-screenshot
SKILLS
A. slide-reviewer integrasjon
SUBAGENTER
A. Parallell screenshot + review
MCP-SERVERE
A. Lokal file-watcher for auto-reload
QUICK WINS
A. Legg til scoped permissions
>
Verktøyet for øvelsen som kommer — finn dine egne hooks for ditt eget prosjekt
{ "permissions": { "allow": [ "Bash(node *)", "Bash(npx *)", "Bash(git *)", "Read", "Glob", "Grep" ] } }settings.local.json
Bash(*) — tillater ALT uten spørsmål
Inkludert rm -rf, curl med secrets
Ingen kontroll over hva agenten kjører
Bash(node *) — bare Node-kommandoer
Bash(git *) — bare git-operasjoner
Alt annet krever bekreftelse
/fewer-permission-prompts skanner sesjonshistorikken, finner tool-kall du allerede har godkjent gjentatte ganger, og skriver en prioritert allow-liste rett inn i .claude/settings.json.
Bygg guardrails for agenten i paramedic-learnings-repoet
Arbeidsflyten for agentisk utvikling
Plan Mode
Read-only utforskning. Forstå codebase og krav.
Shift+TabSuperpowers /plan
Claude foreslår tilnærming. Rediger i editor.
Ctrl+GNormal Mode
Implementer med CLAUDE.md, skills og planen som kontekst.
Tester & review
Writer/Reviewer, /test-implementation, Playwright.
Anthropics viktigste råd fra offisiell best practice. Uten verifikasjon kan Claude produsere kode som ser riktig ut, men som ikke fungerer.
VIDEO: CREMA STEG 2
AI med tilgang til codebase + GitHub
Lager PRD: problem, mål, brukerhistorier, akseptansekriterier
Samarbeid — Claude stiller spørsmål og foreslår scope
Jo bedre spesifikasjonen, jo bedre koden
Sub-issues med akseptansekriterier og referanser til PRD
Given / When / Then — nyttig format for presise, testbare kriterier
GIVEN en bruker er på forsiden
WHEN de klikker «Legg til læring»
THEN vises et skjema med tittel, beskrivelse og forfatter
Akseptansekriteriene er kontrakten mellom deg og AI-agenten — presist, testbart, entydig.
/worktree fra superpowers eller claude --worktree
Isolert kopi av repoet per agent — best for uavhengige oppgaver
Dramatisk
Parallelle agenter passer best for uavhengige oppgaver — avhengigheter må kjøres sekvensielt
“Claude performs better when it can check its own work”
— Anthropic
Én skriver, én reviewer
pr-review-toolkit med seks spesialiserte agenter
Annen modell, second opinion
Gemini, GPT-4 — diversitet i perspektiv
Se og teste
Playwright, /test-implementation
Bruk dem sammen for best dekning. Diversitet i verifikasjon øker kvaliteten.
pr-review-toolkit — seks agenter i parallell
Logikkfeil, arkitektur
Feil som feiler stille
Kompleksitet, gjenbruk
Kommentarkvalitet
Testdekning
Type-system, mønstre
/code-review — én agent, én gjennomgang. Bruk for raske reviews.
Claude skriver kode
Diff sendes
Ekstern API (Gemini)
Feedback & severity
Samme modell to ganger er bra. To forskjellige modeller er bedre — diversitet i verifikasjon øker kvaliteten.
Gemini Flash via OpenRouter — sterk på UI
Send slide-PNG til eksternt API
8 kategorier scores 0–5 og gir forbedringsforslag
Loop: 32 → 36 → 38, stopp ved flat score
Naviger til appen, ta screenshot, verifiser visuelt.
[Kort demo]
Leser akseptansekriterier fra issue, sjekker implementering, poster resultat.
Visuell komponent-oversikt (fra CReMa).
Gi Claude noe å verifisere MOT — screenshot, kriterier, testcases. Jo mer konkret, jo bedre verifikasjon.
Akseptansekriterier fra GitHub-issuet
Implementeringen mot hvert kriterium
Resultater som GitHub-kommentar
Full sirkel: issue → implement → test → resultater på GitHub
Alt uten å forlate terminalen — den agentiske arbeidsflyten i praksis
/code-review
Ikke bruk alt på alt. En liten bugfix trenger kanskje bare /code-review. En ny betalingsintegrasjon trenger alle tre strategiene pluss hooks.
Én kommando. Tre faser. Ingen mistede detaljer.
Par-arbeid — hele loopen fra spec til verifisert kode
Hvilken verifikasjonsstrategi passer best for teamets type arbeid? Skriv ned anbefalingen.
12:30 – 13:15
ETTER LUNSJ: S7 — TEAMØVELSE
CLAUDE.md
Skills & Plugins
Plan Mode
PRD / Issues
MCP (Figma, GitHub, Context7)
Implementer
Custom Skills
Hooks (sikkerhet)
Verifiser (review, test, visuelt)
/commit-push-pr
PR live ✓
Ikke et rigid system — en verktøykasse dere tilpasser
Team på 3–4 personer — bruk hele den agentiske arbeidsflyten
CLAUDE.md oppdatert med teamets konvensjoner
PRD og GitHub Issues med akseptansekriterier
Custom skills der det gir verdi
MCP aktiv (Context7, GitHub, evt. Figma)
Hooks aktive for sikkerhet
Verifisert med /review-pr og/eller /test-implementation
Pushet med /commit-push-pr
Søk og filtrering
Kommentarer
Tagging og kategorisering
Brukerprofilside
2–3 min per team — hva bygde dere, hvordan fungerte flyten, hva overrasket?
Hva bygde dere?
Hvordan fungerte den agentiske arbeidsflyten?
Hva overrasket dere — positivt eller negativt?
2–3 min per team
CLAUDE.md — kontekst og forståelse
Skills & Plugins — ferdige verktøy
MCP — koblet til verden
Custom Skills — teamets ekspertise
Hooks & Sikkerhet — guardrails
Workflow & Verifikasjon — fra spec til kvalitet
Alt sammen — teamøvelse
“Den polymorfe mindset — teamet blir mer allsidig, mer adaptivt, mer fleksibelt”
Claude Code docs
code.claude.com/docs
Plugin-markedsplass
/plugin i Claude Code
Finn MCP-servere
github.com/modelcontextprotocol
Paramedic Learnings
github.com/marinahaugen/
paramedic-learnings
Notion-dokument med full konfigurasjon — deles etter kurset
Alt kursmateriell deles digitalt
Tusen takk for to fantastiske dager!
“Det handler ikke om verktøyene —
det handler om mindset”
Marina Santos Haugen • Kodemaker
Vennligst fyll ut evalueringen ❤️