Agent skill
write-tutorial
Create a Tutorial class with interactive steps, track assignment, and registration for Datagrok
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/write-tutorial
SKILL.md
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
nameanddescriptiongetters. - Implement the
_runmethod with a sequence of steps. - Steps use the
actionmethod 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
| Annotation | Description |
|---|---|
tags |
Must include tutorial |
meta.name |
Display name of the tutorial |
output |
Must be object (returns a Tutorial instance) |
Optional annotations
| Annotation | Description |
|---|---|
meta.track |
Track 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.icon |
Path to icon relative to package root. Default icon used if absent. |
description |
Displayed 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 namehelp-url(required): link to documentationoutput: 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
_runimplementation. - Add the registration function to
package.tswith correct annotations. - If the user wants a new track, also generate the track registration function.
- Ensure the
@datagrok-libraries/tutorialsdependency is present inpackage.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.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?