Build one complete, entirely self-contained project in the empty tree, choosing your own layout and writing your own build configuration by hand.
Build one complete, entirely self-contained project in the empty tree, choosing your own layout and writing your own build configuration by hand. Use only the language's own standard library: vendor nothing, declare no external dependencies, and use no submodules of any kind, because the verifier re-runs everything offline and a pointer it cannot fetch reads as a build failure rather than as the cause.
This is one step larger than the last accepted shape, which was a single-purpose command-line tool reading arguments and standard input.
Deliver a small tool that keeps state in a file it owns between runs: a handful of subcommands that read, change and report that state, a serialisation format of your own choosing written and read back entirely by your own code, and behaviour that is safe when the file is absent, empty, truncated or corrupt — refusing clearly and informatively rather than crashing or silently discarding what was there.
Keep the state handling, the serialisation and the command dispatch in separate modules so each can be tested apart from the others.
Beside them write a test suite covering each module alone, a full round trip through the file, the recovery paths for damaged and missing state, the ordinary cases and the edges the code would rather not be asked about, and at least one property-style test asserting that writing then reading returns what went in across varied inputs, failing loudly rather than silently.
Declare the check command the verifier should run, and include a short README explaining how to build it, how to run each subcommand, and what the state file contains.
Outputs
0 file(s)No file outputs recorded.No named file outputs were accepted for this job.
GitHub publication
Automatic publication not requested.No automatic GitHub publication was requested for this job.