All fifteen
The fifteen modules behind cast and paint, why they load on demand instead of all at once, and how the loader resolves them on each surface.
All documentation
Fifteen focused modules sit behind the two skills. They are internal: you never
invoke one directly, and there is no /genjutsu:gsap. cast and paint decide
which ones apply and load only those.
Why on demand
Context is finite, and most of these modules are irrelevant to any given project. A static site has no use for Metal shaders. A Compose app has no use for Framer Motion. Loading fifteen manuals every time would spend the context budget on material that will never be referenced, and dilute the material that will be.
So the loading rules are mechanical rather than clever:
- Always: motion foundations.
- By context: mobile principles when the target is mobile web or native iOS/Android; desktop principles when it is macOS or desktop web; the audit module when the scope is full or an audit was requested.
- By stack: whatever the scan found. GSAP present means the GSAP module. Nothing present means the zero-dependency CSS module, because an existing choice is respected and a missing one is not invented.
- By thesis: the advanced graphics modules for Apple and Android load only
when the validated thesis actually calls for them. The trigger is lexical:
words like shader, Metal, AGSL, Liquid Glass,
colorEffect, Material 3 Expressive, displacement, holographic or CRT.
The four families
Foundations
Five modules. motion-principles loads on every single invocation and is the
reason the output is consistent across stacks. design-audit closes every
pipeline. ui-ux-pro-max carries the design-system dataset. mobile-principles
and desktop-principles load by context.
Web
Five modules: css-native, gsap, framer-motion, threejs-r3f,
canvas-generative. Selected from your dependencies, not from preference.
Apple
Two modules: swiftui-motion always, swiftui-graphics when the thesis is
advanced. iOS and macOS are told apart during the scan, and the platform UX
layer differs accordingly.
Android
Three modules: compose-motion always, compose-graphics when the thesis is
advanced, compose-multiplatform when the Kotlin Multiplatform and Compose
plugins are both present.
How the loader finds them
Worth knowing if an install ever misbehaves, because the resolution differs by surface.
On claude.ai with the single-bundle upload, the modules live inside the
skill’s own directory, under _jutsu/. On claude.ai with each module uploaded
separately, they are siblings under the skills mount. In Claude Code, they
resolve from the installed plugin version’s directory, with a fallback that
picks the newest installed version if the plugin root is not substituted.
If a module cannot be found, the loader warns and continues rather than failing. Losing one module degrades the output; aborting would waste the whole session. That is also the first thing to suspect if results feel unusually generic on claude.ai: a partial upload.