Filing as appreciative downstream-consumer feedback — the grounding-hook idea is great and the brain is genuinely useful. This is a gap between the pitch deck's "nightly / never stale" promise and the shipped behavior, plus a concrete staleness symptom on a normal install.
What's advertised
The deck (https://deck-six-liart.vercel.app/) has a dedicated currency section (quoted verbatim):
- "Always current · rebuilds itself nightly"
- "Every night a LaunchAgent checks rUv's repos, rebuilds only what changed, re-verifies, and re-stamps — automatically."
- "rUv is prolific. So the Brain never goes stale." / "A static one would rot in weeks."
- "Bundle status · CURRENT · last rebuild · last night · 3:15 AM"
- "Honest: nightly, changed-repos-only (safe scope); brand-new repos are added under supervision."
- "Your instruction manual updates while you sleep."
The installer reinforces it — bin/install.mjs prints: "…auto-updating nightly)? Just tell Claude once it's on — the brain is smart enough to reconfigure itself."
(For contrast, the README and the main site are more measured — README: "Only moves when the underlying knowledge base is rebuilt"; site: "When he ships more, the Brain updates." The deck is the surface making the hard nightly/never-stale guarantee.)
What actually ships
1. The nightly LaunchAgent is author-only, by design. deploy/com.ruvnet.brain-nightly.plist:
- header comment: "NOT auto-installed (system schedulers require explicit owner approval)."
- ProgramArguments:
cd /Users/stuartkerr/Code/ruvnet-brain && node scripts/self-update.mjs --apply --publish …
The absolute home path + --publish make this the maintainer's personal rebuild-and-publish job — a downstream user can't run it (wrong path; it would publish to your release). scripts/self-update.mjs says the same: "Designed to be invoked by deploy/com.ruvnet.brain-nightly.plist (LaunchAgent — NOT auto-installed)."
2. No end-user mechanism enables a per-user nightly. bin/install.mjs never installs a LaunchAgent — the "auto-updating nightly" line just defers to "Just tell Claude." package.json scripts is {} and the only bin is the installer. So a user who accepts the offered "auto-updating nightly" gets nothing scheduled.
3. Even the upstream publish isn't nightly. releases/latest = v0.5.0-dev, published 2026-07-01; prior v0.4.0-dev, 2026-06-29. As of 2026-07-06 that's 5 days with no new release, despite active main commits in between (e.g. the 2026-07-05 "brain-stamp … closes the freshness loop", and the plugin badge advancing to 1.9.1-dev while the KB bundle is still v0.5.0-dev). So the deck's live-looking "CURRENT · last rebuild · last night · 3:15 AM" status doesn't match the actual release cadence.
Concrete staleness symptom
Fresh macOS install; nothing in launchctl list (expected — the plist isn't auto-installed). The KB content (*.passages.jsonl, primers, *.meta.json) is frozen at 2026-07-01 03:31, matching the v0.5.0-dev bundle publish time. So the brain answers from a July-1 snapshot and misses recent rUv work — e.g. it never surfaces ruvnet/metaharness ADR-202 (agenticow ⇄ agentic-jujutsu COW dual-state bridge, dated 2026-06-28) or anything after; that repo is now at 218 ADRs, HEAD 2026-07-06. In practice, every "does X exist upstream?" answer had to be re-checked against live GitHub because the KB lagged.
Suggested directions (either / both)
- Deliver it: ship a user-facing enable step (e.g.
ruvnet-brain --enable-nightly) that templates the plist to the user's install path, points at a non-publishing local self-update (or just pulls the latest Release bundle), and launchctl loads it — with an easy disable. Then "updates while you sleep" becomes true for end users too.
- Or align the claim: soften the deck to match the README/site (e.g. "refreshes when a new bundle is published"), make the "CURRENT / last rebuild" indicator a real live read, and/or fix the upstream nightly so
releases/latest actually advances daily.
Environment
- macOS; plugin at
~/.claude/plugins/cache/ruvnet-brain/ruvnet-brain/0.5.0-dev
- KB bundle
v0.5.0-dev (2026-07-01); KB content mtime 2026-07-01 03:31
- No
com.ruvnet.brain-nightly in launchctl list
Thanks again — the enforced-grounding approach is a genuinely good idea. This is just about making the deck's "nightly / never stale" surface true for people who aren't running it from /Users/stuartkerr/….
Filing as appreciative downstream-consumer feedback — the grounding-hook idea is great and the brain is genuinely useful. This is a gap between the pitch deck's "nightly / never stale" promise and the shipped behavior, plus a concrete staleness symptom on a normal install.
What's advertised
The deck (https://deck-six-liart.vercel.app/) has a dedicated currency section (quoted verbatim):
The installer reinforces it —
bin/install.mjsprints: "…auto-updating nightly)? Just tell Claude once it's on — the brain is smart enough to reconfigure itself."(For contrast, the README and the main site are more measured — README: "Only moves when the underlying knowledge base is rebuilt"; site: "When he ships more, the Brain updates." The deck is the surface making the hard nightly/never-stale guarantee.)
What actually ships
1. The nightly LaunchAgent is author-only, by design.
deploy/com.ruvnet.brain-nightly.plist:cd /Users/stuartkerr/Code/ruvnet-brain && node scripts/self-update.mjs --apply --publish …The absolute home path +
--publishmake this the maintainer's personal rebuild-and-publish job — a downstream user can't run it (wrong path; it would publish to your release).scripts/self-update.mjssays the same: "Designed to be invoked by deploy/com.ruvnet.brain-nightly.plist (LaunchAgent — NOT auto-installed)."2. No end-user mechanism enables a per-user nightly.
bin/install.mjsnever installs a LaunchAgent — the "auto-updating nightly" line just defers to "Just tell Claude."package.jsonscriptsis{}and the onlybinis the installer. So a user who accepts the offered "auto-updating nightly" gets nothing scheduled.3. Even the upstream publish isn't nightly.
releases/latest=v0.5.0-dev, published 2026-07-01; priorv0.4.0-dev, 2026-06-29. As of 2026-07-06 that's 5 days with no new release, despite activemaincommits in between (e.g. the 2026-07-05 "brain-stamp … closes the freshness loop", and the plugin badge advancing to 1.9.1-dev while the KB bundle is still v0.5.0-dev). So the deck's live-looking "CURRENT · last rebuild · last night · 3:15 AM" status doesn't match the actual release cadence.Concrete staleness symptom
Fresh macOS install; nothing in
launchctl list(expected — the plist isn't auto-installed). The KB content (*.passages.jsonl, primers,*.meta.json) is frozen at 2026-07-01 03:31, matching the v0.5.0-dev bundle publish time. So the brain answers from a July-1 snapshot and misses recent rUv work — e.g. it never surfacesruvnet/metaharnessADR-202 (agenticow ⇄ agentic-jujutsu COW dual-state bridge, dated 2026-06-28) or anything after; that repo is now at 218 ADRs, HEAD 2026-07-06. In practice, every "does X exist upstream?" answer had to be re-checked against live GitHub because the KB lagged.Suggested directions (either / both)
ruvnet-brain --enable-nightly) that templates the plist to the user's install path, points at a non-publishing local self-update (or just pulls the latest Release bundle), andlaunchctl loads it — with an easy disable. Then "updates while you sleep" becomes true for end users too.releases/latestactually advances daily.Environment
~/.claude/plugins/cache/ruvnet-brain/ruvnet-brain/0.5.0-devv0.5.0-dev(2026-07-01); KB content mtime2026-07-01 03:31com.ruvnet.brain-nightlyinlaunchctl listThanks again — the enforced-grounding approach is a genuinely good idea. This is just about making the deck's "nightly / never stale" surface true for people who aren't running it from
/Users/stuartkerr/….