# M5a task 15: the starter soul, and the device checks with `memoryd` **Branch:** `m5a` (run `git switch m5a`; `git status --short` must be empty, otherwise stop) **Commit subject:** `M5a: the starter soul.md, and the device checks with memoryd running` ## Goal - `config/soul.md`, the generic starter persona `memoryd` copies to `memory/soul.md` the first time (M5a spec, section 3). The owner rewrites it. - `make verify-device` runs `memoryd` beside `loopd serve` (which starts no session without it since task 13), and the baseline check now measures the baseline **with memory**: the starter soul with empty files, and every file at its limit. Both must stay at 3,000 tokens or less. Measured on the reference: 881 and 2,432. This is the only task that needs straylight. ## Files - Copy: `config/soul.md`, `crates/loopd/tests/support/memoryd.rs`, and a **new version** of the given `crates/loopd/tests/device.rs` - Modify: `Makefile`, `docs/implementer-log.md` ## The edit, exactly **`Makefile`**, in `verify-device`: after the line ` BOXMAKER_INFERPROXY=$(CURDIR)/target/debug/inferproxy BOXMAKER_BXCTL=$(CURDIR)/target/debug/bxctl \` add the line (a tab first, as in the lines around it) ```make BOXMAKER_MEMORYD=$(CURDIR)/target/debug/memoryd \ ``` ## Steps - [ ] **1. Copy** the three files; edit the `Makefile`. - [ ] **2. Run the gate.** `make gate`: `gate: ok` (the device tests are ignored there; the count is unchanged, about 936). - [ ] **3. Check the server is free.** `curl -s "http://straylight:11434/slots?model=ornith-1.5-35b-a3b"`: slot 0 must show `"is_processing":false`. If it is busy, wait a minute and look again; if it is still busy after ten minutes, stop and report. - [ ] **4. Run the device checks.** `make verify-device`. Expected: `6 passed`, then `verify-device: ok`. `the_baseline_fits_the_token_budget` fails with the number of tokens if either baseline is over 3,000. - [ ] **5. Log and commit.** `git add -A config/soul.md crates/loopd Makefile docs/implementer-log.md Cargo.lock && git commit` This is the last task of M5a. Stop after the commit. ## Done when - `make gate` prints `gate: ok` and `make verify-device` prints `verify-device: ok`. ## Stop and report if - straylight cannot be reached, or `make verify-device` fails. Report its output; do not change a test or the soul to make it pass.