Mijn complete Claude Code setup: 38 skills, 11 agents, en hoe ik ze allemaal coördineer

In de afgelopen weken schreef ik over CLAUDE.md, rules.md, hooks, context engineering, en self-learning loops via intelligence pipelines. Telkens met voorbeelden uit mijn eigen setup.

Vandaag de samenhang: hoe past dit alles samen? Wat staat waar? Wat doet wat? Voor AI peers en hobbyisten die voorbij de eerste experimenten zijn, een complete walkthrough van mijn werkende productie-setup.

Geen abstracties. Wel: file-paths, command-mappingen, patronen die ik 8 maanden in productie heb getest.

De getallen

  • 38 skills, herbruikbare instructie-sets, gedeeltelijk in .claude/skills/, gedeeltelijk in ~/.claude/skills/
  • 11 sub-agents, gespecialiseerde agents voor research, code review, architecture, etc.
  • 6 hooks, SessionStart, PreToolUse, PostToolUse, Stop
  • 4 memory directories, always, on-demand, per-task, archive
  • 3 rules-bestanden, tone-of-voice, testing, security
  • 1 CLAUDE.md per project, context per project
  • 0 vector databases, alles markdown + NDJSON

Schaal: middelgroot. Niet enterprise. Wel veel voor een solopreneur.

De directory-structuur

Eerst een vogelvlucht. Hoe is alles georganiseerd?

Globaal, ~/.claude/

javascript
~/.claude/
├── CLAUDE.md ← tech-rules + @import profile.md (~10 regels)
├── profile.md ← identiteit + portfolio (cross-project)
├── rules/ ← user-level rules, in alle projecten actief
│ ├── voice-profile.md ← hoe ik schrijf
│ └── anti-ai-tics.md ← generieke AI-zinnen die ik nooit wil
├── skills/ ← skills die in alle projecten beschikbaar zijn
│ ├── linkedin-writer/
│ ├── blog-orchestrator/
│ ├── research-agent/
│ └── (35 anderen)
├── memory/ ← persoonlijke memory (niet in git)
│ └── (per project een subfolder)
├── settings.json ← machine-niveau settings
└── plugins/ ← Claude Code plugins

Per-project, .claude/

javascript
[project-root]/
├── CLAUDE.md ← project-specifieke context
└──.claude/
    ├── rules/
    │ ├── tone-of-voice.md
    │ ├── testing.md
    │ └── security.md
    ├── skills/ ← project-specifieke skills (overruled globaal)
    ├── hooks/ ← project-specifieke hooks
    │ ├── load_memory.sh ← SessionStart
    │ ├── bash_safety.sh ← PreToolUse
    │ └── auto_test.sh ← PostToolUse
    ├── memory/ ← project-state, MEMORY.md
    │ ├── always/
    │ │ └── MEMORY.md
    │ └── on-demand/
    │ ├── decisions.md
    │ └── lessons_learned.md
    ├── work/ ← per-task state
    │ └── [task-folders]/
    └── commands/ ← slash commands
        ├── blog.md
        ├── linkedin.md
        └── (4 anderen)

Belangrijk: globale skills/memory zijn voor mijn algemene werk. Project-skills/memory zijn voor specifieke projecten. Bij conflict wint project.

📖 Lees ook: Hooks in Claude Code: geautomatiseerde acties na elke prompt: hoe SessionStart, PostToolUse en Stop je workflow automatiseren

De gelaagde architectuur: identiteit, voice, en project-context apart

De directory-structuur hierboven is georganiseerd langs één principe: wat is identiteit en wat is project-context? Identiteit verandert zelden, project-context verandert wekelijks. Door ze fysiek te scheiden voorkom ik dat een blog-sessie iets weet over een klant-deadline, en dat een coding-sessie zich druk maakt om marketing-buzzwords.

Twee niveaus dus, scherp gescheiden.

Gelaagde Claude Code architectuur: globaal en project apart
Globale ~/.claude/ met identiteit + voice + anti-AI rules. Project-specifieke.claude/ met conventies + path-scoped rules + memory.

