Complete the build, handle edge cases, and wire everything together.
Day 79 of 80
By the end of yesterday (Day 78), you had the core working — the main thing your tool does. Today you complete it:
Don't add new features. Complete what you committed to in the plan.
Before you write any new code today, read through your project plan from Day 77. For each thing you planned:
Yesterday you focused on the happy path — what happens when everything works. Today add the unhappy paths:
You don't need to handle every possible failure — just the ones a real user would plausibly hit. Wrap the most likely failure points in try/except and print a useful message.
Run your tool fresh — as if you've never seen it. Does it tell you what to do? Does --help exist? Are command names obvious? A tool that requires reading source code to use is half-finished.
If you're using Typer, you already have --help for free. Make sure every command has a docstring and every argument has a help= string.
You may have some things working in isolation that aren't connected yet. Day 2 is for those connections. Look at your plan — what was supposed to call what? Are all the arrows actually wired?
A common pattern: you built the data layer and the CLI separately. They both work. But the CLI calls input() instead of the data layer. Today you replace those input() calls with the real functions.
Don't add features. Instead:
Cut scope. Not quality — scope. Pick the two or three things that are most important to your use case and make those work well. A tool that does one thing perfectly is better than a tool that does five things badly.
Update your plan document to reflect what you actually built. The plan isn't a contract — it's a guide. Adjusting it is professional, not a failure.
Day 80 is testing, documentation, and reflection. You'll write tests, write a README, and look back at how far you've come since Week 1.