framework/engineering/skills/flowai-interactive-teaching-materials/SKILL.md
Creates interactive HTML teaching materials with clickable state diagrams. Use when the user asks to produce an explorable tutorial artifact, not to answer a question.
npx skillsauth add korchasa/flow flowai-interactive-teaching-materialsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The diagram is a navigation surface. Every element is clickable and opens a detail panel with rich text. The value is in the details, not in the arrows.
When one-word labels on arrows are enough — use Mermaid (flowai-draw-mermaid-diagrams). This format is for when every state and transition deserves paragraphs of context, config snippets, HTTP payloads, and debugging tips.
document.createElementNS if offline use is requireddetails: {} — every element must teach somethingDetails is an HTML string combining:
<pre> (the exact artifact)<ul> (what varies)If details is a JS object instead of a string, the template renders it as highlighted JSON — useful for API payloads but not the primary mode.
const TITLE = "string"; // Page title
const DOC_URL = "string"; // Optional link to external docs (shown in toolbar)
const ACTORS = ["A", "B", "C"]; // Horizontal actor columns, left to right
const STEPS = [
{
name: "string", // Required. Short label on the arrow (3-5 words)
from: "A", // Required. Actor name (must match ACTORS)
to: "B", // Required. Actor name (must match ACTORS)
preview: "string", // Optional. Secondary label below the arrow (e.g. "GET /authorize")
description: "string", // Required. 1-3 sentences for the inspector summary
details: "html string" // Required. Rich HTML for the inspector detail panel
}
];
const TITLE = "string";
const DOC_URL = "string";
const NODES = [
{
id: "string", // Required. Unique identifier, used in EDGES
type: "action|state|decision|start|end", // Required. Determines shape
label: "string", // Required. Short label inside the shape (2-4 words)
x: 320, // Required. Center X position in pixels
y: 160, // Required. Center Y position in pixels
description: "string", // Required. 1-3 sentences for the inspector summary
details: "html string" // Required. Rich HTML for the inspector detail panel
}
];
const EDGES = [
{
from: "node_id", // Required. Source node id
to: "node_id", // Required. Target node id
label: "string", // Optional. Short label on the edge (e.g. "ok", "fail")
fromSide: "bottom", // Optional. Attach point: "top"|"bottom"|"left"|"right". Default: "bottom"
toSide: "top", // Optional. Attach point. Default: "top"
description: "string", // Required. 1-3 sentences for the inspector summary
details: "html string" // Required. Rich HTML for the inspector detail panel
}
];
Node types and their shapes:
action — rounded rectangle (140x44). General processing stepstate — rounded rectangle with gray fill. Resting/waiting statedecision — diamond (60x44). Branching pointstart — filled circle (r=22). Entry pointend — filled circle with inner ring. Terminal stateassets/ — it has a full working example// === DATA === and // === END DATA ===) with your data following the schema abovefromSide/toSide on edgesdevelopment
Use when the user asks to add TypeScript strict-mode code-style rules to AGENTS.md for a TypeScript project using strict mode. Do NOT trigger for Deno projects (use setup-agent-code-style-deno) or non-strict TS configurations.
development
Use when the user asks to add Deno/TypeScript code-style rules to AGENTS.md, or during initial Deno project setup when code-style guidelines need to be established. Do NOT trigger for non-Deno TypeScript projects (use setup-agent-code-style-strict), or for runtime-agnostic style advice.
testing
Use when the user provides a source (URL, file path, or free text) to save into the project's memex — a long-term knowledge bank for AI agents. Stores the raw source, extracts entities into cross-linked pages, runs a backlink audit, and updates the index and activity log. Do NOT trigger on casual reads; only when the intent is to persist a source into the memex.
development
Use when the user asks to audit a memex (long-term knowledge bank for AI agents) for orphans, dead SALP REFs, missing sections, contradictions, or index drift. Runs a deterministic structural check, layers LLM-judgement findings, optionally auto-fixes trivial issues with `--fix`. Do NOT trigger on general code linting.