Niveau 1, globaal (~/.claude/)

profile.md wordt automatisch geladen via de @~/.claude/profile.md regel in CLAUDE.md. Voordeel: één bron voor mijn identiteit, geen herhaling per project.

Wat in profile.md staat:

  • Wie ik ben (Head of AI Solutions SalesMinds + VNX Digital + SEOcrawler)
  • Communicatie-voorkeuren (Nederlands, 1e persoon enkelvoud, geen em-dashes)
  • Werk-voorkeuren (architect-mindset, governance-stokpaardje, human-in-the-loop)
  • Portfolio-overview (één paragraaf per domein)

Het is bewust statisch. Deadlines en project-status horen niet hier, die wonen in project-memory.

Niveau 2, per project (<project>/.claude/)

Drie subtiele dingen die ik hier doe:

Path-scoping via een paar instellingsregels bovenaan een rules-bestand (YAML frontmatter voor wie die term kent). Mijn tone-of-voice.md heeft paths: ["Content/**", "project/vnx_digital/**"], wat betekent: alleen actief als Claude in die mappen werkt. In een coding-sessie in Development/ laadt deze rule niet. Officieel ondersteund door Claude Code, weinig gebruikt.

Project-memory in .claude/memory/ met een MEMORY.md index. Hier komen observaties die voor één project gelden, bijvoorbeeld aliassen tussen klantnamen, of specifieke pricing-beslissingen.

Anti-marketing-buzzwords als aparte rule. Termen als "revolutionair" of "game-changer" blokkeer ik in content-folders, niet in code. Globale en project-rules vullen elkaar aan zonder elkaar te storen.

Wat dit oplevert in de praktijk

In een coding-sessie in ~/Development/SEOcrawler_v2/:

  • Globale identiteit + voice + anti-AI-tics laadt (~120 regels)
  • Project CLAUDE.md laadt (~80 regels)
  • Marketing-rules laden NIET (path-scope past niet)
  • Project-memory laadt (~50 regels)

In een blog-sessie in ~/Desktop/BUSINESS/Content/blog/:

  • Alle bovenstaande PLUS marketing-rules PLUS blog-rules
  • Tone-of-voice.md activeert via path-scope
  • Anti-marketing-buzzwords laden in voor content-werk

Totaal: ~300 regels gerichte context per sessie. Geen ruis. Geen ontbrekende info. Claude weet altijd wie ik ben, en in een blog-folder weet hij óók hoe ik klink.

Dit patroon, gelaagde scheiding tussen identiteit en context, is wat het verschil maakt tussen 38 skills die wel werken en 38 skills die elkaar in de weg zitten.

De 38 skills (overzicht)

Niet alle 38 individueel, wel de categorieën die je kunt zien:

Content & Marketing (13 skills)

blog-orchestrator, blog-writer, blog-images, blog-publisher, blog-editor, seo-interlinker, seo-agent, linkedin-writer, linkedin-strategist, linkedin-image-creator, social-content, copywriting, copy-editing

Deze coördineren mijn content-pipeline. blog-orchestrator is de top, hij roept andere skills aan in volgorde.

Audience & Lead Intelligence (5 skills)

audience-intelligence, lead-scorer, discussion-actor, cold-email, email-sequence

Voor mijn LinkedIn intelligence engine en lead-werk.

Product Marketing & Strategy (5 skills)

product-marketing-context, marketing-psychology, marketing-ideas, pricing-strategy, launch-strategy

Strategische skills die ik wekelijks aanroep voor branding-werk.

Development Operations (8 skills)

research-agent, vnx-project-setup, excalidraw-diagrammer, phantombuster, claude-api, plus de SuperClaude sc:* skills (sc:document, sc:implement, etc.)

Voor technisch werk en architectuur-werk.

Visual & Diagram (3 skills)

linkedin-carousel-builder, excalidraw-diagrammer, linkedin-image-creator

Reflection & Process (4 skills)

competitor-alternatives, funnel-orchestrator, content-strategy, reddit-marketing

Per maand: ik gebruik typisch 5-8 skills per dag, niet alle 38. Het zit allemaal beschikbaar zodat als ik het nodig heb, het er is.

