---
id: M04-L02
title: "Make a useful README"
module: M04
chapters: "8"
checkpoint: CP02
---

# M04-L02 — Make a useful README

Write setup instructions that can be followed without the old conversation. Use the Markdown page from M04-L01 or a new CP02 copy. The outcome is a README with purpose, prerequisites, working directory, first check, expected result, and recovery guidance.

Start from this deliberately poor note: “sensor demo, compiler installed, run tests.” It omits the product's behavior, where the compiler comes from, which terminal to use, and what success means. Replace it with a purpose statement describing CP02’s fixed synthetic report. Shared policy and fixture parsing are planned for CP05. Link to the release's `docs/setup.md` and dependency record rather than copying a machine-specific path.

Read the supplied setup instructions as if you had no memory of installing the project. Identify the expected root folder. Confirm it contains `scripts`, `docs`, `host`, and `firmware`. List the host-replay command in a PowerShell fence. Put the firmware cross-build in a separate subsection because its evidence differs.

```powershell
.\scripts\replay.cmd
```

The expected result is successful execution of the fixed synthetic baseline report, not a fabricated fixed output line. Save your actual command/result in exercise evidence. A failure caused by a missing tool is a useful setup finding; it does not prove a source-code defect. Follow the documented tool setup and repeat the check after the dependency is available.

Add a “Script not found” troubleshooting entry. Explain how to verify the current folder and the presence of `scripts/replay.cmd` before retrying. Avoid recommending broad machine changes for a simple working-directory problem. Add a hardware-reference link with a sentence explaining when it matters.

Now follow the README from its first step. Record every gap you had to fill from memory. If you silently changed directory or found a missing dependency elsewhere, revise the document. A second learner can provide extra feedback, but your own disciplined replay already exposes missing information.

Review the Git diff or compare the preserved files. The improvement should be a clearer setup path, not unrelated source changes. Read the rendered result at a narrow window width and ensure commands remain copyable. Figures SS08-03 and SS08-04 identify link navigation and the finished sections; actual screenshot content is evidence only for the captured demonstration.

CP02 prints the fixed expected line `{"type":"sample","synthetic":true,"temperature_c":25.00}`. This is expected output, not a claimed result of your run. The fixture parser and shared normal/fault policy arrive at CP05; host assertions arrive at CP07.

## Resources and completion

Use the Sensor Monitor `CP02` download and its `README.md`; project paths in this lesson are relative to that root. Read Chapter 8 for the full lab and explanatory review answers. Figure IDs: SS08-03, SS08-04. Primary references: [Adafruit product 5477](https://www.adafruit.com/product/5477) and [GitHub Markdown tables](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables). Complete the [exercise](exercise.md), preserve actual evidence, and use the separate instructor answer key for self-check after attempting the task. Narration scripts are production sources; final transcripts must match the actual narrated edit.
