okc-study-multichoice
Skill0 starsChanged 43 days agoMITView on GitHub
Reusable, parameterized multiple-choice flashcard deck engine and quality linter (/okc-study-multichoice, /okc-validate-cards). Validates 4-alternative syntax, isolated ? delimiters, distractor breakdowns, LaTeX hygiene, and synchronizes directly with Anki.
In this repository68 other files it gives its agents.
- .agents/AGENTS.mdAGENTS.md
- ai-engineering-chip-huyenSkill
- ask-mattSkill
- book-to-skillSkill
- claude-handoffSkill
- codebase-designSkill
- code-reviewSkill
- daily-noteSkill
- diagnosing-bugsSkill
- domain-modelingSkill
- getContextSizeSkill
- git-guardrails-claude-codeSkill
- graphify-querySkill
- grillingSkill
- grill-meSkill
- grill-with-docsSkill
- handoffSkill
- implementSkill
- improve-codebase-architectureSkill
- knowledge-linkSkill
- knowledge-synthesisSkill
- loop-meSkill
- master-plan-builderSkill
- migrate-to-shoehornSkill
- note-captureSkill
- note-reviewSkill
- notion-curatorSkill
- obsidian-knowledge-curatorSkill
- okc-bookFlashcardsSkill
- okc-bookSummarySkill
- okc-diagnosticsAndSynchronizationSkill
- okc-docSkill
- okc-doctorSkill
- okc-driftSkill
- okc-emergeSkill
- okc-exploreSkill
- okc-findSkill
- okc-linterSkill
- okc-normalizeSkill
- okc-setupSkill
- okc-studySkill
- okc-syncSkill
- okc-traceSkill
- okc-urlArticleSkill
- okc-urlPlaylistSkill
- okc-urlPodcastSkill
- okc-urlSpotifySkill
- okc-urlTwitterSkill
- okc-urlYoutubeSkill
- prototypeSkill
- researchSkill
- resolving-merge-conflictsSkill
- scaffold-exercisesSkill
- setup-matt-pocock-skillsSkill
- setup-pre-commitSkill
- setup-ts-deep-modulesSkill
- tddSkill
- teachSkill
- to-specSkill
- to-ticketsSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 5 are distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use this skill when the user wants to validate, inspect, generate, or synchronize high-density multiple-choice active recall flashcard …
- Distinctive: line 63
Every multiple-choice card must strictly conform to the following schema to ensure compatibility with both the Obsidian Spaced Repetition …
- Very specific: line 90
Never prefix it with bullet dashes (e.g., - ?
- Very specific: line 91
Never duplicate delimiters (??
- Very specific: line 93
Always provide options A), B), C), D).
- Distinctive: line 94
Never provide 2 or 3 options.
- Distinctive: line 96
All 3 incorrect alternatives must have a dedicated entry explaining why they fail.
- Very specific: line 117
No Disposable Batch Scripts: Never generate one-off scripts like append_batch_1.py, script_chapter_2.py, etc.
- Very specific: line 118
Single Reusable Engine: All operations run through scripts/study_multi_choice.py or scripts/validate_flashcards.py.
- Distinctive: line 119
Idempotency: All synchronization operations can be safely re-run without creating duplicate cards in Anki or corrupting existing notes.
- Very specific: line 126
Zero Terminal Spam for Inspections: NEVER run exploratory python3 -c "..." or curl commands via run_command to inspect cards, files, or …
- Very specific: line 127
Preferred Synchronization (Zero Popups): Call FastMCP okc tool sync_multi_choice_deck(file_path="...", append_to_master=True, …
- Very specific: line 128
CLI Fallback (Strict 1-Command Execution): If running via CLI, execute in exactly one atomic terminal command (uv run python …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
OKC Multiple-Choice Flashcard Engine & Quality Linter
Use this skill when the user wants to validate, inspect, generate, or synchronize high-density multiple-choice active recall flashcard decks across Obsidian and Anki.
Triggers
/okc-study-multichoice <action> [flags]/okc-validate-cards [flags]- "validate flashcards"
- "audit multiple choice cards"
- "sync multiple choice deck"
- "sincronizar mazo multiple choice"
- "validar tarjetas de opcion multiple"
🛠 Command Reference
1. Audit & Lint Deck Quality
Audits flashcard formatting, syntax, isolated ? delimiters, and distractor breakdowns across any markdown deck file:
uv run python scripts/study_multi_choice.py validate --file "<path_to_deck.md>" [--fix] [--strict]Or using the standalone linter:
uv run python scripts/validate_flashcards.py --file "<path_to_deck.md>" [--fix] [--strict] [--json]Flags:
--fix: Automatically fixes trivial whitespace, trailing spaces, and delimiter issues.--strict: Returns non-zero exit code if any error or observation is detected.--json: Outputs audit findings as structured JSON.
2. Check Deck & Anki Status
Inspects card counts in the markdown file and queries the local Anki instance to verify synchronized counts:
uv run python scripts/study_multi_choice.py status --file "<path_to_deck.md>"3. Synchronize Deck to Anki
Parses the markdown deck, renders clean HTML with MathJax formulas and color-coded answer badges, and syncs directly to Anki via AnkiConnect:
uv run python scripts/study_multi_choice.py sync-anki --file "<path_to_deck.md>" [--deck-prefix "<AnkiDeckPrefix>"] [--replace-deck]Flags & Defaults:
--deck-prefix:"AI Engineer_Multi_ES"(Sub-decks will automatically be created according to each card's category:[Category]).--replace-deck: Deletes existing deck and all subdecks prior to importing to ensure a clean reload without duplicates.
📐 The 6-Dimension Multiple-Choice Quality Rubric
Every multiple-choice card must strictly conform to the following schema to ensure compatibility with both the Obsidian Spaced Repetition plugin and Anki:
### [Category]: Descriptive Card Title
**Pregunta:**
Detailed scenario or technical question providing sufficient context without ambiguous wording.
- A) First option description
- B) Second option description
- C) Third option description
- D) Fourth option description
?
**Respuesta correcta: B**
**Justificación:**
Comprehensive explanation of why option B is correct from first principles, production trade-offs, or theoretical guarantees.
**Desglose de distractores:**
- **A:** Why option A is incorrect or suboptimal.
- **C:** Why option C is incorrect, an anti-pattern, or a misconception.
- **D:** Why option D does not apply to this scenario.Critical Rules
- Isolated
?Delimiter:- The question/answer separator
?MUST be on its own line surrounded by newlines (\n?\n). - Never prefix it with bullet dashes (e.g.,
- ?is invalid). - Never duplicate delimiters (
??is reserved for reversed cards in basic decks, not multiple-choice).
- The question/answer separator
- Exactly 4 Alternatives:
- Always provide options
A),B),C),D). - Never provide 2 or 3 options; ensure distractors are plausible and educationally valuable.
- Always provide options
- Exhaustive Distractor Breakdown:
- All 3 incorrect alternatives must have a dedicated entry explaining why they fail.
- LaTeX vs. Currency Formatting:
- Math formulas must use balanced delimiters (
$...$for inline,$$...$$for block display). - Literal currency amounts must use escaped dollar signs (
\$50,\$1.50 USD) to prevent breaking LaTeX math renderers.
- Math formulas must use balanced delimiters (
- Deck-Specific Contrast Rules:
Data Science_Multi_ES: The question prompt container is strictly styled with a high-contrast royal blue background (background: #1e40af), crisp white typography (color: #ffffff), rounded corners (border-radius: 8px), left light-blue accent border (border-left: 4px solid #60a5fa), and white translucent inline code (rgba(255, 255, 255, 0.22)), ensuring maximum readability in both Light and Dark modes.
4. Convert & Append TSV to Master Deck (export-markdown)
Converts any TSV multiple-choice file into canonical 6-dimension blocks and appends it to Mazos_AI_Engineer_y_Data_Science_Multi_ES_V2.md:
uv run python scripts/study_multi_choice.py export-markdown --tsv "<path_to_tsv>" --module-title "Módulo X: <Título>" [--subdeck "<Subdeck>"]📜 Architectural Standards
This skill strictly enforces the project's Reusable Scripts Policy (.agents/rules/reusable-scripts.md):
- No Disposable Batch Scripts: Never generate one-off scripts like
append_batch_1.py,script_chapter_2.py, etc. - Single Reusable Engine: All operations run through
scripts/study_multi_choice.pyorscripts/validate_flashcards.py. - Idempotency: All synchronization operations can be safely re-run without creating duplicate cards in Anki or corrupting existing notes.
🛡️ STRICT ZERO-PERMISSION PROTOCOL FOR AGENTS
To prevent disruptive user confirmation popups during study operations:
- Zero Terminal Spam for Inspections: NEVER run exploratory
python3 -c "..."orcurlcommands viarun_commandto inspect cards, files, or Anki status. Use native silent tools (view_file,grep_search) or FastMCPokctools (inspect_flashcards_deck,status_flashcards_deck). - Preferred Synchronization (Zero Popups): Call FastMCP
okctoolsync_multi_choice_deck(file_path="...", append_to_master=True, master_module_title="...")directly. - CLI Fallback (Strict 1-Command Execution): If running via CLI, execute in exactly one atomic terminal command (
uv run python scripts/study_multi_choice.py sync-anki --file "...").
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
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.