De 11 sub-agents

Sub-agents zijn aparte. Een skill is een instructie-set. Een sub-agent is een aparte sessie met eigen context. Mijn 11:

AgentWat het doetWanneer ik hem aanroep
general-purposeOpen onderzoeksvragenOnderzoek dat 3+ queries kost
ExploreCode zoeken in repo"Waar staat X?"
PlanImplementatieplan makenVoor non-trivial features
backend-architectBackend ontwerpDatabase design, API design
frontend-architectFrontend ontwerpUI patterns, accessibility
system-architectSysteem-niveauArchitectuur-keuzes met long-term impact
security-engineerSecurity reviewVoor elke significante PR
quality-engineerTest strategyEdge cases bepalen
performance-engineerPerformance optimizationWanneer benchmarks nodig zijn
python-expertPython best practicesVNX-werk vooral
claude-code-guideClaude Code expertiseVragen over CC zelf

Niet alle 11 dagelijks. Wel ze allemaal binnen handbereik via Agent(subagent_type=...).

Skills + sub-agents in Vincent's setup
38 skills voor herbruikbare instructies. 11 sub-agents voor parallelle taken. Eén orchestrator die ze samen coördineert.

De 6 hooks

Concreet:

javascript
.claude/hooks/
├── load_memory.sh ← SessionStart, laadt always/MEMORY.md
├── bash_safety.sh ← PreToolUse, blokkeert gevaarlijke commands
├── auto_test_on_edit.sh ← PostToolUse, triggert test bij file-edit
├── receipt_logger.sh ← PostToolUse, logt actie in NDJSON
├── context_monitor.sh ← PreToolUse, blokkeert bij 65% context
└── auto_commit_notes.sh ← Stop, committeert work-notes

De context_monitor.sh is degene die op #1 in Google staat, auto-rotation bij 65% gevuld geheugen.

Hoe het samenwerkt, een concrete sessie

Hoe ziet een typische sessie eruit?

Stap 1, Sessie start. Ik open Claude Code in mijn blog-project. SessionStart-hook draait load_memory.sh. Dit injecteert:

  • ~/.claude/CLAUDE.md (persoonlijke werkstijl, ~40 regels)
  • [project]/CLAUDE.md (blog-project context, ~60 regels)
  • .claude/rules/tone-of-voice.md (stem-regels, ~90 regels)
  • .claude/memory/always/MEMORY.md (project-status, ~50 regels)

Totaal: ~240 regels baseline context. Schoon, gefocust, geen ruis.

Stap 2, Slash command. Ik typ /blog kalender. Slash command leest de eerstvolgende blog uit mijn kalender en triggert de pipeline.

Stap 3, Skill orchestratie. blog-orchestrator skill activeert. Roept achter elkaar aan:

  • research-agent (sub-agent, parallelle research)
  • seo-agent (skill, keyword analysis)
  • blog-writer (skill, draft schrijven)
  • seo-interlinker (skill, interne links)
  • blog-images (skill, visuals)
  • blog-editor (skill, kwaliteits-check)

Per stap: receipt naar NDJSON (via PostToolUse hook). Output naar Telegram (via webhook).

Stap 4, Mijn review. Bij elke significante stap krijg ik een Telegram-bericht met "concept klaar voor review". Ik open in browser, lees, accepteer of vraag wijziging.

Stap 5, Sessie eind. Stop-hook draait auto_commit_notes.sh. Werknotities en memory-updates worden vastgelegd.

Geen handmatige coördinatie. Geen "wacht, welke skill moet ik nu aanroepen?". Het systeem weet de volgorde, ik beslis de quality gates.

📖 Lees ook: Agentic OS: de centrale bediening voor je bedrijf: hoe agents, orchestratie en context samen een werkend systeem vormen

Drie patronen die het verschil maken

Niet alle 38 skills zijn even belangrijk. Drie patronen die het meeste verschil maken:

Patroon 1, Orchestrator skills

