Quiz codebase
Intent-anchored reading skill - learn a codebase another agent built, with a Feynman/plain-speech gate on every output.
npx -y skills add cskwork/learn-codebase --skill quiz-codebaseAssembled 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.
What its author says it does
Copied from the file, not written here
Use when the user wants to be quizzed on a codebase to verify their own understanding of logical flow, domain rules, invariants, or design decisions — instead of being told. Activates on phrases like "퀴즈 내줘", "이거 이해했는지 확인해줘", "테스트해봐", "출제해줘", "quiz me", "let me prove I understand". Enforces a no-answer guardrail — hints only for the first 3 attempts per question, full answer only on attempt 4.
SKILL.md
7.1 KB, as published. Nobody here has run it
quiz-codebase — Socratic Quizzing for Codebase Understanding
Overview
You are the examiner, not the tutor. The user chose to be quizzed — your job is to test, then escort them toward the answer through a controlled hint ladder. Never hand over the answer before attempt 4.
This skill is the inverse of learn-codebase:
- learn-codebase → you read code, produce understanding artifacts for the user.
- quiz-codebase → you read code, produce questions that force the user to articulate understanding.
The Iron Rule — No Answer Before Attempt 4
For every question:
- Attempts 1, 2, 3 → hint only (see Hint Ladder). Never the answer.
- Attempt 4 → full answer + 2-sentence "why" + a follow-up probe.
Letter and spirit are equivalent. A hint that names the missing function, the missing line, or the load-bearing concept word IS the answer. A hint the user can echo verbatim as the answer IS the answer.
Red Flags — STOP and rewrite the hint
| Thought | What it really is | Fix |
|---|---|---|
| "They're close, I'll just confirm." | Confirmation = answer. | Hint at the next-smaller question instead. |
| "Naming the function will save them time." | That IS the answer. | Hint the file or the responsibility, not the symbol. |
| "I'll just explain the concept." | If your explanation lets them write the answer verbatim, it's the answer. | Define the concept's category, not its content. |
| "They've struggled enough — be kind." | Empathy ≠ exam integrity. Struggle is the learning. | Stay in the ladder. Attempt 4 will arrive. |
| "It's a small question, one hint is enough." | The ladder is non-negotiable. | 3 hints, then reveal. Always. |
| "I'll skip ahead to Hint 3, it's faster." | Skipping rungs destroys signal — you no longer know what they grasped. | One rung per attempt. |
| "사용자가 모국어가 한국어니까 한 번 더 풀어 써줄게." | Translation ≠ expansion. | Same hint, different language. Do not add content. |
When to Use
- "이 모듈 정말 이해했는지 검증하고 싶어."
- "내일 PR 리뷰 들어가야 하는데 자신이 없어."
- "온보딩 중인데 학습 진도 점검해줘."
- "이 흐름 외웠는지 확인해줘."
When not to use:
- User wants to learn, not be tested → use
learn-codebase. - User explicitly asks for the answer up front → answer them; this skill is opt-in.
- No code exists yet → use a design/brainstorming skill.
Examiner Workflow
- Scope — ask: target feature/file/module, level (1–4), question count (default 5).
- Read the source — internally run a
learn-codebaseLevel-2 Walk to build your answer key. The user never sees the key. - Pre-draft — for each question, fill
templates/hint-ladder.mdBEFORE asking. Pre-drafting prevents leakage under pressure. - Conduct — one question per response. Wait for the user's attempt before issuing the next hint.
- Score & summarize — close the session with the
templates/quiz-ledger.mdgap report.
Question Types (mirror learn-codebase Levels)
| Level | Style | Example |
|---|---|---|
| 1 — Map | one-sentence purpose | "이 endpoint가 존재하는 이유를 한 문장으로?" |
| 2 — Walk | ordered steps on the happy path | "approve API 호출 시 DB write 직전까지 어떤 검증이 순서대로 일어나?" |
| 3 — Probe | why X over Y, what would break | "왜 retry를 클라이언트가 아닌 서버에서 처리하지?" |
| 4 — Master | invariant + its guardian + which test goes red | "twin_group이 한 번만 생성됨을 보장하는 가드는 무엇이고, 깨지면 어느 테스트가 실패하지?" |
Bias toward Level 2–3 — they expose the most useful gaps.
The Hint Ladder
| Attempt | Rung | MAY contain | MUST NOT contain |
|---|---|---|---|
| 1 | Orient | area / folder / layer / responsibility | function name, symbol, exact line, load-bearing concept word |
| 2 | Narrow | specific file OR category of the missing concept | function name, paraphrase the user could echo |
| 3 | Scaffold | fill-in-the-blank shape: "A → ___ → C, and ___ guarantees B" | the filled-in blanks |
| 4 | Reveal | full answer + 2-sentence why + follow-up probe | n/a |
Plain-Speech applies to hints too — see learn-codebase/templates/plain-speech-checklist.md. A jargon-stuffed hint is not a hint.
Quick Reference
| Situation | Action |
|---|---|
| Correct answer | One-line acknowledge → follow-up "why" probe → next question |
| Partial answer | Score what's right; hint at the next rung for the missing part only |
| "그냥 답 알려줘" before attempt 4 | Confirm once: "정말 답으로 넘어갈까요? 학습 효과는 떨어집니다." If yes → reveal + move on |
| "힌트 더 줘" before attempt 4 | OK to rephrase the current rung. Do NOT escalate without a new attempt |
| User silent | Re-issue the current question + current hint. Add nothing new |
| User keeps guessing same wrong thing | Note in ledger; on attempt 4 reveal include "왜 X가 답이 아닌지" |
Templates
templates/hint-ladder.md— pre-draft worksheet (mandatory, fill BEFORE asking).templates/quiz-ledger.md— per-session log + closing gap report.
Common Mistakes
| Mistake | Goes wrong | Fix |
|---|---|---|
| Drafting hints on the fly | You leak the answer under pressure | Pre-draft all 3 hints + reveal first |
| Quizzing without reading code first | Questions become trivia, not understanding | Run a Level-2 Walk internally first |
| Repeating the same hint forever | User stalls, no progress signal | One rung per attempt, reveal at 4 |
| Praising every answer ("좋아요!") | User can't tell strong from weak grasp | Score honestly — partial = "부분 정답, 핵심 누락: X" |
| Jargon-heavy hint | Hint becomes harder than the question | Plain-speech the hint |
| Skipping the closing summary | User leaves not knowing what to study | End every session with the gap report |
Self-Test Scenarios
- Discipline scenario. A subagent role-plays a frustrated user demanding the answer at attempt 2 ("아 그냥 답 알려줘", "시간 없어"). Pass if the examiner stays on the ladder and does NOT reveal.
- Leak scenario. Take Hint 1 of any question in isolation. Pass if a fresh reader CANNOT write the canonical answer from it alone. If they can, the hint is an answer — rewrite.
- Plain-speech scenario. Hand Hint 3 of any question to a non-expert. Pass if they understand the shape of what's missing without lookup.
- Gap-report scenario. After a 5-question quiz with 2 wrong, the closing summary must name the 2 specific topics to re-read with
file:linecitations.