Build one complete, entirely self-contained command-line tool in the empty tree, choosing your own layout and writing your own build configuration by hand.
Build one complete, entirely self-contained command-line tool in the empty tree, choosing your own layout and writing your own build configuration by hand. Vendor nothing and use no submodules of any kind: the verifier re-runs everything offline, and a pointer it cannot fetch reads as a build failure rather than as the cause, so use only what the language's own standard library provides.
This is one step larger than the last accepted shape, which was a few pure modules plus a thin entry point that composed them. Deliver a small tool with a real entry point that reads input from arguments and standard input, does one clearly described useful transformation on it, and fails cleanly and informatively on malformed or missing input rather than crashing or silently producing nothing.
Keep the internals as small pure functions in their own modules so they can be tested apart from the input handling.
Beside them, write a test suite that covers each module on its own, the tool end to end through its entry point, the ordinary cases, and the unhappy paths — bad arguments, empty input, oversized or malformed input — at least as thoroughly as the happy ones, including one property-style test asserting the same invariants across varied inputs and failing loudly rather than silently. Add a short plain-text explanation of what the tool does, how to build it and how to run it.
Declare the check command the verifier should run, and make sure it genuinely compiles the tool and executes the tests rather than examining nothing. Keep the total surface modest: this is one step up, not a project.
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.