Batch of S243/S244 work held for PR640. Only devpulse has git write, so all branches' changes (@memory, @prax, @hooks, @aipass, @skills, @flow, @backup, @seedgo) land through this single commit. Memory rollover (correctness): - @hooks rollover hook now delegates to drone @memory rollover check/run — it had been reading stale .trinity limits (moved to memory.config.json by DPLAN-0210), falling back to a 600-line check that never fired, so rollover was silently dead for weeks. compact.py reads the current list schema. Both fail loud. - @memory removed the v1 line-count/600 fallback entirely — v2-only, fail-loud (959 tests). Retire-for-all (DPLAN-0215): - Legacy global prompt fully removed across every runtime: global_loader.py + tests deleted, hooks.json/project_hooks.json blocks stripped, bootstrap global seeding removed, cadence default + bypass cleaned, global .md files archived. Codex SessionStart + Claude cadence read the same tier files. Hardcoded-path cleanup (seedgo #37): - New HARDCODED_PATH checker (#37). @memory symbolic.py + @prax branch_detector.py home paths -> dynamic/generic. Both 100% Hardcoded_Path. - seedgo provider_hooks_snapshot.json fixture refreshed to the tiered baseline. Genericization: patrick -> user across tracked source, docs, templates. CHANGELOG: 2026-06-19 + 2026-06-23 sections added.
Handlers
Implementation details for DEVPULSE.
Handlers do the actual work. They are called by modules, never directly by the CLI. Keep business logic in modules, implementation in handlers.