pm-claude-skills 20.0.0 → 20.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,28 +1,30 @@
1
- # 🧠 PM Skills — 167 Professional Agent Skills for Claude, ChatGPT, Gemini, Cursor, Codex & Hermes
1
+ # 🧠 PM Skills — 174 Professional Agent Skills for Claude, ChatGPT, Gemini, Cursor, Codex & Hermes
2
2
 
3
3
  > Open-source **Agent Skills** (`SKILL.md`) + subagents + slash commands for every profession — one source, every AI coding tool.
4
4
 
5
5
  [![Stars](https://img.shields.io/github/stars/mohitagw15856/pm-claude-skills?style=social)](https://github.com/mohitagw15856/pm-claude-skills/stargazers)
6
6
  [![npm](https://img.shields.io/npm/v/pm-claude-skills?logo=npm&color=cb3837)](https://www.npmjs.com/package/pm-claude-skills)
7
7
  [![npm downloads](https://img.shields.io/npm/dm/pm-claude-skills?logo=npm&color=cb3837&label=installs)](https://www.npmjs.com/package/pm-claude-skills)
8
- [![Skills](https://img.shields.io/badge/skills-167-blue)](https://github.com/mohitagw15856/pm-claude-skills)
8
+ [![Skills](https://img.shields.io/badge/skills-174-blue)](https://github.com/mohitagw15856/pm-claude-skills)
9
9
  [![Subagents](https://img.shields.io/badge/subagents-4-blueviolet)](agents/)
10
10
  [![Commands](https://img.shields.io/badge/slash%20commands-6-blueviolet)](commands/)
11
11
  [![Personas](https://img.shields.io/badge/personas-4-blueviolet)](output-styles/)
12
12
  [![Platforms](https://img.shields.io/badge/works%20with-Claude%20%7C%20ChatGPT%20%7C%20Gemini%20%7C%20Cursor%20%7C%20Codex%20%7C%20Hermes-8A2BE2)](#-works-with--cross-tool-compatibility)
13
13
  [![SkillCheck](https://img.shields.io/github/actions/workflow/status/mohitagw15856/pm-claude-skills/skillcheck.yml?branch=main&label=SkillCheck)](.github/workflows/skillcheck.yml)
14
14
  [![Security Audit](https://img.shields.io/github/actions/workflow/status/mohitagw15856/pm-claude-skills/skill-audit.yml?branch=main&label=security%20audit)](.github/workflows/skill-audit.yml)
15
- [![Version](https://img.shields.io/badge/version-20.0.0-brightgreen)](https://github.com/mohitagw15856/pm-claude-skills/releases)
15
+ [![Version](https://img.shields.io/badge/version-20.2.0-brightgreen)](https://github.com/mohitagw15856/pm-claude-skills/releases)
16
16
  [![Install](https://img.shields.io/badge/Install%20in%20Claude%20Code-2%20minutes-orange)](https://github.com/mohitagw15856/pm-claude-skills#-quick-install-2-minutes)
17
17
  [![License](https://img.shields.io/badge/license-MIT-lightgrey)](LICENSE)
18
18
  [![Sponsor](https://img.shields.io/badge/sponsor-❤️-ff69b4)](https://github.com/sponsors/mohitagw15856)
19
19
 
20
+ ### ⭐ If this saves you time, [star the repo](https://github.com/mohitagw15856/pm-claude-skills) — it's the #1 way to help others find it.
21
+
20
22
  > **PM stands for Professional, not just Product Management.**
21
- > 167 professional skills + 4 agent templates across 26 bundles covering 18 professions. Built for Claude Code — and now portable to ChatGPT, Gemini, and Hermes Agent. Built by a PM, used by everyone.
23
+ > 174 professional skills + 4 agent templates across 26 bundles covering 18 professions. Built for Claude Code — and now portable to ChatGPT, Gemini, and Hermes Agent. Built by a PM, used by everyone.
22
24
 
23
25
  A community-built library of professional skills for every field — product management, engineering, customer success, marketing, social media, writers, design, legal, finance, HR, sales, operations, research, and more. Each skill is a structured `SKILL.md` file that teaches an AI assistant how to produce professional-grade outputs for your workflows. Skills run natively in **Claude Code** and **Hermes Agent** (same open `SKILL.md` standard), and ship as ready-to-paste exports for **ChatGPT** and **Gemini** — see [Works With](#-works-with--cross-tool-compatibility).
24
26
 
25
- **🆕 Latest release (v20.0.0 — Agentic Tooling):** run any skill in CI with the new **[GitHub Action](action/)**, turn your docs into a skill with **`npx pm-claude-skills generate`**, and compare skills across models on the **[Skill Leaderboard](https://mohitagw15856.github.io/pm-claude-skills/leaderboard.html)** (LLM-judge evals). See the [changelog](#-changelog).
27
+ **🆕 Latest release (v20.2.0 — Community PRs & New Skill):** a new **YouTube Script Writer** skill (**174 total**), a stdlib **feature-prioritisation** helper, safer installs, and robust frontmatter parsing all from community contributors. See the [changelog](#-changelog).
26
28
 
27
29
  <!-- DEMO: replace web/docs-assets/playground.png below with web/docs-assets/playground-demo.gif
28
30
  once recorded (see web/docs-assets/README.md for how). The link goes to the live app. -->
@@ -41,7 +43,7 @@ A community-built library of professional skills for every field — product man
41
43
  - [📦 Plugin Directory](#-plugin-directory)
42
44
  - [🤖 Building Blocks for Agent Templates](#-building-blocks-for-agent-templates)
43
45
  - [🏷️ Skill Tiers — start with the strongest](#️-skill-tiers--start-with-the-strongest)
44
- - [🗂️ All 167 Skills](#️-all-167-skills)
46
+ - [🗂️ All 174 Skills](#️-all-174-skills)
45
47
  - [📋 Changelog](#-changelog)
46
48
  - [🤝 Contributing](#-contributing--add-your-skill)
47
49
  - [🔗 Related Projects](#-related-projects)
@@ -322,7 +324,7 @@ Not sure which plugin to install? Here's what each one covers:
322
324
 
323
325
  On May 5, 2026, Anthropic [released their first agent templates](https://www.anthropic.com/news/finance-agents) — pre-packaged Claude agents that combine **skills, connectors, and subagents** into ready-to-run workflows for financial services.
324
326
 
325
- This library is the largest open-source collection of professional skills available — covering 17 professions beyond financial services. **The 167 skills here are the building blocks for agent templates outside of finance.**
327
+ This library is the largest open-source collection of professional skills available — covering 17 professions beyond financial services. **The 174 skills here are the building blocks for agent templates outside of finance.**
326
328
 
327
329
  ### What is an agent template?
328
330
 
@@ -403,7 +405,24 @@ More templates will follow. If you want to contribute one, see the [template con
403
405
 
404
406
  The highlights are below. For the structured, [Keep a Changelog](https://keepachangelog.com/)-format history, see **[CHANGELOG.md](CHANGELOG.md)**.
405
407
 
406
- ### 🆕 What's New in v20.0.0 — Agentic Tooling
408
+ ### 🆕 What's New in v20.2.0 — Community PRs & New Skill
409
+
410
+ - **New skill: YouTube Script Writer** (experimental) — retention-optimized video scripts with hook variations, a video/audio cue table, and SEO metadata. Thanks @prajwal-28 (#50). **Now 174 skills.**
411
+ - **Feature-prioritisation helper** — a dependency-free Python script that computes RICE/ICE rankings consistently across sessions. Thanks @zeotrix (#48).
412
+ - **Safer installs + robust parsing** — the CLI refuses system-critical install targets, and `skillcheck` tolerates CRLF/whitespace in frontmatter. Thanks @MatrixNeoKozak (#47).
413
+ - **Catalog reconciled to 174** — the headline, badge, and skill catalog now reflect the true count, with entries added for Skill Security Auditor, Launch Readiness, and YouTube Script Writer.
414
+
415
+ <details>
416
+ <summary><strong>v20.1.0 — Star Nudges & Eval Hardening</strong> (click to expand)</summary>
417
+
418
+ - **Star the repo, from anywhere you use it** — tasteful, non-spammy CTAs (no `postinstall`): after a successful `npx pm-claude-skills add`, in `--help`, in `list`, in the MCP server banner, below the README badges, and a `funding` link on npm.
419
+ - **One-click leaderboard in CI** — the "Update Skill Leaderboard" workflow runs the evals with your `ANTHROPIC_API_KEY` secret and opens a results PR; merge it to publish real numbers.
420
+ - **Faster, hang-proof evals** — per-request timeout + retries in the API client and concurrent eval runs, so a CI run finishes in minutes and can't stall.
421
+
422
+ </details>
423
+
424
+ <details>
425
+ <summary><strong>v20.0.0 — Agentic Tooling</strong> (click to expand)</summary>
407
426
 
408
427
  The library starts *doing* the work, not just describing it:
409
428
 
@@ -411,6 +430,8 @@ The library starts *doing* the work, not just describing it:
411
430
  - **`generate` command** — `npx pm-claude-skills generate --from <url|file>` turns your docs into a standard-compliant `SKILL.md`.
412
431
  - **Skill evals + Leaderboard** — LLM-as-judge scoring of skills across models, rendered as a public [leaderboard](https://mohitagw15856.github.io/pm-claude-skills/leaderboard.html).
413
432
 
433
+ </details>
434
+
414
435
  <details>
415
436
  <summary><strong>v19.0.0 — Security Auditor, Personas & Catalog</strong> (click to expand)</summary>
416
437
 
@@ -645,12 +666,12 @@ If you're new, install `pm-essentials` and try a couple of Production-Ready skil
645
666
 
646
667
  ---
647
668
 
648
- ## 🗂️ All 167 Skills
669
+ ## 🗂️ All 174 Skills
649
670
 
650
671
  The [Plugin Directory](#-plugin-directory) above summarises every bundle. Expand below for the full per-skill breakdown with folder paths.
651
672
 
652
673
  <details>
653
- <summary><strong>Browse all 167 skills by profession</strong> (click to expand)</summary>
674
+ <summary><strong>Browse all 174 skills by profession</strong> (click to expand)</summary>
654
675
 
655
676
  ### 🛠️ Product Management (Skills 1–37)
656
677
  **Bundles:** `pm-essentials` · `pm-discovery` · `pm-planning` · `pm-delivery` · `pm-analytics` · `pm-strategy` · `pm-advanced` · `pm-rituals`
@@ -687,7 +708,7 @@ The [Plugin Directory](#-plugin-directory) above summarises every bundle. Expand
687
708
 
688
709
  ---
689
710
 
690
- ### 👩‍💻 Engineering & Tech (Skills 46–80, 166–167)
711
+ ### 👩‍💻 Engineering & Tech (Skills 46–80, 166–168)
691
712
  **Bundle:** `pm-engineering`
692
713
 
693
714
  | # | Skill | Folder | What It Does |
@@ -729,6 +750,7 @@ The [Plugin Directory](#-plugin-directory) above summarises every bundle. Expand
729
750
  | 80 | **Engineering Hiring Rubric** 🆕 | `skills/engineering-hiring-rubric/` | Technical interview rubric with level expectations, coding scorecard, system design guide, behavioural question bank, and debrief template |
730
751
  | 166 | **Context Mode** 🆕 | `skills/context-mode/` | Filters command output noise and maintains a session log so Claude resumes exactly where it left off after a context reset |
731
752
  | 167 | **Claude Superpowers** 🆕 | `skills/claude-superpowers/` | Forces Claude Code to plan first, work in isolation, write tests before code, and double-review its own output — consistently better first passes |
753
+ | 168 | **Skill Security Auditor** 🆕 | `skills/skill-security-auditor/` | Audits any SKILL.md / system prompt for prompt injection, data exfiltration, code execution, secrets, and hidden text; returns a risk-rated report with an install / don't-install recommendation |
732
754
 
733
755
  ---
734
756
 
@@ -855,7 +877,7 @@ claude plugin install pm-cs@pm-claude-skills
855
877
 
856
878
  ---
857
879
 
858
- ### ⚙️ Operations (Skills 120–126, 164–165)
880
+ ### ⚙️ Operations (Skills 120–126, 164–165, 169)
859
881
  **Bundle:** `pm-operations`
860
882
 
861
883
  | # | Skill | Folder | What It Does |
@@ -869,6 +891,7 @@ claude plugin install pm-cs@pm-claude-skills
869
891
  | 126 | **RACI Matrix** 🆕 | `skills/raci-matrix/` | RACI with role definitions, decision map, anti-pattern guide, and a communication template for all teams |
870
892
  | 164 | **Email Triage** 🆕 | `skills/email-triage/` | Reads Gmail for a configurable window and surfaces only what needs action — priority-ranked with urgency ratings and reply starters |
871
893
  | 165 | **Morning Intelligence** 🆕 | `skills/morning-intelligence/` | 15-question interview that writes a personalised master prompt for your daily news brief, ready for Cowork Scheduled Tasks or Claude Code Routines |
894
+ | 169 | **Launch Readiness** 🆕 | `skills/launch-readiness/` | Cross-functional pre-launch assessment with a function-by-function readiness status, ranked blockers (owners + deadlines), a risk register, and an explicit Go / Conditional Go / No-Go recommendation |
872
895
 
873
896
  ---
874
897
 
@@ -950,7 +973,7 @@ claude plugin install pm-social@pm-claude-skills
950
973
 
951
974
  ---
952
975
 
953
- ### ✍️ Writers & Content Creators (Skills 156–160)
976
+ ### ✍️ Writers & Content Creators (Skills 156–160, 170)
954
977
  **Bundle:** `pm-writers`
955
978
 
956
979
  > Install:
@@ -966,6 +989,7 @@ claude plugin install pm-writers@pm-claude-skills
966
989
  | 158 | **Thumbnail Creator** 🆕 | `skills/thumbnail-creator/` | Generates brand-aligned thumbnail candidates via Gemini API; Claude evaluates results via computer vision and returns ranked candidates with rationale |
967
990
  | 159 | **Substack Notes Scraper** 🆕 | `skills/substack-notes-scraper/` | Scrapes Substack Notes and exports likes, comments, and restacks to a formatted .xlsx with frozen headers, filters, and top-performer highlighting |
968
991
  | 160 | **Notes Humanizer** 🆕 | `skills/notes-humanizer/` | Strips AI writing patterns (em dashes, filler phrases, uniform rhythm) across 3 phases: audit, strip, inject — returns side-by-side comparison and clean final text |
992
+ | 170 | **YouTube Script Writer** 🆕 | `skills/youtube-script-writer/` | Retention-optimized video scripts with 3 title/thumbnail concepts, 3 hook variations, a video/audio cue script table, and SEO metadata |
969
993
 
970
994
  </details>
971
995
 
@@ -973,7 +997,7 @@ claude plugin install pm-writers@pm-claude-skills
973
997
 
974
998
  ## ❤️ Sponsor This Work
975
999
 
976
- Building and maintaining 167 skills across 26 bundles takes real time — testing skills against new model releases, building new ones from community requests, writing the article series, and keeping documentation current.
1000
+ Building and maintaining 174 skills across 26 bundles takes real time — testing skills against new model releases, building new ones from community requests, writing the article series, and keeping documentation current.
977
1001
 
978
1002
  If these skills save you time at work, consider sponsoring:
979
1003
 
package/bin/cli.mjs CHANGED
@@ -13,12 +13,13 @@
13
13
  // --link symlink instead of copy (native agents; falls back to copy)
14
14
  // --dry-run print what would happen without writing
15
15
  import { readdirSync, existsSync, mkdirSync, rmSync, cpSync, symlinkSync, copyFileSync, statSync } from 'node:fs';
16
- import { join, dirname, basename } from 'node:path';
16
+ import { join, dirname, basename, resolve } from 'node:path';
17
17
  import { fileURLToPath } from 'node:url';
18
18
  import { homedir } from 'node:os';
19
19
  import { createRequire } from 'node:module';
20
20
 
21
21
  const PKG_ROOT = dirname(dirname(fileURLToPath(import.meta.url)));
22
+ const STAR = '⭐ Find this useful? Star the repo: https://github.com/mohitagw15856/pm-claude-skills';
22
23
  const VERSION = (() => {
23
24
  try { return createRequire(import.meta.url)('../package.json').version; } catch { return '0.0.0'; }
24
25
  })();
@@ -78,7 +79,15 @@ function add(opts) {
78
79
  }
79
80
  const skillsDir = join(PKG_ROOT, 'skills');
80
81
  if (!existsSync(skillsDir)) { console.error(`Error: bundled skills/ not found at ${skillsDir}.`); process.exit(1); }
81
- const target = opts.target || defaultTarget(agent);
82
+ const target = resolve(opts.target || defaultTarget(agent));
83
+
84
+ // Guard against installing into system-critical directories (e.g. a typo'd --target).
85
+ const criticalPaths = ['/', '/usr', '/bin', '/etc', '/var', '/root', '/boot', '/proc', '/sys', '/dev'];
86
+ if (criticalPaths.includes(target)) {
87
+ console.error(`Error: Cannot install into a system-critical directory: ${target}`);
88
+ process.exit(1);
89
+ }
90
+
82
91
  let count = 0;
83
92
 
84
93
  console.log(`${opts.dryRun ? '[dry-run] ' : ''}Installing for '${agent}' into ${target}`);
@@ -128,6 +137,7 @@ function add(opts) {
128
137
  aider: `Load any of them with: aider --read ${join(target, '<skill>.md')}`,
129
138
  }[agent] || `Restart ${agent} — it auto-discovers SKILL.md skills in ${target} by their description.`;
130
139
  console.log(note);
140
+ console.log(`\n${STAR}`);
131
141
  }
132
142
  }
133
143
 
@@ -139,6 +149,7 @@ function list() {
139
149
  console.log('\nNative SKILL.md agents: claude, hermes, codex, openclaw (install skill folders).');
140
150
  console.log('Claude also gets subagents + slash commands. Cursor/Windsurf install rule files;');
141
151
  console.log('Aider installs conventions you load with "aider --read".');
152
+ console.log(`\n${STAR}`);
142
153
  }
143
154
 
144
155
  const HELP = `pm-claude-skills — install professional Agent Skills into any AI coding tool.
@@ -155,6 +166,8 @@ Examples:
155
166
  npx pm-claude-skills add --agent codex --link
156
167
 
157
168
  npx pm-claude-skills generate --from <url|file> # turn your docs into a SKILL.md (needs ANTHROPIC_API_KEY)
169
+
170
+ ${STAR}
158
171
  `;
159
172
 
160
173
  const opts = parse(process.argv.slice(2));
@@ -6,31 +6,57 @@ const API_URL = 'https://api.anthropic.com/v1/messages';
6
6
 
7
7
  /**
8
8
  * Call the Anthropic Messages API and return the concatenated text output.
9
+ * Adds a per-request timeout and limited retries so a slow/transient failure
10
+ * can't hang a CI job forever.
9
11
  * @param {object} o
10
12
  * @param {string} o.apiKey - Anthropic API key.
11
13
  * @param {string} [o.model] - Model id (default claude-sonnet-4-6).
12
14
  * @param {string} [o.system]- System prompt.
13
15
  * @param {Array} o.messages- [{role, content}] messages.
14
16
  * @param {number} [o.maxTokens]
17
+ * @param {number} [o.timeoutMs] - Per-request timeout (default 120s).
18
+ * @param {number} [o.retries] - Retries on timeout / 429 / 5xx (default 2).
15
19
  * @returns {Promise<string>}
16
20
  */
17
- export async function complete({ apiKey, model = 'claude-sonnet-4-6', system, messages, maxTokens = 4096 }) {
21
+ export async function complete({ apiKey, model = 'claude-sonnet-4-6', system, messages, maxTokens = 4096, timeoutMs = 120000, retries = 2 }) {
18
22
  if (!apiKey) throw new Error('Missing Anthropic API key (set ANTHROPIC_API_KEY).');
19
- const res = await fetch(API_URL, {
20
- method: 'POST',
21
- headers: {
22
- 'content-type': 'application/json',
23
- 'x-api-key': apiKey,
24
- 'anthropic-version': '2023-06-01',
25
- },
26
- body: JSON.stringify({ model, max_tokens: maxTokens, ...(system ? { system } : {}), messages }),
27
- });
28
- if (!res.ok) {
29
- const body = await res.text().catch(() => '');
30
- throw new Error(`Anthropic API ${res.status}: ${body.slice(0, 500)}`);
23
+ let lastErr;
24
+ for (let attempt = 0; attempt <= retries; attempt++) {
25
+ const ctrl = new AbortController();
26
+ const timer = setTimeout(() => ctrl.abort(), timeoutMs);
27
+ try {
28
+ const res = await fetch(API_URL, {
29
+ method: 'POST',
30
+ headers: {
31
+ 'content-type': 'application/json',
32
+ 'x-api-key': apiKey,
33
+ 'anthropic-version': '2023-06-01',
34
+ },
35
+ body: JSON.stringify({ model, max_tokens: maxTokens, ...(system ? { system } : {}), messages }),
36
+ signal: ctrl.signal,
37
+ });
38
+ if (res.ok) {
39
+ const data = await res.json();
40
+ return (data.content || []).map((c) => c.text || '').join('').trim();
41
+ }
42
+ const body = await res.text().catch(() => '');
43
+ // Retry transient server / rate-limit errors; fail fast on 4xx (bad key/model).
44
+ if ((res.status === 429 || res.status >= 500) && attempt < retries) {
45
+ lastErr = new Error(`Anthropic API ${res.status}`);
46
+ } else {
47
+ throw new Error(`Anthropic API ${res.status}: ${body.slice(0, 500)}`);
48
+ }
49
+ } catch (e) {
50
+ if (e.name === 'AbortError') e = new Error(`Anthropic API request timed out after ${timeoutMs}ms`);
51
+ const retryable = /timed out/.test(e.message) || e.name === 'TypeError' || /Anthropic API (429|5\d\d)/.test(e.message);
52
+ if (!retryable || attempt >= retries) throw e;
53
+ lastErr = e;
54
+ } finally {
55
+ clearTimeout(timer);
56
+ }
57
+ await new Promise((r) => setTimeout(r, 1000 * 2 ** attempt)); // backoff: 1s, 2s, 4s
31
58
  }
32
- const data = await res.json();
33
- return (data.content || []).map((c) => c.text || '').join('').trim();
59
+ throw lastErr || new Error('Anthropic API request failed.');
34
60
  }
35
61
 
36
62
  /** Parse "name: value" YAML-ish frontmatter + body from a SKILL.md string. */
package/exports/README.md CHANGED
@@ -8,7 +8,7 @@ by hand; edit the source skill and run:
8
8
  node scripts/build-exports.mjs
9
9
  ```
10
10
 
11
- Currently exporting **173 skills** to:
11
+ Currently exporting **174 skills** to:
12
12
 
13
13
  - **ChatGPT — Custom GPT instructions** → `exports/chatgpt/`
14
14
  - **Google Gemini — Gem instructions** → `exports/gemini/`
@@ -3,7 +3,7 @@
3
3
  > Auto-generated from `skills/*/SKILL.md` by `scripts/build-exports.mjs`.
4
4
  > **Do not edit these files by hand** — edit the source skill and regenerate.
5
5
 
6
- 173 skills exported. Copy a `.mdc rule` into the tool to use it.
6
+ 174 skills exported. Copy a `.mdc rule` into the tool to use it.
7
7
 
8
8
  | Skill | Bundle | Path |
9
9
  |---|---|---|
@@ -180,3 +180,4 @@
180
180
  | Vendor Evaluation | `pm-operations` | `pm-operations/vendor-evaluation/vendor-evaluation.md` |
181
181
  | Viral Content Framework | `pm-social` | `pm-social/viral-content-framework/viral-content-framework.md` |
182
182
  | Workshop Facilitation Guide | `pm-operations` | `pm-operations/workshop-facilitation-guide/workshop-facilitation-guide.md` |
183
+ | YouTube Script Writer | `other` | `other/youtube-script-writer/youtube-script-writer.md` |
@@ -0,0 +1,110 @@
1
+ # YouTube Script Writer Skill
2
+
3
+ This skill helps creators write highly engaging, structured, and visually-dynamic scripts optimized for YouTube's retention algorithm. It converts raw ideas, articles, or transcripts into a ready-to-shoot script with clear visual cues, pacing indicators, and audio directions.
4
+
5
+ ## What This Skill Produces
6
+
7
+ - **3 Title & Thumbnail Concepts:** CTR-optimized titles matching distinct psychological triggers (curiosity, result-driven, contrarian) paired with clear visual thumbnail layout suggestions.
8
+ - **3 Hook Variations (0:00 - 0:30):** Different hook formats (contrarian statement, story setup, pattern interrupt) that deliver immediately on the title's promise.
9
+ - **Retention-Optimized Script Table:** A side-by-side or block-formatted script separating video cues (B-roll, camera angles, text overlays, zooms) and audio cues (dialogue, voiceover, sound effects, music changes).
10
+ - **Outro & Video Metadata:** A seamless video outro designed to prevent viewer exit, along with search-optimized description templates and relevant tags.
11
+
12
+ ## Required Inputs
13
+
14
+ Ask the user for these if not provided:
15
+ - **Topic/Concept** — What is the video about? (e.g., "How I built a SaaS in 30 days")
16
+ - **Target Audience** — Who is watching? (e.g., beginner developers, student designers)
17
+ - **Target Duration** — Approximate length in minutes (e.g., 5-7 minutes, 10-15 minutes)
18
+ - **Script Tone/Voice** — E.g., energetic, educational, storytelling, conversational, comedic
19
+ - **Primary Goal** — (e.g., get newsletter signups, sell a course, increase viewer retention)
20
+
21
+ ## Pacing & Retention Model
22
+
23
+ Every YouTube script must follow this structure to prevent early drop-off:
24
+
25
+ 1. **The Hook (0:00 - 0:30):** Promise immediate value. No intros, no logo animation, and no generic greeting ("Hey guys, welcome back...").
26
+ 2. **The Stakes / Re-Hook (0:30 - 1:00):** Establish why this topic is difficult, urgent, or valuable. Introduce the "villain" (the problem) and the "hero" (the solution).
27
+ 3. **Chapters / Milestones (1:00 - 90% mark):** Divide the core content into 3-5 distinct chapters. Every chapter must have a clear micro-payoff.
28
+ 4. **Pattern Interrupts:** Suggest visual or audio changes every 4-8 seconds. Use zoomed frames, pop-up text, B-roll transitions, or sound effects (whoosh, ding, pop) to keep attention.
29
+ 5. **The Payoff / Climax (90% - 95% mark):** Deliver the ultimate piece of advice or final revelation promised in the hook.
30
+ 6. **Seamless Transition CTA (95% - end):** Never signal the end with "in conclusion" or "that is all." Bridge the final value point directly to recommending the next video or a quick call to action before the viewer leaves.
31
+
32
+ ---
33
+
34
+ ## Output Format
35
+
36
+ ### [Working Title]
37
+ **Target Duration:** [Duration] | **Audience:** [Target Audience] | **Tone:** [Tone]
38
+
39
+ ---
40
+
41
+ ### 1. Title & Thumbnail Optimization
42
+
43
+ #### Title Options
44
+ 1. **The Curiosity Gap:** [e.g., "The Real Reason Your Code is Slow (It's Not Python)"]
45
+ 2. **The Result-Oriented:** [e.g., "How I Optimized My App to Handle 100k Users in 1 Hour"]
46
+ 3. **The Contrarian:** [e.g., "Stop Using React for Simple Projects"]
47
+
48
+ #### Thumbnail Concepts
49
+ - **Concept 1:** [Visual details, e.g., Close-up of host with a worried face, split-screen showing a massive red 'Error' banner on one side and a clean green checkmark on the other. Large, bold 3-word text overlay: "STOP DOING THIS."]
50
+ - **Concept 2:** [Visual details, e.g., Clean graphic representation of a server load graph spiking to the moon, contrasted with a flat green line. Text overlay: "100K USERS."]
51
+
52
+ ---
53
+
54
+ ### 2. Hook Variations (Choose One)
55
+
56
+ #### Variation 1: The Contrarian Hook
57
+ * **Visuals:** [Host leans close to the camera, looking directly into the lens. Fast zoom-in on the word 'Slow' appearing in bold red letters on screen.]
58
+ * **Audio:** "Almost every developer I talk to blames Python for their slow apps. But 90% of the time, the language isn't the problem. The bottleneck is actually inside a single line of config you probably wrote yesterday."
59
+
60
+ #### Variation 2: The Story Hook
61
+ * **Visuals:** [Show B-roll of an editor showing 500 error logs flashing. Cut to host rubbing their forehead in frustration.]
62
+ * **Audio:** "Last Tuesday at 3 AM, our database completely crashed under load. We were losing $200 every minute the site was down. After searching through stack traces for hours, we found a fix so simple I couldn't believe we missed it."
63
+
64
+ #### Variation 3: The Pattern Interrupt Hook
65
+ * **Visuals:** [A stopwatch counts down from 5 seconds in the center of the screen. Sudden loud 'Ding' sound effect as the timer hits zero.]
66
+ * **Audio (Voiceover):** "In the next 5 minutes, I am going to show you the exact performance tweak that saved our team $4,000 in monthly server costs. And no, you don't need to rewrite a single database query."
67
+
68
+ ---
69
+
70
+ ### 3. The Main Script
71
+
72
+ | Time / Chapter | Video Cues (B-Roll, Overlays, Camera Angles) | Audio Cues (Spoken Script, Sound Effects, Music) |
73
+ | :--- | :--- | :--- |
74
+ | **0:30 - 1:00**<br>The Re-Hook | Show on-screen graphics displaying server costs. Zoom in slightly on the host. | "Here is the reality: database optimization sounds incredibly complex. But most tutorials make you learn SQL queries you will never use. Today, we are keeping it purely practical." |
75
+ | **1:00 - 3:30**<br>Chapter 1: [Chapter Name] | [Visual Cue: Transition to screencast. Highlight lines 12-15 in the config file. Add cursor highlight.] | "[Spoken Dialogue]: First, let's open up the default configuration file. Notice this specific pool size limit... *[Sound Effect: soft click]*" |
76
+ | **3:30 - 6:00**<br>Chapter 2: [Chapter Name] | [Visual Cue: Cut back to host. Push-in zoom on host's face to emphasize the point.] | "[Spoken Dialogue]: This brings us to the next step. If you set this value too high, your server will freeze. If it's too low, users will wait forever. Here is how to find the sweet spot..." |
77
+ | **6:00 - 8:30**<br>Chapter 3: [Chapter Name] | [Visual Cue: B-roll of server monitoring dashboard showing a flatline turning into a healthy wave.] | "[Spoken Dialogue]: Once we applied this setting, look at what happened to the response times. They dropped from 800 milliseconds down to 45." |
78
+ | **8:30 - 9:00**<br>The Payoff | Show split screen: Before config vs After config load times. | "So, by changing just that one variable, we solved the crash problem completely without spending a single dollar on hardware upgrades." |
79
+ | **9:00 - 9:30**<br>Seamless CTA | [Visual Cue: On-screen card pops up pointing to a related video. Text overlay: 'Watch next: Scaling PostgreSQL Databases.'] | "[Spoken Dialogue]: Now that your server is configured correctly, your next bottleneck is going to be database indexing. Click on this video right here where I break down indexing in under 5 minutes..." |
80
+
81
+ ---
82
+
83
+ ### 4. Search-Optimized Metadata
84
+ - **Video Description:** [First 3 sentences containing key terms for search ranking. E.g., 'Learn how to optimize server performance and prevent database crashes. This step-by-step tutorial walks you through server configuration tweaks to save hosting costs.']
85
+ - **Suggested Tags:** server optimization, database configuration, web development, hosting costs, system architecture
86
+ - **Call-to-Action Link:** [Insert link to newsletter or product page]
87
+
88
+ ---
89
+
90
+ ## Quality Checks
91
+
92
+ - [ ] Every title option is under 60 characters to prevent truncation on mobile devices.
93
+ - [ ] No generic intro fillers (e.g., "Welcome back to my channel," "Don't forget to like and subscribe") in the first 60 seconds of any hook or script section.
94
+ - [ ] Visual direction (B-roll, text overlays, zoom adjustments) is specified at least once every 10 seconds in the main script.
95
+ - [ ] Script transitions to the Call to Action immediately after the payoff without declaring "in conclusion" or "thank you for watching."
96
+ - [ ] Spoken audio lines are written in conversational language (short sentences, natural pauses, no overly academic jargon).
97
+
98
+ ## Anti-Patterns
99
+
100
+ - [ ] Do not write paragraphs of dialogue without accompanying visual cues. YouTube is a visual-first medium; every paragraph of speech needs visual transitions.
101
+ - [ ] Do not pitch sponsors, channel subscriptions, or external links during the hook (first 60 seconds).
102
+ - [ ] Do not create a single generic hook; always provide 3 distinct hook variations (Contrarian, Story, Pattern Interrupt) to give the creator flexibility.
103
+ - [ ] Do not use a generic outro that triggers the "viewer exit ramp" (e.g., "That's all for today's video, hope you enjoyed, see you next time!"). Suggest another video to keep viewers on the platform.
104
+
105
+ ## Example Trigger Phrases
106
+
107
+ - "Write a YouTube script about my personal productivity system."
108
+ - "Help me script a 10-minute video explaining inflation to college students."
109
+ - "I need a YouTube outline and script for a tutorial on clean code in Python."
110
+ - "Draft a retention-optimized YouTube script on how to build a SaaS in 2026."
@@ -75,6 +75,29 @@ Recommend building: all Basic features first → Performance features for key us
75
75
 
76
76
  ---
77
77
 
78
+ ## Programmatic Helper
79
+
80
+ This skill ships with a stdlib-only Python script that computes ranking for the math-based frameworks (RICE, ICE) so feature scoring is consistent across sessions.
81
+
82
+ ```bash
83
+ # RICE from JSON
84
+ python3 scripts/feature_prioritisation.py initiatives.json --framework rice
85
+
86
+ # RICE from CSV
87
+ python3 scripts/feature_prioritisation.py initiatives.csv --framework rice --format csv
88
+
89
+ # ICE from JSON
90
+ python3 scripts/feature_prioritisation.py features.json --framework ice
91
+
92
+ # Pipe into it
93
+ printf '%s\n' '[{"name":"API refactor","impact":8,"confidence":80,"ease":5}]' \
94
+ | python3 scripts/feature_prioritisation.py --framework ice -
95
+ ```
96
+
97
+ Use `--json` to produce machine-readable output for downstream tooling.
98
+
99
+ ---
100
+
78
101
  ## Output Format
79
102
 
80
103
  ### Feature Prioritisation — [Product/Team] — [Date]
@@ -3,7 +3,7 @@
3
3
  > Auto-generated from `skills/*/SKILL.md` by `scripts/build-exports.mjs`.
4
4
  > **Do not edit these files by hand** — edit the source skill and regenerate.
5
5
 
6
- 173 skills exported. Copy a `SYSTEM_PROMPT.md` into the tool to use it.
6
+ 174 skills exported. Copy a `SYSTEM_PROMPT.md` into the tool to use it.
7
7
 
8
8
  | Skill | Bundle | Path |
9
9
  |---|---|---|
@@ -180,3 +180,4 @@
180
180
  | Vendor Evaluation | `pm-operations` | `pm-operations/vendor-evaluation/SYSTEM_PROMPT.md` |
181
181
  | Viral Content Framework | `pm-social` | `pm-social/viral-content-framework/SYSTEM_PROMPT.md` |
182
182
  | Workshop Facilitation Guide | `pm-operations` | `pm-operations/workshop-facilitation-guide/SYSTEM_PROMPT.md` |
183
+ | YouTube Script Writer | `other` | `other/youtube-script-writer/SYSTEM_PROMPT.md` |
@@ -0,0 +1,110 @@
1
+ # YouTube Script Writer Skill
2
+
3
+ This skill helps creators write highly engaging, structured, and visually-dynamic scripts optimized for YouTube's retention algorithm. It converts raw ideas, articles, or transcripts into a ready-to-shoot script with clear visual cues, pacing indicators, and audio directions.
4
+
5
+ ## What This Skill Produces
6
+
7
+ - **3 Title & Thumbnail Concepts:** CTR-optimized titles matching distinct psychological triggers (curiosity, result-driven, contrarian) paired with clear visual thumbnail layout suggestions.
8
+ - **3 Hook Variations (0:00 - 0:30):** Different hook formats (contrarian statement, story setup, pattern interrupt) that deliver immediately on the title's promise.
9
+ - **Retention-Optimized Script Table:** A side-by-side or block-formatted script separating video cues (B-roll, camera angles, text overlays, zooms) and audio cues (dialogue, voiceover, sound effects, music changes).
10
+ - **Outro & Video Metadata:** A seamless video outro designed to prevent viewer exit, along with search-optimized description templates and relevant tags.
11
+
12
+ ## Required Inputs
13
+
14
+ Ask the user for these if not provided:
15
+ - **Topic/Concept** — What is the video about? (e.g., "How I built a SaaS in 30 days")
16
+ - **Target Audience** — Who is watching? (e.g., beginner developers, student designers)
17
+ - **Target Duration** — Approximate length in minutes (e.g., 5-7 minutes, 10-15 minutes)
18
+ - **Script Tone/Voice** — E.g., energetic, educational, storytelling, conversational, comedic
19
+ - **Primary Goal** — (e.g., get newsletter signups, sell a course, increase viewer retention)
20
+
21
+ ## Pacing & Retention Model
22
+
23
+ Every YouTube script must follow this structure to prevent early drop-off:
24
+
25
+ 1. **The Hook (0:00 - 0:30):** Promise immediate value. No intros, no logo animation, and no generic greeting ("Hey guys, welcome back...").
26
+ 2. **The Stakes / Re-Hook (0:30 - 1:00):** Establish why this topic is difficult, urgent, or valuable. Introduce the "villain" (the problem) and the "hero" (the solution).
27
+ 3. **Chapters / Milestones (1:00 - 90% mark):** Divide the core content into 3-5 distinct chapters. Every chapter must have a clear micro-payoff.
28
+ 4. **Pattern Interrupts:** Suggest visual or audio changes every 4-8 seconds. Use zoomed frames, pop-up text, B-roll transitions, or sound effects (whoosh, ding, pop) to keep attention.
29
+ 5. **The Payoff / Climax (90% - 95% mark):** Deliver the ultimate piece of advice or final revelation promised in the hook.
30
+ 6. **Seamless Transition CTA (95% - end):** Never signal the end with "in conclusion" or "that is all." Bridge the final value point directly to recommending the next video or a quick call to action before the viewer leaves.
31
+
32
+ ---
33
+
34
+ ## Output Format
35
+
36
+ ### [Working Title]
37
+ **Target Duration:** [Duration] | **Audience:** [Target Audience] | **Tone:** [Tone]
38
+
39
+ ---
40
+
41
+ ### 1. Title & Thumbnail Optimization
42
+
43
+ #### Title Options
44
+ 1. **The Curiosity Gap:** [e.g., "The Real Reason Your Code is Slow (It's Not Python)"]
45
+ 2. **The Result-Oriented:** [e.g., "How I Optimized My App to Handle 100k Users in 1 Hour"]
46
+ 3. **The Contrarian:** [e.g., "Stop Using React for Simple Projects"]
47
+
48
+ #### Thumbnail Concepts
49
+ - **Concept 1:** [Visual details, e.g., Close-up of host with a worried face, split-screen showing a massive red 'Error' banner on one side and a clean green checkmark on the other. Large, bold 3-word text overlay: "STOP DOING THIS."]
50
+ - **Concept 2:** [Visual details, e.g., Clean graphic representation of a server load graph spiking to the moon, contrasted with a flat green line. Text overlay: "100K USERS."]
51
+
52
+ ---
53
+
54
+ ### 2. Hook Variations (Choose One)
55
+
56
+ #### Variation 1: The Contrarian Hook
57
+ * **Visuals:** [Host leans close to the camera, looking directly into the lens. Fast zoom-in on the word 'Slow' appearing in bold red letters on screen.]
58
+ * **Audio:** "Almost every developer I talk to blames Python for their slow apps. But 90% of the time, the language isn't the problem. The bottleneck is actually inside a single line of config you probably wrote yesterday."
59
+
60
+ #### Variation 2: The Story Hook
61
+ * **Visuals:** [Show B-roll of an editor showing 500 error logs flashing. Cut to host rubbing their forehead in frustration.]
62
+ * **Audio:** "Last Tuesday at 3 AM, our database completely crashed under load. We were losing $200 every minute the site was down. After searching through stack traces for hours, we found a fix so simple I couldn't believe we missed it."
63
+
64
+ #### Variation 3: The Pattern Interrupt Hook
65
+ * **Visuals:** [A stopwatch counts down from 5 seconds in the center of the screen. Sudden loud 'Ding' sound effect as the timer hits zero.]
66
+ * **Audio (Voiceover):** "In the next 5 minutes, I am going to show you the exact performance tweak that saved our team $4,000 in monthly server costs. And no, you don't need to rewrite a single database query."
67
+
68
+ ---
69
+
70
+ ### 3. The Main Script
71
+
72
+ | Time / Chapter | Video Cues (B-Roll, Overlays, Camera Angles) | Audio Cues (Spoken Script, Sound Effects, Music) |
73
+ | :--- | :--- | :--- |
74
+ | **0:30 - 1:00**<br>The Re-Hook | Show on-screen graphics displaying server costs. Zoom in slightly on the host. | "Here is the reality: database optimization sounds incredibly complex. But most tutorials make you learn SQL queries you will never use. Today, we are keeping it purely practical." |
75
+ | **1:00 - 3:30**<br>Chapter 1: [Chapter Name] | [Visual Cue: Transition to screencast. Highlight lines 12-15 in the config file. Add cursor highlight.] | "[Spoken Dialogue]: First, let's open up the default configuration file. Notice this specific pool size limit... *[Sound Effect: soft click]*" |
76
+ | **3:30 - 6:00**<br>Chapter 2: [Chapter Name] | [Visual Cue: Cut back to host. Push-in zoom on host's face to emphasize the point.] | "[Spoken Dialogue]: This brings us to the next step. If you set this value too high, your server will freeze. If it's too low, users will wait forever. Here is how to find the sweet spot..." |
77
+ | **6:00 - 8:30**<br>Chapter 3: [Chapter Name] | [Visual Cue: B-roll of server monitoring dashboard showing a flatline turning into a healthy wave.] | "[Spoken Dialogue]: Once we applied this setting, look at what happened to the response times. They dropped from 800 milliseconds down to 45." |
78
+ | **8:30 - 9:00**<br>The Payoff | Show split screen: Before config vs After config load times. | "So, by changing just that one variable, we solved the crash problem completely without spending a single dollar on hardware upgrades." |
79
+ | **9:00 - 9:30**<br>Seamless CTA | [Visual Cue: On-screen card pops up pointing to a related video. Text overlay: 'Watch next: Scaling PostgreSQL Databases.'] | "[Spoken Dialogue]: Now that your server is configured correctly, your next bottleneck is going to be database indexing. Click on this video right here where I break down indexing in under 5 minutes..." |
80
+
81
+ ---
82
+
83
+ ### 4. Search-Optimized Metadata
84
+ - **Video Description:** [First 3 sentences containing key terms for search ranking. E.g., 'Learn how to optimize server performance and prevent database crashes. This step-by-step tutorial walks you through server configuration tweaks to save hosting costs.']
85
+ - **Suggested Tags:** server optimization, database configuration, web development, hosting costs, system architecture
86
+ - **Call-to-Action Link:** [Insert link to newsletter or product page]
87
+
88
+ ---
89
+
90
+ ## Quality Checks
91
+
92
+ - [ ] Every title option is under 60 characters to prevent truncation on mobile devices.
93
+ - [ ] No generic intro fillers (e.g., "Welcome back to my channel," "Don't forget to like and subscribe") in the first 60 seconds of any hook or script section.
94
+ - [ ] Visual direction (B-roll, text overlays, zoom adjustments) is specified at least once every 10 seconds in the main script.
95
+ - [ ] Script transitions to the Call to Action immediately after the payoff without declaring "in conclusion" or "thank you for watching."
96
+ - [ ] Spoken audio lines are written in conversational language (short sentences, natural pauses, no overly academic jargon).
97
+
98
+ ## Anti-Patterns
99
+
100
+ - [ ] Do not write paragraphs of dialogue without accompanying visual cues. YouTube is a visual-first medium; every paragraph of speech needs visual transitions.
101
+ - [ ] Do not pitch sponsors, channel subscriptions, or external links during the hook (first 60 seconds).
102
+ - [ ] Do not create a single generic hook; always provide 3 distinct hook variations (Contrarian, Story, Pattern Interrupt) to give the creator flexibility.
103
+ - [ ] Do not use a generic outro that triggers the "viewer exit ramp" (e.g., "That's all for today's video, hope you enjoyed, see you next time!"). Suggest another video to keep viewers on the platform.
104
+
105
+ ## Example Trigger Phrases
106
+
107
+ - "Write a YouTube script about my personal productivity system."
108
+ - "Help me script a 10-minute video explaining inflation to college students."
109
+ - "I need a YouTube outline and script for a tutorial on clean code in Python."
110
+ - "Draft a retention-optimized YouTube script on how to build a SaaS in 2026."
@@ -75,6 +75,29 @@ Recommend building: all Basic features first → Performance features for key us
75
75
 
76
76
  ---
77
77
 
78
+ ## Programmatic Helper
79
+
80
+ This skill ships with a stdlib-only Python script that computes ranking for the math-based frameworks (RICE, ICE) so feature scoring is consistent across sessions.
81
+
82
+ ```bash
83
+ # RICE from JSON
84
+ python3 scripts/feature_prioritisation.py initiatives.json --framework rice
85
+
86
+ # RICE from CSV
87
+ python3 scripts/feature_prioritisation.py initiatives.csv --framework rice --format csv
88
+
89
+ # ICE from JSON
90
+ python3 scripts/feature_prioritisation.py features.json --framework ice
91
+
92
+ # Pipe into it
93
+ printf '%s\n' '[{"name":"API refactor","impact":8,"confidence":80,"ease":5}]' \
94
+ | python3 scripts/feature_prioritisation.py --framework ice -
95
+ ```
96
+
97
+ Use `--json` to produce machine-readable output for downstream tooling.
98
+
99
+ ---
100
+
78
101
  ## Output Format
79
102
 
80
103
  ### Feature Prioritisation — [Product/Team] — [Date]
@@ -3,7 +3,7 @@
3
3
  > Auto-generated from `skills/*/SKILL.md` by `scripts/build-exports.mjs`.
4
4
  > **Do not edit these files by hand** — edit the source skill and regenerate.
5
5
 
6
- 173 skills exported. Copy a `.mdc rule` into the tool to use it.
6
+ 174 skills exported. Copy a `.mdc rule` into the tool to use it.
7
7
 
8
8
  | Skill | Bundle | Path |
9
9
  |---|---|---|
@@ -180,3 +180,4 @@
180
180
  | Vendor Evaluation | `pm-operations` | `pm-operations/vendor-evaluation/vendor-evaluation.mdc` |
181
181
  | Viral Content Framework | `pm-social` | `pm-social/viral-content-framework/viral-content-framework.mdc` |
182
182
  | Workshop Facilitation Guide | `pm-operations` | `pm-operations/workshop-facilitation-guide/workshop-facilitation-guide.mdc` |
183
+ | YouTube Script Writer | `other` | `other/youtube-script-writer/youtube-script-writer.mdc` |