Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Write a small command-line Kotlin program (a todo tracker, a unit converter, a word-frequency counter). It must be idiomatic: prefer val over var; use data classes to model your entities (getting equals/toString/copy for free); use Kotlin's NULL SAFETY properly (nullable types only where null is meaningful, and ?./?:/safe handling rather than !!); use a `when` expression for branching; and process input with the standard collection operators (map/filter/groupBy) instead of manual loops. No use of a Java-style `new` keyword (there isn't one). Keep functions small and expression-bodied where natural.
Prefers val; data classes for entities; `when` used well; collection operators over manual loops; expression-bodied functions; no non-idiomatic Java-isms.
Nullable types only where meaningful; ?./?: /safe handling; avoids !!; no NPE surface.
Runs and does the task correctly end-to-end.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# A null-safe Kotlin CLI ## Goal Write a small command-line Kotlin program (a todo tracker, a unit converter, a word-frequency counter). It must be idiomatic: prefer val over var; use data classes to model your entities (getting equals/toString/copy for free); use Kotlin's NULL SAFETY properly (nullable types only where null is meaningful, and ?./?:/safe handling rather than !!); use a `when` expression for branching; and process input with the standard collection operators (map/filter/groupBy) instead of manual loops. No use of a Java-style `new` keyword (there isn't one). Keep functions small and expression-bodied where natural. ## Acceptance criteria - [ ] Idiomatic Kotlin: Prefers val; data classes for entities; `when` used well; collection operators over manual loops; expression-bodied functions; no non-idiomatic Java-isms. - [ ] Null safety: Nullable types only where meaningful; ?./?: /safe handling; avoids !!; no NPE surface. - [ ] Works: Runs and does the task correctly end-to-end. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.