Skip to content

Commit 3e97837

Browse files
dbejarano820claude
andcommitted
fix: correct concept count and align quiz-bank keys with concept-tree
Audited actual concept count in concept-tree.json — found 39 concepts, not the claimed 42. Added 3 missing concepts (typescript, testing, python) that existed in the quiz-bank but had no concept-tree entries. Renamed quiz-bank keys 'javascript'→'js-basics' and merged 'react' into 'react-components' to match concept-tree IDs exactly. - total_concepts: 42 in concept-tree.json is now accurate - All 17 quiz-bank keys now match concept-tree concept IDs - Black Belt threshold (28/42 = 67%) remains in the 60-70% target range - README category listings updated to reflect new concepts Closes DOJ-2432 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent b96a272 commit 3e97837

3 files changed

Lines changed: 32 additions & 13 deletions

File tree

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,12 +182,12 @@ code-sensei/
182182

183183
CodeSensei covers **42 concepts** across **9 categories**:
184184

185-
- **🧱 Fundamentals** — Variables, functions, loops, conditionals
185+
- **🧱 Fundamentals** — Variables, functions, loops, conditionals, Python
186186
- **🌐 Web Basics** — HTML, CSS, how browsers work
187-
- **⚡ JavaScript** — Core JS, async/await, imports, JSON
187+
- **⚡ JavaScript** — Core JS, async/await, imports, JSON, TypeScript
188188
- **💻 Terminal & Tools** — Command line, npm, git, env variables
189189
- **🎨 Frontend** — React, components, props, state, routing
190-
- **⚙️ Backend** — Servers, routes, middleware, REST APIs, auth
190+
- **⚙️ Backend** — Servers, routes, middleware, REST APIs, auth, testing
191191
- **🗄️ Databases** — SQL, schemas, ORMs, relationships
192192
- **🚀 Deployment** — Hosting, Docker, CI/CD
193193
- **🏗️ Architecture** — Design patterns, scalability, client-server

data/concept-tree.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@
5555
"prerequisites": ["variables", "data-types"],
5656
"description": "Structured data with named properties",
5757
"triggers": ["{}", "key:", "value", "property"]
58+
},
59+
"python": {
60+
"name": "Python",
61+
"xp_to_master": 100,
62+
"prerequisites": ["variables", "functions"],
63+
"description": "Python language syntax and conventions",
64+
"triggers": [".py", "def ", "print(", "import ", "pip ", "__name__"]
5865
}
5966
}
6067
},
@@ -125,6 +132,13 @@
125132
"prerequisites": ["html", "js-basics"],
126133
"description": "Changing the page with JavaScript",
127134
"triggers": ["document.", "getElementById", "querySelector", "addEventListener"]
135+
},
136+
"typescript": {
137+
"name": "TypeScript",
138+
"xp_to_master": 150,
139+
"prerequisites": ["js-basics"],
140+
"description": "JavaScript with static types for catching bugs early",
141+
"triggers": [".ts", ".tsx", "interface", "type ", ": string", ": number", ": boolean"]
128142
}
129143
}
130144
},
@@ -244,6 +258,13 @@
244258
"prerequisites": ["routes", "json"],
245259
"description": "Designing and consuming APIs",
246260
"triggers": ["GET", "POST", "PUT", "DELETE", "fetch(", "axios"]
261+
},
262+
"testing": {
263+
"name": "Testing",
264+
"xp_to_master": 150,
265+
"prerequisites": ["functions", "js-basics"],
266+
"description": "Automated tests that verify code works correctly",
267+
"triggers": ["jest", "vitest", "describe(", "it(", "test(", "expect(", ".test.", ".spec."]
247268
}
248269
}
249270
},

data/quiz-bank.json

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,13 @@
8484
"correct": 1,
8585
"explanation": "useState creates LOCAL memory for that specific component. When the state changes, React automatically re-draws that component with the new data. It's not permanent (refreshing the page resets it) and it's not global (other components can't see it directly).",
8686
"hint": "Think of it as the component's personal notebook — only it can read and write to it."
87+
},
88+
{
89+
"belt": "orange",
90+
"format": "free_response",
91+
"question": "In your own words, why does React use components instead of putting everything in one big file?",
92+
"expected_understanding": "Components are reusable building blocks. They make code organized, maintainable, and reusable. Each component handles one piece of the UI.",
93+
"hint": "Think about LEGO blocks vs. carving a statue from one piece of stone."
8794
}
8895
],
8996
"routes": [
@@ -146,7 +153,7 @@
146153
"hint": "Think about entering a secure building: first they check your identity, then they check your access level."
147154
}
148155
],
149-
"javascript": [
156+
"js-basics": [
150157
{
151158
"belt": "yellow",
152159
"question": "Why does Claude add `console.log()` statements when debugging?",
@@ -163,15 +170,6 @@
163170
"hint": "Think about what 'constant' means in everyday language."
164171
}
165172
],
166-
"react": [
167-
{
168-
"belt": "orange",
169-
"format": "free_response",
170-
"question": "In your own words, why does React use components instead of putting everything in one big file?",
171-
"expected_understanding": "Components are reusable building blocks. They make code organized, maintainable, and reusable. Each component handles one piece of the UI.",
172-
"hint": "Think about LEGO blocks vs. carving a statue from one piece of stone."
173-
}
174-
],
175173
"typescript": [
176174
{
177175
"belt": "orange",

0 commit comments

Comments
 (0)