blog-orchestrator en linkedin zijn meta-skills. Ze coördineren andere skills. Een orchestrator skill heeft drie eigenschappen:

  • Roept andere skills aan in vaste volgorde
  • Heeft duidelijke quality gates per stap
  • Slaat tussenresultaten op zodat je kunt onderbreken

Ik heb 4-5 orchestrator skills. Voor herhalende multi-step workflows zijn ze goud waard.

Patroon 2, Skills met expliciete ICP

Elke skill weet voor wie hij schrijft/maakt. blog-writer heeft drie modes (NL MKB, NL AI peers, EN architects). linkedin-writer heeft eigen ICP-targeting. cold-email werkt per ICP-segment.

Zonder ICP-awareness zou de output generiek worden. Met ICP-awareness past elke output bij de doelgroep zonder dat ik het hoef te specificeren.

Patroon 3, Skills met "anti-claims"

Elke skill in productie heeft een sectie "wat dit NIET doet". Voorbeeld in blog-writer:

  • Schrijft niet over health/medical zonder disclaimer
  • Schrijft niet over Vincent's vrouw of privé-leven
  • Genereert geen testimonials over klanten
  • Schrijft niet in andere persoon dan eerste-persoon

Anti-claims voorkomen dat skills dingen doen die jij niet wilt, vaak gevoeliger dan wat ze wel moeten doen.

Wat ik zou doen anders bij een nieuwe setup

Drie eerlijke leerpunten van 8 maanden:

  1. Begin niet met 38 skills. Begin met 3 voor je meest-herhalende taken. Voeg pas een 4e toe als die echt 80% bewezen waarde heeft. Mijn 38 zijn organisch gegroeid, niet ontworpen vooraf.
  2. Memory > skills voor onbeschermde info. In het begin stopte ik veel context in skills. Hoort vaak in memory. Memory is goedkoper te updaten en blijft persistent.
  3. Hooks eerst, dan skills. SessionStart-hook met memory-loader is meer waard dan 5 nieuwe skills. Bouw de fundering voor je optopt.

Wat doe je deze week?

Drie acties, naar gelang waar jij staat:

Beginner (1-2 maanden CC):

  • Maak één CLAUDE.md, één SessionStart-hook, één slash command voor je vaakste taak.

Intermediate (3-6 maanden CC):

  • Voeg 2-3 skills toe voor terugkerende workflows. Zet rules.md op met testing- en security-regels.

Advanced (6+ maanden CC):

  • Bouw een orchestrator skill voor één multi-step workflow. Kijk of memory-tier-systeem werkbaar is. Voeg context-monitor hook toe.

Niet alles tegelijk. De waarde komt uit consistent gebruiken van wat je hebt, niet uit het hebben van veel.

Veelgestelde vragen

Samenvatting

38 skills, 11 sub-agents, 6 hooks, 4 memory directories, opgebouwd in 8 maanden Claude Code in productie. De waarde zit niet in het aantal, maar in de drie patronen: orchestrator skills voor multi-step workflows, ICP-aware output, en anti-claims om te voorkomen dat skills doen wat jij niet wilt.

Begin niet met deze schaal. Begin met CLAUDE.md, één SessionStart-hook, en één slash command. Voeg toe naargelang je workflow het nodig heeft.

In zes maanden heb je iets dat compounding werkt, net als bij elke discipline waar je consistent in investeert. Geen 38 skills nodig. Wel 38 weken trouw werken aan de essentie.


Wil je sparring over jouw eigen Claude Code setup? Volg me op LinkedIn, daar deel ik wekelijks build-in-public updates over hoe mijn setup zich ontwikkelt. Of kijk op mijn werkwijze-pagina hoe ik dit soort systemen bouw voor andere bedrijven.


Vincent van Deth

AI Strategy & Architecture

Vincent van Deth bouwt productiesystemen met AI voor het MKB. Hij is de maker van VNX, een multi-agent LLM orchestrator, en helpt teams betrouwbare AI-automatisering te shippen — zonder bullshit.

Reacties

Je e-mailadres wordt niet gepubliceerd. Reacties worden beoordeeld voor plaatsing.

Reacties laden...