CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

engineer-hook

Create and configure event hooks/plugins that manage agent behavior — command filtering, auditing, automation, script-based blocking of actions. Use when you need to create or configure a hook. Works across IDEs (Cursor, Claude Code, OpenCode).

64

Quality

81%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

78%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, highly actionable cross-IDE guide: dense comparison tables, executable examples for each IDE, and exemplary progressive disclosure with real one-level-deep references. The main gaps are a script-protocol inconsistency between the Cursor and Claude Code examples and a vague test step in the workflow.

Suggestions

Fix the "same script works for both Cursor and Claude Code" claim: the two guard.sh examples use different output protocols (Cursor: JSON permission object on stdout; Claude Code: exit 2 + stderr), so either align them or explain the difference.

Strengthen the workflow's Test step with a concrete validation procedure (e.g. run a sample command that should be blocked, then check `claude --debug` output or the Cursor Hooks output channel) and an explicit fix-and-retry loop when the hook does not fire.

De-duplicate the per-section "Full Reference" pointers (already restated in Resources) or trim the event mapping table to the most common events with the full matrix in a reference file.

DimensionReasoningScore

Conciseness

Dense tables (paths, availability matrix, event mapping) carry most of the information with no basic-concept padding, and details are correctly pushed to reference files. Minor trimming possible: the per-section "Full Reference" links duplicate the Resources section, and the 24-row event mapping table could partially live in references.

4 / 5

Actionability

Copy-paste-ready JSON configs, executable guard.sh scripts, and a complete TypeScript plugin example covering the same common case (blocking rm -rf) per IDE. Not anchor 5 because the Claude Code section says "same script works for both Cursor and Claude Code" yet shows a different script using a different protocol (exit 2 + stderr vs JSON permission object), which is confusing rather than fully executable guidance.

4 / 5

Workflow Clarity

A clear 7-step numbered sequence (detect → read reference → define event → choose type → configure → implement → test) with IDE detection fallback ("if multiple detected or none → ask the user"). Not anchor 5 because the Test step is vague ("Verify the hook fires correctly") with no concrete validation procedure or fix-and-retry loop, though the Tips section partially compensates with debug commands.

4 / 5

Progressive Disclosure

Three real, one-level-deep reference files plus an asset, each well-signaled from its IDE section and summarized in a Resources list, and the body explicitly instructs "read ONLY the corresponding reference file. Do not load all references." The overview/mapping content that belongs inline is inline and the detail is appropriately split.

5 / 5

Total

17

/

20

Passed

Description

75%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A solid description that states concrete capabilities and an explicit trigger clause with clear cross-IDE scope. Its main weakness is the self-referential "Use when you need to create or configure a hook" trigger and missing natural synonyms (config file names, event names) that would improve both completeness and trigger coverage.

Suggestions

Replace the circular trigger clause with concrete ones, e.g. "Use when the user mentions hooks, plugins, event interception, or wants to block/audit/automate agent commands or tool use."

Add natural trigger synonyms such as "settings.json", "hooks.json", "PreToolUse", or "guard script" so users phrasing the request around config files or events still match.

Optionally mention the allow/confirm/modify outcomes (not just blocking) so the "what" matches the skill's full capability set.

DimensionReasoningScore

Specificity

Names concrete actions — "command filtering, auditing, automation, script-based blocking of actions" — alongside "create and configure event hooks/plugins". Falls short of anchor 5 because it omits capabilities the body covers (allow/confirm rules, modifying input data), and "manage agent behavior" is somewhat abstract.

4 / 5

Completeness

Has a clear "what" and an explicit "Use when" clause, so it clears anchor 3. Not anchor 5 because the when-clause is circular ("Use when you need to create or configure a hook") and offers no concrete trigger phrases like "when the user mentions hooks, plugins, or settings.json".

4 / 5

Trigger Term Quality

Includes natural terms users would say ("hooks", "plugins", "create or configure a hook", plus the three IDE names). Missing common synonyms and file-based triggers like "settings.json", "hooks.json", "PreToolUse", or ".opencode/plugins" that anchor 5 expects.

4 / 5

Distinctiveness Conflict Risk

"event hooks/plugins" plus named IDEs (Cursor, Claude Code, OpenCode) carves a clear niche with distinct triggers. Only minor overlap risk with closely related skills (settings management, general automation), matching anchor 4 rather than the minimal-conflict anchor 5.

4 / 5

Total

16

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

korchasa/flowai-plugins

Path

plugins/flowai-devtools/skills/engineer-hook/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.