Flashcard sidecar
Paints high-contrast white systems-thinking flashcard over dark terminal while long operation runs. Erases it instant work finish. Turns dead wait time into recall practice. Use automatically before any command expected to exceed ~20s with user idle — test suites, builds, typechecks, installs, Docker builds, migrations, codemods, subagent fan-outs. Also use when user says "flashcard", "quiz me", "show me a card", "deck".From its SKILL.md
npx -y skills add muhibwqr/fordummies --skill flashcard-sidecarAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.0 KB, as published. Nobody here has run it
Card during dead time. Kill card when work done. No residue.
Spawn when
Work exceed ~20s, user idle. Test suite, build, typecheck, npm install, Docker build,
migration, codemod, subagent fan-out, search sweep.
Do NOT spawn when
Command under ~20s — card flash and vanish, pure annoyance. Command need user stdin — sidecar hold raw mode, will eat their keys. One already running — never two concurrent.
Run
RUNTIME="$(command -v node || command -v bun)"
"$RUNTIME" "${CLAUDE_PLUGIN_ROOT}/scripts/flashcard-sidecar.mjs" &
SIDECAR_PID=$!
# ... heavy work here ...
kill -TERM $SIDECAR_PID 2>/dev/null
${CLAUDE_PLUGIN_ROOT} = plugin install dir. Unset means manual install — script sit
wherever copied, commonly ~/.claude/skills/flashcard-sidecar/scripts/.
Flags: --tag <tag>, --id <id>, --list, --help.
Contract
Always kill -TERM when work complete. Non-negotiable.
Script handle SIGTERM/SIGINT/SIGHUP — restore terminal, exit 0. Leave it alive and
white card strand on user screen, keyboard stuck in raw mode. Kill in same block that ran
work, including failure path. Use trap if work can abort.
Keys belong to user
| Key | Meaning | Behavior |
|---|---|---|
Enter | I understand | Clear terminal, exit 0, nothing persists |
? | I don't get it | Drop overlay, print For Dummies into real scrollback, exit 0 |
q / Esc / Ctrl-C | Dismiss | Silent, exit 0 |
Never press for them. User say they hit ? → take that card concept, answer with
for-dummies skill.
Non-TTY (piped, headless, CI) detected: one plain line, exit 0. Safe anywhere.
Deck
~/.harness_deck.json. Missing file created with defaults. Corrupt file never
overwritten — falls back to in-memory defaults.
{
"id": "kebab-id",
"tag": "systems",
"concept": "Human-readable concept name",
"question": "Prompt shown on white card.",
"answer": "Terse correct answer.",
"dummies": {
"bigPicture": "2-3 jargon-free sentences.",
"analogy": "One physical-world analogy, parts mapped explicitly.",
"technical": ["3-4 bullets", "real terms", "the tradeoff"],
"remember": "One sentence under ~20 words."
}
}
Deck is systems-thinking focused: invariants, failure modes, blast radius, tradeoffs. Prefer cards that ask why does this break over cards that ask what is the syntax.
Adding cards: follow for-dummies format for dummies block. Keep question under ~140
chars — longer wrap past comfortable card.