Code Assignment
Author, validate, and publish auto-verifiable coding problems. Draft candidate ideas from a brief, expand a selected idea into a full problem package (statement, starter scaffold, verification harness), then validate it before it appears in the library.
Code Assignment Documentation
# ๐งฉ Code Assignment
**Turn a rough hiring idea into a polished, self-checking coding exercise โ in minutes.**
Writing a good take-home or interview coding problem is slow work. You have to invent something interesting, write a
clear problem statement, build starter files, and then prove that the whole thing actually works before you put it in
front of a candidate.
Code Assignment does the heavy lifting for you. Describe what you want, review a short list of candidate ideas, pick
your favorite, and let the app build and test the complete package for you.
---
## What you get
- **Fresh ideas on demand** โ a batch of candidate problems tailored to your language, topic, and difficulty level.
- **Complete problem packages** โ a written problem statement (README), starter files, and an automatic checker that can
tell whether a submitted solution is correct.
- **Proof that it works** โ every problem can be validated automatically, so you never hand out a broken or ambiguous
exercise.
- **A searchable library** โ everything you create is kept in one place, filterable by language, topic, difficulty,
tags, and review status.
- **One-click downloads** โ grab a whole batch or a single problem as a zip file.
---
## Getting started
### Step 1 ยท Draft ideas
Open the **1 ยท Draft ideas** tab.
1. Give your batch a short name (for example `2025-q1-python-graphs`). This just keeps your work organized.
2. Fill in the brief:
- **Language (s)** โ e.g. `python`, or `any`.
- **Domain / topic** โ e.g. `graphs`, `string processing`, `concurrency`.
- **Difficulty target** โ `easy`, `medium`, `hard`, or something descriptive like *"45-minute interview screen"*.
- **Constraints** โ anything that must be true, such as "no external packages" or
"must run offline".
- **Reference context** *(optional)* โ paste a job posting or a list of required skills, and the ideas will lean
toward that role.
- **How many ideas** โ leave blank for a handful (around 5โ8).
3. Click **Draft ideas โ**.
In a moment you'll see a set of idea cards, each with a title, a one-line summary, the skills it tests, why it's
interesting, and where candidates might get confused.
> ๐ก Tip: You can come back to any earlier batch from the list on the left, tweak the
> brief, and draft again.
### Step 2 ยท Pick an idea and expand it
Found one you like? On that idea's card, adjust the suggested problem id if you wish and click **Use this idea โ**.
The app writes the full problem package โ statement, starter scaffold, and automatic checker โ and then takes you
straight to the Library.
### Step 3 ยท Review and validate
In the **2 ยท Library** tab you can browse everything you've created.
- Use the filters at the top (language, domain, difficulty, status, tags, or a text search) to narrow the list.
- Click any card to open it. You'll see the problem details, the full README as a candidate would read it, the latest
test results, and any written feedback.
- Click **โถ Validate this problem** to have the app solve and test the problem end-to-end. When it finishes you'll see a
pass/fail summary and per-test details.
- Click **Generate report** for a written critique of the problem โ clarity, difficulty, and anything worth fixing.
- Click **Download problem (zip) โ** when you're ready to share it.
---
## Understanding the status badges
| Badge | What it means |
|------------------|----------------------------------------------------------------------|
| **unexpanded** | An idea has been chosen, but the full package hasn't been built yet. |
| **draft** | The package exists but hasn't been tested. |
| **needs-review** | It was tested and something didn't pass โ worth a look. |
| **validated** | Tested and passing. Ready to use. |
---
## Handy details
- **Models**: The two dropdowns at the top let you choose which AI models to use โ a
"smart" one for the heavier writing work and a "fast" one for lighter tasks. Your choices are remembered.
- **Activity log**: At the bottom of the page you can watch what's happening in real time, including links to monitor a
running task live.
- **Longer runs**: Drafting and validation can take a little while. That's normal โ the app is genuinely writing and
running code. Just leave the tab open.
- **Nothing is lost**: Batches live under `drafts/` and finished problems under
`problems/`, so you can always come back later or share the folders directly.
---
## A typical session
> *"I need a medium-difficulty Python exercise about graphs for a backend screen."*
1. Name the batch `backend-screen-graphs`, fill in the brief, click **Draft ideas**.
2. Skim six ideas, pick the one about shortest paths in a road network.
3. Click **Use this idea** โ the full package is written for you.
4. Click **Validate this problem** โ all tests pass. โ
5. Click **Generate report**, read the notes, and download the zip.
Total effort: a few minutes of reading and three clicks.
---
**Ready?** Head to the **Draft ideas** tab and describe the problem you wish you had.