Stats
Actions
Tags
From timeback
Blocks Write/Edit tool calls and prompts user to load a timeback skill when files or queries reference Timeback/QTI APIs, preventing silent data-loss gotchas. Modifies files via tool blocking.
2 events · 2 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
Write|Editjq -r '[.tool_input.content // "", .tool_input.new_string // ""] | join(" ")' | grep -qiE 'assessment-(items|tests)|/stimuli|oneroster|qti\.alpha-1edtech|api\.alpha-1edtech|QTI_BASE|ONEROSTER_BASE|rawxml|qti-assessment-item|coursecomponent|componentresource|imsqtiasi' && echo '{"hookSpecificOutput":{"hookEventName":"PreToolUse","additionalContext":"Reminder: this file touches Timeback/QTI APIs. If the timeback skill is not loaded in this conversation yet, run Skill(timeback) before continuing — it documents silent data-loss gotchas (XML vs JSON rules, XHTML sanitization, field naming mismatches)."}}' || true*jq -r '[.prompt // "", .user_prompt // ""] | join(" ")' | grep -qiE 'timeback|qti|oneroster|assessment-(item|test)|stimul(us|i)|course ?component|component-resource|rawxml|alpha-1edtech|match-interaction|hotspot|hottext|inline-choice|gap-match|graphic-gap|select-point|[[:<:]]pci[[:>:]]|portable custom interaction|push (to (cms|platform)|items|course)|create (items|course)|lessontype|vendorresourceid' && echo '{"hookSpecificOutput":{"hookEventName":"UserPromptSubmit","additionalContext":"IMPORTANT: This task involves the Timeback/QTI platform. You MUST invoke the timeback skill before writing ANY code: run Skill(timeback). The skill contains critical API gotchas (XML vs JSON format rules, XHTML sanitization, field naming mismatches) that prevent silent rendering failures and data loss. Do NOT skip this step."}}' || truenpx claudepluginhub ilmych/incept-plugins --plugin timeback