agentleFS
yarikletoyarikleto/claude-teacher-plugin/skills/flashcards/SKILL.md

flashcards

Skill9 starsChanged 2 months agoMITView on GitHub

Use when the student wants to generate Anki-style flashcards from studied topics — creates question/answer cards in Markdown and Anki-compatible CSV, prioritized by weak areas and misconceptions. Cards saved to global education DB and project-local docs.

6 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

18 rules. 0 are common, 9 are distinctive, and 9 are very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 9

    Distinctive

    This author's own choices. Worth a look.

  • 9

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Before accessing education data, read ${CLAUDE_PLUGIN_ROOT}/references/education-data.md.

    line 9
  2. Very specific:

    Read <education-db>/dashboard.json — get all topic statuses

    line 24
  3. Very specific:

    Read <education-db>/student.json — adapt card style to learning preferences

    line 25
  4. Very specific:

    If a topic was given, read <education-db>/topics/<topic>.json — check depth, misconceptions, quiz history

    line 26
  5. Distinctive:

    If no topic given, collect all topics from dashboard and read each topic file

    line 27
  6. Distinctive:

    Every card back should be concise — aim for 1-3 sentences, not paragraphs

    line 79
  7. Distinctive:

    If the topic file has unresolved misconceptions, create at least one card that directly addresses each misconception

    line 80
  8. Very specific:

    Use the student's interests from student.json for analogies in card backs (e.g., if they like gaming, use gaming analogies)

    line 81
  9. Distinctive:

    Avoid the student's dislikes — if they dislike dry definitions, make cards more scenario-based

    line 82
  10. Very specific:

    Use the metadata headers shown above for Anki 2.1.54+.

    line 136
  11. Distinctive:

    No HTML — plain text only for maximum compatibility

    line 139
  12. Distinctive:

    If generating for multiple topics, show a combined summary at the end with totals.

    line 163
  13. Very specific:

    Update last_session to today

    line 173
  14. Very specific:

    Only generate cards for studied topics: Check dashboard.json — only topics with status weak, learned, or solid are valid.

    line 177
  15. Distinctive:

    Verify facts with WebSearch: Every factual claim on a card must be checked.

    line 178
  16. Distinctive:

    Respect student preferences: Use their learning style, interests, and avoid their dislikes when crafting card language.

    line 181
  17. Distinctive:

    Regeneration is safe: Read existing files before regenerating.

    line 182
  18. Very specific:

    Create project-local docs/ directory: if it doesn't exist before saving.

    line 183

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Requested topic/task: $ARGUMENTS

Before accessing education data, read ${CLAUDE_PLUGIN_ROOT}/references/education-data.md. Resolve every <education-db> below using that contract. Current session ID: ${CLAUDE_SESSION_ID}.

Flashcards — Anki-Style Card Generation

Generates study flashcards from topics the student has already learned. Cards are prioritized by weakness, misconceptions, and spaced repetition schedule. Exports in Markdown and Anki-compatible CSV.

Invocation

/claude-teacher:flashcards — generate cards for all studied topics, prioritized by need /claude-teacher:flashcards [topic] — generate cards for a specific topic

Process

1. Load Context

  1. Read <education-db>/dashboard.json — get all topic statuses
  2. Read <education-db>/student.json — adapt card style to learning preferences
  3. If a topic was given, read <education-db>/topics/<topic>.json — check depth, misconceptions, quiz history
  4. If no topic given, collect all topics from dashboard and read each topic file
  5. NEVER generate flashcards for topics not in the DB — the student hasn't learned them yet. If no studied topics exist: "Nothing to make flashcards for yet — let's learn something first!"

2. Prioritize Topics for Card Generation

Generate cards in this order (highest priority first):

  1. Weak topics — these need the most reinforcement
  2. Topics with unresolved misconceptions — targeted cards to correct misunderstandings
  3. Topics with next_review <= today — due for spaced repetition
  4. Topics at surface depth — need more exposure to reach working
  5. Learned topics — general reinforcement
  6. Solid topics — fewer cards, focused on edge cases and connections

3. Generate Cards

For each topic, generate 5-10 flashcards using a mix of card types. Use WebSearch to verify every fact before putting it on a card — flashcards with wrong information are worse than no flashcards.

Card Types

Definition — core concept recall

Front: What is [concept]?
Back: [Concise definition]. [Why it matters in one sentence].

Concept Application — apply knowledge to a scenario

Front: You need to [scenario]. Which [concept/tool/approach] would you use and why?
Back: [Answer with reasoning]. [Key tradeoff or consideration].

"What happens if..." — trace behavior and consequences

Front: What happens if [specific situation related to topic]?
Back: [Step-by-step what occurs]. [Common mistake: ...].

Compare/Contrast — distinguish related concepts

