Individual skill

four-failures-check

Checks a video opening for the four ways hooks fail (delay, confusion, irrelevance, disinterest) and points at the exact words or shot that cause each one. Use on any hook draft, script opening or filmed first 3 seconds.

four-failures-check/SKILL.md

Read pinned source

Source commit 287053a825efc992e38653a66fc298925293bf36

What was checked

Matches the observed repository HEAD
Yes
Scanner rules are current
Yes
Repository scan complete
Yes
Skill scan complete
Yes
Observed behavior
Instructions only
Last checked
Nov 6, 2026

These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.

Install this skill

Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.

Claude Code

Destination .claude/skills/four-failures-check

( set -euo pipefail destination='./.claude/skills/four-failures-check' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Liamrjohnston/hook-master-skill.git' "$work/repo" git -C "$work/repo" checkout --detach 287053a825efc992e38653a66fc298925293bf36 git -C "$work/repo" archive --format=tar '287053a825efc992e38653a66fc298925293bf36:four-failures-check' > "$work/skill.tar" mkdir -p -- './.claude/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
Codex

Destination .agents/skills/four-failures-check

( set -euo pipefail destination='./.agents/skills/four-failures-check' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Liamrjohnston/hook-master-skill.git' "$work/repo" git -C "$work/repo" checkout --detach 287053a825efc992e38653a66fc298925293bf36 git -C "$work/repo" archive --format=tar '287053a825efc992e38653a66fc298925293bf36:four-failures-check' > "$work/skill.tar" mkdir -p -- './.agents/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
Cursor

Destination .cursor/skills/four-failures-check

( set -euo pipefail destination='./.cursor/skills/four-failures-check' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Liamrjohnston/hook-master-skill.git' "$work/repo" git -C "$work/repo" checkout --detach 287053a825efc992e38653a66fc298925293bf36 git -C "$work/repo" archive --format=tar '287053a825efc992e38653a66fc298925293bf36:four-failures-check' > "$work/skill.tar" mkdir -p -- './.cursor/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
Gemini CLI

Destination .gemini/skills/four-failures-check

( set -euo pipefail destination='./.gemini/skills/four-failures-check' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Liamrjohnston/hook-master-skill.git' "$work/repo" git -C "$work/repo" checkout --detach 287053a825efc992e38653a66fc298925293bf36 git -C "$work/repo" archive --format=tar '287053a825efc992e38653a66fc298925293bf36:four-failures-check' > "$work/skill.tar" mkdir -p -- './.gemini/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
GitHub Copilot

Destination .github/skills/four-failures-check

( set -euo pipefail destination='./.github/skills/four-failures-check' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Liamrjohnston/hook-master-skill.git' "$work/repo" git -C "$work/repo" checkout --detach 287053a825efc992e38653a66fc298925293bf36 git -C "$work/repo" archive --format=tar '287053a825efc992e38653a66fc298925293bf36:four-failures-check' > "$work/skill.tar" mkdir -p -- './.github/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )
OpenCode

Destination .opencode/skills/four-failures-check

( set -euo pipefail destination='./.opencode/skills/four-failures-check' if [ -e "$destination" ] || [ -L "$destination" ]; then printf '%s\n' 'Destination already exists; nothing overwritten.' >&2; exit 1; fi work=$(mktemp -d) trap 'rm -rf -- "$work"' EXIT git clone --filter=blob:none --no-checkout -- 'https://github.com/Liamrjohnston/hook-master-skill.git' "$work/repo" git -C "$work/repo" checkout --detach 287053a825efc992e38653a66fc298925293bf36 git -C "$work/repo" archive --format=tar '287053a825efc992e38653a66fc298925293bf36:four-failures-check' > "$work/skill.tar" mkdir -p -- './.opencode/skills' mkdir -- "$destination" tar -xf "$work/skill.tar" -C "$destination" )

Repository context

Repository stars (not skill ratings)
31
Repository last updated
Oct 25, 2026
License
MIT

Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.

Files and excerpt

File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.

Browse files
Read excerpt

# Four Failures Check

A hook that loses people almost always does one of four things. Check all four, in order, and point at the exact words or frame. Never give a verdict without a quote.

## The four failures

| Failure | What it looks like | The test | The fix |
|---|---|---|---|
| **Delay** | The topic arrives late. Greetings, names, "welcome back", "so", "before we get into it", a slow walk in | Count the words (or seconds) before a stranger knows what the video is about | Cut to the first word that carries the subject. Move the payoff frame to second zero |
| **Confusion** | More than one possible meaning, insider words, a pronoun with nothing behind it, a clever line that needs a second listen | Read it as a complete outsider, not as the expert who wrote it. Could a tired stranger say back what the video is about after one listen? | One meaning. Plain active verbs. Name the thing. Enough words to be clear, not as few as possible |
| **Irrelevance** | It's about the creator, not the viewer. "My journey", "a bit about me", a logo, a title card with the brand | Would the viewer think "this is for me" in the first sentence? | Put the viewer's problem, want or belief first. The creator's story can come later as proof |
| **Disinterest** | Clear and relevant but obvious. Nothing to wonder about. "Gardening tips!!", "Here's how our product works" | Is there a gap between what the viewer believes now and what this video shows? | Add contrast: what they expect versus what's true, the old way versus this way, the fail versus the fix |

Two things that are not failures: