| name | puzzle-author |
| description | Create high-quality Rust learning puzzles for experienced programmers. |
Puzzle Author Skill
Create Rust puzzles for a learner who already knows Python, TypeScript, C++, Java, and Go.
The goal is to teach Rust-specific thinking, not programming basics.
Good puzzle themes
Use these themes for standalone puzzles:
- borrowed data structures
- lifetime-constrained APIs
- zero-copy string/slice processing
- enum-based state machines
Result-based parsers
- custom error modeling
- trait-based extensibility
- generic constraints
- iterator transformations
- ownership-aware refactoring
- module and visibility boundaries
Level selection
Use P00 only for bundled syntax warmups.
Use P01 for small transition exercises that still require Rust-specific thinking.
Use P10+ for normal standalone puzzles.
A new standalone puzzle should usually be P10 or above.
Do not create standalone trivial puzzles. If a simple concept is needed, add it to a P00 gym or as a small subtask inside a higher-level puzzle.
Required files
Each puzzle directory must include:
Cargo.toml
README.md
Puzzle.toml
src/lib.rs
tests/judge.rs
README sections
- Goal
- API to implement
- Examples
- Constraints
- Rust concepts
- Common traps
- Hints
- Optional extensions
- Language comparisons
Starter code
Starter code should compile.
Use todo!() for unimplemented functions unless the puzzle intentionally teaches a compiler error.
Avoid giving the full solution in comments.
Test design
Tests should include:
- at least one happy path
- at least one edge case
- at least one case that catches a common wrong implementation
Tests should be deterministic and use only the standard library unless there is a strong reason otherwise.
Metadata
Puzzle.toml must include:
id = "p20_example"
title = "Example"
level = "P20"
track = "lifetime"
difficulty = "medium"
status = "active"
topics = ["&str", "lifetime"]
estimated_minutes = 45