Skip to content
cccskills
FreePublished on GitHub

write-tutorial

Create a Tutorial class with interactive steps and track registration

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Write Tutorial

Help the user create an interactive tutorial that educates users about Datagrok platform features.

Usage

/write-tutorial [tutorial-name] [--package <package-name>] [--track <track-name>]

Instructions

1. Install the tutorials library

The package must depend on @datagrok-libraries/tutorials:

npm install @datagrok-libraries/tutorials

2. Create the Tutorial subclass

Create a TypeScript file (e.g., src/tutorials/custom-tutorial.ts) with a class extending Tutorial:

import {Tutorial} from '@datagrok-libraries/tutorials';

export class CustomTutorial extends Tutorial {
  get name(): string { return 'Custom Tutorial'; }
  get description(): string { return 'Teaches users about a feature'; }

  protected async _run(): Promise<void> {
    // Define steps using this.action() and helper methods
    // Steps are event-based and can include interactive hints
  }
}

Key points:

  • Override name and description getters.
  • Implement the _run method with a sequence of steps.
  • Steps use the action method or helper methods that call it internally.
  • Steps can include interactive hints and detailed descriptions.

3. Register the tutorial in package.ts

Add a registration function with metadata annotations:

import {CustomTutorial} from './tutorials/custom-tutorial';

//tags: tutorial
//meta.icon: images/custom-tutorial.png
//meta.name: Custom Tutorial
//meta.track: Test Track
//description: This tutorial illustrates a new feature
//output: object
export function registerTutorial() {
  return new CustomTutorial();
}

Required annotations

AnnotationDescription
tagsMust include tutorial
meta.nameDisplay name of the tutorial
outputMust be object (returns a Tutorial instance)

Optional annotations

AnnotationDescription
meta.trackTrack name this tutorial belongs to. If omitted, a new track is created for the package. If an existing track name is used, the tutorial is added to that track (even from another package).
meta.iconPath to icon relative to package root. Default icon used if absent.
descriptionDisplayed in the tutorial UI. Empty description if absent.

4. Register a track (optional)

To define a custom track that groups tutorials:

import {Track} from '@datagrok-libraries/tutorials';

//tags: track
//help-url: https://datagrok.ai/help
//output: object
//meta.name: Test Track
export function registerTrack() {
  return new Track('Test Track', [], 'https://datagrok.ai/help');
}

Track registration annotations:

  • tags: track (required)
  • meta.name (required): track display name
  • help-url (required): link to documentation
  • output: object (required)

5. Control visibility of standard tutorials

The Tutorials package provides default tracks (e.g., Exploratory Data Analysis, Data Access). Their visibility can be controlled at the user group level via package settings.

6. Build and publish

webpack
grok publish dev

Behavior

  • Ask the user for the tutorial name, description, target package, and which track it should belong to.
  • Ask what interactive steps the tutorial should include.
  • Generate the Tutorial subclass with _run implementation.
  • Add the registration function to package.ts with correct annotations.
  • If the user wants a new track, also generate the track registration function.
  • Ensure the @datagrok-libraries/tutorials dependency is present in package.json.
  • Remind the user that without meta.track, tutorials get their own package-specific track.
  • Follow project coding conventions: no excessive comments, no curly brackets for one-line if/for, catch/else if on new lines.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Add support for a new curve data format in the Curves package converter system

The English summary is being prepared. Showing the original description.

datagrok-ai/public74Updated Oct 19, 2026

Create info panels that appear in the context panel based on semantic types

The English summary is being prepared. Showing the original description.

datagrok-ai/public74Updated Oct 19, 2026

Add a new single-objective optimization algorithm to the sci-comp library. Use when the user asks to implement a new optimizer (e.g. gradient descent, BFGS, simulated annealing, differential evolution).

The English summary is being prepared. Showing the original description.

datagrok-ai/public74Updated Oct 19, 2026

Add unit tests to a Datagrok package

The English summary is being prepared. Showing the original description.

datagrok-ai/public74Updated Oct 19, 2026

Answer a "how do I …" question about the platform with a Gherkin scenario on @datagrok-libraries/bdd that is filmed into a how-to video (grok-bdd guide), so the answer is demonstrated, sent as a video plus numbered steps, and kept as a regression test; the same scenarios, filmed in help mode, are the GIFs of the help pages

The English summary is being prepared. Showing the original description.

datagrok-ai/public74Updated Oct 19, 2026

Translate hand-written Playwright specs (or any existing UI tests) into Gherkin features on @datagrok-libraries/bdd, then prove the features test what they claim by backward-matching them against the originals with independent reviewers, and fix the gaps in the core, the library and the features

The English summary is being prepared. Showing the original description.

datagrok-ai/public74Updated Oct 19, 2026

See all skills by datagrok-ai

Report a problem with this skill