Claim this agent
agentCLAWHUBUnverified

flashcard-forge

Convert any text — PDF excerpts, lecture notes, articles, textbook chapters — into spaced-repetition flashcards. Generates Anki-importable CSV with Q&A and cloze-deletion modes using regex-based extraction and sentence analysis.

OpenClaw

Rank

62

Safety

84

Downloads

2.7k

Updated

Oct 9, 2026

Version

0.1.2

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 2.7K downloads reported by the source. Last updated 10/9/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Oct 9, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 9, 2026
Adoption signal
2.7K downloadsadoption · observed Oct 9, 2026
Latest release
0.1.2release · observed Aug 14, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17b6amkd3wzqgg640v03a9r1n83gxs1:flashcard-forge
  1. Install using `clawhub skill install s17b6amkd3wzqgg640v03a9r1n83gxs1:flashcard-forge` in an isolated environment before connecting it to live workloads.
  2. No published capability contract is available yet, so validate auth and request/response behavior manually.
  3. Review the upstream CLAWHUB listing at https://clawhub.ai/voronindenis5/flashcard-forge before using production credentials.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-flashcard-forge/snapshot"

Documentation

CLAWHUB

77,545 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: flashcard-forge
description: >
  Convert any text — PDF excerpts, lecture notes, articles, textbook chapters —
  into spaced-repetition flashcards. Generates Anki-importable CSV with Q&A and
  cloze-deletion modes using regex-based extraction and sentence analysis.
version: 1.0.0
author: Denis Voronin
license: MIT
tags:
  - education
  - flashcards
  - anki
  - spaced-repetition
  - study
  - text-processing
---

# Flashcard Forge

> Turn walls of text into decks you'll actually review.

`Flashcard Forge` is a skill that transforms study material (PDFs, lecture
notes, articles, textbook chapters) into spaced-repetition flashcards. It
extracts key facts, definitions, and Q&A pairs using regex patterns and
sentence-structure analysis, then exports Anki-importable CSV files.

## When to Use

Activate this skill when you need to:

- Convert a textbook chapter or lecture transcript into flashcards
- Extract definitions, key facts, or Q&A from a body of text
- Generate cloze (fill-in-the-blank) cards for memorization
- Produce Anki-importable CSV from raw notes
- Study for an exam by turning reading material into active recall cards

## Modes

### Q&A Mode (`--mode qa`)

Extracts question-answer pairs and definition pairs:

- **Definition patterns**: "X is defined as Y", "X refers to Y", "X means Y"
- **Explicit questions**: sentences containing "What/Why/How/When/Where" markers
- **List patterns**: "There are N types of X: A, B, C"
- **Cause/effect**: "X causes Y", "X results in Y"
- **Comparison**: "Unlike X, Y does Z"

### Cloze Mode (`--mode cloze`)

Generates fill-in-the-blank cards by identifying key terms in each sentence and
masking them:

- Nouns and proper nouns are candidates for clozing
- Numbers, dates, and named entities are high-priority cloze targets
- Each card uses Anki's `{{c1::...}}` cloze syntax

### Auto Mode (`--mode auto`, default)

Runs both modes and merges results, deduplicating by question text.

## Quick Reference

| Need                        | Command                                                         |
| --------------------------- | --------------------------------------------------------------- |
| Q&A cards from a text file  | `python3 scripts/flashcard_forge.py notes.txt`                  |
| Cloze cards                 | `python3 scripts/flashcard_forge.py notes.txt --mode cloze`     |
| Anki CSV output             | `python3 scripts/flashcard_forge.py notes.txt -o deck.csv`      |
| Custom cloze count          | `python3 scripts/flashcard_forge.py notes.txt --max-cloze 3`    |
| Min sentence length filter  | `python3 scripts/flashcard_forge.py notes.txt --min-length 20`  |
| JSON output                 | `python3 scripts/flashcard_forge.py notes.txt --format json`    |

## How It Works

1. **Read & clean** — load the text, normalize whitespace, strip markdown
   artifacts.
