scrolls-explainer
Skill4 starsChanged yesterdayMITView on GitHub
Shows, copies or rebuilds scrolls-explainer.html: an interactive, offline page that explains how the scrolls skill family works (/scrolls-setup, /scrolls-update, /scrolls-hide, /scrolls-unhide, /scrolls-remove, /scrolls-restore, /scrolls-help) — one tab per command that animates, step by step, what the command does to docs/.scrolls/, SCROLLS.md, CLAUDE.md, AGENTS.md and git, with a callout explaining each step, a tab for how a new agent session reads the memory, and full keyboard navigation (arrows step, [ ] or digits switch tabs, Space pauses, ? lists shortcuts). Use this whenever the user runs /scrolls-explainer, or asks for a visual, diagram, animation, walkthrough, explainer or interactive page of how the scrolls commands or the scrolls memory work, or wants something to show a team. By default (same as --show) it opens the bundled page in place and copies nothing; -o/--output copies it to a file or folder (-o . for ./scrolls-explainer.html), -f/--force overwrites with -o, --open opens the copy, and --build to regenerate the bundled page from the scrolls-* skills as they are now (their tabs, lockstep version, and a review check when a SKILL.md changed). Works on macOS, Linux, and Windows (bash or PowerShell).
In this repository58 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- anywidget-generatorSkill
- brandkitSkill
- design-taste-frontendSkill
- diagram-designSkill
- docxSkill
- frontend-designSkill
- full-output-enforcementSkill
- gpt-tasteSkill
- grill-meSkill
- high-end-visual-designSkill
- imagegen-frontend-mobileSkill
- imagegen-frontend-webSkill
- image-to-codeSkill
- impeccableSkill
- implement-paper-autoSkill
- implement-paperSkill
- industrial-brutalist-uiSkill
- jupyter-to-marimoSkill
- marimo-notebookSkill
- minimalist-uiSkill
- pdfSkill
- postrboardSkill
- pptxSkill
- redesign-existing-projectsSkill
- skill-creatorSkill
- stitch-design-tasteSkill
- streamlit-to-marimoSkill
- xlsxSkill
- brandkitSkill
- design-taste-frontendSkill
- full-output-enforcementSkill
- gpt-tasteSkill
- high-end-visual-designSkill
- imagegen-frontend-mobileSkill
- imagegen-frontend-webSkill
- image-to-codeSkill
- impeccableSkill
- industrial-brutalist-uiSkill
- minimalist-uiSkill
- redesign-existing-projectsSkill
- stitch-design-tasteSkill
- network-flowSkill
- create-lib-docsSkill
- artwallbgSkill
- commentdropSkill
- newsletter-aiSkill
- prodigySkill
- scrolls-helpSkill
- scrolls-hideSkill
- scrolls-removeSkill
- scrolls-restoreSkill
- scrolls-setupSkill
- scrolls-unhideSkill
- scrolls-updateSkill
- stata-recipesSkill
- dynamic-promo-videoSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 84
Add -f only when the user asked to replace an existing page, or the script already refused and the user then confirmed.
- Very specific: line 86
Add --open when the user also wants the copy opened and the machine has a display.
- Very specific: line 160
After a successful --build, report what it printed: the skills it read, any tab it dropped, and whether the page changed (wrote …) or …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Scrolls explainer
This skill delivers one self-contained HTML page that explains the scrolls
skill family visually. The page ships ready-made in
assets/scrolls-explainer.html. There are three modes:
/scrolls-explainer, or--show(the same thing): open that page where it is, copying nothing.-o PATH: copy that page to a file or folder the user wants it in.--build: regenerate that page from thescrolls-*skills next to this one, so it matches them as they are now.
Scope note: This skill never reads, checks or changes the user's scrolls memory (
docs/.scrolls/,SCROLLS.md,CLAUDE.md,AGENTS.md). The default (--show) writes nothing.-owrites only the page, at the path given, and never overwrites a different existing file unless the user asked (-f).--buildwrites only this skill's ownassets/scrolls-explainer.htmland, with--reviewed(or when you add a missing tab),assets/explainer-graph.json— nothing outside this skill's folder.
Cross-platform
The script ships in two forms that behave identically: explain.sh
(bash — macOS, Linux, or Windows with Git Bash/WSL) and explain.ps1
(PowerShell 7+ — Windows, or macOS/Linux with pwsh installed). Both are
thin launchers for explain.py (stdlib-only Python 3.9+), resolving
python3 and then python. Pick the launcher by what's actually
available: try bash --version; if that succeeds, use .sh; otherwise use
.ps1 via pwsh (preferred) or, only if pwsh isn't available, the
built-in Windows PowerShell powershell.exe.
Options
| Flag | Meaning |
(none), --show | The default. Copy nothing: print the path and file:// URL of the bundled assets/scrolls-explainer.html and open it in place in the default browser. If no browser can be opened (a remote or headless machine), that is only a notice, not an error. --show can't be combined with -o. |
-o, --output PATH | Copy the page here instead. A file path is used as is; an existing folder (such as .), or a path ending in /, gets scrolls-explainer.html inside it. Missing folders are created. |
-f, --force | With -o only: overwrite a different file already at that path. Without it the script refuses (exit 3) and changes nothing. An identical file is simply reported as up to date. |
--open | With -o: also open the copy in the default browser. |
--build | Regenerate assets/scrolls-explainer.html from the scrolls-* skills next to this one (see "Building" below). On its own it only rebuilds; add --show to open the result, or -o to also copy it. |
--reviewed | With --build only: the tabs of the skills whose SKILL.md changed have been checked; record their new fingerprints, then build. |
--skills-dir DIR | With --build only: where the scrolls-* skills are. Default: the folder this skill is in. |
--version | Print the page's version (scrolls-explainer X.Y.Z) and exit. |
-h, --help | Print usage and exit. |
Exit codes: 0 done (or already up to date), 1 the bundled page is
missing or a file can't be written, 2 usage error, 3 a different file
is in the way (no -f), 4 --build stopped because the skills need
attention, 5 --build can't find the network-flow skill.
Steps
- Pick the mode from the request.
- Bare
/scrolls-explainer,--show, or "show me", "open it", "let me see the explainer": show the bundled page (no flags). This is the default: don't copy the page anywhere unless asked. - "Rebuild", "regenerate", "update the explainer", "make it match the
skills":
--build(then follow "Building" below). - The user wants a file of their own (save, export, put it in
docs/, give me a copy,-o …): copy it with-o.
- Bare
- For a copy, choose the path.
- The user named a file or folder: pass it as
-o. - The user asked for a copy "here" or named no place:
-o .writes./scrolls-explainer.htmlin the current directory. If the host gives you a designated folder for files the user can open (an outputs or scratchpad folder), and the current directory is a project the user did not ask you to write into, use that folder instead, so the page doesn't land in their source tree unasked. - Add
-fonly when the user asked to replace an existing page, or the script already refused and the user then confirmed. - Add
--openwhen the user also wants the copy opened and the machine has a display.
- The user named a file or folder: pass it as
Run the script from the directory the path is relative to:
bash <skill-dir>/scripts/explain.sh # = --show bash <skill-dir>/scripts/explain.sh -o PATH [-f] [--open] bash <skill-dir>/scripts/explain.sh --build [--reviewed] [--show | -o PATH] pwsh <skill-dir>/scripts/explain.ps1 …same flags…Showing prints
scrolls-explainer <version>: <bundled page's path>andopen: file://…. A copy printsscrolls-explainer <version>: wrote <absolute path>(or… is already up to date) and thenopen: file://….- On exit 3 (a different file is already there): tell the user, and
offer
-for another-opath. Don't retry with-fon your own. On exit 1, 2 or 5: report the script's message as is (for 5, it says how to install the network-flow skill). On exit 4: see "Building". - Deliver. Give the absolute path and the
file://URL. If the host can show or send files (a file card, a preview pane), use that too — for--show, that's the bundled file itself. Then describe how to use the page in a few lines:- Tabs: Overview, one tab for each scrolls command, and New
session (how a fresh agent session follows
AGENTS.md/CLAUDE.md→SCROLLS.md→STARTER.md). - Each command tab plays its steps automatically, with a callout next to the file being touched; the callout's ‹ › buttons step and pause.
- Keyboard:
→/←step,Home/Endfirst/last step,[]orShift+arrows switch tabs, digits jump to a tab,Space/Ppause,Rreplay,?shows every shortcut,Esccloses or clears. - Click a block to see what it is and trace its connections.
- The page is fully offline: no network requests, nothing to install.
- Tabs: Overview, one tab for each scrolls command, and New
session (how a fresh agent session follows
- Questions about a command that go beyond what the page shows
(exact flags, edge cases): point the user at
/scrolls-help, which holds the canonical reference. Don't describe behavior the page and/scrolls-helpdon't state.
Building
--build reads the scrolls-* skills next to this one (or in
--skills-dir) and regenerates the page from them. It decides these
things from the skills on its own:
- Tabs. One per skill. A skill whose
SKILL.mdwas renamed toSKILL.md.deprecated,.deactivatedor.inactive(the family's convention for switching a skill off) loses its tab and its blocks. - Version. The family's lockstep version, stamped on the page.
The words on each tab are hand-written in assets/explainer-graph.json,
so the build records a fingerprint of each SKILL.md (its version line
left out) and stops with exit 4 when something needs a person. Handle
each message like this:
- "SKILL.md changed since the page was last reviewed: …" — read each
named skill's
SKILL.md(and itsCHANGELOG.md's newest entries), and compare them with that skill's tab: its scenario'ssteps(each atitleandtext) and its block'skind,subanddetailinassets/explainer-graph.json. Edit only what the skill no longer does or now does differently; keep the existing tone (one or two plain sentences per step). Then run--build --reviewed. If nothing needed editing,--build --reviewedalone is right. Tell the user which tabs you changed. - "no tab for /scrolls-…" — a new scrolls skill. Draft its tab from
its
SKILL.md: a node with id = the name withoutscrolls-, edges to the files it touches (reuse the existing node ids), and a scenario with that same id, labelled/scrolls-…, with 2 to 10 steps. Add the node to each of thewide/medium/narrowlayouts in a free cell. Show the user what you added, then run--build --reviewed. - "versions differ (lockstep)" or "…: not found" — don't fix these in the explainer. Report them: the family's versions must be bumped together, and a missing skill must be installed (a tab drops only when the skill is deactivated as above).
After a successful --build, report what it printed: the skills it read,
any tab it dropped, and whether the page changed (wrote …) or already
matched (unchanged …).
Examples
Worked examples of /scrolls-explainer are in assets/EXAMPLES.md. Read
that file only when you need it, for example to check what the script
prints when a file is already there or a build needs a review.
Development
See meta/MAINTAINERS.md for how the page is put together (the
network-flow renderer, scripts/page_enhance.py) and how to run the
tests/ suite. Neither is read as part of carrying out a
/scrolls-explainer request — don't act on meta/ or tests/ while
answering one.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

