anki — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited anki (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.
Create Anki flashcards directly via the anki MCP server (AnkiConnect).
2055492159)health tool first if unsure about connectivityCheck the ARGUMENTS passed to this skill:
progress MCP tool and present resultsTrigger: /anki extract — scans the full conversation, finds extractable knowledge, deduplicates against existing cards, proposes a batch of new cards and updates, then creates them after user approval.
Each card is a unique node in a knowledge graph. Never duplicate — instead:
Run these in parallel:
list_decks — get existing deck structuresearch_notes with broad queries covering the session's main topics (e.g., tag:terraform, deck:Delphi, keywords from discussion) — get existing cards in relevant areas. Run multiple searches to cover all topics discussed.Scan the full conversation for extractable knowledge. Look for:
| Signal | Priority | Example |
|---|---|---|
| Struggled to understand | Highest | Concept explained multiple times, user asked follow-ups |
| Aha moment | High | "Oh, so that's why..." / "I see" / sudden understanding |
| Debugging insight | High | Root cause found after investigation |
| Follow-up question | Medium | Something discussed but not fully resolved |
| Useful pattern | Medium | Workflow, command, architecture pattern worth remembering |
| Factual knowledge | Lower | Definitions, syntax, config values |
Skip: things the user clearly already knows, trivial operations, session-specific details (file paths, variable names) that won't generalize.
For each candidate card:
Present all proposed cards in a single batch. Format:
## Proposed Anki Cards
### New Cards (N)
**1. [Deck::Subdeck]** `tag1` `tag2`
> **Q**: What does X do?
> **A**: It does Y because Z.
**2. [Deck::Subdeck]** `tag1` `tag3`
> **Q**: Why does A happen when B?
> **A**: Because C — the key insight is D.
### Updates (M)
**1. Update note ID 12345** [Deck]
> **Before**: Old back content...
> **After**: Improved back content with new insight...
### Skipped (K duplicates found)
- "concept X" — already covered by note 12345
- "concept Y" — already covered by note 67890
---
Create these? (or tell me what to change)After user approves (or after applying requested changes):
add_notes for new cardsupdate_note for each updatesync to push to AnkiWebhealth if this is the first card creation in the sessionsearch_notes with relevant query to avoid duplicatesadd_notes with a list of NoteInput objectssync after adding cards to push to AnkiWebUse HTML in front/back fields:
<kbd>key</kbd> for keyboard keys and shortcuts<code>command</code> for CLI commands, code snippets, function names<b>term</b> for emphasis and key terms<br> for line breaks<ul><li>...</li></ul> for lists:: hierarchy (e.g., AWS::IAM, Neovim::Keybindings)list_decks before creating new onesrails, python, algorithms, pr-review)["terraform", "aws", "session-review"])session-extract tag to all cards created via the extract workflowadd_notes(notes=[
NoteInput(
front="What does <code>terraform plan</code> do?",
back="Shows what changes Terraform <b>would</b> make without applying them.<br>Compares desired state (config) with current state (state file).",
tags=["terraform", "cli"],
deck="DevOps::Terraform",
),
])Then call sync to push to AnkiWeb.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.