npx claudepluginhub swen128/markus --plugin markusDefined in hooks/hooks.json
touch /tmp/claude-stop-sentinelWrite|Editbash "${CLAUDE_PLUGIN_ROOT}/scripts/validate-memory.sh"diff -q "${CLAUDE_PLUGIN_ROOT}/package.json" "${CLAUDE_PLUGIN_DATA}/package.json" >/dev/null 2>&1 || (cp "${CLAUDE_PLUGIN_ROOT}/package.json" "${CLAUDE_PLUGIN_ROOT}/bun.lock" "${CLAUDE_PLUGIN_DATA}/" && cd "${CLAUDE_PLUGIN_DATA}" && bun install --frozen-lockfile 2>/dev/null || (rm -f "${CLAUDE_PLUGIN_DATA}/package.json" && false))bun run "${CLAUDE_PLUGIN_ROOT}/src/workspace-context.ts"bun run "${CLAUDE_PLUGIN_ROOT}/src/bootstrap-nudge.ts"if command -v qmd >/dev/null 2>&1; then qmd collection list 2>/dev/null | grep -q memory-root || ([ -f MEMORY.md ] && qmd collection add . --name memory-root --mask MEMORY.md 2>/dev/null); qmd collection list 2>/dev/null | grep -q memory-dir || ([ -d memory ] && qmd collection add memory --name memory-dir --mask '**/*.md' 2>/dev/null); qmd update 2>/dev/null; qmd embed 2>/dev/null; fibash "${CLAUDE_PLUGIN_ROOT}/scripts/validate-memory.sh"Runs Python post-edit-lint script after Edit/Write/MultiEdit tool uses, stop-check on Stop event, and session-start hook on SessionStart (startup/clear/compact). Involves file writes.