deep-interactive

Builds interactive courses where learners run code, explore diagrams, and play games instead of just reading slides.

Installation
Run `npx skills add "https://github.com/thu-maic/openmaic" --skill "deep-interactive"` to install this skill, then follow its SKILL.md instructions for my next request.

Paste this into Claude Code, Cursor, or any agent that can run commands.

What this skill does
What it does: This is a teaching method that focuses on learning by doing rather than just reading. Instead of slides with text, students interact with simulations, diagrams, code, games, or three-dimensional models on almost every page. Each page teaches one idea by letting students change something and see what happens. What it does: This is a teaching method that focuses on learning by doing rather than just reading. Instead of slides with text, students interact with simulations, diagrams, code, games, or three-dimensional models on almost every page. Each page teaches one idea by letting students change something and see what happens. When to use it: Use this method when teaching a topic that has moving parts or systems that change. Use it when you want students to understand how something works by experimenting with it. Use it when the topic involves processes to follow, structures to explore, or variables to adjust.
SKILL.mdShow the author's original SKILL.md (not in English)
---
name: deep-interactive
title: "深度交互"
description: Deep Interactive courses. Plans the course so the learner manipulates something on most pages — simulations, diagrams they explore, code they run, games, 3D scenes — with slides reserved for the opening frame and the closing consolidation. Use when the topic has a mechanism, a variable to vary, a process to trace, or a structure to inspect.
---

# Deep Interactive course design

Default to **doing**, not reading. A page earns the `slide` type only when the
learner has nothing to manipulate on it.

## Structure

- Scene 1 is a `slide`: it frames the question the course answers and tells the
  learner what they are about to play with. One page, no more.
- The body is `interactive`. Each body scene isolates **one** mechanism, one
  variable, one structure — so the learner can change it and watch the result.
- The last scene is a `slide` or a `quiz` that consolidates what the
  manipulation showed.
- Consecutive interactive scenes must not use the same `widgetType`. Two
  simulations in a row is a design failure; vary the modality as the concept
  moves from "watch it" to "trace it" to "predict it".

## Choosing a widget type

| widgetType        | Use when the learner should…                                     |
| ----------------- | ---------------------------------------------------------------- |
| `simulation`      | vary parameters and watch a system respond in real time          |
| `diagram`         | explore structure, flow or hierarchy by expanding and following  |
| `code`            | read, modify and run a short program that embodies the idea      |
| `game`            | make repeated decisions under a rule set and see the score move  |
| `visualization3d` | inspect a spatial object or scene from angles a slide cannot show |

## widgetOutline

Every `interactive` scene must carry a `widgetOutline` populated for its type —
an interactive scene with an empty widget outline degrades to a generic page and
defeats the whole point.

- `simulation`: `concept`, `keyVariables` (the actual sliders/inputs)
- `diagram`: `diagramType`, `nodes` (with `label`, and `parentId` for hierarchy)
- `code`: `language`, `concept`
- `game`: `gameType`, `challenge`, `playerControls`
- `visualization3d`: `visualizationType`, `objects`, `interactions`

## Scene naming

Titles name what the learner does or discovers, not the topic heading.

- Good: 「拖动倾角,看射程怎么变」「顺着数据流走一遍」「猜下一步会发生什么」
- Bad: 「抛体运动」「数据流概述」「知识点回顾」

## keyPoints

For an interactive scene, `keyPoints` describe the **interaction and what it
reveals** — what the learner changes, what they observe, what conclusion the
observation forces. Not a bullet list of facts to be read out.

Ships with 1 supporting file:

  • outline-constraints.json

Mirrored from the author's public source. Install counts from the open skills registry.

The systems behind these skills get built for partners every week.

Partner with us