How it works

How HackQuest Works

HackQuest reads every changed line in your pull request, maps each error to the underlying concept you have not yet learned, and queues the right lesson. No fixed syllabus. Your code drives your curriculum.

The process

From pull request to lesson in four steps

01

Connect a practice repo

Link your GitHub account and connect a practice repository, or use one of the HackQuest starter repos built for your target stack. You do not need to use a real production codebase. A branch set aside for learning is enough. HackQuest monitors pull requests opened against your designated learning branch.

02

Open a pull request

Work on a feature or fix in your practice branch, then open a pull request the same way you would at work. HackQuest picks it up automatically. There is no plugin, no IDE extension, and no separate submission step. If the PR exists on GitHub, HackQuest will process it within minutes for Pro users.

03

AI reads the full diff

The AI reads every changed line and identifies the concept behind each error: not just the surface linting violation, but the underlying gap in your understanding of the target stack. For a goroutine leak, it does not just flag the leak. It identifies that you do not yet have a mental model for Go channel ownership and goroutine lifecycle semantics.

The analysis cross-references your existing concept map so lessons are not repeated for gaps you have already closed.

Diagram showing the three-step flow from submitting a pull request to receiving adaptive lesson recommendation
04

Your lesson queue adapts

A focused lesson is added to your queue that addresses exactly what you fumbled in the PR. It is not the next video in a fixed playlist. It is the one piece of knowledge that, had you had it before writing the code, would have prevented the error.

Over time your concept map fills in and the lessons get progressively more advanced, tracking your actual trajectory rather than an assumed syllabus.

Abstract visualization of an adaptive concept map updating as a developer submits more pull requests
Under the hood

Semantic code understanding, not linting

Most static analysis tools catch linting errors. They can tell you that a variable is unused or that an import is missing. HackQuest does something different: it reads code as a reader who understands the intent, and identifies the conceptual gap between what you wrote and what idiomatic code in that stack looks like.

The difference matters. A linter flags go func() { handleJob(jobs[i]) }() as nothing wrong. HackQuest identifies that the loop variable i is captured by reference, not value, and that this signals a gap in understanding Go's closure semantics, not just a typo.

  • Distinguishes syntax errors from concept gaps
  • Maps errors to idiomatic patterns of the target stack
  • Cross-references your running concept graph to avoid re-teaching closed gaps
  • Delivers feedback inline on the diff, not in a separate report
api/handler.go
8 func handleRequests(tasks []Task) {
9 - go processTask(tasks[i])
9 + t := tasks[i]
10 + go processTask(t)
AI Analysis
Concept gap Go closure semantics
The goroutine captures tasks[i] at call time but i may change before the goroutine executes. This is a loop variable capture issue, not a linting violation.
Next lesson: Go loop variable capture and closure scope
Adaptive learning path

Your concept map updates with every PR

Every graded PR updates a concept graph specific to your learning history. Concepts you have closed are no longer queued. Concepts adjacent to a gap you just hit move higher in priority. The graph captures not just what you know, but the order in which you learned it, so the AI can infer what you are most likely to misapply next.

This is why two developers on the same stack get different lesson queues. A Python developer switching to Go has different residual assumptions than a Java developer making the same switch. HackQuest tracks both separately.

After roughly six weeks of regular PR submissions, most developers report that feedback loops they used to wait days for from colleagues now arrive within two hours, with enough context to immediately apply the fix.

Abstract visualization of an adaptive concept map updating as a developer submits more pull requests
FAQ

Common questions

HackQuest currently supports 15 stacks: Python, TypeScript, Go, Rust, Java, C#, Ruby, PHP, Swift, Kotlin, React, Node.js, Next.js, FastAPI, and Django. Zig, Elixir, and Scala are in development. See the Stacks page for the full list and what HackQuest grades in each stack.
No. HackQuest provides starter repos for each supported stack. These are purpose-built practice codebases with realistic feature work, not toy exercises. You can also connect your own GitHub repo if you prefer to work in a real project.
Pro plan feedback is delivered within 2 hours for typical PRs (under 500 changed lines). Starter plan PRs are queued at standard priority, which takes somewhat longer. Grading time scales with PR size: a 50-line change is typically faster than a 300-line one.
You can flag a comment as disputed, which removes it from your concept map and queues a review. We audit flagged items regularly. The AI makes mistakes, especially in nuanced performance-critical code. When it does, those mistakes do not affect your learning path.
Yes. The Starter plan is free, no credit card required. It includes 3 PR reviews per month on 1 tech stack. If you want to try before committing to Pro, the Starter plan is the right way to start. See Pricing for the full comparison.
Yes. The Team plan (5-seat minimum at $19 per seat per month) includes a shared team progress dashboard, engineering manager view, and Slack notifications when a PR is graded. Contact us to set up a team account.

Start grading your real code today.

Free tier, no credit card, no fixed syllabus.