A small TypeScript/Jest template for algorithm and data-structure practice with agent coaching, local tests, assessment, timing, and progress tracking.
This project is independent from any coding challenge platform. It is not meant to replace, compete with, or draw you away from your preferred platform. Use this repo as a feedback-rich practice space, then submit your own final solution wherever you normally practice.
Problem ideas can be inspired by coding challenge platforms, technical interviews, books, courses, or your own custom prompts. When a source URL is useful, record it for attribution and navigation. Do not copy proprietary problem statements into this repo; write original summaries and examples for local practice.
Online coding challenge platforms are awesome for testing your algorithm skills, and some have great community-centered features, where people share their own implementations for others to learn.
If you're stuck on a problem, however, looking at others' implementations is not always the best way to approach it. Some people just paste their code, which is often terse and difficult to follow, without explaining the logic, making it even harder for any actual learning effort. Copying someone else's code into your own submission doesn't help much.
Online platforms also do not have immediate feedback. Writing code locally with the right IDE extensions will run the tests in real time and also let you debug, which is a real boon for understanding what the problem is trying to teach you. Besides, here you can ask for help. Agents won't fix your code, they will guide you there.
This little setup gets me in better shape for making better submissions!
Clone or download this repository into a local folder, then:
npm installAsk your coding agent to use coding-practice-study skill to scaffold one practice problem. The agent should create a placeholder solution file, a test file, and tracking entries. You write the implementation.
- Ask the agent to scaffold or generate one problem.
- Read the generated problem statement and tests.
- Find the empty solution file and implement the solution yourself.
- Ask your agent for help if needed. Explain your thought process, ask it to inspect your code for insight.
- If you're really stuck, you can ask -- or your agent will offer -- to engage teaching mode for a more in-depth explanation of the algorithm the current problem exercises.
- When you're done, ask the agent to assess the current solution.
- Let the agent add focused edge tests, explain failures, and update tracking.
- Submit your own final code to your preferred platform when ready.
- Ask the agent to prepare a timed interview. You can customize problems, difficulty or duration; see interview.md for defaults.
- The agent will create an interview folder with a README.html and problem and test files.
- See the generated README.html for the problem statements and timer countdown.
- Solve the problems in any order.
- Do not ask for guidance. The agent will not help you during an interview.
- If you insist, the interview will be forfeit.
- The countdown will beep once when there are 10 minutes left, and 3 times when there are 3 minutes left.
- When you are done with all solutions, tell the agent to assess your solutions.
- The agent will begin assessment autonomously at the end of the countdown.
- Interview assessment happens in a separate worktree to prevent post-deadline tweaking. Submission is final. The agent will update tracking and inform you of your performance.
For history preservation reasons, I recommend against touching interview problems after the interview is complete. Incomplete interview problems should be addressed as normal problems afterward. Ask your agent to re-scaffold it.
The learner writes every solution. Agents may coach, explain, scaffold, assess, and track progress, but must not provide working solution code or line-by-line pseudocode that can be copied into a passing implementation.
The shared agent contract lives in AGENTS.md. Claude Code users get the same rules through CLAUDE.md, which imports AGENTS.md.
src/ Practice files and Jest setup
scripts/ Tracking, timeout, archive, and helper commands
skills/coding-practice-study Agent skill and behavior references
study/data/ Human-readable TSV tracking sources
study/profile.md Study profile and topic plan
study/tracking.md Generated report, ignored by git
Each ordinary problem uses two files:
src/<ProblemName>.ts
src/<ProblemName>.test.ts
npm test
npm test -- src/<ProblemName>.test.ts
npm run test:safe -- src/<ProblemName>.test.ts
npm run tracking:generatePrefer npm run test:safe as it wraps the test command with a timeout to protect against infinite loops. Defaults to 10 seconds, override the default with PRACTICE_TEST_TIMEOUT_MS.
Tracking source files live under study/data/ and study/profile.md. The generated study/tracking.md file is ignored because it can always be recreated:
npm run tracking:generateThis template ships with TypeScript and Jest so it is immediately runnable after install. The learning workflow itself is language-agnostic, but this repository is not a universal multi-language harness.
Advanced users can adapt the workflow to Python, Java, C#, C++, or another stack by replacing the test runner, scaffold templates, commands, naming conventions, and timing hook. In that case, treat the skill and agent instructions as the reusable core, and treat this repo as a reference implementation.
MIT