CtrlK
BlogDocsLog inGet started
Tessl Logo

create-hook

Create a hook (.json) to enforce policy or automate agent lifecycle events.

52

Quality

58%

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

Fix and improve this skill with Tessl

tessl review fix ./extensions/copilot/assets/prompts/skills/create-hook/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%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.

The body is a lean, well-sectioned instruction skill with a sensible workflow and an explicit iteration/feedback step, but its actionability hinges on a `hooks.md` that is neither bundled nor prominently referenced, and it includes no example hook JSON. Surfacing or inlining the hook template would resolve the biggest weakness.

Suggestions

Include `hooks.md` in the bundle (e.g., `references/hooks.md`) and reference it in a clearly signaled section, or inline a minimal executable hook JSON example if the file is intentionally external.

Add a validation checkpoint in the Iterate loop, e.g. verify the drafted JSON parses and the hook fires on the target event before finalizing.

Trim editorial sentences in Path Conventions ("Absolute paths are fine when intentional — just be deliberate about which you use") to tighten the body further.

DimensionReasoningScore

Conciseness

The ~30-line body is efficient with well-scoped sections and no explanation of concepts Claude already knows, matching 'efficient; minor instances of over-explanation that could be trimmed'. Not 5 because a few sentences pad rather than instruct (e.g., "Absolute paths are fine when intentional — just be deliberate about which you use" restates the preceding rule); not 3 because verbosity is only minor.

4 / 5

Actionability

Guidance includes concrete specifics (hook location `.github/hooks/`, event names like PreToolUse/SessionStart/Stop, extraction checklist), but the actual hook template and format are delegated to a `hooks.md` that is not present in the bundle, so the body never shows a hook JSON example — 'some concrete guidance but incomplete; missing key details'. Not 4 because the core executable artifact is missing rather than a minor gap; not 2 because the workflow steps and path rules are specific and followable.

3 / 5

Workflow Clarity

A clear sequence (extract from conversation → clarify → path conventions → draft → review weak parts → finalize with testing suggestions) with a built-in feedback loop ("identify the most ambiguous or weak parts and ask about those") matches 'clear sequence with most checkpoints present; minor validation gaps'. Not 5 because there is no checkpoint that the drafted hook JSON is syntactically valid or actually fires before finalizing.

4 / 5

Progressive Disclosure

Sections are well organized, but the reference to `hooks.md` — the file that supposedly holds the template and principles — is buried in an intro sentence rather than clearly signaled, and no such bundle file exists in this skill's directory. This matches 'some structure but could be better organized; references present but not clearly signaled'. Not 4 because the key reference is neither prominent nor verifiable in the bundle; not 2 because the body itself is short and sectioned rather than a wall of inline content.

3 / 5

Total

14

/

20

Passed

Description

53%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.

The description is concise, in third person, and communicates a clear 'what' with a distinct hook/automation niche, but it lacks any 'when to use' trigger guidance and only offers thin keyword coverage. Adding a 'Use when...' clause with natural user phrasings would lift both completeness and trigger term quality.

Suggestions

Append an explicit trigger clause, e.g. "Use when the user wants to block or gate agent actions, inject context at lifecycle points, or automate session start/end behavior."

Include natural synonym phrasings users would actually say ("hooks", "guardrails", "automate Claude's behavior", "run something on every tool use") to improve trigger term coverage.

Name the concrete capabilities covered (which lifecycle events, block vs. warn vs. inject) to raise specificity beyond a single 'create' action.

DimensionReasoningScore

Specificity

The description names the domain and artifact ("Create a hook (.json)") plus two purposes ("enforce policy", "automate agent lifecycle events"), which matches the 'names domain and 1-2 concrete actions, but not comprehensive' anchor. It stays below 4 because 'create' is the only concrete action verb — no detail on which events or what enforcement looks like — and above 2 because the domain and purposes are more than minimal or generic.

3 / 5

Completeness

The 'what' is clear (create a hook to enforce policy or automate lifecycle events) but there is no 'Use when...' clause or equivalent trigger guidance, so per the judging guidelines completeness is capped at 3. It is not 2 because the 'what' is concrete rather than vague, and cannot be 4+ without explicit 'when' guidance.

3 / 5

Trigger Term Quality

Relevant keywords like "hook", "policy", "automate", and "agent lifecycle events" are present, but common variations users would naturally say ("hooks", "automation", "trigger", "guardrail", "block Claude from...") are missing, matching the 'some relevant keywords but missing common variations or synonyms' anchor. Not 4 because the natural-phrase coverage has several gaps, not just a few.

3 / 5

Distinctiveness Conflict Risk

"Hook" and "agent lifecycle events" carve out a fairly distinct niche with minimal overlap risk, matching 'mostly distinct; minor overlap risk with closely related skills'. It is not 5 because "enforce policy or automate" is broad enough to overlap with general agent-customization or automation skills.

4 / 5

Total

13

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
posit-dev/positron
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.