Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add DataSQRL/sqrl --skill implement-sqrlgit clone --depth 1 https://github.com/DataSQRL/sqrlWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/datasqrl/sqrl/implement-sqrl)<a href="https://agentmods.dev/skills/datasqrl/sqrl/implement-sqrl"><img src="https://agentmods.dev/badge/skills/datasqrl/sqrl/implement-sqrl/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/datasqrl/sqrl/implement-sqrl"><img src="https://agentmods.dev/badge/skills/datasqrl/sqrl/implement-sqrl.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00043 | $0.08904 |
| Opus 5.5 | $0.00017 | $0.03562 |
| Sonnet 5.5 | $0.00009 | $0.01781 |
| Haiku 4.5 | $0.00004 | $0.00890 |
Grade A, and why
implement-sqrl scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 632 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Implement SQRL scripts
SQRL is an extension of Flink SQL that adds support for table functions and convenience syntax to build reactive data processing and serving applications.
The “R” in SQRL stands for Reactive and Relationships.
This document focuses only on features unique to SQRL; when SQRL accepts Flink SQL verbatim we simply refer to the upstream spec.
Reference Templates
Review project examples in /opt/datasqrl-examples/README.md before implementing new features to identify related projects and copy features from those reference implementations.
Script Structure
A SQRL script is an ordered list of statements separated by semicolons (;).
Only one statement is allowed per line, but a statement may span multiple lines.
Typical order of statements:
IMPORT ... -- import other SQRL scripts
CREATE TABLE ... -- define internal & external sources
MyTable := SELECT ... -- define tables or functions (with hints)
EXPORT MyTable TO ... -- write table data to sinks
At compile time the statements form a directed-acyclic graph (DAG).
Each node is then assigned to an enabled execution engine according to the optimizer and the compiler generates the data processing code for that engine.
Flink SQL
SQRL inherits full Flink SQL grammar for
CREATE {TABLE | VIEW | FUNCTION | CATALOG | DATABASE}SELECTqueries inside any of the aboveUSE ...INSERT INTO
SQRL currently tracks Flink 2.3; use its compatible SQL syntax. Refer to the Flink SQL documentation for the detailed specification.
Type System
In SQRL, every table and function has a type based on how the table represents data. The type determines the semantic validity of queries against tables and how data is processed by different engines.
SQRL assigns one of the following types to tables based on the definition:
- STREAM: Represents a stream of immutable records with an assigned timestamp (often referred to as the "event time"). Streams are append-only. Stream tables represent events or actions over time.
- VERSIONED_STATE: Contains records with a natural primary key and a timestamp, tracking changes over time to each record, thereby creating a change-stream.
- STATE: Similar to VERSIONED_STATE but without tracking the history of changes. Each record is uniquely identified by its natural primary key.
- LOOKUP: Supports lookup operations using a primary key against external data systems but does not allow further processing of the data.
- STATIC: For data that does not change over time, such as constants.
What ships with it
22 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- functions.md 3.4 KB
- functions/aggregate.md 5.1 KB
- functions/arithmetic.md 6.2 KB
- functions/collection.md 6.3 KB
- functions/comparison.md 4.8 KB
- functions/conditional.md 2.5 KB
- functions/conversion.md 1.3 KB
- functions/hashfunctions.md 1.1 KB
- functions/iceberg.md 634 B
- functions/json.md 9.3 KB
- functions/jsonb.md 1.5 KB
- functions/logical.md 1.1 KB
- functions/math.md 2.4 KB
- functions/openai.md 2.8 KB
- functions/string.md 13 KB
- functions/temporal.md 9.1 KB
- functions/text.md 690 B
- functions/variant.md 1.1 KB
- functions/vector.md 781 B
- guides/session-tvf.md 1.8 KB
- guides/stream-enrichment.md 5.6 KB
- guides/templating.md 2.1 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed · +96 lines 804dffa59c59
- 4d ago Changed 53224f1bb195
- 10d ago First seen · 536 lines · 43 tokens per session scan A c575398f3ca8
implement-sqrl is a skill published in the GitHub repository DataSQRL/sqrl (230 stars, last pushed today), licensed Apache-2.0. It adds 43 tokens to every session and 8,904 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-30.
Other skills, from other repositories
data-ingestion-pipeline
Build data ingestion pipelines for batch and streaming data from multiple sources. Covers extraction strategies, format normalization, deduplication, validation gates, and staging patterns. Triggers on data ingestion, ETL pipeline, or data import architecture requests.
openrouter
OpenRouter unified AI API - Access 200+ LLMs through single interface with intelligent routing, streaming, cost optimization, and model fallbacks.
llm-integration
Claude and OpenAI API patterns, prompt design, context management, streaming, tool use, cost control, multi-model routing.
kafka-stream-processing
Complete guide for Apache Kafka stream processing including producers, consumers, Kafka Streams, connectors, schema registry, and production deployment.
datris-platform
Use Datris as the data platform for this project. Load this skill whenever the work involves getting data in from a file, an API, a website, a database or a document set; validating, transforming or landing data in a database, warehouse, object store or vector store; building a RAG or semantic-search index; scheduling…
rocketride-building-pipelines
Use when asked to build, run, or validate a RocketRide pipeline (e.g. "build me a chatbot that answers from my docs", "make a pipeline that summarizes uploaded PDFs", "run this pipeline"), or whenever turning a plain-language data/AI task into a working RocketRide pipeline.