A tiny command-line notes tool, used as the practice repo for Unit 4, Lesson 2 (committing well). The app is a safe sandbox, the task is to make one small change and have Claude commit it with a clear message.
node notes.js add <text>— add a notenode notes.js list— list all notesnode notes.js search <term>— list notes containing a termnode notes.js delete <id>— delete a note
Layout: notes.js is the entry point, lib/store.js loads, saves, and searches notes (in notes.json), and lib/config.js holds app settings.
- Make sure you have your own copy of this repo (created from the lesson on the platform).
- Clone it locally and open Claude Code in the folder.
Heads-up: the tests start red on purpose. The repo ships with one bug, your job is to fix it, then let Claude commit the fix with a clear message.
- Run the tests:
npm test. Two of thesearchtests fail — that's expected, not a broken repo. - Find the bug. The
searchcommand should list every note that contains your term, but right now it only matches a note whose text is exactly the term. The fix is one line, in thematchesfunction inlib/store.js. - Fix that line, then run
npm testagain. All three tests should now pass. A good commit doesn't leave the build broken. - Write your own message first. In
notes.md(or a scratch note), jot the quick commit message you'd dash off yourself. You'll compare it to Claude's. - Let Claude commit it. Ask: 'Run the tests to confirm they pass, then stage my changes and commit them on a new branch with a corresponding message.'
- Compare. Open the commit on GitHub and read Claude's message. Does it explain the change — the why, not just the what — better than your quick version?
- Open the PR and submit.