Analyze Social
ccplugins/awesome-claude-code-plugins
A skill your agent uses when the user shares a social video/post link or local video and wants it understood — an Instagram (instagram.com), TikTok (tiktok.com), YouTube or YouTube Shorts…
Publish a finished lesson MP4 from ~/Movies/lpm-lessons/<slug/ to the lpm YouTube channel through Chrome (YouTube Studio): search-optimized title and description with chapters, tags, category, the…
$ npx skills add gug007/lpm --skill lesson-publish -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gug007/lpm lesson-publish --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/gug007/lpm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/lesson-publish .claude/skills/lesson-publish && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "lesson-publish" agent skill from https://github.com/gug007/lpm/tree/main/.claude/skills/lesson-publish into .claude/skills/lesson-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson-publish", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/gug007/lpm/tree/main/.claude/skills/lesson-publishType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add gug007/lpm --skill lesson-publish -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gug007/lpm lesson-publish --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gug007/lpm.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/lesson-publish .agents/skills/lesson-publish && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "lesson-publish" agent skill from https://github.com/gug007/lpm/tree/main/.claude/skills/lesson-publish into .agents/skills/lesson-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson-publish", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gug007/lpm --skill lesson-publish -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gug007/lpm lesson-publish --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gug007/lpm.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/lesson-publish .cursor/skills/lesson-publish && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "lesson-publish" agent skill from https://github.com/gug007/lpm/tree/main/.claude/skills/lesson-publish into .cursor/skills/lesson-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson-publish", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/gug007/lpm.git --path .claude/skills/lesson-publish--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add gug007/lpm --skill lesson-publish -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gug007/lpm lesson-publish --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gug007/lpm.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/lesson-publish .gemini/skills/lesson-publish && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "lesson-publish" agent skill from https://github.com/gug007/lpm/tree/main/.claude/skills/lesson-publish into .gemini/skills/lesson-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson-publish", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install gug007/lpm lesson-publishInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add gug007/lpm --skill lesson-publish -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gug007/lpm.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/lesson-publish .github/skills/lesson-publish && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "lesson-publish" agent skill from https://github.com/gug007/lpm/tree/main/.claude/skills/lesson-publish into .github/skills/lesson-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson-publish", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gug007/lpm --skill lesson-publish -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gug007/lpm lesson-publish --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gug007/lpm.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/lesson-publish .opencode/skills/lesson-publish && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "lesson-publish" agent skill from https://github.com/gug007/lpm/tree/main/.claude/skills/lesson-publish into .opencode/skills/lesson-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lesson-publish", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
lesson-publishPublish a finished lesson MP4 from ~/Movies/lpm-lessons/<slug/ to the lpm YouTube channel through Chrome (YouTube Studio): search-optimized title and description with chapters, tags, category, the…
Lesson Publish is an agent skill from gug007/lpm. Publish a finished lesson MP4 from ~/Movies/lpm-lessons/<slug/ to the lpm YouTube channel through Chrome (YouTube Studio): search-optimized title and description with chapters, tags, category, the title-card thumbnail, Public, then added to the lesson playlist. Use when the user asks to upload, publish or post a lesson video to YouTube. Vertical videos from ~/Movies/lpm-lessons/tiktok/ go to YouTube Shorts through short-publish instead.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts (for example `scripts/prepare.js` and `scripts/register.js`).
It sits in Media & Creative, covering Video scripts and shorts. It works with YouTube and TikTok. The repository describes itself as: Start, stop, and duplicate dev projects with one click. The best workspace for running Claude Code, Codex, and other AI agents alongside your services. The licence is MIT.
Read from SKILL.md and the folder at commit 57f7a3f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodeclaudeFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
youtube.comlpm.cxFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Lesson Publish loads about 1.8k tokens when it runs. Until then it costs about 114 tokens; SKILL.md has 1,014 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from gug007/lpm at commit 57f7a3f, republished under its MIT licence (© gug007). 1,014 words, ~1,816 tokens.
.claude/skills/lesson-publish/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Upload a lesson video to YouTube and publish it.
node scripts/prepare.js <slug or lesson folder> <scratchpad-dir> first. It refuses a lesson whose checks failed or are older than the MP4 (qa/report.json, written by lesson's make.js); show the user the FAIL lines, and only with their go-ahead pass --accept "<their reason>". It copies the MP4 into the scratchpad under the video title (the file name becomes the initial title in Studio; it warns when that dropped a ":" to retype), the thumbnail (the opening card, rendered by make.js), the captions (<slug>.srt), and writes <slug>-description.txt and <slug>-tags.txt, and prints the chapters. Chrome's file_upload only accepts files inside the scratchpad and under 10,000,000 bytes; when the master is larger, prepare.js writes a 1080p HEVC two-pass copy that fits instead (H.264 at that bitrate smears terminal text). YouTube gets the smaller copy; the master stays in the lesson folder.lesson.json "youtube": { "hook": [two lines], "learn": [...], "sections": [...], "tags": [...], "hashtags": [...] }: write that block first when the lesson has none (prepare.js says so), then run prepare.js again, so a replacement upload reuses the same words..srt from the scratchpad → Publish. They carry the script's own words (lpm, Claude Code, Codex), which YouTube's auto-captions get wrong. In the current dialog Subtitles sits under Video elements and its Add stays greyed until Details → Show more → Video language is set (English); after "With timing", do not press Continue (it opens the macOS file picker): file_upload the .srt into the #captions-file-loader input, then Done.thumbnail.jpg, never YouTube's auto-pick: with a cover in lesson.json it is that cover (words beside a crop of the take on the card canvas, approved 2026-09-30), otherwise the opening title card; prepare.js copies it and it is uploaded in the Thumbnail step. A new channel gets a few custom thumbnails a day; past that the upload answers "Build your channel history" and nothing is set: leave the video a private draft (untick the playlist so no private row shows) and publish the next day with the thumbnail, unless the user says otherwise.lesson.json, nothing appended (no "(Mac Tutorial)"), brand is lowercase lpm, 100 characters max.https://lpm.cx (never the demo link lpm.cx/demo, user rule 2026-09-19), "What you'll learn" bullets, any sections ([{ "heading", "lines" }]: what a viewer needs first, what to do when a step doesn't match), "Chapters" (first at 0:00, at least three, each 10 s or longer: topic cards and "chapter" narration lines in lesson.json), one series line, 5–6 hashtags (#lpm #macOS #devtools …). No @ anywhere (it opens a mention popup) and no next-lesson teaser.YOUTUBE_PLAYLIST.md (repo root: heading = playlist title, then its URL, then the lesson titles in series order).navigate https://www.youtube.com/upload → find the file input → file_upload the MP4 → wait ~5 s → find the title and description textboxes, click + type → Thumbnail "Upload file" input → file_upload the JPEG → Audience radio → "Show more" → Tags textbox (type a comma after every tag) → Category: open the menu, take a full-scale screenshot, click the option by coordinate and zoom to verify (a click by find ref lands on the hovered row) → Playlists box (coordinate click) → tick the playlist → Done → Next ×3 → Public radio → Publish → copy the link from the "Video published" dialog.studio.youtube.com/video/<id>/edit (Visibility box → Private → Done → Save; the Save button stays active until the change is saved). Deleting the old video is the user's call.studio.youtube.com/video/<id>/edit, then Save.YOUTUBE_PLAYLIST.md, at the position its title has in that list. Preferred path is inside the upload dialog's Details step: the Playlists box ("Select") sits under the description; open it with a coordinate click (a ref click after scroll_to did not open it), tick the playlist, Done. If it was skipped, use studio.youtube.com/video/<id>/edit → Playlists → tick → Done → Save. The playlist is manually sorted and a new video is appended last, so uploading in series order needs nothing more; otherwise open https://www.youtube.com/playlist?list=<id> on the logged-in account, and use the row's ⋮ menu (Move to top / Move to bottom) or drag the ≡ handle until the order matches the file. Then run node scripts/register.js <slug> <youtu.be link>: it records the upload in the lesson folder (published.json), puts the link on the lesson's line in YOUTUBE_PLAYLIST.md (appending the line when it is missing; move it to its series position if needed) — that file is the order of record — and prints the entry for website/lib/youtube-lessons.ts; add it there and link it from the page about that feature. Studio's playlist page (studio.youtube.com/playlist/<id>/videos) lists and removes videos but cannot reorder them.© gug007, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in .claude/skills/lesson-publish of gug007/lpm.
Open the folder on GitHubat commit 57f7a3f
Lesson Publish next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Lesson Publish this skillgug007/lpm | 152 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Analyze Socialccplugins/awesome-claude-code-plugins | 970 | — | ~1.1k | Automated safety check: Warn | Apache-2.0 | |
| Memstack Content Youtube Scriptcwinvestments/memstack | 423 | — | ~3.5k | Automated safety check: Pass | Proprietary | |
| Shortform Ideationericrisco/rsc-harness | 180 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Cross Platform ReformatterOotto-AI/claude-content-skills | 130 | — | ~449 | Automated safety check: Pass | MIT | |
| Video Hook Generatornicepkg/ai-workflow | 285 | — | ~2k | Automated safety check: Pass | MIT |
ccplugins/awesome-claude-code-plugins
A skill your agent uses when the user shares a social video/post link or local video and wants it understood — an Instagram (instagram.com), TikTok (tiktok.com), YouTube or YouTube Shorts…
cwinvestments/memstack
A skill your agent uses when the user says 'YouTube script', 'video script', 'write script for YouTube', 'YouTube video outline', or is creating scripted content for a YouTube video with hooks…
ericrisco/rsc-harness
A skill your agent uses when a Reels/TikTok/Shorts account needs its next video ideas scored into a ranked backlog, grounded in its own performance log plus dated trending sounds, each bet logged so…
Ootto-AI/claude-content-skills
Reshapes one Instagram reel into a TikTok and a YouTube Short — adjusting hook, length and captions per platform.
nicepkg/ai-workflow
Generate attention-grabbing hooks for the first 3 seconds of videos.
aAAaqwq/AGI-Super-Team
When the user wants to plan video marketing, create video scripts, or optimize for short-form or long-form video.
gug007/lpm
Make a short vertical (9:16) lpm lesson that feels native to TikTok, Reels and Shorts: a payoff-first hook, fast push-ins that follow the action, word-by-word burned-in captions, numbered step…
gug007/lpm
Make a short vertical (9:16) video where two AI models build the same self-playing game in lpm, one above the other, and both games then play live in lpm's browser.
gug007/lpm
Make a short vertical (9:16) video that races two AI models on the same prompt in lpm, one above the other: Run in duplicates puts each model in its own copy of the project, shown as two rows, the…
gug007/lpm
Create and edit lpm YAML configs for projects, duplicates, worktree metadata, services, actions, header and footer button zones and zone layers, terminals, profiles, SSH projects, and shared config…
gug007/lpm
Make the App Store screenshots for lpm Link (iPhone 6.3" 1206x2622 and iPad 13" 2064x2752) from the current mobile/ source: a screenshot build of the app opens each screen straight into Demo Mode…
gug007/lpm
Post a finished vertical lesson from ~/Movies/lpm-lessons/tiktok/<slug/ to YouTube Shorts (LPM channel, through Chrome) and TikTok (@lpm06557, from the user's iPhone through iPhone Mirroring) in…
Categories
Publish a finished lesson MP4 from ~/Movies/lpm-lessons/<slug/ to the lpm YouTube channel through Chrome (YouTube Studio): search-optimized title and description with chapters, tags, category, the…. Lesson Publish is an agent skill from gug007/lpm. Publish a finished lesson MP4 from ~/Movies/lpm-lessons/<slug/ to the lpm YouTube channel through Chrome (YouTube Studio): search-optimized title and description with chapters, tags, category, the title-card thumbnail, Public, then added to the lesson playlist.
Lesson Publish fits situations like: the user asks to upload; post a lesson video to YouTube.
Run `npx skills add gug007/lpm --skill lesson-publish -a claude-code`. Or copy the skill folder (.claude/skills/lesson-publish in gug007/lpm) into .claude/skills/lesson-publish in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gug007/lpm --skill lesson-publish -a codex`. Or copy the skill folder (.claude/skills/lesson-publish in gug007/lpm) into .agents/skills/lesson-publish in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gug007/lpm --skill lesson-publish -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/lesson-publish, .gemini/skills/lesson-publish, .github/skills/lesson-publish and .opencode/skills/lesson-publish in your project.
Going by SKILL.md and its folder, Lesson Publish needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node and claude). Our summary lists: Node.js.
SKILL.md names 2 domains. In commands or code: youtube.com and lpm.cx; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Lesson Publish is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Lesson Publish: Analyze Social (ccplugins/awesome-claude-code-plugins, 970 stars), Memstack Content Youtube Script (cwinvestments/memstack, 423 stars), Shortform Ideation (ericrisco/rsc-harness, 180 stars) and Cross Platform Reformatter (Ootto-AI/claude-content-skills, 130 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gug007 (a GitHub user) maintains it in gug007/lpm, which has 152 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 10, 2026.
Source: gug007/lpm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.