ClaudeMods
☰
KO
● 0 명 접속 중 · 조회 0 회
후원프로젝트 제출
GitHub 저장소 · 작성자 DannyMac180

quiz-after

Claude가 변경이 있는 작업을 끝내면 프롬프트 위에 작은 퀴즈가 나타납니다. 방금 만든 것에 관한 두세 가지 질문이 나오며, 각 질문의 버튼으로 답과 이유를 확인할 수 있습니다. 파일 이름을 외웠는지가 아니라 변경 사항을 이해했는지를 확인합니다. **Save to deck**을 누르면 질문이 explain-this 덱의 간격 반복 카드가 됩니다.

DannyMac180@DannyMac180

DannyMac180/skills/tree/main/modsmith/templates/quiz-after

번역 완료

이 mod 소개

quiz-after

Claude가 변경이 있는 작업을 끝내면 프롬프트 위에 작은 퀴즈가 나타납니다. 방금 만든 것에 관한 두세 가지 질문이 나오며, 각 질문의 버튼으로 답과 이유를 확인할 수 있습니다. 파일 이름을 외웠는지가 아니라 변경 사항을 이해했는지를 확인합니다. Save to deck을 누르면 질문이 explain-this 덱의 간격 반복 카드가 됩니다.

퀴즈 · 백오프가 있는 재시도 큐 · fork: 48.2k 캐시됨, 350개 신규, 520개 출력
1. 큐는 왜 고정된 속도로 재시도하지 않고 백오프하나요?
   [ 답 1 보기 ]
2. 마지막 재시도 후 작업이 실패하면 어떻게 되나요?
   a) 버려집니다
   b) 데드 레터 목록으로 갑니다
   c) 영원히 재시도합니다
   → 데드 레터 목록으로 갑니다. worker는 작업을 조용히 버리지 않습니다.
[ Save to deck ]  [ Dismiss ]

판단 방식

  1. 턴이 실행되는 동안 주 대화에서 읽기 전용이 아닌 도구 호출(편집, 쓰기, 내용을 바꾸는 Bash 명령, subagent 실행)을 셉니다. 읽기, 검색, 일반 채팅, 기록 도구(TodoWrite, task 도구, plan mode, AskUserQuestion, ToolSearch)는 세지 않습니다.
  2. 주 턴이 정상적으로 끝나고 그 수가 0보다 크면 **$.model.fork**를 한 번 호출합니다. fork는 주 스레드가 마지막으로 보낸 시점의 대화를 보고 먼저 작업이 정말 끝났는지 답합니다.
  3. 끝나지 않았으면 아무것도 그리지 않습니다. 끝났으면 질문이 담긴 JSON을 반환하고, 질문을 정리한 뒤(잘못된 필드 제거, 최대 세 개, 답이 선택지 중 하나일 때만 객관식)그립니다.

fork는 턴이 끝난 뒤 타이머로 실행되므로 턴을 막지 않습니다. 답하기 전에 새 프롬프트를 보내면 해당 퀴즈는 버려집니다.

비용

| 시점 | 모델 호출 | Tokens | | --- | --- | --- | | 채팅만 한 턴 또는 읽기 전용 턴, 중단된 턴, subagent 턴 | 없음 | 0 | | /quiz off | 없음 | 0 | | 무언가를 바꾼 턴, 퀴즈 켜짐, 작업 완료 | fork 1회 | 전체 트랜스크립트를 입력으로 사용하며 대부분 프롬프트 캐시에서 제공됩니다. 질문용 신규 입력 token 약 350개와 출력 token 약 200~700개가 더해집니다 | | 같지만 fork가 작업 미완료로 판단 | fork 1회 | 같은 캐시된 트랜스크립트와 신규 입력 token 약 350개, 출력 token 약 10개이며 아무것도 그리지 않습니다 | | /quiz now | fork 1회 | 완료된 작업과 같음 | | 답 보기, Dismiss, Save to deck | 없음 | 0 |

