Task library CTYPE Compiler and language tooling · Phased project A small expression type checker with explainable errors Fictional rules editor Willow supports numbers, strings, booleans, records and functions in a deliberately small language. Define syntax and type rules locally; no arbitrary code execution is needed.
Practice brief · Version 5
Project scope 10 tickets / 3 phases
Total focused work estimate 25h 15m + setup
Suggested stack TypeScript · Vitest · Typed AST fixtures Fictional engineering practice briefs. Starter repositories, fixtures, automated grading, and verified ownership are not included.
Choose a bounded subset for an assessment or practice session. Prerequisites and remaining project work must be agreed separately.
Field percentages are editorial estimates of the ticket's engineering focus. They total 100%; they are not measured time, proficiency scores, or ownership evidence.
Pattern topics identify design choices to practice. Read the ticket's acceptance criteria and justify the simplest suitable approach. Tags are not capability or ownership evidence; an untagged ticket has no curated pattern topic assigned.
Recommended next step Start with CTYPE-101 Open the first ticket for its prerequisites, acceptance criteria, verification plan, and an editable task draft.
What the engineer takes away Practice type environments, unification and explainable rejection.
What the team gains Inspect whether developer tooling catches mistakes without hiding uncertainty.
Before you start Create synthetic AST fixtures and a written type-rule table. Define source spans and structured diagnostic output. Delivery agreement Limit scope to the declared type system; general language compatibility is not claimed.
AI tools are welcome during implementation. Record assumptions, review the result, and verify its behavior.
Delivery phases PHASE 1 Handle literals and lexical scope.
PHASE 2 Explain composition failures.
PHASE 3 Bound work and stabilize diagnostics.
Establish type rules Handle literals and lexical scope.
CTYPE-101 Entry ticket; project setup still required Estimated field mix
Compiler and language tooling 100% CTYPE-102 Depends on CTYPE-101 Estimated field mix
Compiler and language tooling 100% CTYPE-103 Depends on CTYPE-101, CTYPE-102 Estimated field mix
Compiler and language tooling 100% Resolve expression types Explain composition failures.
CTYPE-104 Depends on CTYPE-102, CTYPE-103 Estimated field mix
Compiler and language tooling 100% CTYPE-105 Depends on CTYPE-104 Estimated field mix
Compiler and language tooling 100% CTYPE-106 Depends on CTYPE-103, CTYPE-105 Estimated field mix
Compiler and language tooling 100% CTYPE-107 Depends on CTYPE-105, CTYPE-106 Estimated field mix
Compiler and language tooling 100% Keep checking predictable Bound work and stabilize diagnostics.
CTYPE-108 Depends on CTYPE-106, CTYPE-107 Estimated field mix
Compiler and language tooling 100% CTYPE-109 Depends on CTYPE-107, CTYPE-108 Estimated field mix
Compiler and language tooling 80% Performance engineering 20% CTYPE-110 Depends on CTYPE-105, CTYPE-109 Estimated field mix
Compiler and language tooling 60% Performance engineering 40% Use this project CSV keeps grouping and dependency keys as descriptive fields. Import mapping depends on your tracker configuration.