AI-skillGratis

Prompt engineering

Gebaseerd op rohitg00/awesome-claude-code-toolkit @ ebdf1d5, licentie Apache-2.0

Bijgewerkt 30 augustus 2026

Dit bestand is door ToolBrain vertaald en inhoudelijk gewijzigd op 2026-08-30, op basis van prompt-engineering uit rohitg00/awesome-claude-code-toolkit (Apache-2.0), zie https://github.com/rohitg00/awesome-claude-code-toolkit/blob/ebdf1d596d2cde5c5cceb32177e8d1cf4829e7d9/skills/prompt-engineering/SKILL.md en ../LICENSES/awesome-claude-code-toolkit-APACHE-2.0.txt.

Een prompt is in feite een specificatie: hoe preciezer je rol, scope, outputformaat en grenzen beschrijft, hoe voorspelbaarder het model reageert. Dit geldt evenzeer voor een prompt die je typt in een chatvenster als voor een system-prompt die vastligt in een n8n-node of een Claude-skill.

Gestructureerde system-prompt

Code
Je bent een senior code-reviewer. Je taak is pull requests analyseren op:
1. Correctheid - logicafouten, edge cases, off-by-one-fouten
2. Security - injectie, authenticatie, data-blootstelling
3. Performance - N+1-queries, onnodige allocaties, ontbrekende indexen
4. Onderhoudbaarheid - naamgeving, complexiteit, testdekking

Reageer per gevonden issue met:
- Ernst: critical | warning | suggestion
- Bestand en regelverwijzing
- Wat er mis is
- Hoe je het oplost (met codevoorbeeld)

Is de code goed geschreven, zeg dat dan kort. Verzin geen problemen.

Structureer system-prompts met rol, scope, outputformaat en beperkingen. Wees expliciet over wat het model juist NIET moet doen.

Chain-of-thought

Code
Analyseer deze database-query op performance-issues.

Denk stap voor stap:
1. Identificeer de betrokken tabellen en joins
2. Controleer of er passende indexen bestaan voor de WHERE- en JOIN-condities
3. Zoek naar full table scans of cartesiaanse producten
4. Schat het aantal rijen bij elke stap
5. Stel een concrete index of query-herstructurering voor

Query:
SELECT o.*, u.name, p.title
FROM orders o
JOIN users u ON o.user_id = u.id
JOIN products p ON o.product_id = p.id
WHERE o.created_at > '2024-01-01'
AND u.country = 'US'
ORDER BY o.created_at DESC
LIMIT 50;

Chain-of-thought-prompting verbetert de nauwkeurigheid bij redeneertaken doordat het model gedwongen wordt tussenstappen expliciet te maken.

Few-shot voorbeelden

Code
Vertaal natuurlijke taal naar SQL. Volg deze voorbeelden:

Input: "Hoeveel bestellingen zijn er vorige maand geplaatst?"
Output: SELECT COUNT(*) FROM orders WHERE created_at >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month') AND created_at < DATE_TRUNC('month', CURRENT_DATE);

Input: "Top 5 klanten op basis van totale uitgaven"
Output: SELECT customer_id, SUM(total_amount) AS total_spent FROM orders GROUP BY customer_id ORDER BY total_spent DESC LIMIT 5;

Input: "Producten die nog nooit besteld zijn"
Output: SELECT p.* FROM products p LEFT JOIN order_items oi ON p.id = oi.product_id WHERE oi.id IS NULL;

Vertaal nu:
Input: "Gemiddelde orderwaarde per land voor het afgelopen kwartaal"

Geef 3-5 diverse voorbeelden die zowel het standaardgeval als randgevallen laten zien.

Tool use / function calling

json
{
  "tools": [
    {
      "name": "search_codebase",
      "description": "Doorzoek codepatronen in de repository. Gebruik dit om implementaties, gebruik of definities te vinden.",
      "parameters": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Regex-patroon of zoekwoord"
          },
          "file_type": {
            "type": "string",
            "description": "Bestandsextensie-filter (bijv. 'ts', 'py')"
          }
        },
        "required": ["query"]
      }
    }
  ]
}

Schrijf tool-beschrijvingen die uitleggen WANNEER je de tool gebruikt, niet alleen wat hij doet.

Prompt-templatepatroon

python
def build_review_prompt(diff: str, context: str, rules: list[str]) -> str:
    rules_text = "\n".join(f"- {rule}" for rule in rules)

    return f"""Beoordeel deze code-diff tegen de volgende regels:
{rules_text}

Context over de codebase:
{context}

Te beoordelen diff:

{diff}

Code

Antwoord met een JSON-array van bevindingen. Geen issues? Geef een lege array terug.
Elke bevinding: {{"severity": "critical|warning|info", "line": number, "message": "string", "suggestion": "string"}}"""

Veelgemaakte fouten

  • Vage instructies zoals "wees behulpzaam" of "doe je best".
  • Het model vragen "creatief" te zijn terwijl je juist deterministische output nodig hebt.
  • Het outputformaat (JSON, markdown, platte tekst) niet expliciet specificeren.
  • Te veel losse taken in één prompt proppen.
  • Ontkenningen gebruiken ("doe geen X") zonder te zeggen wat wel moet gebeuren.
  • Prompts niet testen met adversariële of randgevallen-input.

Checklist

  • System-prompt definieert rol, scope, formaat en beperkingen
  • Chain-of-thought wordt gebruikt bij meerstaps-redeneertaken
  • Few-shot-voorbeelden dekken zowel typische als randgevallen
  • Outputformaat is expliciet gespecificeerd (JSON-schema, markdown, etc.)
  • Tool-beschrijvingen leggen uit wanneer en waarom je elke tool gebruikt
  • Prompts zijn getest met adversariële input
  • Temperature en top_p zijn passend ingesteld voor de taak
  • Prompt-templates zijn geparametriseerd, geen hardgecodeerde strings

Praktijkvoorbeeld (NL)

Een Nederlandse installatiebedrijf gebruikt een Claude-skill om binnenkomende klantklachten via WhatsApp automatisch te categoriseren voordat een monteur wordt ingepland. De eerste versie van de prompt gaf onvoorspelbare resultaten: soms een vrije tekst, soms een opsomming, soms alleen "urgent". Door de prompt te herschrijven volgens de structuur hierboven — een vaste rol ("je categoriseert storingsmeldingen"), een expliciete lijst met precies vier toegestane categorieën, en een hard voorgeschreven JSON-outputformaat met velden als categorie, urgentie en samenvatting — kan de n8n-workflow de output direct parsen en zonder handmatige tussenstap doorzetten naar de juiste planningsagenda, zonder dat een monteur eerst het bericht zelf hoeft te lezen en te interpreteren.