Turn any codebase into an interactive course that explains itself.
SaferSkills independently audited rikai (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
理解 (rikai) — Japanese for "understanding, comprehension"
Rikai transforms any codebase into a cinematic, single-page learning experience. The learner already built (or found) something that works. Rikai answers: "What exactly did I build — and how does it actually work?"
The vibe coder: builds software by directing AI in natural language. May have never read their own codebase. Practical, fast-moving, curious — but not trying to become a software engineer. They need:
Assume zero prior CS knowledge. Every term needs a plain-language definition, embedded inline (tooltips), not in a separate glossary. Write like a brilliant friend explaining over coffee, not a professor lecturing from a podium.
Before writing a single line of HTML, thoroughly understand the codebase.
Architecture map
The living story
Clever engineering
Friction points
Tech stack rationale
README.md — product description, setup instructions, architecture diagrams if presentpackage.json / pyproject.toml / Cargo.toml / equivalent — full dependency mapmain.py, index.ts, app.js, cmd/...) — execution start.env.example, config/) — environment, feature flags, secrets shapeRule: Figure out what the app does yourself. Never ask the user to explain the product. They may not know either — that's why they're using Rikai.
Design 5–8 modules. The structure is always a zoom-in:
Wide (experience) → Narrow (implementation)
↓
Module 1: The Big Picture — what does this app do, who uses it, what's the core value?
Module 2: The Journey — trace one user action from click to response, end-to-end
Module 3: The Cast — who are the main "characters"? What does each one own?
Module 4: The Conversations — how do the pieces talk to each other?
Module 5: The Outside World — external APIs, databases, third-party services
Module 6: The Safety Net — error handling, validation, edge cases
Module 7: The Clever Bits — interesting patterns, architecture decisions, trade-offs
Module 8: (if needed) The Big Picture Revisited — now that you know how it works, what would you change?Adapt ruthlessly. A simple CLI tool might need 4 modules. A microservices app might need 8. Every module must answer "why does this help me build better with AI?" — if it doesn't, cut it or reframe it.
Each module contains:
| Element | Minimum count | Purpose |
|---|---|---|
| Code ↔ English Translation | 1 per module | Core comprehension tool |
| Animated data flow | 1 per course | Show how data moves through the system |
| Group chat animation | 1 per course | Make component communication feel human |
| Scenario quiz | 1 per module | Test application, not memory |
| Glossary tooltips | All technical terms, first use per module | Vocabulary acquisition |
Do not present the curriculum for review. Design it, then build it. The learner wants to understand their code, not approve a plan.
Generate a single, self-contained HTML file. For large codebases, build module by module and append — don't try to generate everything at once.
✓ Single HTML file (no external JS/CSS files, no build step)
✓ Only external dependency: Google Fonts CDN
✓ scroll-snap-type: y proximity (NEVER mandatory — traps users)
✓ min-height: 100dvh (100vh fallback)
✓ All JS in IIFE, passive scroll listeners, rAF throttling
✓ white-space: pre-wrap on ALL code (no horizontal scroll ever)
✓ Tooltips: position: fixed, appended to document.body (never clipped by overflow:hidden)
✓ Touch support on all drag interactions
✓ Keyboard nav: arrow keys between modules
✓ ARIA roles on interactive elements
✓ GPU animations only: transform + opacity (never width/height/top/left)references/design.md — full CSS design system (tokens, typography, components)references/interactions.md — implementation patterns for every interactive elementRead these before writing CSS or interactive elements. They contain complete, working code — don't reinvent.
These are what separate Rikai from a generic tutorial generator. Internalize them.
Every screen must be at least 50% visual. If you have written 3+ sentences in a row, stop and convert the next piece of information into a diagram, card, animation, or code block.
Conversion table:
| If you're about to write... | Convert it to... |
|---|---|
| A list of 3+ items | Icon cards with one-liner descriptions |
| A sequence of steps | Numbered step cards or flow diagram |
| "Component A talks to B" | Animated data flow or group chat |
| "File X does Y, file Z does W" | Annotated file tree |
| What a piece of code does | Code ↔ English translation block |
| Two competing approaches | Side-by-side comparison columns |
| A warning or insight | Callout box (aha!/warning/tip) |
Every new technical concept gets one metaphor. Rules:
Examples of strong metaphors:
Quiz types (in order of value):
Never quiz:
Quiz tone: wrong answers get a teaching moment, not just "incorrect." Right answers reinforce the principle, not just confirm correctness. No scores. No "you got X/Y." It's thinking practice, not an exam.
If there is even a 1% chance a non-technical person doesn't know a term, tooltip it. This includes:
The vocabulary IS the learning. The tooltip should teach the term in a way the learner can USE it — not just understand it. Format: short plain-English definition, then optionally "When talking to AI, you'd say: ..."
Tooltip implementation: must use `position: fixed` + `getBoundingClientRect()` + append to `document.body`. This is not optional. Any other approach clips tooltips inside overflow containers.
Before presenting the course, verify each item:
Content
Interactivity
Technical
scroll-snap-type: y proximity (not mandatory)position: fixed and append to bodyTooltip clipping — The #1 bug. Tooltips use position: absolute inside an overflow: hidden container → they disappear. Always position: fixed + document.body. Always.
Text avalanche — Prose paragraphs describing what code does instead of showing a code ↔ English block. Any description longer than 2 sentences should be converted to a visual.
Clone metaphors — Using "restaurant" or reusing any metaphor from an earlier module. Each concept deserves its own metaphor.
Sanitized code — Showing cleaned-up code instead of real code from the file. The learner loses trust when the "real" file looks different.
Memory quizzes — Asking what API stands for or which file handles routing. Test thinking, not recall.
Mandatory scroll-snap — Trapping users inside long modules. proximity always.
Module soup — Writing all modules in one long pass causes later modules to be thin and rushed. Build one module → verify → next.
Fake technical depth — Explaining what a function is called instead of what it does and why. Every explanation should end with a practical implication: "This means when you're directing AI to add feature X, you'd tell it to..."
| Generic tutorial | Rikai |
|---|---|
| Explains concepts in abstract | Traces concepts through the learner's actual code |
| Assumes you want to code | Assumes you want to understand and direct |
| Starts with syntax | Starts with the user experience |
| Glossary at the end | Tooltips inline, where the term appears |
| Tests definition recall | Tests architectural reasoning |
| Uses any metaphor available | Hunts for the one metaphor that makes the concept inevitable |
| Shows cleaned-up example code | Shows real code, verbatim, with English translation |
| One-size curriculum | Curriculum shaped around this specific codebase's personality |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.