Opus finding
goals.json missing a top-level schema/version marker but is consumed by multiple skills
- memory/goals.json:1-33
goals.json is read by both build.md (gate check on `.mode`) and heartbeat.md (milestone progress, mode update writes). There is no `schemaVersion` and no JSON schema referenced; any future renaming of `mode` or `milestones[0].current` will break consumers silently. heartbeat.md already accesses `g.milestones[0].current` positionally, which will silently report wrong data if the array order changes (e.g., the build-launchpad milestone is reordered to index 0).
Recommendation
Either look up the milestone by id (`milestones.find(m => m.id === 'accumulate-100-diem')`) or add a `schemaVersion` and a stable accessor convention, and validate in CI.