fork는 주 스레드의 프롬프트 캐시를 재사용합니다. 캐시 항목이 아직 따뜻한 상태라면(방금 턴이 끝났으므로 그렇습니다)트랜스크립트는 전체 입력 가격이 아니라 캐시 읽기 가격으로 청구됩니다. 퀴즈 헤더에는 각 fork의 실제 분할인 cached / new / out이 표시되어 지불한 양을 확인할 수 있습니다. cached가 0에 가까우면 캐시가 만료됐거나 모델이 바뀐 것이며, 해당 fork는 트랜스크립트 전체 가격을 냅니다.

위 token 수치는 프롬프트 길이로 추정한 값이지 측정값이 아닙니다. 실제 값은 헤더에 표시됩니다. 캐시 읽기가 큰 비용입니다. 100k token 세션에서는 완료 여부와 관계없이 조건을 만족한 턴마다 캐시 token 100k개를 읽습니다.

명령과 키

  • /quiz는 켜고 끕니다. 설정은 플러그인의 $.store에 보존되므로 다시 시작해도 남습니다. /quiz on과 /quiz off로 명시할 수 있습니다.
  • /quiz now는 작업 완료 여부 확인을 건너뛰고 지금까지의 작업에 대한 퀴즈를 요청합니다. mod가 꺼져 있어도 작동합니다.
  • 밴드에 초점을 두면(ctrl+x tab 또는 클릭)1, 2, 3으로 답을 보고 s로 덱에 저장하며 x로 닫습니다. 선언에는 빈 프롬프트에 숫자 하나만 입력하면 밴드 버튼을 누른다는 내용도 있습니다. 따라서 퀴즈가 표시된 동안 빈 프롬프트에 1을 입력하면 글자를 쓰는 대신 답 1을 봅니다(실제 테스트는 하지 않음).

덱에 저장(explain-this)

버튼을 누르면 질문마다 카드 하나를 $EXPLAIN_THIS_HOME/memory/cards.jsonl(기본값 ~/.explain-this/memory/)에 추가합니다. 형식은 explain-this/scripts/sm2.ts add가 쓰는 것과 같으며, 새 SM-2 상태(interval_days 0, ease 2.5, due today), transfer 질문의 type인 transfer 또는 그 외의 recall, 그리고 질문의 tag를 포함합니다. explain-this 복습은 자유 형식 답변을 여기에 대조해 채점하므로 답과 이유를 함께 저장합니다.

버튼을 누르지 않으면 아무것도 쓰지 않습니다. memory 폴더가 없으면 mod는 만들지 않고 토스트로 알립니다. explain-this를 한 번 실행해 덱을 준비합니다.

함께 사용하기

  • 프롬프트 위의 다른 밴드(예: token-weather): quiz-after는 자신의 퀴즈를 먼저 그리고 체인의 나머지(await next(e))를 그 아래에 그리므로 다른 mod를 가리지 않습니다. survey가 밴드를 사용하면 잠시 비켜납니다.
  • explain-this: 카드 덱을 공유하므로 explain-this review가 SM-2 일정에 따라 질문을 다시 보여 줍니다.
  • fork 기반의 다른 mod(next-steps supervisor, assumptions check): 각각 별도 fork이며 캐시 읽기 비용도 따로 냅니다. 여러 개를 실행한다면 세 번째를 추가하기 전에 cached 열을 확인하세요.
  • 모드 선택기: quiz-after에는 아직 자체 모드가 없습니다. 학습 모드가 전환할 스위치는 /quiz off입니다.

설치

claude plugin validate templates/quiz-after
claude --plugin-dir templates/quiz-after
claude plugin test templates/quiz-after   # parsing, card shape, gating and the band on terminal and desktop

폴더를 복사하고 이름을 바꾼 뒤 수정하세요. Claude Code 2.1.286 선언을 기반으로 만들었습니다.

설치

먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.

claude plugin marketplace add DannyMac180/skills
claude plugin install quiz-after
원문 / README

quiz-after

When Claude finishes a task that changed something, a small quiz appears above the prompt: two or three questions about what was just built, each with a button that reveals the answer and why. It checks that you understand the change, not that you remember file names. Press Save to deck and the questions become spaced-repetition cards in your explain-this deck.

Quiz · Retry queue with backoff · fork: 48.2k cached, 350 new, 520 out
1. Why does the queue back off instead of retrying at a fixed rate?
   [ Reveal answer 1 ]
