<< All versions
Skill v1.0.1
currentLLM-judged scan90/100datasqrl/sqrl/init-sqrl
+1 new
──Details
PublishedOctober 22, 2026 at 11:12 PM
Content Hashsha256:f0b2d50864a6a87b...
Git SHAda0367eaa9b4
Bump Typepatch
──Files
Files (1 file, 4.3 KB)
SKILL.md4.3 KBactive
SKILL.md · 27 lines · 4.3 KB
version: "1.0.1" name: init-sqrl description: Use when starting a new DataSQRL project or initializing an empty pipeline. Use for greenfield implementations, project scaffolding, or setting up the folder structure. modes: [planning, implementation, setup, question]
Follow these steps to initialize a DataSQRL project:
- When an available examples directory contains a useful starting point, review its
README.mdand relevant projects. Treat its contents as optional reference material, not required templates. - Adapt relevant example files into the working directory only when they fit the task. Don't overwrite existing files. If no example fits, scaffold the project with
/opt/agent/cmd.sh init <type> <name>instead (it creates the<name>/folder; seeCLI_REFERENCE.md). Pick the type by the pipeline's output:
api: data served through a GraphQL API (Flink, PostgreSQL, Kafka, Vert.x). The production sourceconnectors/sources-prod.sqrlis an internal Kafka table (/*+ engine(kafka) */), exposed as a mutation.stream: results written to Kafka topics (Flink, Kafka). The production source is an internal Kafka table, and the script exports its result withEXPORT HelloWorld TO log.HelloWorld;. Without an API, only exported tables are written anywhere: export each result the user needs, and the script must have at least oneEXPORTto compile.dataset: results written to Iceberg and queried through DuckDB (Flink, Iceberg, DuckDB). The production source is an existing Iceberg table ('connector' = 'iceberg'): set its catalog options (catalog-type,catalog-name,warehouse,catalog-table) to the user's lakehouse.- The test package of every type reads the sample data in
connectors/test-data/and compiles and tests out of the box. Replace theMessagessources and the sample data with the real sources (step 4).
- Review provided source/sink table definitions in sub-folders to identify the sqrl files that define the sources and sinks required for the implementation. If the requirements reference a provided data catalog, include that catalog and delete copied connectors unless the requirements specifically ask to create additional sources/sinks outside the catalog.
- Update copied files to match user requirements by:
- ALWAYS invoke the relevant skill before updating or implementing anything
- Use user-provided source/sink definitions from sub-folders or an included data catalog if they exist (include/import them, reusing what exists), otherwise update the template connectors. Invoke the
/manage-connectorskill (Connector Organization) before writing or editing any source/sink definition. - Updating the SQRL files to use those sources & sinks and adjust implementation by matching the code to the updated table schemas and removing features that are not required. Invoke the
/implement-sqrlskill before writing or significantly modifying any SQRL logic during this step. - When renaming the main
.sqrlscript, updatescript.mainkey in the (sub-)project's base config so every package.json reference matches the actual filename before the first compile. When creating or updating any configuration, invoke/configure-sqrlskill. - Update the project configuration if necessary.
- Update the GraphQL API definition and defined operations to match the new schema.
- Create or update the configuration files: a
*-shared-package.jsonbase plus*-<env>-package.jsonthin per-environment overlays. Invoke the/configure-sqrlskill (Base Config and Environment Overlays). - Add
/*+test */annotated SQL test queries at the end of the main SQRL script(s) for each exposed table. These test queries should SELECT from the table with a WHERE filter on a known test data value and produce deterministic results. Invoke the/test-sqrlskill (Writing Tests) for the test and test-data rules, then delete the template's existing snapshots and run the tests to generate fresh ones (Running Tests, Snapshot Lifecycle). - Create or update the test runner script
run-tests.shwhich is the entry point for the project's tests. Invoke the/test-sqrlskill for details. - Update
README.mdwith user requirements and project description. Add a list of features that are required by the user but not part of the template and need to be implemented