Communitygithub.com

24601/surreal-skills

Expert SurrealDB 3 skill. À utiliser lors du travail avec SurrealDB, des requêtes SurrealQL, la modélisation de données multi-modèle (document, graphe, vecteur, séries temporelles, géospatial), la conception de schémas, la traversée de graphes, la recherche vectorielle, la sécurité et les permissions, le déploiement et les opérations, l'optimisation des performances, l'intégration SDK, les extensions WASM Surrealism, SurrealMCP, l'IDE Surrealist, les migrations Surreal-Sync, SurrealFS, SurrealKit ou les intégrations d'écosystème telles que n8n et CodeMirror.

Qu'est-ce que surreal-skills ?

Cette compétence experte pour SurrealDB 3 fournit une assistance complète pour le développement, l'architecture et les opérations de SurrealDB, directement dans votre IDE compatible avec l'IA (comme GitHub Copilot, Cursor, etc.). Elle couvre tous les aspects de SurrealDB : requêtes SurrealQL, modélisation de données multi-modèle (documents, graphes, vecteurs, séries temporelles, géospatial), traversée de graphes avec les opérateurs `->` et `<-`, recherche vectorielle avec index HNSW, sécurité et permissions, déploiement, optimisation des performances, et intégration avec tous les SDK officiels (JavaScript, Python, Go, Rust, Java, Kotlin, .NET, C, PHP, Swift, Ruby). La compétence s'active automatiquement lorsque vous écrivez des requêtes SurrealQL ou travaillez avec des fichiers `.surql`. Elle inclut 18 fichiers de règles détaillés qui sont lus selon le contexte, chacun se concentrant sur un domaine spécifique comme les requêtes de graphes, la recherche vectorielle, les extensions WASM Surrealism, la synchronisation avec d'autres bases de données, ou les intégrations d'écosystème (n8n, MCP, éditeurs). Un guide de référence rapide fournit des extraits de code pour les opérations essentielles comme la création d'enregistrements, la définition de relations, la traversée de graphes, la recherche vectorielle et les permissions par ligne. La compétence inclut également des scripts utilitaires pour la vérification de l'état de santé, l'introspection de schéma et la vérification des mises à jour en amont.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/24601/surreal-skills/tree/main/.github/skills/surrealdb

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Compétence experte SurrealDB 3

Architecture, développement et opérations de niveau expert pour SurrealDB 3 avec GitHub Copilot.

Quand Copilot doit utiliser cette compétence

Activation automatique lorsque l'utilisateur :

  • Écrit ou pose des questions sur les requêtes SurrealQL
  • Travaille avec des fichiers .surql
  • Conçoit des schémas de base de données pour SurrealDB
  • Configure le déploiement de SurrealDB ou Docker
  • Utilise les SDK SurrealDB (JavaScript, Python, Go, Rust, Java, Kotlin, .NET, C, PHP, Swift, Ruby)
  • Travaille avec des relations de graphe (RELATE, traversée)
  • Implémente la recherche vectorielle ou les modèles RAG
  • Configure la sécurité, les permissions ou le contrôle d'accès
  • Crée des extensions WASM Surrealism
  • Migre des données vers SurrealDB depuis d'autres bases de données
  • Connecte SurrealDB à des hôtes MCP, n8n, des frameworks d'IA ou des éditeurs personnalisés

Référence des règles

Cette compétence contient 18 fichiers de règles détaillés. Lisez le fichier de règle pertinent lorsque la demande de l'utilisateur correspond à son domaine :

