$npx -y skills add 24601/surreal-skills --skill surrealdbExpert SurrealDB 3 skill. Use when working with SurrealDB, SurrealQL queries, multi-model data modeling (document, graph, vector, time-series, geospatial), schema design, graph traversal, vector search, security and permissions, deployment and operations, performance tuning, SDK
| 1 | # SurrealDB 3 Expert Skill |
| 2 | |
| 3 | Expert-level SurrealDB 3 architecture, development, and operations for GitHub Copilot. |
| 4 | |
| 5 | ## When Copilot Should Use This Skill |
| 6 | |
| 7 | Activate automatically when the user: |
| 8 | - Writes or asks about SurrealQL queries |
| 9 | - Works with `.surql` files |
| 10 | - Designs database schemas for SurrealDB |
| 11 | - Configures SurrealDB deployment or Docker |
| 12 | - Uses SurrealDB SDKs (JavaScript, Python, Go, Rust, Java, Kotlin, .NET, C, PHP, Swift, Ruby) |
| 13 | - Works with graph relationships (RELATE, traversal) |
| 14 | - Implements vector search or RAG patterns |
| 15 | - Configures security, permissions, or access control |
| 16 | - Builds Surrealism WASM extensions |
| 17 | - Migrates data to SurrealDB from other databases |
| 18 | - Connects SurrealDB to MCP hosts, n8n, AI frameworks, or custom editors |
| 19 | |
| 20 | ## Rules Reference |
| 21 | |
| 22 | This skill contains 18 detailed rule files. Read the relevant rule file when |
| 23 | the user's request matches its domain: |
| 24 | |
| 25 | | Rule File | When to Load | Domain | |
| 26 | |-----------|-------------|--------| |
| 27 | | [surrealql.md](../../../rules/surrealql.md) | Writing or debugging SurrealQL queries | Full SurrealQL language reference | |
| 28 | | [data-modeling.md](../../../rules/data-modeling.md) | Designing schemas, choosing field types, record IDs | Multi-model schema design patterns | |
| 29 | | [graph-queries.md](../../../rules/graph-queries.md) | RELATE, graph traversal, path expressions | Graph edge and traversal patterns | |
| 30 | | [vector-search.md](../../../rules/vector-search.md) | HNSW indexes, similarity search, embeddings | Vector search and RAG pipelines | |
| 31 | | [security.md](../../../rules/security.md) | Permissions, auth, JWT, access control | Row-level security and auth flows | |
| 32 | | [deployment.md](../../../rules/deployment.md) | Installing, configuring, running SurrealDB | Storage engines, Docker, Kubernetes | |
| 33 | | [performance.md](../../../rules/performance.md) | Slow queries, index strategy, EXPLAIN | Performance tuning and optimization | |
| 34 | | [sdks.md](../../../rules/sdks.md) | Using SurrealDB from application code | JS, Python, Go, Rust, Java, Kotlin, .NET, C, PHP, Swift, Ruby patterns | |
| 35 | | [surrealism.md](../../../rules/surrealism.md) | Writing WASM extensions | Rust to WASM extension development | |
| 36 | | [surrealml.md](../../../rules/surrealml.md) | Working near SurrealML | Preview .surml boundary and native dependency warning | |
| 37 | | [surrealmcp.md](../../../rules/surrealmcp.md) | Connecting AI hosts | MCP tool catalog and deployment | |
| 38 | | [editor-tooling.md](../../../rules/editor-tooling.md) | Editor / IDE support | LSP, tree-sitter, CodeMirror, editor extensions | |
| 39 | | [langchain.md](../../../rules/langchain.md) | LangChain RAG | Python vector store API | |
| 40 | | [ecosystem-integrations.md](../../../rules/ecosystem-integrations.md) | n8n / framework pointers | n8n, AI framework docs, Spectron boundary, Agent Skills | |
| 41 | | [surrealist.md](../../../rules/surrealist.md) | Using the Surrealist IDE/GUI | IDE features and schema designer | |
| 42 | | [surreal-sync.md](../../../rules/surreal-sync.md) | Migrating from other databases | CDC sync from Postgres, Mongo, etc. | |
| 43 | | [surrealfs.md](../../../rules/surrealfs.md) | AI agent filesystem operations | Virtual FS backed by SurrealDB | |
| 44 | | [surrealkit.md](../../../rules/surrealkit.md) | Schema sync, rollouts, seeds, and declarative tests | Desired-state schema management for SurrealDB apps | |
| 45 | |
| 46 | ## Quick Reference |
| 47 | |
| 48 | ### SurrealQL Essentials |
| 49 | |
| 50 | ```surql |
| 51 | -- Create records |
| 52 | CREATE person:alice SET name = 'Alice', age = 30; |
| 53 | |
| 54 | -- Graph edges |
| 55 | RELATE person:alice->follows->person:bob SET since = time::now(); |
| 56 | |
| 57 | -- Traverse graph |
| 58 | SELECT ->follows->person.name AS following FROM person:alice; |
| 59 | |
| 60 | -- Vector search (HNSW) |
| 61 | DEFINE INDEX idx_embed ON document FIELDS embedding HNSW DIMENSION 1536 DIST COSINE; |
| 62 | SELECT * FROM document WHERE embedding <|10,40|> $query_vector; |
| 63 | |
| 64 | -- Row-level permissions |
| 65 | DEFINE TABLE post SCHEMALESS PERMISSIONS |
| 66 | FOR select WHERE published = true OR user = $auth.id |
| 67 | FOR create, update WHERE user = $auth.id; |
| 68 | |
| 69 | -- Live queries |
| 70 | LIVE SELECT * FROM person WHERE age > 25; |
| 71 | ``` |
| 72 | |
| 73 | ### Key Concepts |
| 74 | |
| 75 | - **Record IDs**: `table:id` (e.g., `person:alice`) -- first-class citizens, no JOINs needed |
| 76 | - **Multi-model**: Document + Graph + Vector + Time-series + Geospatial in one DB |
| 77 | - **Graph operators**: `->` (outgoing), `<-` (incoming), `<->` (bidirectional) |
| 78 | - **KNN operator**: `<|K,EF|>` where K=neighbors, EF=search parameter (NOT distance metric) |
| 79 | - **Storage engines**: memory, RocksDB, SurrealKV (time-travel), TiKV (dis |