Front: What is the difference between [concept A] and [concept B]?
Back: [A]: [key trait]. [B]: [key trait]. Key distinction: [one sentence].

Fill-in-the-Blank — active recall of specifics

Front: In [context], the ___ is responsible for [function].
Back: [answer]. [Brief explanation of why].

Card Rules

  • Every card back should be concise — aim for 1-3 sentences, not paragraphs
  • If the topic file has unresolved misconceptions, create at least one card that directly addresses each misconception
  • Use the student's interests from student.json for analogies in card backs (e.g., if they like gaming, use gaming analogies)
  • Avoid the student's dislikes — if they dislike dry definitions, make cards more scenario-based
  • Include a source link on cards that cite specific technical facts
  • Tag each card with difficulty: [easy], [medium], [hard] based on topic depth and quiz history

4. Export in Both Formats

Markdown Format

Save as docs/flashcards-<topic-slug>.md (project-local) and <education-db>/docs/flashcards-<topic-slug>.md (global):

# Flashcards: [Topic Name]

Generated: [date]
Cards: [count]
Priority: [weak / review-due / reinforcement]

---

### Card 1 [easy] — Definition
**Q:** What is [concept]?
**A:** [Answer]. [Why it matters].

---

### Card 2 [medium] — What happens if...
**Q:** What happens if [scenario]?
**A:** [Answer]. Common mistake: [misconception].

---

(... more cards ...)

---

*Generated from your study progress. Review with `/claude-teacher:quiz-me [topic]` or practice with `/claude-teacher:challenge [topic]`.*

Anki-Compatible CSV

Save as docs/flashcards-<topic-slug>.csv (project-local) and <education-db>/docs/flashcards-<topic-slug>.csv (global):

#separator:Semicolon
#html:false
#columns:Front;Back;Tags
#tags column:3
"What is [concept]?";"[Answer]. [Why it matters].";"[topic-slug] [card-type] [difficulty]"
"What happens if [scenario]?";"[Answer]. Common mistake: [misconception].";"[topic-slug] what-happens-if [difficulty]"

CSV rules:

  • UTF-8, semicolon-separated; the #separator:Semicolon header makes this explicit
  • All fields double-quoted
  • Use the metadata headers shown above for Anki 2.1.54+. Do not add a normal Front;Back;Tags row, which could be imported as a card. For older versions, remove metadata and map the separator/fields/tags manually
  • Tags field uses space-separated tags: topic slug, card type, difficulty
  • Escape any double quotes inside fields by doubling them ("")
  • No HTML — plain text only for maximum compatibility

5. Show Summary

After generating, display:

── Flashcards Generated ──────────────────
  Topic: [topic name]
  Cards: [count] ([easy]/[medium]/[hard])
  Misconception cards: [count]
  Card types: [list of types used]

  Saved to:
    docs/flashcards-[slug].md
    docs/flashcards-[slug].csv
    <education-db>/docs/flashcards-[slug].md
    <education-db>/docs/flashcards-[slug].csv

  Import CSV into Anki: File > Import > select the .csv file
  Preview: Front → Front, Back → Back, column 3 → Tags; no header card
──────────────────────────────────────────

If generating for multiple topics, show a combined summary at the end with totals.

6. Update DB

Append to session log <education-db>/sessions/[date].jsonl:

{"time": "[now]", "event": "flashcards", "topics": ["[slug1]", "[slug2]"], "total_cards": 15, "formats": ["markdown", "csv"]}

Update dashboard <education-db>/dashboard.json:

  • Update last_session to today

Rules

  • Only generate cards for studied topics. Check dashboard.json — only topics with status weak, learned, or solid are valid. Never invent cards for topics the student hasn't seen.
  • Verify facts with WebSearch. Every factual claim on a card must be checked. Include source links for technical facts.
  • Prioritize weak areas. The whole point is targeted review — weak topics and misconceptions come first.
  • Keep cards atomic. One concept per card. If a card needs more than 3 sentences on the back, split it.
  • Respect student preferences. Use their learning style, interests, and avoid their dislikes when crafting card language.
  • Regeneration is safe. Read existing files before regenerating; preserve student edits or save a new version. Keep existing fronts stable when updating answers so Anki can match notes.
  • Create project-local docs/ directory if it doesn't exist before saving.

Integration with Other Skills

  • /claude-teacher:quiz-me [topic] — flashcards are for self-study; quizzes are for active testing. Suggest quizzing after reviewing flashcards.
  • /claude-teacher:challenge [topic] — for hands-on practice after memorizing concepts via flashcards.
  • /claude-teacher:progress — check which topics need flashcards most (weak areas, due reviews).
  • /claude-teacher:save-progress — flashcard generation auto-logs to the session, but student can explicitly checkpoint.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.