Dr. Claw
아이디어부터 논문까지 AI 에이전트와 함께하는 풀스택 연구 작업공간
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Grade-wise puzzles and games for children in Grades 1–5. One codebase, three parts:
| Path | What it is |
|---|---|
apps/web | Marketing homepage (React + Vite) |
apps/mobile | The app — Expo / React Native for iOS, Android and web |
packages/content | Shared puzzle bank (JSON), curriculum, puzzle types and design tokens |
See ROADMAP.md for the phase plan. Current status: Grades 1–5 are playable in all eight subjects — Maths, English, Science, Coding, Robotics, Puzzles, Thinking Skills (2,360 puzzles) and Practice & Tests — with adaptive difficulty.
npm install # once, at the repo root (npm workspaces)
npm run mobile # Expo dev server — press w for web, or scan the QR code with Expo Go
npm run web # homepage dev server
npm run validate-content # check every puzzle in packages/content/puzzles
npm run typecheck
vercel.json at the repo root builds both parts into one site:
/ is the homepage (apps/web)./app is the app's web version (apps/mobile, exported by Expo with base path /app).npm run build does the same locally; the output goes to apps/web/dist. In Vercel project settings, leave Root Directory empty (repo root) and the framework preset on Other. vercel.json sets the build command and output directory.
Six topics, 20 puzzles each across 3 levels — 120 puzzles:
| Topic | Puzzle type | Levels |
|---|---|---|
| Counting | count-objects | 1–5 · 6–10 · 11–20 |
| Adding | arithmetic | sums to 5 with pictures · to 10 with pictures · to 10, numbers only |
| Taking away | arithmetic | within 5 · within 10 · numbers only |
| Shapes | shape-match | circle/square/triangle · + star/diamond · square vs rectangle |
| More or fewer | compare | big gap · gap of 2 · gap of 1 |
| Patterns | pattern | AB · AAB/ABB · ABC/ABBC |
Four topics, 20 puzzles each across 3 levels — 80 puzzles, built from the word bank in packages/content/src/words.ts:
| Topic | Puzzle type | Levels |
|---|---|---|
| Big & small letters | letter-match | very different letters · mixed · look-alikes (b d p q) |
| First letters | first-letter | 3 very different letters · mixed · 4 options with look-alikes |
| Picture words | picture-word | different first letters · same first letter (moon/mouse/milk) · missing letter (v_n) |
| Rhyming words | rhyme | 3 options · with a same-start decoy (cat → cake) · 4 options |
Rhymes are grouped by sound, not spelling (bear/chair, bee/key), in RHYME_FAMILIES. A missing-letter puzzle never offers a wrong letter that spells another real word (c_t: no "o", because "cot" is a word). The content checker enforces both. No puzzle depends on hearing an isolated letter sound, because the device voice can't say "buh"; recorded clips can add that later.
Five topics, 20 puzzles each across 3 levels — 100 puzzles, built from the picture categories in packages/content/src/categories.ts (farm, wild and sea animals; fruit; vegetables; vehicles; clothes; school things; weather).
| Subject | Topic | Puzzle type | Levels | Star for… |
|---|---|---|---|---|
| Puzzles | Odd one out | odd-one-out | very different (3 vegetables + a lion) · same family (sea animals + a giraffe) · 5 items | right on the first tap |
| Puzzles | Picture crossword | crossword | two 3-letter words, 2 blanks · up to 4 letters, 3 blanks · 4–5 letters, 4 blanks incl. the shared square | no wrong letters |
| Thinking | Sorting | sort-into-groups | 2 groups, 4 items · 2 groups, 6 items · 3 animal or thing groups | no wrong groups |
| Thinking | Memory pairs | memory-match | 3 pairs · 4 pairs · 6 pairs | no more wrong guesses than pairs |
| Thinking | Mazes | maze | 3×3 · 4×4 · 5×5 | at most 2 bumps into walls |
Crosswords, sorting, memory and mazes take several taps, so each has its own player in apps/mobile/src/components/puzzles/interactive.tsx; single-tap types use renderers.tsx. The content checker makes sure:
Tap a crossword clue picture or a sorting item to hear its name. Mazes work with the arrow buttons, by tapping the next square, or with the keyboard arrow keys on the web.
17 topics, 20 puzzles each across 3 levels — 340 puzzles.
| Subject | Topic | Puzzle type | Levels |
|---|---|---|---|
| Maths | Tens and ones | place-value | blocks to 50 · to 99 · "How many tens/ones in 47?" |
| Maths | Adding to 100 | arithmetic | 2-digit + 1-digit · 2-digit + 2-digit · with carrying |
| Maths | Taking away to 100 | arithmetic | − 1-digit · 2-digit − 2-digit · with borrowing |
| Maths | Skip counting | number-pattern | by 2s/5s/10s, last missing · by 2–10, middle missing · counting back |
| Maths | Equal groups | arithmetic (×) | groups of pictures up to 5 × 3 · up to 5 × 5 · ×2, ×5, ×10 facts |
| Maths | Time | clock | o'clock · half past · quarter past / quarter to |
| Maths | Money | money | ₹1/₹2/₹5 coins to ₹10 · coins and ₹10/₹20 notes to ₹50 · with ₹50 notes to ₹100 |
| English | One and many | fill-blank (plural) | add -s · add -es · mice, feet, teeth, children, sheep |
| English | Opposites | fill-blank (opposite) | big/small… · heavy/light… · open/close, inside/outside… |
| English | a or an, is or are | fill-blank (article, is-are) | a/an · is/are · mixed |
| English | Spell it | build (letters) | 3 letters · 4 letters · 5 letters + a spare |
| English | Make a sentence | build (words) | 3 words · 4–5 words · 5–6 words + a spare |
| Puzzles | Mini crossword | crossword | 2 words, 3 blanks · 3 words, 4 blanks · 3 words, 6 blanks |
| Puzzles | Picture sudoku | sudoku (4×4) | 3 blanks · 6 blanks · 9 blanks |
| Thinking | What comes first? | order-steps | 2–3 steps · 4 steps · 4–5 steps |
Content lives in src/words2.ts (plurals, opposites, a/an nouns, is/are subjects, sentences), src/thinking2.ts (sequences, riddles), src/time.ts and src/sudoku.ts. The checker recomputes every answer:
17 topics, 20 puzzles each across 3 levels — 340 puzzles.
| Subject | Topic | Puzzle type | Levels |
|---|---|---|---|
| Maths | Numbers to 1000 | place-value (hundreds), compare-numbers | read the blocks · "How many hundreds/tens?" · <, =, > |
| Maths | Add and subtract | arithmetic | 3-digit, no carrying · carrying in one place · in two places |
| Maths | Times tables | arithmetic × | tables 2–5 · 6–9 · missing factor (? × 5 = 45) |
| Maths | Sharing equally | arithmetic ÷ | with pictures · numbers · word problems |
| Maths | Fractions | fraction | halves and quarters · thirds · "Which picture shows ¾?" |
| Maths | Time and calendar | clock, calendar | 5-minute times · days of the week · months and days in a month |
| Maths | Money and length | money, measure | totals with ₹100/₹200 · change · ruler in cm |
| English | Naming, doing, describing | word-class | nouns · verbs · adjectives |
| English | Past tense | fill-blank (past) | -ed · cried, stopped, danced · went, ate, swam |
| English | Synonyms and homophones | fill-blank (synonym, homophone) | same meaning · there/their, to/two/too · mixed |
| English | Spelling bee | build | 6 letters · 7 · 8 + a spare |
| English | Read and answer | passage | who · what · why |
| Puzzles | Clue crossword | crossword (text clues) | 3 words · 4 words · 4 words, 8 blanks |
| Puzzles | Sudoku 6×6 | sudoku | 8 blanks · 14 · 20 |
| Thinking | Logic grids | logic-grid | 2×2 · 3×3 with "has" clues · 3×3 with "does not have" clues |
Content lives in:
src/words3.ts: tagged sentences, past tense, synonyms, homophones, spelling words, passages.src/thinking3.ts: crossword clues, logic-grid sets, analogies.src/calendar.ts, src/crossword.ts (layout shared with Grade 2), src/sudoku.ts (4×4 and 6×6) and src/logic.ts.The checker recomputes every answer:
17 topics, 20 puzzles each across 3 levels — 340 puzzles.
| Subject | Topic | Puzzle type | Levels |
|---|---|---|---|
| Maths | Large numbers | place-value (thousands, expanded), compare-numbers | thousands/hundreds · 3000 + 300 + 6 · compare 4-digit |
| Maths | Multiply and divide | arithmetic | 2-digit × 1-digit · 3-digit ÷ 1-digit · 2-digit × 2-digit |
| Maths | Factors and multiples | pick-all | multiples · factors · common multiples |
| Maths | Fractions | fraction-op | equivalent · bigger · add like fractions |
| Maths | Decimals | decimal | ₹ to paise · tenths on a bar · compare (0.3 vs 0.13) |
| Maths | Time | clock, time-calc | to the minute · 24-hour ↔ am/pm · how long |
| Maths | Area and perimeter | grid-shape | count squares · count edges · rectangle sides |
| English | Pronouns and adverbs | word-class | pronouns · adverbs · mixed |
| English | Tenses | fill-blank (future, continuous) | will play · is playing · mixed |
| English | Prefixes and suffixes | fill-blank (affix) | un-/re-/dis- · -ful/-less/-er · mixed |
| English | Word ladders | word-ladder | 2 steps · 3 steps · 3–4 steps |
| English | Read and think | passage | what · why · word meaning in context |
| Puzzles | Big crossword | crossword (text clues) | 4 words · 5 words · 5 words, 11 blanks |
| Puzzles | Hard sudoku | sudoku (6×6) | 18 blanks · 22 · 24 |
| Thinking | Logic grids | logic-grid | 3×3 · 3×3 "not" clues · 4×4 |
| Thinking | Number patterns | (rules) |
Content lives in src/maths4.ts, src/words4.ts and src/thinking4.ts. The checker:
17 topics, 20 puzzles each across 3 levels — 340 puzzles.
| Subject | Topic | Puzzle type | Levels |
|---|---|---|---|
| Maths | Numbers to 1 lakh | place-value (ten thousands), compare-numbers | read digits · expanded form · compare 5-digit |
| Maths | Big × and ÷ | arithmetic (with remainder) | 3-digit × 2-digit · 4-digit ÷ 1-digit · long division with remainder |
| Maths | Fractions | fraction-op | simplify · fraction of a number · add unlike fractions |
| Maths | Decimals | decimal | hundredths · add/subtract money · round to the nearest whole |
| Maths | Percentages | percent | shaded 10×10 grid · % of a number · sale price |
| Maths | Angles and area | angle, grid-shape | name the angle · measure it · triangle area |
| Maths | Bar charts | chart | read a bar · difference · total, most, least |
| English | Joining and position words | fill-blank | and/but/or · because/so · prepositions |
| English | Passive and reported speech | fill-blank, build | passive · reported speech · quotation marks |
| English | Idioms and proverbs | idiom | idioms · proverbs · idiom in a sentence |
| English | Tricky spellings | fill-blank, build | silent letters · -tion/-sion · commonly misspelt |
| English | Read and infer | passage | main idea · inference · best title |
| Puzzles | Crosswords | crossword (text clues) | 5 words · 6 words · 6 words, 13 blanks |
| Puzzles | Sum grids | sum-grid (3×3, digits 1–9) | 3 blanks · 5 · 7 |
| Thinking | Brain teasers | teaser |
Content lives in src/maths5.ts, src/words5.ts and src/thinking5.ts. The checker:
solve() where it has one.15 topics (3 per grade), 20 puzzles each across 3 levels — 300 puzzles.
| Grade | Topics |
|---|---|
| 1 | My body · Living and non-living · Animals around us |
| 2 | Plants · Food · Weather and seasons |
| 3 | Animal life (what animals eat) · Senses and body care · Air and water |
| 4 | Plants and food · Solids, liquids, gases and magnets · The water cycle |
| 5 | Body systems · Living world (food chains, habitats) · Earth and space |
New puzzle types:
label-diagram: a drawn body, plant or water cycle. Level 1 marks one part with "?"; level 2 numbers every part and asks for one by name or by its job.science-quiz: a picture and a question.true-false: a picture and a statement.sort-into-groups, with science groups such as living/non-living, floats/sinks, solid/liquid/gas and magnetic/non-magnetic.All content lives in src/science.ts and is arranged by scripts/generate-science.ts. The checker looks every question and fact up in the bank for its topic, checks each diagram answer against the part list (numbers, names and jobs), and keeps science sorting groups apart from the odd-one-out categories.
Each grade has a 10-question test for every subject with enough one-tap puzzles, plus a Mixed test:
How a test works:
The logic is in packages/content/src/tests.ts (testsFor, buildTest, scoreTest). npm test checks every grade's tests (level mix, no repeats, the right bank) and the scoring.
Optional. Without an account the app works exactly as before, with progress kept on the device.
What a signed-in parent gets:
packages/content/src/sync.ts).How it's built:
supabase/migrations/0001_parent_accounts.sql creates the children and progress tables.
delete_my_account() removes the parent and everything linked to them.apps/mobile/src/lib/supabase.ts and lib/progress.tsx handle sync, and the parent-settings UI is components/AccountCard.tsx./privacy.html.Done:
0001–0002).apps/mobile/.env, so accounts are switched on.Still to do in the Supabase dashboard:
Your QuickStep code is {{ .Token }}, so parents get a 6-digit code.https://quicklearning2.vercel.app.| Menu | Goes to |
|---|---|
| Home | top of the homepage |
| Learning | the subjects row; each subject tile opens that subject in the app |
| Games | the app's Puzzles for the chosen grade |
| Practice | the app's Practice & Tests for the chosen grade |
| Discover | the articles section |
| For Parents | a section on accounts, test reports, adaptive levels and privacy, with a link to parent settings |
apps/web/public/articles/ (index at /articles/), sharing article.css:
10 topics (2 per grade), 20 puzzles each across 3 levels — 200 puzzles. There's no typing: children build programs from blocks, press ▶ Run and watch the robot follow them.
| Grade | Topics |
|---|---|
| 1 | Robot steps (arrow sequences) · Fix the program (find the wrong arrow) |
| 2 | Coin collector (longer programs, collect every coin) · Debugging |
| 3 | Loops (repeat blocks within a block limit) · Read the code (count the loops) |
| 4 | Turn and move (forward / turn left / turn right) · If and else (trace a program) |
| 5 | Functions (build with an F block) · Variables (trace a program) |
code-grid (interactive): blocks, repeat counts, block limit, debug mode.code-trace (one tap): the program is shown Scratch-style and the question asks for a variable's value or a count.packages/content/src/coding.ts is shared by the app and the checker:
10 topics (2 per grade), 20 puzzles each across 3 levels — 200 puzzles.
| Grade | Topics |
|---|---|
| 1 | Robots around us · Parts of a robot (labelled robot diagram) |
| 2 | Robot senses (cameras, microphones, touch and light sensors) · Parcel robot (program a pickup) |
| 3 | Power and motors (batteries, electricity safety) · Delivery robot (loops to save battery) |
| 4 | Circuits (“Will the bulb light up?”) · Sensor programs (if the distance sensor says…) |
| 5 | Real robots (Pragyan, Vyommitra, Mars rovers, AI) · Rover mission (turn, drive, collect samples) |
circuit type: battery, one or two bulbs, a switch, a broken wire, or a gap closed by an object that may conduct. The checker recomputes the answer with bulbLights().packages/content/src/robotics.ts.npm run build ends with apps/web/scripts/seo.mjs, which:
/class-1/ … /class-5/. Each lists every topic in every subject with links into the app, plus structured data (Course and BreadcrumbList);__SITE_URL__) in canonical links, Open Graph/Twitter tags and structured data on the homepage, articles and privacy page;sitemap.xml and robots.txt. The app at /app/ is noindex and not crawled, since its screens are for playing.The share image is apps/web/public/og-image.png (1200×630).
.in too if you like.www.yourdomain.com and yourdomain.com, and make one redirect to the other. Add the DNS records Vercel shows at your registrar: usually an A record for the bare domain and a CNAME for www.SITE_URL=https://www.yourdomain.com and redeploy. Every canonical link, the sitemap and the share tags switch over.GOOGLE_SITE_VERIFICATION in Vercel to add the meta tag), then submit https://www.yourdomain.com/sitemap.xml.A session is 10 puzzles. It starts at the easiest level that still has unsolved puzzles, moves up a level after 3 first-try answers in a row, and down a level after 2 misses in a row. Within a level, unsolved puzzles come before replays. The rules are in packages/content/src/adaptive.ts, and npm test covers them.
How play works: Each question is read aloud (with a 🔊 button to repeat it). A wrong pick wiggles and the child can try again. A star is earned only for a right answer on the first try. Stars, solved puzzles and the daily streak are saved on the device. Parent settings (progress, sound, change grade, reset) are behind a parent gate: a 2-digit × 2-digit question.
Every question is read aloud in Indian English.
apps/mobile/src/lib/voice.ts).npm run voice -w packages/content records one clip for every puzzle prompt and fixed phrase with Google Cloud Text-to-Speech (en-IN-Neural2-A). It needs GOOGLE_TTS_API_KEY. Clips go to apps/mobile/assets/voice/ and are listed in src/lib/voice-manifest.ts. The app plays a clip when one exists and uses the device voice for anything else. Re-run it after adding puzzles; only new lines are recorded. Use --sample 5 to audition a few clips first, and --voice / --rate / --pitch to change the voice.packages/content/src/voice.ts, so they get clips too. npm test checks the voice picker, speech rules, adaptive difficulty and the sudoku, logic-grid and magic-square solvers.Puzzles are data, not code. Each record in packages/content/puzzles/**.json looks like:
{ "id": "g1-addition-03", "grade": 1, "subject": "maths", "topic": "g1-addition", "difficulty": 1,
"prompt": "What is 2 plus 1?", "type": "arithmetic",
"payload": { "a": 2, "op": "+", "b": 1, "item": "🎈" }, "options": [1, 3, 4], "answer": 3 }
npm run validate-content. It checks ids are unique, the answer is one of the options, and the answer is actually correct (the sum adds up, the count matches, the pattern continues).packages/content/scripts/generate-g1-maths.ts made the first Grade 1 bank. Running it again overwrites puzzles/g1-maths/.src/types.ts and the validator, then add one renderer entry in apps/mobile/src/components/puzzles/renderers.tsx.TOPICS in src/curriculum.ts and import its JSON in src/index.ts. Unlock a subject or grade in AVAILABLE.| Pick grade | Topics | Adding | Patterns | Result |
|---|---|---|---|---|
| English topics | Picture words | Missing letter | First letters | Rhymes |
|---|---|---|---|---|
| Odd one out | Crossword | Sorting | Memory | Maze |
|---|---|---|---|---|
| Grades | Tens and ones | Time | Money | Equal groups |
|---|---|---|---|---|
| One and many | Spell it | Make a sentence | Mini crossword | Sudoku |
|---|---|---|---|---|
| What comes first? | Who am I? | Bigger maze |
|---|---|---|
| Subjects | Numbers | Fractions | Ruler | Sharing | Reading |
|---|---|---|---|---|---|
| Word classes | Clue crossword | Sudoku 6×6 | Logic grid | Analogy | Magic square |
|---|---|---|---|---|---|
| Subjects | Expanded form | Fractions | Decimals | Time | Area | Factors |
|---|---|---|---|---|---|---|
| Tenses | Word ladder | Reading | Big crossword | Logic grid 4×4 | Codes | Patterns |
|---|---|---|---|---|---|---|
| Thinking topics | Percent | Angles | Bar chart | Fractions | Idioms | Passive |
|---|---|---|---|---|---|---|
| Crossword | Sum grid | Brain teaser | Series | Codes |
|---|---|---|---|---|
| Topics | Label the part | Numbered diagram | True or false | Quiz | Sorting |
|---|---|---|---|---|---|
| Tests | One try | Report | Parents |
|---|---|---|---|
| Sign in | Children | Who's playing? |
|---|---|---|
| Debugging | Loops | Turn and move | Read the code |
|---|---|---|---|
| Robot parts | Circuits | Rover mission |
|---|---|---|
| Thinking |
| Who am I? |
riddle |
| 2 clues, very different pictures · 3 clues, look-alikes · 4 look-alikes |
| Thinking | Bigger mazes | maze | 5×5 · 6×6 · 7×7 |
| Thinking | Analogies | analogy | pictures · words · harder words |
| Thinking | Magic squares | magic-square | 2 blanks · 4 · 6 |
number-pattern| doubling · growing steps · squares |
| Thinking | Secret codes | cipher | A=1 codes · shift codes · write in code |
| 1-step · 2-step · classic teasers |
| Thinking | Series and analogies | analogy, number-pattern | 2 : 4 :: 5 : ? · alternating steps · Fibonacci-like |
| Thinking | Logic and codes | logic-grid, cipher | 4×4 grids · A ↔ Z codes · write in code |