2. **Segment** — split into sentences using punctuation-aware tokenization.
3. **Extract** — apply regex patterns (see `referenc

README.md

# Flashcard Forge

> Turn walls of text into decks you'll actually review.

A [Hermes Agent](https://hermes-agent.nousresearch.com/docs) / OpenClaw skill
that converts study material — PDF excerpts, lecture notes, articles, textbook
chapters — into **Anki-importable flashcards** using regex-based extraction and
sentence analysis.

## Why

Students spend hours manually making flashcards from reading material. Most of
that work is mechanical: find the definitions, extract the key facts, format
them as Q&A or cloze cards. Flashcard Forge automates the extraction so you can
focus on reviewing, not transcribing.

## What's Included

- **`SKILL.md`** — core skill: modes, quick-reference table, how-it-works.
- **`references/`**
  - `extraction-patterns.md` — catalog of regex patterns the extractor uses.
  - `anki-import.md` — step-by-step guide to importing CSV into Anki.
  - `study-strategies.md` — best practices for flashcard-based learning.
- **`scripts/flashcard_forge.py`** — the main script (stdlib only, no deps).
- **`scripts/sample_text.txt`** — example input demonstrating all pattern types.

## Quick Start

```bash
# Generate Q&A flashcards (default mode)
python3 scripts/flashcard_forge.py notes.txt -o deck.csv

# Generate cloze (fill-in-the-blank) cards
python3 scripts/flashcard_forge.py notes.txt --mode cloze -o cloze.csv

# Auto mode: both Q&A and cloze, deduplicated
python3 scripts/flashcard_forge.py notes.txt --mode auto -o deck.csv

# Cap output to 50 cards, filter short sentences
python3 scripts/flashcard_forge.py notes.txt --max-cards 50 --min-length 25

# JSON output for programmatic use
python3 scripts/flashcard_forge.py notes.txt --format json -o deck.json
```

Example CSV output:

```
Front;Back
"What is photosynthesis?";"The process by which plants convert light energy into chemical energy"
"Mitochondria";"The powerhouse of the cell, responsible for ATP production"
```

Example cloze output:

```
Text;Extra
"The powerhouse of the cell is the {{c1::mitochondria}}";""
"Photosynthesis occurs in the {{c1::chloroplasts}} of plant cells";""
```

## Modes

| Mode    | Card Type  | Best For                          |
| ------- | ---------- | --------------------------------- |
| `qa`    | Basic Q&A  | Definitions, explicit questions   |
| `cloze` | Cloze      | Fill-in-the-blank memorization    |
| `auto`  | Both       | General use (default)             |

## Anki Import

1. Open Anki → File → Import
2. Select the CSV file
3. Set type to **Basic** (for qa) or **Cloze** (for cloze)
4. Ensure field separator is semicolon (`;`)
5. Click Import

See `references/anki-import.md` for detailed instructions with screenshots.

## Installation (Hermes Agent)

Copy or symlink this directory into your skills folder:

```bash
cp -r flashcard-forge ~/.hermes/skills/
```

Hermes auto-discovers skills with a valid `SKILL.md`. See the
[skills docs](https://hermes-agent.nousresearch.com/docs) for details.

## Requirements

- Python 3.8+ (stdlib only — no pip

_meta.json

{
  "ownerId": "kn75wwn4x6djaf28jbykeamazd81gtdp",
  "slug": "flashcard-forge",
  "version": "0.1.2",
  "publishedAt": 1786688362104
}

references/anki-import.md

# Anki Import Guide

Flashcard Forge outputs CSV files designed for direct import into
[Anki](https://apps.ankiweb.net/). This guide walks through the import process
for both Q&A (Basic) and cloze card types.

## CSV Format

### Q&A CSV (Basic cards)

```
Front;Back
"What is photosynthesis?";"The process by which plants convert light into chemical energy"
"Mitochondria";"The powerhouse of the cell, responsible for ATP production"
```

- **Separator**: semicolon (`;`)
- **Header row**: `Front;Back`
- **Fields are quoted** to handle commas and newlines within card text

### Cloze CSV (Cloze cards)

```
Text;Extra
"The powerhouse of the cell is the {{c1::mitochondria}}";""
"DNA stands for {{c1::deoxyribonucleic acid}}";""
```

- **Separator**: semicolon (`;`)
- **Header row**: `Text;Extra`
- Cloze deletions use `{{c1::...}}` syntax
- The `Extra` field is for additional context (often empty)

## Importing Q&A Cards (Basic)

1. **Open Anki** and select or create a deck.
2. Go to **File → Import...** (or press `Ctrl+I` / `Cmd+I`).
3. Select your `.csv` file.
4. In the import dialog:
   - **Type**: Basic
   - **Deck**: choose your target deck
   - **Field separator**: semicolon (`;`) — Anki usually auto-detects
5. Verify the field mapping: column 1 → Front, column 2 → Back.
6. Click **Import**.

### Importing Cloze Cards

1. **Ensure you have a Cloze note type.** Anki includes one by default. If you
   don't see it, go to Tools → Manage Note Types → Add → Cloze.
2. Go to **File → Import...**
3. Select your cloze `.csv` file.
4. In the import dialog:
   - **Type**: Cloze
   - **Deck**: choose your target deck
   - **Field separator**: semicolon (`;`)
5. Verify the field mapping: column 1 → Text, column 2 → Extra.
6. Click **Import**.

> **Important:** Cloze cards with no `{{c1::...}}` deletion will fail to import.
> Flashcard Forge guarantees at least one cloze per card.

## Common Import Issues

### "The first field of this note type must be unique"

This happens if Anki detects duplicate front text. Options:

- Enable "Allow HTML in fields" is **not** the fix — instead, update existing
  cards on import.
- Or, pre-deduplicate your CSV. Flashcard Forge deduplicates within a single
  run; if you're merging multiple runs, dedup manually.

### Garbled characters

Ensure the CSV is UTF-8 encoded. Flashcard Forge always writes UTF-8. If you
opened and re-saved the file in Excel, it may have changed the encoding —
re-export from the script instead.

### Wrong delimiter detected

If Anki shows all data in one column, the delimiter wasn't auto-detected. In
the import dialog, manually set the field separator to semicolon.

### Cloze cards show as blank

The note type must be **Cloze**, not Basic. If you imported cloze CSV as Basic
cards, delete them and re-import with the correct type.

## Bulk Import Tips

- **Large decks**: Import in batches of 200-500 cards to avoid performance
  issues.
- **Tags**: Add tags during import (e.g., `biology`, `chapter-3`) for ea

references/extraction-patterns.md

# Extraction Patterns

This document catalogs the regex patterns Flashcard Forge uses to extract
flashcard-worthy content from text. Each pattern targets a specific sentence
structure common in educational material.

## Definition Patterns

These extract "term → definition" pairs, producing cards with the term as the
front and the definition as the back.

### "X is Y"

```regex
\b([A-Z][a-z]+(?:\s+\w+){0,4})\s+is\s+(?:a|an|the)\s+(.+?)[.]
```

Matches:
- "Photosynthesis is a process by which plants make food."
- "Mitosis is a type of cell division."

### "X is defined as Y"

```regex
\b(.+?)\s+is\s+defined\s+as\s+(.+?)[.]
```

### "X refers to Y" / "X means Y"

```regex
\b(.+?)\s+(?:refers\s+to|means)\s+(.+?)[.]
```

### "X: Y" (colon definitions)

```regex
^([A-Z][^:]{2,40}):\s+(.+?)[.]?$
```

Matches:
- "Photosynthesis: The process by which plants convert light to energy."

## Q&A Patterns

### Explicit question markers

```regex
\b(What|Why|How|When|Where|Who|Which)\s+.+?\?\s*(.+?)[.]?
```

Matches embedded questions and their answers:
- "What is DNA? It is the genetic material in cells."

### "The question is..." / "The answer is..."

```regex
\bThe\s+(?:question|answer)\s+is\s+(.+?)[.]
```

## List Patterns

### "There are N types of X: A, B, C"

```regex
\bThere\s+are\s+(\w+)\s+(types|kinds|categories|forms)\s+of\s+(.+?):\s*(.+?)[.]
```

Produces one card per list item with the category as context.

### Numbered/enumerated items

```regex
^(?:\d+[.)]\s+|[-*]\s+)(.+)$
```

## Cause/Effect Patterns

```regex
\b(.+?)\s+(?:causes|leads\s+to|results\s+in|produces|triggers)\s+(.+?)[.]
```

Matches:
- "Smoking causes lung cancer."
- "Insulin deficiency results in diabetes."

## Comparison Patterns

```regex
\b(?:Unlike|Whereas|While|In\s+contrast\s+to)\s+(.+?),\s+(.+?)\s+(.+?)[.]
```

Matches:
- "Unlike prokaryotes, eukaryotes have a nucleus."

## Cloze Targets

For cloze mode, the following are high-priority candidates for masking:

| Category         | Pattern                                    |
| ---------------- | ------------------------------------------ |
| Proper nouns     | `\b[A-Z][a-z]+(?:\s+[A-Z][a-z]+)*\b`       |
| Numbers/Dates    | `\b\d{1,4}(?:\s?(?:BCE|CE|AD|BC))?\b`      |
| Years            | `\b(?:1[5-9]\d{2}|20\d{2})\b`             |
| Percentages      | `\b\d+(?:\.\d+)?\s?%\b`                    |
| Chemical formulas| `\b[A-Z][a-z]?\d*(?:[A-Z][a-z]?\d*)+\b`    |
| Key terms (all-caps acronyms) | `\b[A-Z]{2,}\b`              |

## Scoring Heuristics

Each extracted candidate is scored for information density:

| Signal                   | Points |
| ------------------------ | ------ |
| Contains a number        | +2     |
| Contains a definition    | +3     |
| Contains a comparison    | +2     |
| Sentence length 15-40    | +1     |
| Sentence length > 50     | -1     |
| Contains a list          | +2     |
| Contains cause/effect    | +2     |

Candidates scoring below a threshold (default: 2) are discarded.

## Tuning

Al
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/voronindenis5/skills/flashcard-forge",
      "sourceUrl": "https://clawhub.ai/voronindenis5/skills/flashcard-forge",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T12:05:53.269Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-flashcard-forge/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-flashcard-forge/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-09T12:05:53.269Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "2.7K downloads",
      "href": "https://clawhub.ai/voronindenis5/flashcard-forge",
      "sourceUrl": "https://clawhub.ai/voronindenis5/flashcard-forge",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T12:05:53.269Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "0.1.2",
      "href": "https://clawhub.ai/voronindenis5/flashcard-forge",
      "sourceUrl": "https://clawhub.ai/voronindenis5/flashcard-forge",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-08-14T06:19:22.104Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-flashcard-forge/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-flashcard-forge/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 0.1.2",
      "description": "- Removed the documentation file skill-card.md. - No code or functional changes; this update is limited to documentation cleanup.",
      "href": "https://clawhub.ai/voronindenis5/flashcard-forge",
      "sourceUrl": "https://clawhub.ai/voronindenis5/flashcard-forge",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-08-14T06:19:22.104Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 9, 2026.

Sponsored

Ads related to flashcard-forge and adjacent AI workflows.