interactive-learning — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited interactive-learning (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
Turn any topic into a polished, self-contained HTML learning tool. No frameworks, no dependencies beyond CDN libraries when needed.
Every learning tool MUST have this structure — theory first, interactive second:
Never skip the theory section, even if the user only asks for flashcards. The theory anchors the cards.
| User intent | Adjustment |
|---|---|
| "Erkläre mir X" | Expand theory heavily, flashcards optional |
| "Lernkarten zu X" | Standard theory + full flashcard deck |
| "Ich will X üben" | Light theory recap + interactive exercises with input fields |
Read /mnt/skills/public/frontend-design/SKILL.md for aesthetic guidance. Key points for learning tools specifically:
max-width: 700px, large tap targets<!-- Core state -->
<script>
const cards = [
{ front: "Was ist CVD?", back: "Cumulative Volume Delta — kumulierte Differenz zwischen Buy- und Sell-Volumen." },
// ...
];
let current = 0, flipped = false, score = { correct: 0, total: 0 };
function flip() { /* toggle .flipped class */ }
function next(knew) { score.total++; if (knew) score.correct++; current = (current+1) % cards.length; }
</script>
<!-- Card structure -->
<div class="card" onclick="flip()">
<div class="front">{{ cards[current].front }}</div>
<div class="back">{{ cards[current].back }}</div>
</div>
<button onclick="next(true)">✓ Wusste ich</button>
<button onclick="next(false)">✗ Nochmal</button>CSS flip animation:
.card { perspective: 1000px; cursor: pointer; }
.card-inner { transition: transform 0.5s; transform-style: preserve-3d; }
.card.flipped .card-inner { transform: rotateY(180deg); }
.front, .back { backface-visibility: hidden; position: absolute; width: 100%; }
.back { transform: rotateY(180deg); }Structure:
<svg viewBox="0 0 600 200" xmlns="http://www.w3.org/2000/svg" style="width:100%;max-width:600px">
<!-- boxes -->
<rect x="20" y="70" width="130" height="50" rx="8" fill="#1a1a2e" stroke="#00e5ff" stroke-width="1.5"/>
<text x="85" y="100" text-anchor="middle" fill="#e0e0f0" font-size="13" font-family="Space Mono">Trade eingeht</text>
<!-- arrow -->
<line x1="150" y1="95" x2="200" y2="95" stroke="#6b6b8a" stroke-width="1.5" marker-end="url(#arr)"/>
<defs>
<marker id="arr" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto">
<path d="M0,0 L0,6 L8,3 z" fill="#6b6b8a"/>
</marker>
</defs>
</svg>For math/stats/quant topics, always use KaTeX:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js"></script>
<script>
document.querySelectorAll('.math').forEach(el => {
katex.render(el.textContent, el, { throwOnError: false });
});
</script><pre><code> blocks with a dark syntax theme (Monokai palette)Before delivering the artifact:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.