From a naming review (2026-07-21). Target: L3 shepherd modules.
The submitter modules that keep a position by submitting intents to a venue should use the "keeper" vernacular; the pure observers should not. Classification (verified against the end-of-train tree):
| module |
location |
venue submission |
verdict |
| twap-monitor |
shepherd/modules |
yes |
keeper (header already says so) |
| ethflow-watcher |
shepherd/modules |
yes |
keeper |
| stop-loss |
shepherd/modules/examples |
yes |
keeper |
| balance-tracker |
nexum/modules/examples |
none |
observer - NOT a keeper |
| price-alert |
nexum/modules/examples |
none |
observer - NOT a keeper |
Scope
Rename for the three keepers (twap-monitor, ethflow-watcher, stop-loss):
src/strategy.rs -> src/keeper.rs
mod strategy -> mod keeper; strategy:: -> keeper::
- doc header -> "keeper module" (twap-monitor already reads this; align the other two)
Explicitly EXCLUDE the observers balance-tracker and price-alert: zero venue interaction (pure watch + log), so "keeper" would mislabel them. They keep strategy.rs (or move to a monitor/observer term under a separate decision).
Timing
These exact modules are re-pointed onto the pool submit path in the M4 cars (#469 twap-on-pool, #470 ethflow-on-pool, #472 ConditionalOrderRemoved). Do the rename as part of, or right after, that M4 work so it rides the reshaping rather than colliding with it - a standalone rename in dev/m1 now conflicts with every M4 module car on ripple.
Acceptance criteria
twap-monitor / ethflow-watcher / stop-loss use keeper.rs + mod keeper + a "keeper module" header.
balance-tracker / price-alert unchanged.
The submitter modules that keep a position by submitting intents to a venue should use the "keeper" vernacular; the pure observers should not. Classification (verified against the end-of-train tree):
shepherd/modulesshepherd/modulesshepherd/modules/examplesnexum/modules/examplesnexum/modules/examplesScope
Rename for the three keepers (
twap-monitor,ethflow-watcher,stop-loss):src/strategy.rs->src/keeper.rsmod strategy->mod keeper;strategy::->keeper::Explicitly EXCLUDE the observers
balance-trackerandprice-alert: zero venue interaction (pure watch + log), so "keeper" would mislabel them. They keepstrategy.rs(or move to amonitor/observerterm under a separate decision).Timing
These exact modules are re-pointed onto the pool submit path in the M4 cars (#469 twap-on-pool, #470 ethflow-on-pool, #472 ConditionalOrderRemoved). Do the rename as part of, or right after, that M4 work so it rides the reshaping rather than colliding with it - a standalone rename in dev/m1 now conflicts with every M4 module car on ripple.
Acceptance criteria
twap-monitor/ethflow-watcher/stop-lossusekeeper.rs+mod keeper+ a "keeper module" header.balance-tracker/price-alertunchanged.