slopcards-to-anki — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited slopcards-to-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.
This skill allows Claude/Gemini to read local files, distill them into high-quality flashcards, and sync them to Anki via a local skill/main.py script.
When accessed as an MCP server, use these tools directly:
list_anki_decks() — list available deckscreate_anki_deck(name) — create a deckfind_cards_by_text(query) — search notesupdate_anki_note(note_id, front, back) — edit a noteget_anki_status() — check if Anki is runninglaunch_anki() — start Anki if neededThis skill operates exclusively in a local execution context. It requires access to the host machine's filesystem to read/write CSV files and access to localhost:8765 to communicate with AnkiConnect. If you are being executed in a cloud-hosted web sandbox (e.g., a browser-based chat interface), notify the user that you cannot reach their local Anki instance and recommend using a local CLI-based agent instead.
Assume Anki is already running. Do NOT call --try_launch_anki proactively or as a first step. It is a last-resort fallback — only invoke it after a real connection error occurs during an actual operation Troubleshot
Ensure the environment has the necessary dependencies:
python -m pip install requests psutilWhen generating content, adhere to these "Gold Standard" SR (Spaced Repetition) rules: To ensure high-quality cards, follow these rules when generating content:
.tmp/ directory e.g. ./tmp/tmp_flashcards.csv.Check every generated card against these criteria. Any card that fails a check must be revised or dropped.
When generating CSV files for add_cards_from_csv:
.png, .jpg, .jpeg, .gif, .webp. If an image has unsupported format skip it and remove the flashcard.The main.py script expects a standard CSV with a header row. Use this structure:
"What is the capital of France?", "Paris"
"{{c1::Rome}} is the capital of Italy", "and the most populated municipality of Italy"front that is the question or the promptback that is the answer or explanationWhen a user provides a file or text and asks for "flashcards", follow these steps:
tmp_cards.csv) using the format defined below.python -m skill.main --f tmp_cards.csv --deck_name "Target Deck".Constraint: if generating <100 cards, do not write a Python script to build the CSV; directly output the raw CSV data to a file.
To import an existing CSV file:
python -m skill.main --f file_name.csv --deck_name "Deck Name"Note: if no deck name is provided, prompt the user for one. Never assume the deck name. After a successful import, report the result and stop.
To find a flashcard by keyword:
python -m skill.main --find_note "search term"Returns:
If multiple flashcards match, review the returned text to identify the correct flashcard.
python -m skill.main --find_note follow instruction from Workflow 3python -m skill.main --update_note_by_id CARD_ID --new_front_text "New front" --new_back_text "New back"Note you can also include only one of the back/front arguments e.g. to update only back: python -m skill.main --update_note_by_id CARD_ID --new_back_text "Better back text"
Always notify the user of any error you encounter.
If a command fails with a connection error (Anki not reachable):
python -m skill.main --try_launch_anki
If flashcard not found
On Windows: If the standard python -m skill.main fails, ensure your environment is set up correctly for src to be in your PYTHONPATH, or run it from the project root.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.