From 817e2c2bb65a32dbcb4f944b7b95bcf338bbe58a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Andr=C3=A9?= Date: Thu, 23 Jul 2026 23:06:46 +0000 Subject: [PATCH] Restore PostToolObserver, DriftReminder, AlgorithmNudge hook registrations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 2026-07-11 hooks-BPE consolidation created per-event dispatcher hooks but never registered three of them in the shipped install payload, even though LIFEOS/DOCUMENTATION/Hooks/HookSystem.md documents all three as registered: - PostToolObserver.hook.ts was missing from the PostToolUse catch-all group (HookSystem.md:322 documents it there, sync, timeout 5, ahead of EventLogger.hook.ts). Unregistered, LoopDetector.run() (folded into PostToolObserver per HookSystem.md:22) never runs. - DriftReminder.hook.ts was missing from UserPromptSubmit (HookSystem.md:142, timeout 5, async). Voice/format drift nudges never fire. - AlgorithmNudge.hook.ts was missing its UserPromptSubmit registration (HookSystem.md:144, timeout 5, async) — it remains registered on PostToolUseFailure, unchanged. HookSystem.md:1562 documents the UserPromptSubmit chain as 6 hooks ending in AlgorithmNudge; the shipped payload only had 4. Missing this drops the always-on skill-routing and principal-message nudges and leaves state.primaryTranscript unset, which HookSystem.md documents as gating subagent-noise suppression for AlgorithmNudge's other branches. This restores config to match what HookSystem.md already documents as live, using the exact registration shapes and UserPromptSubmit fire order given there (PromptProcessing, SatisfactionCapture, ReminderRouter, DriftReminder, MemoryTurnStart, AlgorithmNudge). --- LifeOS/install/hooks/hooks.json | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/LifeOS/install/hooks/hooks.json b/LifeOS/install/hooks/hooks.json index ff8b570a12..bebe215473 100644 --- a/LifeOS/install/hooks/hooks.json +++ b/LifeOS/install/hooks/hooks.json @@ -134,6 +134,11 @@ }, { "hooks": [ + { + "type": "command", + "command": "$HOME/.claude/hooks/PostToolObserver.hook.ts", + "timeout": 5 + }, { "type": "command", "command": "$HOME/.claude/hooks/EventLogger.hook.ts", @@ -204,6 +209,16 @@ } ] }, + { + "hooks": [ + { + "type": "command", + "command": "$HOME/.claude/hooks/DriftReminder.hook.ts", + "timeout": 5, + "async": true + } + ] + }, { "hooks": [ { @@ -212,6 +227,16 @@ "timeout": 8 } ] + }, + { + "hooks": [ + { + "type": "command", + "command": "$HOME/.claude/hooks/AlgorithmNudge.hook.ts", + "timeout": 5, + "async": true + } + ] } ], "PostToolUseFailure": [