# How to use Unrust

> How the Unrust diagnostic, adaptive practice, drill library, mastery model, and supported languages work.

- Canonical HTML: [https://unrust.dev/help](https://unrust.dev/help)
- Markdown representation: [https://unrust.dev/help/index.md](https://unrust.dev/help/index.md)

## The four experiences

### 1 · The Diagnostic

A short, unassisted (AI-off) measurement — about 14 minutes, one or two questions per skill dimension. It produces a six-spoke profile and a single headline where any one rusty spoke pulls the number down. It's longitudinal: retakes rotate to fresh questions of the same shape, so your trend is comparable over time without being memorizable. You can take it anonymously and claim the result when you sign up.

### 2 · Practice

The adaptive loop that supports regular practice. Spaced repetition surfaces what is due — either a mixed daily queue across all dimensions, or a focused workout to work on one category. Practice is walled off from the diagnostic, so training never contaminates your measurement.

### 3 · Library

Browse the entire drill bank by category, difficulty, language, or name, preview the code, and attempt anything on demand — no schedule required.

### 4 · Skills & Mastery

Every skill sits on a ladder — Cold → Warming → Solid → Sharp — that decays if you stop and is built so it can't be farmed: it takes spaced repetitions across distinct drills to climb, not one memorized answer repeated.

## The six skills

- **Recall:** Reconstruct code from memory — the API, the idiom, the incantation.
- **Tracing:** Predict what a snippet prints by executing it in your head.
- **Find the Flaw:** Spot the one defect between a function and its stated intent.
- **Debugging:** Locate the broken line and name the root cause.
- **Idiom / Quality:** Choose the cleanest, most idiomatic equivalent.
- **AI-slop Detection:** Catch the plausible-but-wrong line an AI would happily write.

## Languages

JavaScript, TypeScript, and Python are supported today. The chosen default language filters the diagnostic, practice, and library. Metrics are tracked separately by language; switching back restores that language's earlier progress.

## Frequently asked questions

### Is it really unassisted?

Yes — the diagnostic is designed for an AI-off condition. It is a mirror, not a gate: the point is to see how your unassisted performance looks today.

### What do the score bands mean?

They map your headline onto a decay band. The exact cutoffs are provisional while we calibrate them with an expert panel, so read the trend — the direction your score moves — more than any single absolute number.

### Does practice change my diagnostic score?

No. Practice and the diagnostic are deliberately separated. Practice moves your per-skill mastery; only the diagnostic moves the longitudinal trend.

### How do languages work?

You pick a default language for your account (JavaScript, TypeScript, or Python today; more coming). It filters the whole experience, and your metrics are tracked per language — switching to a new language starts it fresh and switching back restores your earlier progress untouched.

### Can I answer a question in a different language?

On any drill that exists in more than one language, a dropdown lets you answer that specific question in a sibling language — and it credits the language you actually answered in.

## Contact

- Product or account support: support@unrust.dev
- General, partnership, press, or feedback: info@unrust.dev
