Stats
Actions
Tags
From supervibe
Runs a preflight check and advice on file edits, verifies post-edit changes, records bash/file operations in a log, and detects callouts in prompts. Executes bash commands and writes files.
6 events · 13 hooks
Safety signals detected in this hook configuration
Where this hook configuration is defined
Defined in hooks/hooks.json
Event handlers and matchers — expand Raw Configuration for the full JSON
*node --input-type=module -e "import{pathToFileURL}from'node:url';import{join}from'node:path';const r=process.env.SUPERVIBE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||process.env[['CLAUDE','PLUGIN_ROOT'].join('_')];if(!r){process.stderr.write(JSON.stringify({schemaVersion:1,kind:'supervibe-hook-root-missing-proof-packet',state:'blocked-missing-plugin-root',actionBlocked:true,safetyBlockers:['missing-supervibe-plugin-root'],blockedReason:'SUPERVIBE_PLUGIN_ROOT/PLUGIN_ROOT missing; Supervibe hook cannot execute durable proof path'}));process.exit(1)};process.env.SUPERVIBE_PLUGIN_ROOT=r;await import(pathToFileURL(join(r,process.argv[1])).href)" scripts/supervibe-hook.mjs goal-recoverynode --input-type=module -e "import{pathToFileURL}from'node:url';import{join}from'node:path';const r=process.env.SUPERVIBE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||process.env[['CLAUDE','PLUGIN_ROOT'].join('_')];if(!r){process.stderr.write(JSON.stringify({schemaVersion:1,kind:'supervibe-hook-root-missing-proof-packet',state:'blocked-missing-plugin-root',actionBlocked:true,safetyBlockers:['missing-supervibe-plugin-root'],blockedReason:'SUPERVIBE_PLUGIN_ROOT/PLUGIN_ROOT missing; Supervibe hook cannot execute durable proof path'}));process.exit(1)};process.env.SUPERVIBE_PLUGIN_ROOT=r;await import(pathToFileURL(join(r,process.argv[1])).href)" scripts/supervibe-hook.mjs stopBash|shell_command|apply_patch|Edit|Writenode --input-type=module -e "import{pathToFileURL}from'node:url';import{join}from'node:path';const r=process.env.SUPERVIBE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||process.env[['CLAUDE','PLUGIN_ROOT'].join('_')];if(!r){process.stderr.write(JSON.stringify({schemaVersion:1,kind:'supervibe-hook-root-missing-proof-packet',state:'blocked-missing-plugin-root',actionBlocked:true,safetyBlockers:['missing-supervibe-plugin-root'],blockedReason:'SUPERVIBE_PLUGIN_ROOT/PLUGIN_ROOT missing; Supervibe hook cannot execute durable proof path'}));process.exit(1)};process.env.SUPERVIBE_PLUGIN_ROOT=r;await import(pathToFileURL(join(r,process.argv[1])).href)" scripts/design-dependency-installer.mjs --hook-gatenode --input-type=module -e "import{pathToFileURL}from'node:url';import{join}from'node:path';const r=process.env.SUPERVIBE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||process.env[['CLAUDE','PLUGIN_ROOT'].join('_')];if(!r){process.stderr.write(JSON.stringify({schemaVersion:1,kind:'supervibe-hook-root-missing-proof-packet',state:'blocked-missing-plugin-root',actionBlocked:true,safetyBlockers:['missing-supervibe-plugin-root'],blockedReason:'SUPERVIBE_PLUGIN_ROOT/PLUGIN_ROOT missing; Supervibe hook cannot execute durable proof path'}));process.exit(1)};process.env.SUPERVIBE_PLUGIN_ROOT=r;await import(pathToFileURL(join(r,process.argv[1])).href)" scripts/hooks/pre-write-prototype-guard.mjsnode --input-type=module -e "import{pathToFileURL}from'node:url';import{join}from'node:path';const r=process.env.SUPERVIBE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||process.env[['CLAUDE','PLUGIN_ROOT'].join('_')];if(!r){process.stderr.write(JSON.stringify({schemaVersion:1,kind:'supervibe-hook-root-missing-proof-packet',state:'blocked-missing-plugin-root',actionBlocked:true,safetyBlockers:['missing-supervibe-plugin-root'],blockedReason:'SUPERVIBE_PLUGIN_ROOT/PLUGIN_ROOT missing; Supervibe hook cannot execute durable proof path'}));process.exit(1)};process.env.SUPERVIBE_PLUGIN_ROOT=r;await import(pathToFileURL(join(r,process.argv[1])).href)" scripts/hooks/pre-tool-use-refactor-advisory.mjsBash|shell_command|apply_patch|Edit|Writenode --input-type=module -e "import{pathToFileURL}from'node:url';import{join}from'node:path';const r=process.env.SUPERVIBE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||process.env[['CLAUDE','PLUGIN_ROOT'].join('_')];if(!r){process.stderr.write(JSON.stringify({schemaVersion:1,kind:'supervibe-hook-root-missing-proof-packet',state:'blocked-missing-plugin-root',actionBlocked:true,safetyBlockers:['missing-supervibe-plugin-root'],blockedReason:'SUPERVIBE_PLUGIN_ROOT/PLUGIN_ROOT missing; Supervibe hook cannot execute durable proof path'}));process.exit(1)};process.env.SUPERVIBE_PLUGIN_ROOT=r;await import(pathToFileURL(join(r,process.argv[1])).href)" scripts/supervibe-hook.mjs post-editTasknode --input-type=module -e "import{pathToFileURL}from'node:url';import{join}from'node:path';const r=process.env.SUPERVIBE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||process.env[['CLAUDE','PLUGIN_ROOT'].join('_')];if(!r){process.stderr.write(JSON.stringify({schemaVersion:1,kind:'supervibe-hook-root-missing-proof-packet',state:'blocked-missing-plugin-root',actionBlocked:true,safetyBlockers:['missing-supervibe-plugin-root'],blockedReason:'SUPERVIBE_PLUGIN_ROOT/PLUGIN_ROOT missing; Supervibe hook cannot execute durable proof path'}));process.exit(1)};process.env.SUPERVIBE_PLUGIN_ROOT=r;await import(pathToFileURL(join(r,process.argv[1])).href)" scripts/supervibe-hook.mjs post-tool-use-logstartup|resume|clear|compactnode --input-type=module -e "import{pathToFileURL}from'node:url';import{join}from'node:path';const r=process.env.SUPERVIBE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||process.env[['CLAUDE','PLUGIN_ROOT'].join('_')];if(!r){process.stderr.write(JSON.stringify({schemaVersion:1,kind:'supervibe-hook-root-missing-proof-packet',state:'blocked-missing-plugin-root',actionBlocked:true,safetyBlockers:['missing-supervibe-plugin-root'],blockedReason:'SUPERVIBE_PLUGIN_ROOT/PLUGIN_ROOT missing; Supervibe hook cannot execute durable proof path'}));process.exit(1)};process.env.SUPERVIBE_PLUGIN_ROOT=r;await import(pathToFileURL(join(r,process.argv[1])).href)" scripts/supervibe-hook.mjs session-startnode --input-type=module -e "import{pathToFileURL}from'node:url';import{join}from'node:path';const r=process.env.SUPERVIBE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||process.env[['CLAUDE','PLUGIN_ROOT'].join('_')];if(!r){process.stderr.write(JSON.stringify({schemaVersion:1,kind:'supervibe-hook-root-missing-proof-packet',state:'blocked-missing-plugin-root',actionBlocked:true,safetyBlockers:['missing-supervibe-plugin-root'],blockedReason:'SUPERVIBE_PLUGIN_ROOT/PLUGIN_ROOT missing; Supervibe hook cannot execute durable proof path'}));process.exit(1)};process.env.SUPERVIBE_PLUGIN_ROOT=r;await import(pathToFileURL(join(r,process.argv[1])).href)" scripts/supervibe-hook.mjs task-prime --text --compact-context*node --input-type=module -e "import{pathToFileURL}from'node:url';import{join}from'node:path';const r=process.env.SUPERVIBE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||process.env[['CLAUDE','PLUGIN_ROOT'].join('_')];if(!r){process.stderr.write(JSON.stringify({schemaVersion:1,kind:'supervibe-hook-root-missing-proof-packet',state:'blocked-missing-plugin-root',actionBlocked:true,safetyBlockers:['missing-supervibe-plugin-root'],blockedReason:'SUPERVIBE_PLUGIN_ROOT/PLUGIN_ROOT missing; Supervibe hook cannot execute durable proof path'}));process.exit(1)};process.env.SUPERVIBE_PLUGIN_ROOT=r;await import(pathToFileURL(join(r,process.argv[1])).href)" scripts/supervibe-hook.mjs subagent-stopnode --input-type=module -e "import{pathToFileURL}from'node:url';import{join}from'node:path';const r=process.env.SUPERVIBE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||process.env[['CLAUDE','PLUGIN_ROOT'].join('_')];if(!r){const target=process.argv[1]||'hook';const isFeedback=/feedback/.test(target);const skill=isFeedback?'supervibe:browser-feedback':'supervibe:trigger-diagnostics';const folder=skill.replace(/^supervibe:/,'');const packet={schemaVersion:1,kind:'supervibe-hook-root-missing-skill-routing-packet',state:'blocked-missing-plugin-root',primarySkill:skill,selectedSkills:[{skillId:skill,path:'<resolved-supervibe-plugin-root>/skills/'+folder+'/SKILL.md',required:true,status:'plugin-root-missing',rank:1,source:'hook-root-bootstrap'}],actionBlocked:true,safetyBlockers:['missing-supervibe-plugin-root'],durableInlineGate:{state:'blocked',durableActionAllowed:false,requiresSelectedSkills:true,requiresResolvedSkillPaths:true,selectedSkillCount:1,blockedReason:'SUPERVIBE_PLUGIN_ROOT/PLUGIN_ROOT missing; Supervibe hook cannot execute or verify physical skill files'}};process.stdout.write(JSON.stringify({hookSpecificOutput:{hookEventName:'UserPromptSubmit',additionalContext:'<system-reminder>[supervibe] hook root missing: durable inline work is blocked until Supervibe plugin root is resolved. HOOK_ROOT_SKILL_ROUTING_PACKET: '+JSON.stringify(packet)+'</system-reminder>',skillRoutingPacket:packet,chatSkillRoutingGate:packet.durableInlineGate,...(isFeedback?{browserFeedbackSkillRoutingPacket:packet,browserFeedbackSkillRoutingGate:packet.durableInlineGate}:{})}}));process.exit(0)};process.env.SUPERVIBE_PLUGIN_ROOT=r;await import(pathToFileURL(join(r,process.argv[1])).href)" scripts/hooks/user-prompt-submit-feedback.mjsnode --input-type=module -e "import{pathToFileURL}from'node:url';import{join}from'node:path';const r=process.env.SUPERVIBE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||process.env[['CLAUDE','PLUGIN_ROOT'].join('_')];if(!r){const target=process.argv[1]||'hook';const isFeedback=/feedback/.test(target);const skill=isFeedback?'supervibe:browser-feedback':'supervibe:trigger-diagnostics';const folder=skill.replace(/^supervibe:/,'');const packet={schemaVersion:1,kind:'supervibe-hook-root-missing-skill-routing-packet',state:'blocked-missing-plugin-root',primarySkill:skill,selectedSkills:[{skillId:skill,path:'<resolved-supervibe-plugin-root>/skills/'+folder+'/SKILL.md',required:true,status:'plugin-root-missing',rank:1,source:'hook-root-bootstrap'}],actionBlocked:true,safetyBlockers:['missing-supervibe-plugin-root'],durableInlineGate:{state:'blocked',durableActionAllowed:false,requiresSelectedSkills:true,requiresResolvedSkillPaths:true,selectedSkillCount:1,blockedReason:'SUPERVIBE_PLUGIN_ROOT/PLUGIN_ROOT missing; Supervibe hook cannot execute or verify physical skill files'}};process.stdout.write(JSON.stringify({hookSpecificOutput:{hookEventName:'UserPromptSubmit',additionalContext:'<system-reminder>[supervibe] hook root missing: durable inline work is blocked until Supervibe plugin root is resolved. HOOK_ROOT_SKILL_ROUTING_PACKET: '+JSON.stringify(packet)+'</system-reminder>',skillRoutingPacket:packet,chatSkillRoutingGate:packet.durableInlineGate,...(isFeedback?{browserFeedbackSkillRoutingPacket:packet,browserFeedbackSkillRoutingGate:packet.durableInlineGate}:{})}}));process.exit(0)};process.env.SUPERVIBE_PLUGIN_ROOT=r;await import(pathToFileURL(join(r,process.argv[1])).href)" scripts/hooks/user-prompt-submit-memory-preflight.mjsnode --input-type=module -e "import{pathToFileURL}from'node:url';import{join}from'node:path';const r=process.env.SUPERVIBE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||process.env[['CLAUDE','PLUGIN_ROOT'].join('_')];if(!r){process.stderr.write(JSON.stringify({schemaVersion:1,kind:'supervibe-hook-root-missing-proof-packet',state:'blocked-missing-plugin-root',actionBlocked:true,safetyBlockers:['missing-supervibe-plugin-root'],blockedReason:'SUPERVIBE_PLUGIN_ROOT/PLUGIN_ROOT missing; Supervibe hook cannot execute durable proof path'}));process.exit(1)};process.env.SUPERVIBE_PLUGIN_ROOT=r;await import(pathToFileURL(join(r,process.argv[1])).href)" scripts/supervibe-hook.mjs task-primenpx claudepluginhub vtrka/supervibe --plugin supervibe