Skills, commands, plugins, hooks
Joe opens Module 2 by defining skills, plugins, and hooks — markdown files that load only when called, packaged bundles of those files, and automatic guardrails that fire on keywords. Then he runs a live end-to-end demo: scraping every recent video from NYC Mayor Zohran Mamdani's YouTube, TikTok, Twitter, Instagram, and Facebook, transcribing them with Whisper, OCR'ing frames, and generating an analysis dashboard — all in roughly two hours on one machine.
TOPICS COVERED
KEY TAKEAWAYS
- ›Skills only cost tokens when they're relevant. Unlike MCPs, which load into every conversation at the start, skills sit on disk until something in the task triggers them. That means you can have dozens of specialized guardrails and workflows available without bloating every prompt.
- ›The browser can't do this. Joe pulled 76 full-resolution videos across five platforms, ran Whisper transcription on a local GPU, sampled frames for OCR, and built an interactive dashboard — all from one prompt with occasional nudges. You cannot get a web chat window to touch your files, your GPU, or your browser profile the way the terminal agent can.
- ›Stop hooks and ask-user-question beat raw prompts. When the task was complex, the brainstorming skill fired, which uses ask-user-question to interview Joe about purpose, sampling rate, model size, and output format before writing a single file. That interview catches misalignment up front instead of debugging it three hours in.
- ›Build skills to make one-time workflows repeatable. After the Mamdani run worked, the move is to codify what you learned — the video download flow, the Whisper config, the dashboard layout — as a skill so the next subject (any politician, any beat) runs the same pipeline automatically.
TIMESTAMPS
--dangerously-skip-permissionsInstalling and using journalism skills
Joe takes the working Mamdani pipeline and turns it into a reusable Claude Code plugin — four modular skills plus a plugin.json, an index page, and an SVG-animated docs site — all generated by the agent using Anthropic's official plugin development skills. Then he debugs the one gotcha (wrong install path), tests that the slash commands actually show up, and hands off the module assignment.
TOPICS COVERED
plugin.json, a skill.md per capability, helper scripts in subfolders — all generated by the plugin development skill.claude-plugins instead of .claude/plugins). Restart and reload-plugins didn't fix it — reinstall didKEY TAKEAWAYS
- ›There is no secret sauce. Joe's whole pitch in this video is that turning a working workflow into a skill is as simple as saying "let's save this for later" after you've confirmed it works. The bot already has plugin development skills from Anthropic baked in and knows the file layout — your job is describing what was useful and testing that the commands load.
- ›Modular skills beat one big orchestrator. Joe started leaning toward a hybrid — one orchestrator with four stage skills — but switched to pure modular. The reason: you want to pull individual pieces (video download, transcribe, frame extract, dashboard) into projects that don't need the whole pipeline.
- ›Even the plugin-creator misfires. Claude wrote the plugin to the wrong directory on the first try. Reload-plugins didn't catch it, quitting and resuming didn't catch it — Joe had to paste the docs and tell the agent to use the proper install method. This is why you test.
- ›Use these tools to build things that don't need these tools. The output of this video is a Python pipeline and an HTML dashboard. Once built, it runs on its own. The AI was the means of constructing it, not a runtime dependency for executing it.