memoryd (files, the check, edits, journal, index, recall, serving), the memory tools and built-in grants in brokerd, the memory block in loopd, bxctl reindex and memory, and the device checks with memoryd. Each task was built as a reference and gated. Each was replayed on its own at its end state (854 to 936 tests) and mutation-checked. Each skeleton compiles and fails its tests. Every todo comment was read beside its signature. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
56 lines
2.3 KiB
Markdown
56 lines
2.3 KiB
Markdown
# 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.
|