2. What happens to a job that fails after the last retry?
   a) It is dropped
   b) It goes to the dead-letter list
   c) It retries forever
   → It goes to the dead-letter list The worker never drops work silently.
[ Save to deck ]  [ Dismiss ]

How it decides

  1. While a turn runs, it counts the main conversation's tool calls that were not read-only (an edit, a write, a Bash command that changes things, a subagent launch). Reads, searches, plain chat and bookkeeping tools (TodoWrite, the task tools, plan mode, AskUserQuestion, ToolSearch) count for nothing.
  2. When the main turn ends normally and that count is above zero, it makes one $.model.fork call. The fork sees the conversation as the main thread last sent it and first answers: is the task actually finished?
  3. Not finished: nothing is drawn. Finished: it returns JSON with the questions, which are cleaned up (bad fields dropped, at most three, multiple choice only when the answer is one of the choices) and drawn.

The fork runs after the turn has ended, on a timer, so it never holds up the turn. If you send a new prompt before it answers, that quiz is thrown away.

What it costs

| When | Model calls | Tokens | | --- | --- | --- | | Chat-only or read-only turn, aborted turn, subagent turn | none | 0 | | /quiz off | none | 0 | | A turn that changed something, quiz on, task finished | 1 fork | the whole transcript as input, served mostly from the prompt cache, plus about 350 new input tokens for the question and roughly 200 to 700 output tokens | | The same, but the fork judges the task unfinished | 1 fork | the same cached transcript and ~350 new input tokens, about 10 output tokens; nothing drawn | | /quiz now | 1 fork | as a finished task | | Reveal, Dismiss, Save to deck | none | 0 |

A fork reuses the main thread's prompt cache, so the transcript is billed at the cache-read rate rather than full input price, as long as the cache entry is still warm (it is: the turn just ended). The quiz header shows each fork's actual split, cached / new / out, so you can see what you paid. A cached number near zero means the cache had lapsed or the model changed, and that fork paid full price for the transcript.

The token figures above are estimates from the prompt's length, not measurements; the header's numbers are the real ones. The cached read is the big term: on a 100k-token session, every qualifying turn reads 100k cached tokens, finished or not.

Commands and keys

  • /quiz toggles it on or off. The setting is kept in the plugin's $.store, so it survives restarts. /quiz on and /quiz off set it explicitly.
  • /quiz now asks for a quiz about the work so far, skipping the "is it finished?" check. It works even while the mod is off.
  • With the band focused (ctrl+x tab, or a click): 1, 2, 3 reveal answers, s saves to the deck, x dismisses. The declarations also say a bare digit typed into an empty prompt presses a band Button, so while a quiz is up, 1 in an empty prompt reveals answer 1 instead of typing (not tried live).

Save to deck (explain-this)

The button appends one card per question to $EXPLAIN_THIS_HOME/memory/cards.jsonl (default ~/.explain-this/memory/), in the shape explain-this/scripts/sm2.ts add writes: a fresh SM-2 state (interval_days 0, ease 2.5, due today), type transfer for transfer questions and recall otherwise, and the question's tag. The answer and its reason are stored together because explain-this review grades free-text answers against them. Questions already in the deck are skipped.

Nothing is written unless you press the button. If the memory folder does not exist, the mod creates nothing and says so in a toast. Run explain-this once to set the deck up.

Composes with

  • Other bands above the prompt (for example token-weather): quiz-after draws its quiz and then whatever the rest of the chain draws (await next(e)) beneath it, so it never hides another mod. It steps aside while a survey holds the band.
  • explain-this: shares its card deck, so explain-this review brings the questions back on the SM-2 schedule.
  • Other fork-based mods (a next-steps supervisor, an assumptions check): each one is its own fork and pays its own cache read. If you run several, check the cached column before adding a third.
  • A mode selector: quiz-after has no mode of its own yet. /quiz off is the switch a "learning mode" would flip.

Install

claude plugin validate templates/quiz-after
claude --plugin-dir templates/quiz-after
claude plugin test templates/quiz-after   # parsing, card shape, gating and the band on terminal and desktop

Copy the folder and rename it before changing it. Built against Claude Code 2.1.286's declarations.

비슷한 프로젝트