Not in the top 1,000 by GitHub stars

smashburger-dev/socratic-workshop

AI tutor / learning skill for Claude Code & Codex. Learn any topic by explaining it: Socratic hints, source-grounded study of books, papers and codebases, interactive HTML visuals.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 414b4eadb08f

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 414b4eadb08f7ad29775a6dc150e99a8c7ab6e73

23GitHub stars
Not availablestars in 7 days
1skill in this repository
14commits in 30 days

Heat

Insufficient history

Not enough history yet to measure heat. It appears after a few days of data.

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Nov 2, 2026Nov 2, 202623

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

socratic-workshop

When your agent uses it

Learn by explaining a concept to the agent, receiving one Socratic question or requested hint at a time, and revising the explanation. Use for interactive tutoring, learning from an existing project, or a requested Workbench HTML learning visualization.

What it loads into context

Frontmatter

61 tokens

Always available to the agent

SKILL.md

2,084 tokens

When the skill is activated

Reference documents

13,390 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Establish the learning target
  2. Run the explanation loop
  3. Visualize when it helps the current gap
  4. Establish completion

Scripts executed separately

  • assets/exploded-view-kit.js

Files

  • .github/FUNDING.ymlasset815 bytes
  • .gitignoreasset62 bytes
  • LICENSEasset1,072 bytes
  • README.mddoc5,656 bytes
  • SKILL.mdcore11,052 bytes
  • SKILL.mdcore11,052 bytes
  • SKILL.mdcore11,052 bytes
  • SKILL.mdcore11,052 bytes
  • SKILL.mdcore11,052 bytes
  • SKILL.mdcore11,052 bytes
  • SKILL.mdcore11,052 bytes
  • SKILL.mdcore11,052 bytes
  • agents/openai.yamlasset260 bytes
  • assets/exploded-view-kit.jsruns93,784 bytes
  • assets/visualization-shell.htmlasset30,263 bytes
  • examples/README.mddoc3,340 bytes
  • examples/bottleneck.htmlasset40,504 bytes
  • examples/flashlight.htmlasset108,322 bytes
  • examples/gradient-descent.htmlasset42,334 bytes
  • examples/keyboard-switch.htmlasset109,328 bytes
  • examples/limo-door.htmlasset111,230 bytes
  • examples/macbook-pro.htmlasset112,597 bytes
  • examples/spanish-word-order.htmlasset32,254 bytes
  • examples/studio-display-xdr.htmlasset110,858 bytes
  • media/bottleneck.gifasset1,278,738 bytes
  • media/gradient-descent.gifasset337,670 bytes
  • media/keyboard-switch.gifasset1,123,947 bytes
  • media/learning-loop.gifasset164,401 bytes
  • media/learning-loop.jpgasset98,178 bytes
  • media/macbook-pro.gifasset5,176,749 bytes
  • media/spanish-word-order.gifasset110,983 bytes
  • references/codebase-learning.mddoc2,604 bytes
  • references/exploded-view.mddoc15,461 bytes
  • references/sources.mddoc5,127 bytes
  • references/workbench.mddoc27,762 bytes
Read SKILL.md

# Socratic Workshop

The learner does the explaining. Help them find and repair the next gap in their own reasoning. Work in their language and at their pace. Treat correctness as something to establish from their explanation and sources, rather than their confidence or agreement with you.

## Establish the learning target

Use what the learner has already said. Ask only the next question needed to start.

- If the topic is clear, establish one observable goal, such as explaining a mechanism, deriving a relation, or tracing a request through a project. Reuse an existing explanation as the starting point.
- If the topic is unclear, ask what they want to understand. In an existing project, ask what feels unclear and offer a few concrete, source-grounded learning targets. Read [codebase-learning.md](references/codebase-learning.md) for this branch.
- Ask what material they already have when this is unknown. Their book, notes, paper, lecture, or project can be the reference. Ask for only the relevant section or locator when access is needed.
- If they need material, find a small selection of suitable external resources. Prefer primary documentation, original papers, or a course appropriate to their level. Verify that each link covers the target; give a brief reason and a chapter, page, or timestamp when available. If browsing is unavailable, label recommendations as unverified.

