51 lines
1.5 KiB
Markdown
51 lines
1.5 KiB
Markdown
# Milestone Write-up — M<N>: <milestone name>
|
|
|
|
> Copy this file per milestone (e.g. `MILESTONE-M3.md`) and fill it in. The
|
|
> flavor line below is required **every** milestone, not just the first.
|
|
|
|
## Flavor
|
|
|
|
(contacts book | gradebook | expense tracker) — same flavor for every milestone
|
|
|
|
## AI used
|
|
|
|
(none | Tier 2) — see `AGENTS.md` for what Tier 2 permits
|
|
|
|
## What I built
|
|
|
|
Which common-interface functions are now implemented, in my own words
|
|
(e.g. "`list_append`/`list_find`/`list_remove` over a singly linked list, with
|
|
`list_free` walking and freeing every node and record"). Name the files.
|
|
|
|
## Verification evidence
|
|
|
|
Paste the output of the gates for this milestone — and the CI report link from
|
|
Forgejo Actions:
|
|
|
|
```text
|
|
make
|
|
make test
|
|
make sanitize # ASan/UBSan (M5+)
|
|
make valgrind # 0 bytes lost (M5)
|
|
```
|
|
|
|
## Pre-tool prediction
|
|
|
|
Before running the tool/CI: what did you predict would happen, and which test
|
|
did you expect to fail? (If nothing failed — say what made you confident.)
|
|
|
|
## Student-authored challenge case
|
|
|
|
A test or scenario **you** wrote that the starter didn't cover (e.g. remove the
|
|
head node, a 10k-record list, empty fields in save/load). What does it check
|
|
and why does it matter?
|
|
|
|
## Novel transfer
|
|
|
|
A new use of what you built this milestone — apply the linked list / buffer /
|
|
store to a different domain (e.g. "if the record were a todo item instead of a
|
|
contact…") and sketch how your code would change.
|
|
|
|
## Reflection
|
|
|
|
What broke, what you learned, what you'd do differently next milestone.
|