Gary Vaynerchuk's jab-jab-jab-right-hook framework applied to a personal portfolio rotation on X and LinkedIn. Jabs = build-in-public + educational (value). Hooks = promo (the ask). Each property in the user's configured portfolio (see `~/.config/makerskills/jab-hook/properties.yaml`) gets a hook at least once every ~3 weeks; jabs fill the rest. Drafts go into the user's Typefully workspace via MCP. Modes — plan (7-day plan), pick-next (single post), audit (coverage report), draft (specific post
SkillScore65Maintained
Automatic
◆Marketing & Content pack
Last verified 10/10/2026
What it changes
Passed 13 of 20 test cases with the skill, and 6 of 20 without it.
Without skill30%
With skill65%
Checks it passed that the model alone missed
Marks Project B as overdue.
Leaves Project A unflagged as overdue.
Caps daily post volume at 2 posts per platform per day.
and 7 more in the full report
7 fixed6 passed either way7 still failing0 broke2 errored
Pass-rate lift
+35 pp
Tokens
+97%
Agent turns
0%
Response time
-2%
Model gemini-3.6-flashMeasured 10/10/2026v213 of 22 cases passed with skill · 20 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 7
Prompt
I am reviewing my project promotion history. Project A was last promoted 18 days ago and Project B was last promoted 25 days ago. Which of these should be flagged as overdue?
What was checked, without and with the skill
Checked
Without skill
With skill
Marks Project B as overdue.
Missed
Passed
Leaves Project A unflagged as overdue.
Missed
Passed
case-10 · gemini-3.6-flash · 10/10/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md115 lines10 files
/jab-hook — Jab-jab-jab-right-hook for a personal portfolio
Gary Vaynerchuk's framework applied to your configured portfolio: keep the feed mostly jabs (value — BIP + educational) so the hooks (promo) earn attention when they land. Drafts to your personal Typefully workspace.
One-time setup: see references/properties.md and references/typefully-config.md to configure your real portfolio + workspace. Personal config lives in ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/jab-hook/.
Mental model
N rotation slots (configured in ~/.config/makerskills/jab-hook/properties.yaml): one per property you want to promote on rotation
~2 promo posts/week → each property cycles every ~3 weeks at equal weight
Non-promo days: 50/50 build-in-public vs educational
Platforms: X + LinkedIn via your personal Typefully workspace
Step 1 — Pick the mode
Detect from the trigger:
User says
Mode
"plan my socials," "next week's posts"
plan
"what should I post," "next promo," "pick next"
pick-next
"audit my socials," "what's overdue," "what haven't I posted about"
audit
"draft a promo for X," "BIP post about Y," "educational about Z"
draft
If ambiguous, confirm.
Step 2 — Load context
Read references/properties.md — the 6 rotation slots and angle ideas
Read references/voice.md — the user's voice rules per platform
Read references/content-types.md — templates for promo / BIP / educational
Pull recent posts from your personal Typefully workspace:
First run: call the Typefully MCP server's list-social-sets tool and ask which social set is your personal (X + LinkedIn). Save the ID to ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/jab-hook/typefully.yaml for future runs (schema in references/typefully-config.example.yaml — never save it inside the skill folder; upgrades wipe it).
Call its list-drafts tool, filtered to the last 30 days
Classify each as promo / BIP / educational by content
Compute days since last promo for each of the 6 slots
When you want to clean and reformat content (usually from your terminal) for pasting into Slack, Notion, Twitter/X, LinkedIn, email, GitHub, or plain text. Strips ANSI codes, box-drawing chars, terminal prompt artifacts, and applies destination-specific formatting. Default input is the clipboard (read via `pbpaste`); default output is both the clipboard (`pbcopy`) and a chat preview. Triggers on "/paste", "/paste [destination]", "clean this for X," "format for slack/notion/twitter/linkedin/email