Keep studying outside the tutoring conversation. Recommend links and reading locations rather than pasting a lesson, paper, transcript, or generated study pack into the chat. Let the learner return when ready. For a familiar topic or a learner ready to explain, begin immediately. Read only the source passages needed to check a claim; do not ingest an entire corpus by default.
View the complete source on GitHub

Skills included

  • socratic-workshop

Repository facts

License
MIT
Created
Oct 17, 2026
Last pushed
Oct 28, 2026
Forks
2
Open issues
0
Project activity
Active

Before you install

Local scripts

Automated signals, not a guarantee

Checked Nov 5, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 7 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 118 signals by file

.gitignore

  • Access to secretsline 2
    [Credential-related source omitted]

README.md

  • Network accessline 3
    By [Noa Katana](https://noakatana.com/work/socratic-workshop/), creative technologist in Munich.
  • Network accessline 11
    Directly inspired by **Miles Cranmer's [How to Avoid AI Brain Rot](https://www.youtube.com/watch?v=uXC7OuCas2Q&t=1438)**, especially 23:58–34:33. The visual approach uses my Workbench adapter, inspired by **[Anatomy](https://github.com/wher
  • Network accessline 15
    Install with the [skills CLI](https://github.com/vercel-labs/skills), then choose your agent:
  • Network accessline 23
    | Agent | Start learning | | --- | --- | | [Claude Code](https://code.claude.com/docs/en/skills) | `/socratic-workshop Help me understand L2 regularization. Let me explain first.` |
  • Network accessline 24
    | --- | --- | | [Claude Code](https://code.claude.com/docs/en/skills) | `/socratic-workshop Help me understand L2 regularization. Let me explain first.` | | [Codex](https://developers.openai.com/codex/skills/) | `$socratic-workshop Help me 
  • Network accessline 25
    | [Claude Code](https://code.claude.com/docs/en/skills) | `/socratic-workshop Help me understand L2 regularization. Let me explain first.` |
  • Network accessline 26
    | [Codex](https://developers.openai.com/codex/skills/) | `$socratic-workshop Help me understand L2 regularization. Let me explain first.` |
  • Network accessline 88
    - [Miles Cranmer's talk](https://www.youtube.com/watch?v=uXC7OuCas2Q&t=1438), shared by MPhil in Data Intensive Science Cambridge, inspired the learning workflow.
  • Network accessline 89
    - [Anatomy](https://github.com/wheresryan22/anatomy) inspired the visual approach and the exploded views, adapted from my Werkbankfiguren work in [Argmin](https://github.com/smashburger-dev/argmin). The exploded views and their PNG/SVG expo
  • Network accessline 90
    - The frosted-glass visual language comes from my chiasma design system, with material and legibility guidance from Apple's [Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/materials).

SKILL.md

  • Network accessline 50
    When requested, use the bundled [Workbench adapter](references/workbench.md). It adapts visualization principles from [Argmin](https://github.com/smashburger-dev/argmin), with visual inspiration from [Anatomy](https://github.com/wheresryan2

assets/exploded-view-kit.js

  • Executable scriptline 1
    Executable file
  • Network accessline 381
    canvas.setAttribute('role', 'img');   canvas.setAttribute('aria-label', `Exploded 3D view, ${parts.length} parts. The part list follows.`);   const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  • Network accessline 382
    canvas.setAttribute('aria-label', `Exploded 3D view, ${parts.length} parts. The part list follows.`);   const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');   leader.setAttribute('class', 'td-leader');
  • Network accessline 383
    const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  • Network accessline 384
    leader.setAttribute('class', 'td-leader');   const leaderLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');   leaderLine.setAttribute('visibility', 'hidden');
  • Network accessline 385
    const leaderLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');
  • Dangerous shell operationline 1117
    const rm = reducedMotion.matches;
  • Dangerous shell operationline 1146
    state[prop] = mix(an.from, an.to, rm ? 1 : easeOutCubic(p));
  • Network accessline 1785
    let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;

assets/visualization-shell.html

  • Network accessline 40
    --ground-bottom:oklch(0.905 0.035 68);   /* Fine noise dither (~4%) over gradients wider than ~120 px so 8-bit bands never show. */   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfi
  • Network accessline 41
    /* Fine noise dither (~4%) over gradients wider than ~120 px so 8-bit bands never show. */   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fract
  • Network accessline 42
    --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='sa

examples/bottleneck.html

  • Network accessline 37
    --slider-fill:linear-gradient(90deg in oklab,rgba(var(--text-rgb),.16),rgba(var(--text-rgb),.05));   --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'
  • Network accessline 38
    --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTi
  • Network accessline 39
    --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='sa

examples/flashlight.html

  • Network accessline 27
    --select-edge:oklch(var(--amber-lch) / .30);   --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoi
  • Network accessline 28
    --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTi
  • Network accessline 29
    --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='sa
  • Network accessline 583
    canvas.setAttribute('role', 'img');   canvas.setAttribute('aria-label', `Exploded 3D view, ${parts.length} parts. The part list follows.`);   const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  • Network accessline 584
    canvas.setAttribute('aria-label', `Exploded 3D view, ${parts.length} parts. The part list follows.`);   const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');   leader.setAttribute('class', 'td-leader');
  • Network accessline 585
    const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  • Network accessline 586
    leader.setAttribute('class', 'td-leader');   const leaderLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');   leaderLine.setAttribute('visibility', 'hidden');
  • Network accessline 587
    const leaderLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');
  • Dangerous shell operationline 1319
    const rm = reducedMotion.matches;
  • Dangerous shell operationline 1348
    state[prop] = mix(an.from, an.to, rm ? 1 : easeOutCubic(p));
  • Network accessline 1985
    const totalAfter = ordered.length;     /* 4. emit */     let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;
  • Network accessline 1986
    /* 4. emit */     let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;     svg += `<rect x="${crop.x.toFixed(1)}" 
  • Network accessline 1987
    let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;

examples/gradient-descent.html

  • Network accessline 37
    --slider-fill:linear-gradient(90deg in oklab,rgba(var(--text-rgb),.16),rgba(var(--text-rgb),.05));   --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'
  • Network accessline 38
    --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTi
  • Network accessline 39
    --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='sa
  • Network accessline 454
    } function axisText(text,x,y,anchor='middle'){   const label = document.createElementNS('http://www.w3.org/2000/svg','text');
  • Network accessline 455
    function axisText(text,x,y,anchor='middle'){   const label = document.createElementNS('http://www.w3.org/2000/svg','text');   label.textContent = text;
  • Network accessline 456
    const label = document.createElementNS('http://www.w3.org/2000/svg','text');
  • Dangerous shell operationline 523
    const rm = reducedMotion.matches;
  • Dangerous shell operationline 528
    const p = rm ? 1 : Math.min(1,(now-travel.t0)/320);

examples/keyboard-switch.html

  • Network accessline 27
    --select-edge:oklch(var(--amber-lch) / .30);   --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoi
  • Network accessline 28
    --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTi
  • Network accessline 29
    --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='sa
  • Network accessline 583
    canvas.setAttribute('role', 'img');   canvas.setAttribute('aria-label', `Exploded 3D view, ${parts.length} parts. The part list follows.`);   const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  • Network accessline 584
    canvas.setAttribute('aria-label', `Exploded 3D view, ${parts.length} parts. The part list follows.`);   const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');   leader.setAttribute('class', 'td-leader');
  • Network accessline 585
    const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  • Network accessline 586
    leader.setAttribute('class', 'td-leader');   const leaderLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');   leaderLine.setAttribute('visibility', 'hidden');
  • Network accessline 587
    const leaderLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');
  • Dangerous shell operationline 1319
    const rm = reducedMotion.matches;
  • Dangerous shell operationline 1348
    state[prop] = mix(an.from, an.to, rm ? 1 : easeOutCubic(p));
  • Network accessline 1985
    const totalAfter = ordered.length;     /* 4. emit */     let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;
  • Network accessline 1986
    /* 4. emit */     let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;     svg += `<rect x="${crop.x.toFixed(1)}" 
  • Network accessline 1987
    let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;

examples/limo-door.html

  • Network accessline 27
    --select-edge:oklch(var(--amber-lch) / .30);   --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoi
  • Network accessline 28
    --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTi
  • Network accessline 29
    --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='sa
  • Network accessline 583
    canvas.setAttribute('role', 'img');   canvas.setAttribute('aria-label', `Exploded 3D view, ${parts.length} parts. The part list follows.`);   const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  • Network accessline 584
    canvas.setAttribute('aria-label', `Exploded 3D view, ${parts.length} parts. The part list follows.`);   const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');   leader.setAttribute('class', 'td-leader');
  • Network accessline 585
    const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  • Network accessline 586
    leader.setAttribute('class', 'td-leader');   const leaderLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');   leaderLine.setAttribute('visibility', 'hidden');
  • Network accessline 587
    const leaderLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');
  • Dangerous shell operationline 1319
    const rm = reducedMotion.matches;
  • Dangerous shell operationline 1348
    state[prop] = mix(an.from, an.to, rm ? 1 : easeOutCubic(p));
  • Network accessline 1985
    const totalAfter = ordered.length;     /* 4. emit */     let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;
  • Network accessline 1986
    /* 4. emit */     let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;     svg += `<rect x="${crop.x.toFixed(1)}" 
  • Network accessline 1987
    let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;

examples/macbook-pro.html

  • Network accessline 27
    --select-edge:oklch(var(--amber-lch) / .30);   --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoi
  • Network accessline 28
    --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTi
  • Network accessline 29
    --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='sa
  • Network accessline 583
    canvas.setAttribute('role', 'img');   canvas.setAttribute('aria-label', `Exploded 3D view, ${parts.length} parts. The part list follows.`);   const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  • Network accessline 584
    canvas.setAttribute('aria-label', `Exploded 3D view, ${parts.length} parts. The part list follows.`);   const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');   leader.setAttribute('class', 'td-leader');
  • Network accessline 585
    const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  • Network accessline 586
    leader.setAttribute('class', 'td-leader');   const leaderLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');   leaderLine.setAttribute('visibility', 'hidden');
  • Network accessline 587
    const leaderLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');
  • Dangerous shell operationline 1319
    const rm = reducedMotion.matches;
  • Dangerous shell operationline 1348
    state[prop] = mix(an.from, an.to, rm ? 1 : easeOutCubic(p));
  • Network accessline 1985
    const totalAfter = ordered.length;     /* 4. emit */     let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;
  • Network accessline 1986
    /* 4. emit */     let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;     svg += `<rect x="${crop.x.toFixed(1)}" 
  • Network accessline 1987
    let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;

examples/spanish-word-order.html

  • Network accessline 37
    --slider-fill:linear-gradient(90deg in oklab,rgba(var(--text-rgb),.16),rgba(var(--text-rgb),.05));   --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'
  • Network accessline 38
    --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTi
  • Network accessline 39
    --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='sa

examples/studio-display-xdr.html

  • Network accessline 27
    --select-edge:oklch(var(--amber-lch) / .30);   --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoi
  • Network accessline 28
    --ground-bottom:oklch(0.905 0.035 68);   --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTi
  • Network accessline 29
    --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='sa
  • Network accessline 583
    canvas.setAttribute('role', 'img');   canvas.setAttribute('aria-label', `Exploded 3D view, ${parts.length} parts. The part list follows.`);   const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  • Network accessline 584
    canvas.setAttribute('aria-label', `Exploded 3D view, ${parts.length} parts. The part list follows.`);   const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');   leader.setAttribute('class', 'td-leader');
  • Network accessline 585
    const leader = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
  • Network accessline 586
    leader.setAttribute('class', 'td-leader');   const leaderLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');   leaderLine.setAttribute('visibility', 'hidden');
  • Network accessline 587
    const leaderLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');
  • Dangerous shell operationline 1319
    const rm = reducedMotion.matches;
  • Dangerous shell operationline 1348
    state[prop] = mix(an.from, an.to, rm ? 1 : easeOutCubic(p));
  • Network accessline 1985
    const totalAfter = ordered.length;     /* 4. emit */     let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;
  • Network accessline 1986
    /* 4. emit */     let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;     svg += `<rect x="${crop.x.toFixed(1)}" 
  • Network accessline 1987
    let svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${crop.x.toFixed(1)} ${crop.y.toFixed(1)} ${crop.w.toFixed(1)} ${crop.h.toFixed(1)}" font-family="Inter, system-ui">`;

references/sources.md

  • Network accessline 5
    Miles Cranmer, [How to Avoid AI Brain Rot](https://www.youtube.com/watch?v=uXC7OuCas2Q&t=1438), uploaded by [MPhil in Data Intensive Science Cambridge](https://www.youtube.com/@MPhilDISCambridge), 16 October 2026. Requested segment: **23:58
  • Network accessline 9
    | Interval | Source-grounded design input | | --- | --- | | [24:00–24:59](https://www.youtube.com/watch?v=uXC7OuCas2Q&t=1440) | The learner explains; the AI asks questions; gaps lead to hints, reading, and another attempt. |
  • Network accessline 10
    | --- | --- | | [24:00–24:59](https://www.youtube.com/watch?v=uXC7OuCas2Q&t=1440) | The learner explains; the AI asks questions; gaps lead to hints, reading, and another attempt. | | [25:00–29:10](https://www.youtube.com/watch?v=uXC7OuCas2Q
  • Network accessline 11
    | [24:00–24:59](https://www.youtube.com/watch?v=uXC7OuCas2Q&t=1440) | The learner explains; the AI asks questions; gaps lead to hints, reading, and another attempt. |
  • Network accessline 12
    | [25:00–29:10](https://www.youtube.com/watch?v=uXC7OuCas2Q&t=1500) | Ground tutoring in books and papers; recognize limitations around niche subjects and new research. |
  • Network accessline 13
    | [29:11–31:11](https://www.youtube.com/watch?v=uXC7OuCas2Q&t=1751) | A worked discussion of L2 regularization and Gaussian priors uses one question at a time, withheld answers, and requested hints. |
  • Network accessline 14
    | [31:12–32:34](https://www.youtube.com/watch?v=uXC7OuCas2Q&t=1872) | Interactive concept demonstrations, including the learning rate in gradient descent; generated demos can be wrong. |
  • Network accessline 15
    | [32:35–34:33](https://www.youtube.com/watch?v=uXC7OuCas2Q&t=1955) | Visual inspection can expose implausible agent results. A fitted trajectory crosses a floor despite apparently fitting motion measurements. |
  • Network accessline 31
    The owner also identified [Anatomy by wheresryan22](https://github.com/wheresryan22/anatomy) as visual inspiration. Its upstream repository and MIT license were checked on 17 October 2026. This version credits the approach without bundling 
  • Network accessline 33
    The exploded-view mode was inspired by Jakub Krehel's [/teardown skill](https://github.com/jakubkrehel/skills/tree/main/skills/teardown) ([announcement](https://x.com/jakubkrehel/status/2114379959263502712), 25 October 2026; repository MIT-
  • Network accessline 37
    The folder layout and frontmatter follow the [Agent Skills specification](https://agentskills.io/specification), consulted on 17 October 2026. Product-specific UI metadata is kept in `agents/openai.yaml`; the learning workflow does not depe
  • Network accessline 39
    Installation commands follow the [skills CLI](https://github.com/vercel-labs/skills). Invocation syntax follows the official [Codex skills documentation](https://developers.openai.com/codex/skills/) and [Claude Code skills documentation](ht
  • Network accessline 43
    The theme implementation follows the system preference described by [MDN's prefers-color-scheme reference](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme), with a user override. This implementation reference wa

references/workbench.md

  • Network accessline 7
    Adapted from the Werkbankfiguren work in [Argmin](https://github.com/smashburger-dev/argmin). Retained principles are a visible mechanism, model-derived geometry and numbers, meaningful motion, accessible controls, and explicit limits where
  • Network accessline 9
    The visual approach is also inspired by [Anatomy](https://github.com/wheresryan22/anatomy), an open-source skill for interactive explanations. This adapter is standalone; Anatomy is an inspiration rather than a runtime dependency.

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 1 fact
Signal confidence: 35 facts

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.