Writing Flashcards
Overview
Convert one or more documentation URLs into Q/A flashcards that are atomic, source-checkable, and deduplicated against an existing vault. Prefer skipping or minimally updating existing cards; create new cards only for missing, citation-backed facts.
When to Use
- •User asks: “make flashcards from this doc/article”, “exam refresh”, “merge docs into my existing vault”.
- •You have (or can be given) an existing vault file/folder to deduplicate and update.
When NOT to Use / Refuse
Refuse or stop if any of the following is true:
- •No stable source URL/permalink is provided ("I read it yesterday" / screenshots-only / memory-only).
- •User wants pure note-taking/summarization, not Q/A recall.
- •You cannot cite using the provided URL(s) only and user did not explicitly allow additional sources.
Refusal output rules:
- •Do not generate any cards.
- •Ask for a stable link/permalink OR a pasted excerpt.
- •If the user asked for dedupe/merge, ask for the vault path/file to check.
Hard Output Contract (Non-Negotiable)
Applies whenever you produce cards (stdout or writing into a file).
Exception: if you are refusing/stopping because required inputs are missing, do not output cards. Output a short request for the missing stable URL/permalink and (if deduping/merging is required) the vault path.
When producing cards, your response/output file must contain only flashcards + footnote definitions at the very bottom.
Per card:
- •Line 1:
**<question>** #card <optional tags>- •
#cardis mandatory on every card.
- •
- •Line 2+:
<answer>(Markdown allowed) - •Final line of the card: footnote markers only, on their own line:
[^slug1][^slug2]- •Nothing may appear after this line (no IDs, separators, extra whitespace blocks).
Global rules:
- •No headings, numbering, TOCs, metadata blocks, prose, or file-system commentary in the output.
- •Never preface with “available skills / skill match / I will…”; the output must be cards-only.
- •Never include tool/harness artifacts like
<task_metadata>...</task_metadata>. - •Separate cards with a single blank line.
- •Never put URLs in answer text (citations are footnotes only).
- •Exactly one footnote-marker line per card (no markers sprinkled in the answer).
- •Footnote definitions are collected at the bottom only:
- •
[^<slug>]: [<Title>](<URL>)
- •
Tag + Linking Rules
- •
#cardis mandatory on every card. - •Add other tags only if the user requested them (difficulty, exam code, topic tags).
- •Difficulty calibration (only if requested):
- •
#beginner: definitions, defaults, primary purpose. - •
#advanced: trade-offs, decision rules, key operational limits. - •
#expert: edge cases, internals, precise failure modes/scenarios.
- •
- •Never use wiki links in questions.
- •Answers may include wiki links for likely-in-vault concepts (e.g.,
[[Amazon S3]]); otherwise leave unlinked.
Question/Answer Quality
- •Atomic and specific: one recall target per card.
- •Source-checkable: every answer must be supported by the cited section.
- •No marketing language; paraphrase in plain English.
- •Forbidden question openings:
Is,Does,Can,Are.- •Reframe as: “What is…”, “How does…”, “What is the behavior of…”, “What is the difference between…”.
- •Avoid “Tell me about …”.
Question Style by Difficulty:
| Level | Goal | Question Style | Example |
|---|---|---|---|
| #beginner | Vocabulary & Models | Simple Recall (Definition, Purpose) | "What is the default S3 storage class?" |
| #advanced | Decisions & Trade-offs | Comparison / Synthesis (Why X over Y?) | "Why choose S3 Standard over S3 Intelligent-Tiering for predictable workloads?" |
| #expert | Internals & Edge Cases | Constraints / Scenarios (What happens if...?) | "What happens to an SQS batch if one message fails and ReportBatchItemFailures is disabled?" |
Citations, Deep Links, and Slugs
Source rules
- •Use only user-provided URL(s). Do not add “helpful” extra sources.
Deep-linking rules
- •If the page supports anchors, cite a deep link to the most relevant section.
- •Never guess an anchor. Verify it exists in fetched content (the HTML contains
id="anchor",name="anchor", or a linkhref="#anchor"). If you can’t fetch/verify, do not use an anchor. - •Fallback if no verifiable anchors: cite the closest stable section URL available (often the page URL without an anchor).
Slug rules (derived from source section, not card content)
- •Slug identifies the cited source section:
(<url filename> + <anchor>). - •All cards citing the same section must reuse the exact same slug.
- •Slug format:
- •lowercase
- •
-separator - •strip query strings
- •examples:
- •
.../storage-class-intro.html#sc-compare→storage-class-intro-sc-compare - •
.../optimizing-storage-costs.html→optimizing-storage-costs
- •
Zero-Duplicate + Minimal-Churn Update Policy
Treat the vault as the source of truth for whether a card should exist.
For each candidate fact:
- •skip: an equivalent card already exists and is accurate.
- •update: only if the card is demonstrably wrong/outdated per the cited section.
- •Make the smallest edit that restores correctness.
- •Preserve unrelated wording and tags as long as the Hard Output Contract still holds.
- •Do not add vault-specific trailing markers (e.g., Obsidian block IDs like
^...) unless the user explicitly asked for them.
- •create: only if missing.
If a new source adds authoritative confirmation/context to an existing accurate card:
- •Add additional footnote markers to that card’s marker line (still one marker line).
If multiple provided sources overlap:
- •Extract the fact once.
- •Cite the most authoritative section; add multiple footnotes only if they add distinct value.
Placement Policy (When Writing Into Existing Files)
- •If the target file has bottom-of-file footnote definitions (
[^slug]: ...), insert new/updated cards above the first footnote definition. - •If the file has topic headers, insert under the most relevant header but still above bottom-of-file footnotes.
Workflow (Use This Every Time)
- •Validate inputs: stable URL(s) present; user allows only those sources.
- •Fetch sources: extract candidate facts (definitions, contrasts, limits, if/then behaviors, enumerations); collect verifiable anchors.
- •Right-size: produce only as many cards as the source warrants; never pad.
- •Vault dedupe: search the vault for each candidate (by topic + synonyms, not just exact wording).
- •For each candidate: decide
skip/update/create. - •Assemble output: cards first, then footnote definitions; enforce the Hard Output Contract.
- •Final validation checklist (must pass before emitting):
- •No non-card text; no headings; no numbering.
- •No URLs in answers.
- •Every card ends with exactly one footnote-marker line.
- •Every footnote marker has exactly one definition at bottom.
- •Slugs are section-derived and reused consistently.
- •No duplicate cards.
Common Failure Modes (Red Flags → STOP)
- •Adding “helpful” explanation outside cards (violates card-only output).
- •Using placeholder markers like
[^1](violates slug policy). - •Adding anything after the footnote-marker line (violates per-card structure).
- •Guessing anchors because “it’s probably right” (violates deep-link verification).
- •Creating a new card for an already-covered fact (violates zero-duplicate).
- •Multi-fact dumping (one card trying to cover an entire comparison table).