Ninox Scripting Skill
This skill provides expert knowledge for scripting in Ninox databases, preventing hallucinations and enforcing strict rules. Use when writing, debugging, or explaining Ninox scripts (NX).
Critical Rules
Follow these rules strictly to avoid hallucinations (inventing non-existent functions):
- ALWAYS read
references/function-whitelist.md before writing code. If a function is not in this list, DO NOT USE IT unless you verify it yourself in the official documentation.
- ALWAYS read
references/forbidden-patterns.md to avoid common errors (e.g., using JS array methods like map, filter, etc., which do NOT exist in Ninox).
- ASK FOR CONTEXT: If field names, table names, or relations are unclear, ASK instead of guessing. See
references/context-queries.md.
- CONSULT ALL RULES: Review all relevant documents in the
references/ directory before writing code. See Resources section below for all available rule documents.
Datenbankstruktur verstehen
Wenn du Ninox-Code schreiben sollst und die Tabellenstruktur unklar ist:
- Bitte den Nutzer um den API-Export oder die manuelle Strukturbeschreibung
- Lies
references/export-guide.md für die Anleitung, die du dem Nutzer geben kannst
- Frag NIEMALS nach Feldnamen durch Raten – das führt zu Halluzinationen
Verwende diese Prompt-Vorlage, um den Nutzer zu einer guten Beschreibung anzuleiten:
Damit ich den korrekten Code schreiben kann, brauche ich die genaue Datenbankstruktur.
Bitte nenne mir:
1. Den genauen Tabellennamen (mit Leerzeichen/Sonderzeichen)
2. Die Feldnamen mit Typen (Text, Zahl, Datum, Relation...)
3. Welche Tabellen zusammenhängen (Relationen)
4. Den Trigger-Kontext (wo läuft das Script? onChange auf Feld X? Button in Tabelle Y?)
Oder nutze die Anleitung in references/export-guide.md für einen API-Export.
Resources
Core Rules
- Strict Rules - Critical documentation compliance rules
- Function Whitelist - All documented Ninox functions
- Forbidden Patterns - Common errors to avoid
- Common Mistakes - Best practices and common pitfalls
- Context Queries - When to ask instead of guessing
- Relations and Loops - Correct usage of relations and for-loops
- Performance Rules - Optimization guidelines
- Undocumented Features - Working but undocumented features
- Style Guide - Coding standards
Documentation
Functions - All documented Ninox functions
Performance Guide - Performance optimizations
API - HTTP and REST API (full reference)
HTTP Requests - Making HTTP requests from NX scripts
Tables - Database table concepts
Triggers - All trigger types, contexts, and limitations
Datetime Functions - Date/time functions, formatting, arithmetic
Types - Type system, conversion, null handling
Database Schema - Schema structure and field types
Export Guide - How to export database structure for AI analysis
Globals - Global functions: teamId, user functions, sendEmail, ninoxApp, openPage, execution blocks
Changelog - Script-relevant version history and new functions by version
Examples
- Basic Select - Basic select statements
- Aggregate Functions - Using aggregate functions instead of loops
- Select Optimization - Optimizing select queries
- Transaction Pattern - Using transaction blocks
- Count with Filter - Undocumented count() with filter pattern
- Select with Brackets - Undocumented bracket syntax
1---2name: ninox-scripting3description: Expert knowledge for scripting in Ninox databases, preventing hallucinations and enforcing project rules. Use when writing, debugging, or explaining Ninox scripts (NX), when the user mentions Ninox, NX scripts, database scripting, or needs help with Ninox formulas, automation, or database operations.4license: CC-BY-4.0. See LICENSE for complete terms.5---67# Ninox Scripting Skill89This skill provides expert knowledge for scripting in Ninox databases, preventing hallucinations and enforcing strict rules. Use when writing, debugging, or explaining Ninox scripts (NX).1011## Critical Rules1213Follow these rules strictly to avoid hallucinations (inventing non-existent functions):14151. **ALWAYS** read `references/function-whitelist.md` before writing code. If a function is not in this list, **DO NOT USE IT** unless you verify it yourself in the official documentation.162. **ALWAYS** read `references/forbidden-patterns.md` to avoid common errors (e.g., using JS array methods like `map`, `filter`, etc., which do NOT exist in Ninox).173. **ASK FOR CONTEXT**: If field names, table names, or relations are unclear, **ASK** instead of guessing. See `references/context-queries.md`.184. **CONSULT ALL RULES**: Review all relevant documents in the `references/` directory before writing code. See Resources section below for all available rule documents.1920## Datenbankstruktur verstehen2122Wenn du Ninox-Code schreiben sollst und die Tabellenstruktur unklar ist:231. Bitte den Nutzer um den API-Export oder die manuelle Strukturbeschreibung242. Lies `references/export-guide.md` für die Anleitung, die du dem Nutzer geben kannst253. Frag **NIEMALS** nach Feldnamen durch Raten – das führt zu Halluzinationen2627Verwende diese Prompt-Vorlage, um den Nutzer zu einer guten Beschreibung anzuleiten:28```29Damit ich den korrekten Code schreiben kann, brauche ich die genaue Datenbankstruktur.30Bitte nenne mir:311. Den genauen Tabellennamen (mit Leerzeichen/Sonderzeichen)322. Die Feldnamen mit Typen (Text, Zahl, Datum, Relation...)333. Welche Tabellen zusammenhängen (Relationen)344. Den Trigger-Kontext (wo läuft das Script? onChange auf Feld X? Button in Tabelle Y?)3536Oder nutze die Anleitung in references/export-guide.md für einen API-Export.37```3839## Resources4041### Core Rules42* [Strict Rules](references/strict-rules.md) - Critical documentation compliance rules43* [Function Whitelist](references/function-whitelist.md) - All documented Ninox functions44* [Forbidden Patterns](references/forbidden-patterns.md) - Common errors to avoid45* [Common Mistakes](references/common-mistakes.md) - Best practices and common pitfalls46* [Context Queries](references/context-queries.md) - When to ask instead of guessing47* [Relations and Loops](references/relations-and-loops.md) - Correct usage of relations and for-loops48* [Performance Rules](references/performance-rules.md) - Optimization guidelines49* [Undocumented Features](references/undocumented-features.md) - Working but undocumented features50* [Style Guide](references/style-guide.md) - Coding standards5152### Documentation53* [Functions](references/functions.md) - All documented Ninox functions54* [Performance Guide](references/performance-guide.md) - Performance optimizations55* [API](references/api.md) - HTTP and REST API (full reference)56* [HTTP Requests](references/http-requests.md) - Making HTTP requests from NX scripts57* [Tables](references/tables.md) - Database table concepts58* [Triggers](references/triggers.md) - All trigger types, contexts, and limitations59* [Datetime Functions](references/datetime-functions.md) - Date/time functions, formatting, arithmetic60* [Types](references/types.md) - Type system, conversion, null handling61* [Database Schema](references/database-schema.md) - Schema structure and field types62* [Export Guide](references/export-guide.md) - How to export database structure for AI analysis63* [Globals](references/globals.md) - Global functions: teamId, user functions, sendEmail, ninoxApp, openPage, execution blocks6465* [Changelog](references/changelog.md) - Script-relevant version history and new functions by version6667### Examples68* [Basic Select](references/example-basic-select.md) - Basic select statements69* [Aggregate Functions](references/example-aggregate-functions.md) - Using aggregate functions instead of loops70* [Select Optimization](references/example-select-optimization.md) - Optimizing select queries71* [Transaction Pattern](references/example-transaction-pattern.md) - Using transaction blocks72* [Count with Filter](references/example-count-filter.md) - Undocumented count() with filter pattern73* [Select with Brackets](references/example-select-brackets.md) - Undocumented bracket syntax