Install
$ agentstack add skill-wua-zs-memory-card-studio-memory-card-studio ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Memory Card Studio
Create local zero-install memory-card projects, generate grounded card libraries from files, and run lightweight review sessions in chat. The frontend is copied from assets/static-card-project/; Codex parses source files and updates JSON data.
Required References And Tools
- Read
references/card-schema.mdbefore creating or updating card JSON. - Read
references/frontend-behavior.mdbefore editing frontend assets or explaining browser review behavior. - Use
scripts/refresh_app_data.pyafter every card library or review-state change. - Use
scripts/update_review_state.pyfor every interactive review feedback before moving to the next card. - Use
scripts/validate_project.pybefore reporting initialization, generation, repair, or review-state updates as complete. - Store all generated files as UTF-8.
Core Rules
- Keep the frontend zero-install: only static HTML, CSS, JavaScript, JSON files, and
data/app-data.js. - Do not introduce Node, npm, React, Vite, databases, local servers, or cloud services into generated card projects.
- Do not overwrite existing card libraries or
data/review-state.jsonunless the user explicitly asks to rebuild them. - If target project files already exist, copy only missing frontend files and append or update the requested card library.
- Preserve all files under
data/libraries/anddata/review-state.jsonwhen repairing old projects. - Browser feedback stored in
localStorageis only a temporary in-page interaction record; it does not write back to JSON. Persistent review state must be updated by Codex indata/review-state.json, then refreshed intodata/app-data.js. - Do not edit
data/app-data.jsas source data. Regenerate it from JSON withscripts/refresh_app_data.py. - Do not rely on memory or end-of-session summaries to persist review feedback. After each
忘记,模糊, or记得answer, immediately runscripts/update_review_state.pyfor that card. - Do not treat ordinary learning questions as card-project work unless the user asks for persistent cards, a local card library, spaced repetition, or a review session.
- End every initialization, generation, repair, or review response with a clickable absolute link to the target
index.html.
Workflow Decision
Choose one workflow:
- Initialize or repair project: user asks to create a memory-card frontend, local review app, card project, or gives a folder where cards should live.
- Generate cards from sources: user asks to generate memory cards, flashcards, Q&A cards, cloze cards, choice cards, or review cards from files, URLs, web pages, pasted text, or other readable sources.
- Start today's review: user asks to begin memory, review due cards, study cards, or start card memory for an existing local card project.
If generating cards for a folder that is not initialized, initialize first.
Target Folder
- Use the folder explicitly named by the user.
- If the user gives only a source file, prefer that file's parent folder unless another card project folder is already established in the conversation.
- If no safe target folder can be inferred, ask one concise question for the folder path before writing files.
- Treat a folder as initialized when
index.html,app.js,styles.css, anddata/libraries/exist.
Initialize Or Repair Project
- Confirm or infer the target folder.
- Create the target folder if needed.
- Copy missing files from
assets/static-card-project/. - If
index.htmlorapp.jsis an older generated template that does not loaddata/app-data.js, replace those frontend runtime files with the current template. - Preserve existing user libraries and review state unless replacement was explicitly requested.
- Run
scripts/refresh_app_data.py. - Run
scripts/validate_project.py. - Report created files, repaired frontend files, preserved data files, and the absolute
index.htmllink.
Generate Cards From Sources
- Read
references/card-schema.md. - Resolve and initialize the target project folder if needed.
- Extract meaningful source content using local tools. Any file type, URL, web page, pasted text, or other source is acceptable when Codex can extract grounded text or structured data.
- Generate atomic cards that test one idea each:
qafor concepts, reasons, steps, tradeoffs, principles, examples, and constraints.clozefor key terms, short facts, numbers, formulas, named conclusions, and compact definitions.choicefor confusable concepts, classifications, best practices, and decision points.
- Enforce quality and deduplication:
- Do not create duplicate cards for the same test point.
- Use the same source excerpt for at most 1-2 cards unless the excerpt contains clearly separate ideas.
- Keep cloze blanks short; do not hide long clauses or entire sentences.
- Choice distractors must be plausible neighboring concepts grounded in the source, not invented trivia.
- Do not create trick questions.
- Include a short source note or source excerpt for each card.
- Write or append to
data/libraries/.json. - Add default review state entries for every new card in
data/review-state.json. - Run
scripts/refresh_app_data.py. - Run
scripts/validate_project.py. - Report library name, card count, card type counts, validation result, and the absolute
index.htmllink.
Start Today's Review
- Read
references/card-schema.md. - Locate the target project folder from the user's path or conversation context. If it cannot be inferred, ask for the folder path.
- Load all
data/libraries/*.jsonfiles anddata/review-state.json. - Select at most 10 cards in this priority order unless the user asks for more:
- Cards with
nextReviewAtat or before today. - New cards without review state.
- Recently created cards if too few due cards exist.
- Review interactively:
- For
qa, show the question first, wait for the user's answer, then reveal or grade. - For
cloze, show the sentence with blanks first, then reveal the answers. - For
choice, show options and ask the user to choose before revealing the explanation.
- After each card, ask the user to mark
忘记,模糊, or记得. - Immediately persist that feedback before showing the next card:
- Run
scripts/update_review_state.py rememberedfor记得. - Run
scripts/update_review_state.py fuzzyfor模糊. - Run
scripts/update_review_state.py forgottenfor忘记.
- Confirm the command succeeded. If it fails, stop the review and report the persistence error instead of continuing.
- Run
scripts/validate_project.pyat the end of the review session. - End with progress, validation result, and the absolute frontend link.
Frontend Assets
- The browser frontend loads
data/app-data.jsfirst because local JSON fetch commonly fails underfile://. - JSON files are the source of truth.
data/app-data.jsis a generated browser snapshot. - The browser does not parse user documents and does not persist review feedback back to JSON.
- Preserve the frontend behavior invariants documented in
references/frontend-behavior.mdwhen editingindex.html,styles.css, orapp.js.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: wuA-zs
- Source: wuA-zs/memory-card-studio
- License: MIT
- Homepage: https://skills.sh/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.