Fichier de règleQuand le chargerDomaine
surrealql.mdÉcrire ou déboguer des requêtes SurrealQLRéférence complète du langage SurrealQL
data-modeling.mdConcevoir des schémas, choisir des types de champs, des identifiants d'enregistrementModèles de conception de schémas multi-modèles
graph-queries.mdRELATE, traversée de graphes, expressions de cheminModèles de relations et de traversée de graphes
vector-search.mdIndex HNSW, recherche de similarité, intégrationsRecherche vectorielle et pipelines RAG
security.mdPermissions, authentification, JWT, contrôle d'accèsSécurité au niveau des lignes et flux d'authentification
deployment.mdInstallation, configuration, exécution de SurrealDBMoteurs de stockage, Docker, Kubernetes
performance.mdRequêtes lentes, stratégie d'index, EXPLAINRéglage des performances et optimisation
sdks.mdUtilisation de SurrealDB depuis le code applicatifModèles JavaScript, Python, Go, Rust, Java, Kotlin, .NET, C, PHP, Swift, Ruby
surrealism.mdÉcrire des extensions WASMDéveloppement d'extensions Rust vers WASM
surrealml.mdTravailler à proximité de SurrealMLAperçu de la limite .surml et avertissement de dépendance native
surrealmcp.mdConnecter des hôtes d'IACatalogue d'outils MCP et déploiement
editor-tooling.mdPrise en charge de l'éditeur / IDELSP, tree-sitter, CodeMirror, extensions d'éditeur
langchain.mdRAG LangChainAPI Python pour vector store
ecosystem-integrations.mdPointeurs n8n / frameworkn8n, documentation des frameworks d'IA, limite Spectron, compétences d'agent
surrealist.mdUtiliser l'IDE/GUI SurrealistFonctionnalités de l'IDE et concepteur de schéma
surreal-sync.mdMigrer depuis d'autres bases de donnéesSynchronisation CDC depuis Postgres, Mongo, etc.
surrealfs.mdOpérations de système de fichiers d'agent IASystème de fichiers virtuel basé sur SurrealDB
surrealkit.mdSynchronisation de schéma, déploiements, seeds et tests déclaratifsGestion de schéma par état désiré pour les applications SurrealDB

Référence rapide

Essentiels de SurrealQL

-- Créer des enregistrements
CREATE person:alice SET name = 'Alice', age = 30;

-- Relations de graphe
RELATE person:alice->follows->person:bob SET since = time::now();

-- Traverser le graphe
SELECT ->follows->person.name AS following FROM person:alice;

-- Recherche vectorielle (HNSW)
DEFINE INDEX idx_embed ON document FIELDS embedding HNSW DIMENSION 1536 DIST COSINE;
SELECT * FROM document WHERE embedding <|10,40|> $query_vector;

-- Permissions au niveau des lignes
DEFINE TABLE post SCHEMALESS PERMISSIONS
  FOR select WHERE published = true OR user = $auth.id
  FOR create, update WHERE user = $auth.id;

-- Requêtes en temps réel
LIVE SELECT * FROM person WHERE age > 25;

Concepts clés

  • Identifiants d'enregistrement : table:id (par ex., person:alice) -- citoyens de première classe, pas besoin de JOIN
  • Multi-modèle : Document + Graphe + Vecteur + Séries temporelles + Géospatial dans une seule base de données
  • Opérateurs de graphe : -> (sortant), <- (entrant), <-> (bidirectionnel)
  • Opérateur KNN : <|K,EF|> où K = voisins, EF = paramètre de recherche (PAS une métrique de distance)
  • Moteurs de stockage : mémoire, RocksDB, SurrealKV (voyage dans le temps), TiKV (distribué)
  • Extensions WASM : Nouveauté v3 -- écrivez en Rust, compilez en WASM, enregistrez avec DEFINE MODULE

Scripts

# Vérification de l'état de santé
uv run scripts/doctor.py

# Introspection de schéma
uv run scripts/schema.py introspect

# Vérifier les mises à jour en amont
uv run scripts/check_upstream.py

Notes de sécurité

  • Les exemples utilisent root/root uniquement pour le développement local. Utilisez des identifiants limités en production.
  • Les scripts se connectent uniquement aux points de terminaison spécifiés par l'utilisateur. Aucun appel réseau tiers.
  • Les noms de table sont validés par rapport à [a-zA-Z_][a-zA-Z0-9_]* avant l'interpolation de requête.
  • Préférez les installations via gestionnaire de paquets ou conteneur plutôt que les installateurs par script shell distant.

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

Skills associés