
import-vocabulary
by crondinini
SKILL.md
name: import-vocabulary description: Import vocabulary from Word documents (.docx) containing Arabic words. Use when the user wants to import, add, or extract vocabulary from a Word document, docx file, or Arabic learning materials. Extracts Arabic-English word pairs and creates/updates decks based on categories.
Import Vocabulary from Word Documents
This skill extracts Arabic vocabulary from .docx files and imports them into the flashcard system.
Workflow Overview
- Extract → Parse .docx with pandoc
- Generate → Create markdown file with extracted vocabulary
- Confirm → Ask user which words to import
- Import → Create cards via API
- Archive → Move files to
processed/folder
Step 1: Extract Text from Document
Use pandoc to convert the Word document to markdown:
pandoc "path/to/document.docx" -t markdown
Step 2: Parse and Generate Markdown
From the extracted content, identify vocabulary entries and create a markdown file in the same directory as the source document.
Filename pattern: {original_name}.vocab.md
Example: صفات.docx → صفات.vocab.md
Markdown format:
# Vocabulary: صفات (Adjectives)
Source: صفات.docx
Extracted: 2024-01-15
Category: Adjectives
## Words
| # | Arabic | English | Notes | Import |
|---|--------|---------|-------|--------|
| 1 | جديد / جديدة | new | masc/fem | ✓ |
| 2 | قديم / قديمة | old | masc/fem | ✓ |
| 3 | ثقيل / ثقيلة | heavy | masc/fem | ✓ |
| 4 | خفيف / خفيفة | light | masc/fem | ✓ |
## Summary
- Total words found: 12
- Ready to import: 12
- Skipped: 0
Parsing rules:
- Strip
{dir="rtl"}markers from Arabic text - Ignore image references like
 - Skip exercise blanks (____), instructions, non-vocabulary content
- Handle masculine/feminine pairs: "جديد- جديدة" → "جديد / جديدة"
- Preserve Arabic diacritics (tashkeel)
Step 3: Ask for Confirmation
Present the generated markdown to the user and ask:
I've extracted 12 vocabulary items from "صفات.docx"
Category detected: Adjectives (صفات)
Target deck: [New deck "Adjectives (صفات)" / Existing deck "..."]
Preview:
1. جديد / جديدة - new
2. قديم / قديمة - old
3. ثقيل / ثقيلة - heavy
...
Would you like to:
- Import all words
- Review the full list in صفات.vocab.md first
- Skip certain words (specify which)
Step 4: Check/Create Deck
Check existing decks:
curl -s http://localhost:3001/api/decks
Determine deck:
- Check filename for category hints:
- "صفات" = Adjectives
- "أسماء" = Nouns
- "أفعال" = Verbs
- "definite article" = Grammar
- Match against existing deck names
- If no match: create new deck or use "Import YYYY-MM-DD"
Create new deck (if needed):
curl -X POST "http://localhost:3000/api/decks" \
-H "Content-Type: application/json" \
-d '{"name": "Adjectives (صفات)", "description": "Imported from صفات.docx"}'
Step 5: Import Cards via API
curl -X POST "http://localhost:3000/api/decks/{deck_id}/cards" \
-H "Content-Type: application/json" \
-d '[
{"front": "جديد / جديدة", "back": "new", "notes": "masc/fem"},
{"front": "قديم / قديمة", "back": "old", "notes": "masc/fem"}
]'
Step 6: Archive to Processed Folder
After successful import, move both files to a processed/ subfolder:
# Create processed folder if it doesn't exist
mkdir -p "path/to/processed"
# Move the original docx
mv "path/to/document.docx" "path/to/processed/"
# Move the generated vocab markdown
mv "path/to/document.vocab.md" "path/to/processed/"
Folder structure after processing:
example-arabic-docs/
├── processed/
│ ├── صفات.docx
│ ├── صفات.vocab.md
│ ├── الأسماء.docx
│ └── الأسماء.vocab.md
└── new-document.docx (not yet processed)
Step 7: Report Results
✓ Imported 12 cards to deck "Adjectives (صفات)" (ID: 5)
Files archived:
→ processed/صفات.docx
→ processed/صفات.vocab.md
View deck: http://localhost:3000/deck/5
Error Handling
- If dev server isn't running: prompt user to run
npm run dev - If API call fails: keep files in original location, report error
- If no vocabulary found: create empty .vocab.md noting "No vocabulary extracted"
Notes
- The .vocab.md files serve as a permanent record of what was extracted
- User can edit .vocab.md before confirming import if needed
- The processed/ folder makes it easy to see what's been imported
- WebSearch can be used to look up unclear translations
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon