[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7B9XA39GGM7ZWAHWA05HB8B":3,"skill-same:01M7B9XA39GGM7ZWAHWA05HB8B":43},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":23,"commitSha":24,"skillDirectory":25,"forksCount":13,"repositoryHtmlUrl":26,"repositoryHomepageUrl":6,"ownerHtmlUrl":27,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":28,"install":29,"resources":42},"01M7B9XA39GGM7ZWAHWA05HB8B","synthetic-screen-recording",null,"Synthetic terminal-style screen recording guidance for Remotion `TerminalScene`.","vikasvardhanv\u002Fjerry_skills","vikasvardhanv","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F99010657?v=4","01M7B2B0VN78W7529RQX5BR6DZ","01M7B2B0WDNTXJHRK3QNPNWRP6",0,"MIT","https:\u002F\u002Fgithub.com\u002Fvikasvardhanv\u002Fjerry_skills\u002Fblob\u002Fmain\u002Fskills\u002Fcurated_premium_skills\u002FOpenMontage\u002F.agents\u002Fskills\u002Fsynthetic-screen-recording\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: synthetic-screen-recording\ndescription: Synthetic terminal-style screen recording guidance for Remotion `TerminalScene`.\nlicense: MIT\n---\n\n# Synthetic Screen Recording (Remotion TerminalScene)\n\n**Decision this skill answers:** When the user wants a screen-recording-looking demo of a terminal, CLI tool, or coding workflow — do I **capture the real desktop** (OS screen recording via `screen_recorder`, Windows-MCP, Cap, or Playwright), or do I **synthesize it in Remotion** with the `TerminalScene` component?\n\n> **Heuristic:** If the agent can author the exact command\u002Foutput sequence in advance, synthesize. Only capture live when the real behavior is unpredictable, needs a real app UI, or the user explicitly asked for a real recording.\n\n## Why this exists\n\nv3 of the OpenMontage showcase tried to use Windows-MCP + `screen_recorder` to drive a Git-Bash window for the install walkthrough. It stalled on window positioning, focus races, and taskbar privacy concerns. We pivoted to **pure Remotion rendering** — a React component named `TerminalScene` that draws a fake terminal and types commands character-by-character. The output is visually indistinguishable from a real screen recording (same traffic-light window chrome, blinking cursor, scrolling output) but deterministic, privacy-safe, pixel-perfect at 1080p, and pace-controllable to the frame.\n\nThat component + pattern is the capability this skill makes discoverable.\n\n## When to use synthetic (TerminalScene)\n\n**YES, synthesize when:**\n- The demo is a **terminal \u002F CLI \u002F coding session** where commands and outputs are predictable\n- The user wants a polished tutorial feel (clean typography, floating pills, cursor blink)\n- Install walkthroughs, setup demos, API key config, `make` targets, `git clone` flows\n- You need tight sync with narration — every command must land on a specific beat\n- You want the result reproducible (re-render gets identical pixels)\n- The user's actual desktop has private apps\u002Fwindows visible you'd otherwise have to crop\n\n**NO, capture a real screen when:**\n- The demo is **a real app UI** that can't be faked (Figma, Photoshop, a web app with live state, a browser flow)\n- The user explicitly asked for a recording of *their* actual screen\n- The behavior depends on timing you can't script (streaming LLM output, real network latency)\n- There's a visual quirk (a cursor effect, a plugin pop-up) that only appears in the live environment\n\n**For a browser demo** → `playwright-recording` skill, not this one.\n**For a real desktop** → `screen_recorder` tool or Cap via `cap_recorder`.\n\n## The component — `TerminalScene`\n\nLocated at: `remotion-composer\u002Fsrc\u002Fcomponents\u002FTerminalScene.tsx`\nExported from: `remotion-composer\u002Fsrc\u002Fcomponents\u002Findex.ts`\nWired in dispatch: `remotion-composer\u002Fsrc\u002FExplainer.tsx` (`if (cut.type === \"terminal_scene\")`)\n\n**Props:**\n```ts\ninterface TerminalSceneProps {\n  title?: string;           \u002F\u002F shown in the window title bar\n  steps: TerminalStep[];    \u002F\u002F the timeline\n  prompt?: string;          \u002F\u002F \"$\", \">\", etc.\n  accentColor?: string;     \u002F\u002F pill + prompt glow\n  backgroundColor?: string;\n}\n```\n\n**Step kinds:**\n```ts\n{ kind: \"cmd\",   text: string, typeSpeed?: number, holdSeconds?: number }\n{ kind: \"out\",   text: string, holdSeconds?: number }\n{ kind: \"pause\", seconds: number }\n{ kind: \"pill\",  text: string, color?: string, durationSeconds?: number }\n```\n\n- `cmd` — prints the prompt, types the text character-by-character (`typeSpeed` is seconds per character, default 0.035), then holds for `holdSeconds` (default 0.3)\n- `out` — a line of program output, reveals instantly with a short fade-in\n- `pause` — dead time. Terminal holds on last visible state. USE THIS TO SYNC WITH NARRATION.\n- `pill` — non-blocking floating badge (top-right). Spring-in, hold, spring-out. Does NOT advance the cursor — the next step runs in parallel.\n\n## Authoring pattern\n\nAuthor a new scene by adding a cut to `build_composition.py` (or your equivalent props builder):\n\n```python\ninstall_steps = [\n    {\"kind\": \"pause\", \"seconds\": 7.0},                 # wait for intro narration\n    {\"kind\": \"cmd\", \"text\": \"git clone https:\u002F\u002Fgithub.com\u002Fcalesthio\u002FOpenMontage.git\",\n     \"typeSpeed\": 0.045, \"holdSeconds\": 0.3},\n    {\"kind\": \"out\", \"text\": \"Cloning into 'OpenMontage'...\"},\n    {\"kind\": \"out\", \"text\": \"remote: Enumerating objects: 2847, done.\"},\n    {\"kind\": \"pill\", \"text\": \"repo cloned\", \"color\": \"#34D399\", \"durationSeconds\": 2.6},\n    {\"kind\": \"pause\", \"seconds\": 3.8},                 # bridge to next narration cue\n    # ...\n]\n\ncuts.append({\n    \"id\": \"install-terminal\",\n    \"type\": \"terminal_scene\",\n    \"terminalTitle\": \"bash — OpenMontage setup\",\n    \"prompt\": \"$\",\n    \"accentColor\": \"#22D3EE\",\n    \"steps\": install_steps,\n    \"in_seconds\": 50.0,\n    \"out_seconds\": 110.0,\n})\n```\n\n## THE RULE: pace with narration, never ahead\n\n**The #1 failure mode:** steps run continuously and burn through all content in the first 40% of the scene, leaving the terminal frozen for the remaining 60%. This is what killed the v3 first pass — the capability menu rendered at t=80s but narration didn't announce it until t=92s.\n\n**Do this instead:**\n\n1. **Know your narration cues** — for each scene, write down the exact video-time each narration segment starts.\n2. **Start with a pause** that reaches the first narration cue before any command types.\n3. **Time each command to land with its narration line** — `cmd` should start typing the moment narration says its line, not before.\n4. **Put pauses between command groups** that bridge to the next narration cue.\n5. **End with a closer hold** — a pause long enough that the final state is readable after narration ends.\n\n**Sanity-check your steps before rendering** — every minute of Remotion render is precious. Sum the step durations and verify they equal scene duration:\n\n```python\nimport math\ndef trace(steps, scene_start, fps=30):\n    t = 0.0\n    for s in steps:\n        k = s[\"kind\"]\n        if k == \"cmd\":\n            tf = math.ceil(len(s[\"text\"]) * s.get(\"typeSpeed\", 0.035) * fps)\n            t += tf \u002F fps + s.get(\"holdSeconds\", 0.3)\n        elif k == \"out\":\n            t += max(2, math.ceil(0.08 * fps)) \u002F fps + s.get(\"holdSeconds\", 0.15)\n        elif k == \"pause\":\n            t += s[\"seconds\"]\n        # \"pill\" is non-blocking — does NOT advance cursor\n        print(f\"  {t + scene_start:6.2f}s  {k}: {s.get('text', '')[:40]}\")\ntrace(install_steps, 50)\n```\n\nLook at the output column. Each narration cue's video-time must appear adjacent to the command\u002Foutput it announces. If a command lands 10s before or after its cue, adjust pauses.\n\nSee `lib\u002Fverify_scene_pacing.py` for a reusable version of this script.\n\n## Design rules (inherited from the v3 retune)\n\n- **Intro pause** — every terminal scene opens with at least 2s of empty-terminal-with-blinking-cursor before anything types. The viewer needs to register the window.\n- **Pill timing** — a pill should fire at the exact moment its named event completes on screen (e.g., `repo cloned` immediately after the last `Receiving objects` line). Pills are your substitute for real-world UI notifications.\n- **Command hold after typing** — keep `holdSeconds` ≥ 0.3 on every `cmd` so viewers register the completed command before the first output scrolls in.\n- **Output cadence** — space `holdSeconds` on output lines between 0.4 and 1.0. Output that flies too fast feels like a bug; output that crawls feels boring.\n- **Auto-scroll works** — the terminal holds the most recent 18 lines. Don't worry about off-screen content.\n- **Cursor blinks only on the latest command line while typing + a ~0.2s tail** after typing completes.\n\n## `ProviderChip` (companion component)\n\nThe `.agents\u002Fskills\u002Fsynthetic-screen-recording` pattern also owns `ProviderChip` — a rotating badge overlay that cycles through a list of provider names at a fixed cadence. Used in the v3 showcase to cycle through all 11 AI video-gen providers during the \"generated motion\" section.\n\n```python\noverlays.append({\n    \"type\": \"provider_chip\",\n    \"providers\": [\"Veo 3.1\", \"Seedance 2.0\", \"Kling 2.5\", ...],\n    \"cycleSeconds\": 2.5,\n    \"position\": \"bottom-right\",\n    \"accentColor\": \"#22D3EE\",\n    \"label\": \"generated with\",\n    \"in_seconds\": 195.0,\n    \"out_seconds\": 222.5,\n})\n```\n\nWired in dispatch at: `remotion-composer\u002Fsrc\u002FExplainer.tsx` overlay renderer (`overlay.type === \"provider_chip\"`).\n\n## Adding new synthetic-UI components\n\nThe pattern generalizes. When you need to fake another UI surface (Claude Code chat bubbles, a Jira ticket view, a GitHub PR diff, a Slack message, a VS Code status bar):\n\n1. Copy `TerminalScene.tsx` as a template.\n2. Define a `steps` interface for the relevant timeline primitives.\n3. Render each step by interpolating `frame` against cumulative start\u002Fend times.\n4. Wire it into `Explainer.tsx`'s `SceneRenderer` dispatch with a new `cut.type`.\n5. Add the type to the `Cut` interface in `Explainer.tsx` and to `components\u002Findex.ts`.\n6. Add a section to this skill documenting it.\n7. Update `remotion-composer\u002FSCENE_TYPES.md` with the new cut type.\n\n## Related skills\n\n- `.agents\u002Fskills\u002Fremotion` — general Remotion authoring (hooks, springs, sequences)\n- `.agents\u002Fskills\u002Fplaywright-recording` — real browser-flow capture for web apps\n- `tools\u002Fcapture\u002Fscreen_recorder` — ffmpeg-based desktop capture\n- `tools\u002Fcapture\u002Fcap_recorder` — Cap.so polished desktop capture\n- `skills\u002Fpipelines\u002Fscreen-demo\u002Fasset-director.md` — chooses between synthetic and real for a screen-demo project\n\n## Provenance\n\nIntroduced: OpenMontage showcase v3 render (2026-04-16). Original motivation: the v3 setup walkthrough section needed a 60-second install demo where every command aligned to Chirp 3 HD narration cues, and Windows-MCP-driven real capture was too flaky in practice. See `projects\u002Fopenmontage-showcase\u002Fbuild_composition.py` for the reference implementation.\n","# Synthetic Screen Recording (Remotion TerminalScene)\n\n**Decision this skill answers:** When the user wants a screen-recording-looking demo of a terminal, CLI tool, or coding workflow — do I **capture the real desktop** (OS screen recording via `screen_recorder`, Windows-MCP, Cap, or Playwright), or do I **synthesize it in Remotion** with the `TerminalScene` component?\n\n> **Heuristic:** If the agent can author the exact command\u002Foutput sequence in advance, synthesize. Only capture live when the real behavior is unpredictable, needs a real app UI, or the user explicitly asked for a real recording.\n\n## Why this exists\n\nv3 of the OpenMontage showcase tried to use Windows-MCP + `screen_recorder` to drive a Git-Bash window for the install walkthrough. It stalled on window positioning, focus races, and taskbar privacy concerns. We pivoted to **pure Remotion rendering** — a React component named `TerminalScene` that draws a fake terminal and types commands character-by-character. The output is visually indistinguishable from a real screen recording (same traffic-light window chrome, blinking cursor, scrolling output) but deterministic, privacy-safe, pixel-perfect at 1080p, and pace-controllable to the frame.\n\nThat component + pattern is the capability this skill makes discoverable.\n\n## When to use synthetic (TerminalScene)\n\n**YES, synthesize when:**\n- The demo is a **terminal \u002F CLI \u002F coding session** where commands and outputs are predictable\n- The user wants a polished tutorial feel (clean typography, floating pills, cursor blink)\n- Install walkthroughs, setup demos, API key config, `make` targets, `git clone` flows\n- You need tight sync with narration — every command must land on a specific beat\n- You want the result reproducible (re-render gets identical pixels)\n- The user's actual desktop has private apps\u002Fwindows visible you'd otherwise have to crop\n\n**NO, capture a real screen when:**\n- The demo is **a real app UI** that can't be faked (Figma, Photoshop, a web app with live state, a browser flow)\n- The user explicitly asked for a recording of *their* actual screen\n- The behavior depends on timing you can't script (streaming LLM output, real network latency)\n- There's a visual quirk (a cursor effect, a plugin pop-up) that only appears in the live environment\n\n**For a browser demo** → `playwright-recording` skill, not this one.\n**For a real desktop** → `screen_recorder` tool or Cap via `cap_recorder`.\n\n## The component — `TerminalScene`\n\nLocated at: `remotion-composer\u002Fsrc\u002Fcomponents\u002FTerminalScene.tsx`\nExported from: `remotion-composer\u002Fsrc\u002Fcomponents\u002Findex.ts`\nWired in dispatch: `remotion-composer\u002Fsrc\u002FExplainer.tsx` (`if (cut.type === \"terminal_scene\")`)\n\n**Props:**\n```ts\ninterface TerminalSceneProps {\n  title?: string;           \u002F\u002F shown in the window title bar\n  steps: TerminalStep[];    \u002F\u002F the timeline\n  prompt?: string;          \u002F\u002F \"$\", \">\", etc.\n  accentColor?: string;     \u002F\u002F pill + prompt glow\n  backgroundColor?: string;\n}\n```\n\n**Step kinds:**\n```ts\n{ kind: \"cmd\",   text: string, typeSpeed?: number, holdSeconds?: number }\n{ kind: \"out\",   text: string, holdSeconds?: number }\n{ kind: \"pause\", seconds: number }\n{ kind: \"pill\",  text: string, color?: string, durationSeconds?: number }\n```\n\n- `cmd` — prints the prompt, types the text character-by-character (`typeSpeed` is seconds per character, default 0.035), then holds for `holdSeconds` (default 0.3)\n- `out` — a line of program output, reveals instantly with a short fade-in\n- `pause` — dead time. Terminal holds on last visible state. USE THIS TO SYNC WITH NARRATION.\n- `pill` — non-blocking floating badge (top-right). Spring-in, hold, spring-out. Does NOT advance the cursor — the next step runs in parallel.\n\n## Authoring pattern\n\nAuthor a new scene by adding a cut to `build_composition.py` (or your equivalent props builder):\n\n```python\ninstall_steps = [\n    {\"kind\": \"pause\", \"seconds\": 7.0},                 # wait for intro narration\n    {\"kind\": \"cmd\", \"text\": \"git clone https:\u002F\u002Fgithub.com\u002Fcalesthio\u002FOpenMontage.git\",\n     \"typeSpeed\": 0.045, \"holdSeconds\": 0.3},\n    {\"kind\": \"out\", \"text\": \"Cloning into 'OpenMontage'...\"},\n    {\"kind\": \"out\", \"text\": \"remote: Enumerating objects: 2847, done.\"},\n    {\"kind\": \"pill\", \"text\": \"repo cloned\", \"color\": \"#34D399\", \"durationSeconds\": 2.6},\n    {\"kind\": \"pause\", \"seconds\": 3.8},                 # bridge to next narration cue\n    # ...\n]\n\ncuts.append({\n    \"id\": \"install-terminal\",\n    \"type\": \"terminal_scene\",\n    \"terminalTitle\": \"bash — OpenMontage setup\",\n    \"prompt\": \"$\",\n    \"accentColor\": \"#22D3EE\",\n    \"steps\": install_steps,\n    \"in_seconds\": 50.0,\n    \"out_seconds\": 110.0,\n})\n```\n\n## THE RULE: pace with narration, never ahead\n\n**The #1 failure mode:** steps run continuously and burn through all content in the first 40% of the scene, leaving the terminal frozen for the remaining 60%. This is what killed the v3 first pass — the capability menu rendered at t=80s but narration didn't announce it until t=92s.\n\n**Do this instead:**\n\n1. **Know your narration cues** — for each scene, write down the exact video-time each narration segment starts.\n2. **Start with a pause** that reaches the first narration cue before any command types.\n3. **Time each command to land with its narration line** — `cmd` should start typing the moment narration says its line, not before.\n4. **Put pauses between command groups** that bridge to the next narration cue.\n5. **End with a closer hold** — a pause long enough that the final state is readable after narration ends.\n\n**Sanity-check your steps before rendering** — every minute of Remotion render is precious. Sum the step durations and verify they equal scene duration:\n\n```python\nimport math\ndef trace(steps, scene_start, fps=30):\n    t = 0.0\n    for s in steps:\n        k = s[\"kind\"]\n        if k == \"cmd\":\n            tf = math.ceil(len(s[\"text\"]) * s.get(\"typeSpeed\", 0.035) * fps)\n            t += tf \u002F fps + s.get(\"holdSeconds\", 0.3)\n        elif k == \"out\":\n            t += max(2, math.ceil(0.08 * fps)) \u002F fps + s.get(\"holdSeconds\", 0.15)\n        elif k == \"pause\":\n            t += s[\"seconds\"]\n        # \"pill\" is non-blocking — does NOT advance cursor\n        print(f\"  {t + scene_start:6.2f}s  {k}: {s.get('text', '')[:40]}\")\ntrace(install_steps, 50)\n```\n\nLook at the output column. Each narration cue's video-time must appear adjacent to the command\u002Foutput it announces. If a command lands 10s before or after its cue, adjust pauses.\n\nSee `lib\u002Fverify_scene_pacing.py` for a reusable version of this script.\n\n## Design rules (inherited from the v3 retune)\n\n- **Intro pause** — every terminal scene opens with at least 2s of empty-terminal-with-blinking-cursor before anything types. The viewer needs to register the window.\n- **Pill timing** — a pill should fire at the exact moment its named event completes on screen (e.g., `repo cloned` immediately after the last `Receiving objects` line). Pills are your substitute for real-world UI notifications.\n- **Command hold after typing** — keep `holdSeconds` ≥ 0.3 on every `cmd` so viewers register the completed command before the first output scrolls in.\n- **Output cadence** — space `holdSeconds` on output lines between 0.4 and 1.0. Output that flies too fast feels like a bug; output that crawls feels boring.\n- **Auto-scroll works** — the terminal holds the most recent 18 lines. Don't worry about off-screen content.\n- **Cursor blinks only on the latest command line while typing + a ~0.2s tail** after typing completes.\n\n## `ProviderChip` (companion component)\n\nThe `.agents\u002Fskills\u002Fsynthetic-screen-recording` pattern also owns `ProviderChip` — a rotating badge overlay that cycles through a list of provider names at a fixed cadence. Used in the v3 showcase to cycle through all 11 AI video-gen providers during the \"generated motion\" section.\n\n```python\noverlays.append({\n    \"type\": \"provider_chip\",\n    \"providers\": [\"Veo 3.1\", \"Seedance 2.0\", \"Kling 2.5\", ...],\n    \"cycleSeconds\": 2.5,\n    \"position\": \"bottom-right\",\n    \"accentColor\": \"#22D3EE\",\n    \"label\": \"generated with\",\n    \"in_seconds\": 195.0,\n    \"out_seconds\": 222.5,\n})\n```\n\nWired in dispatch at: `remotion-composer\u002Fsrc\u002FExplainer.tsx` overlay renderer (`overlay.type === \"provider_chip\"`).\n\n## Adding new synthetic-UI components\n\nThe pattern generalizes. When you need to fake another UI surface (Claude Code chat bubbles, a Jira ticket view, a GitHub PR diff, a Slack message, a VS Code status bar):\n\n1. Copy `TerminalScene.tsx` as a template.\n2. Define a `steps` interface for the relevant timeline primitives.\n3. Render each step by interpolating `frame` against cumulative start\u002Fend times.\n4. Wire it into `Explainer.tsx`'s `SceneRenderer` dispatch with a new `cut.type`.\n5. Add the type to the `Cut` interface in `Explainer.tsx` and to `components\u002Findex.ts`.\n6. Add a section to this skill documenting it.\n7. Update `remotion-composer\u002FSCENE_TYPES.md` with the new cut type.\n\n## Related skills\n\n- `.agents\u002Fskills\u002Fremotion` — general Remotion authoring (hooks, springs, sequences)\n- `.agents\u002Fskills\u002Fplaywright-recording` — real browser-flow capture for web apps\n- `tools\u002Fcapture\u002Fscreen_recorder` — ffmpeg-based desktop capture\n- `tools\u002Fcapture\u002Fcap_recorder` — Cap.so polished desktop capture\n- `skills\u002Fpipelines\u002Fscreen-demo\u002Fasset-director.md` — chooses between synthetic and real for a screen-demo project\n\n## Provenance\n\nIntroduced: OpenMontage showcase v3 render (2026-04-16). Original motivation: the v3 setup walkthrough section needed a 60-second install demo where every command aligned to Chirp 3 HD narration cues, and Windows-MCP-driven real capture was too flaky in practice. See `projects\u002Fopenmontage-showcase\u002Fbuild_composition.py` for the reference implementation.\n",{"name":5,"license":14,"description":7},"main","1eb986d0b0ecc180291597e08eb5a58288843536","skills\u002Fcurated_premium_skills\u002FOpenMontage\u002F.agents\u002Fskills\u002Fsynthetic-screen-recording","https:\u002F\u002Fgithub.com\u002Fvikasvardhanv\u002Fjerry_skills","https:\u002F\u002Fgithub.com\u002Fvikasvardhanv","2026-08-25 13:16:33",{"source":8,"skillName":5,"commands":30,"prompt":40,"zipAvailable":41},[31,34,37],{"tool":32,"command":33},"npx","npx skills add vikasvardhanv\u002Fjerry_skills --skill synthetic-screen-recording",{"tool":35,"command":36},"bunx","bunx skills add vikasvardhanv\u002Fjerry_skills --skill synthetic-screen-recording",{"tool":38,"command":39},"pnpm","pnpm dlx skills add vikasvardhanv\u002Fjerry_skills --skill synthetic-screen-recording","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fvikasvardhanv\u002Fjerry_skills\u002Fblob\u002Fmain\u002Fskills\u002Fcurated_premium_skills\u002FOpenMontage\u002F.agents\u002Fskills\u002Fsynthetic-screen-recording\u002FSKILL.md",true,[],[44,51,58,65,72,79],{"skillNo":45,"name":46,"nameZh":6,"description":47,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":48,"categories":49,"keywords":50,"publishedAt":18},"01M7BESR1CJ3H5SP9XM8KYJZ9W","syllabus","Generates a curated supplementary reading list from any course syllabus using Consensus academic search. Grill-me intake (syllabus input format + course audience + year range) plus a grouping forcing-options checkpoint before any search runs — so the reading list matches the course's level and recency need. Parses the syllabus to extract topics and learning outcomes, searches Consensus for recent peer-reviewed papers per topic, and produces a professionally formatted .docx with clickable Consensus links, plain-language summaries calibrated to audience level, and Bloom-higher-order discussion questions tied to course learning goals. Use when the user uploads a syllabus, course outline, or curriculum document and wants supplementary readings (e.g., 'create a reading list from this syllabus', 'find recent papers for my course') — even casual mentions with a syllabus attached should trigger this skill.","https:\u002F\u002Fgithub.com\u002Fvikasvardhanv\u002Fjerry_skills\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Fsyllabus\u002Fskills\u002Fsyllabus\u002FSKILL.md",[],[],{"skillNo":52,"name":53,"nameZh":6,"description":54,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":55,"categories":56,"keywords":57,"publishedAt":18},"01M7BES1YA6R97W7QPMFFM1PED","pulse","Multi-source recency research skill that takes the pulse of any topic across Reddit, Hacker News, the open web, and optionally X\u002FTwitter within a configurable recent window (default 30 days). Forcing intake clarifies topic specificity, angle (trend\u002Fsentiment\u002Fproblems\u002Fopportunities\u002Fcomparison), time window, and platform scope before searching. Returns a synthesized briefing with citations, engagement metrics, and cross-platform pattern analysis. Use when the user requests multi-source recency intelligence on a topic (e.g., 'pulse on [topic]', 'what's happening with [topic]', 'what are people saying about [topic]', 'current conversation about [topic]', 'take the pulse of [topic]', 'trending: [topic]', 'find me info on [topic]'), and for competitor research, trend discovery, tool comparisons, and audience sentiment analysis.","https:\u002F\u002Fgithub.com\u002Fvikasvardhanv\u002Fjerry_skills\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Fpulse\u002Fskills\u002Fpulse\u002FSKILL.md",[],[],{"skillNo":59,"name":60,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":64,"publishedAt":18},"01M7BERNHYGY035AR00VRT03KE","patent","Patent prior-art and landscape intelligence skill — not generic patent help. Commits to one of five sub-use-cases via forcing intake (novelty search \u002F freedom-to-operate \u002F competitive landscape \u002F acquisition diligence \u002F litigation prior-art) before any search runs. Searches Google Patents, Espacenet, USPTO, and optionally Lens.org for citation-graph signals. Output is an editable Word document (.docx) with verdict, ranked closest art (claim-text extracted), CPC-class-aware landscape, family-resolved hits, geographic coverage, FTO flags where applicable, strategy recommendations, and full audit log. Use when the user asks for patent searching or analysis (e.g., 'prior art search for [invention]', 'freedom to operate analysis for [product]'). Produces search signal, not legal advice — always recommends consulting a patent attorney before filing or licensing decisions. Trademark, copyright, and trade-secret questions are out of scope.","https:\u002F\u002Fgithub.com\u002Fvikasvardhanv\u002Fjerry_skills\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Fpatent\u002Fskills\u002Fpatent\u002FSKILL.md",[],[],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":18},"01M7BERCK1EAKTWW7R436WAR0J","notebooklm","Browser automation skill for controlling Google's NotebookLM. Use when the user wants anything done in NotebookLM (e.g., 'open NotebookLM', 'check my [name] notebook', 'ask my notebook about X', 'add [source] to NotebookLM', 'generate a Video Overview from my notebook', 'use NotebookLM Studio'). Handles reading and querying notebooks, adding sources (URLs, text, files, YouTube links, synthesized content), generating Studio outputs (Audio\u002FVideo Overviews, Mind Maps, Reports incl. Briefing Doc\u002FStudy Guide\u002FFAQ, Flashcards, Quiz, slide decks, infographics — discover the exact set from the live Studio panel; the UI evolves fast), and creating new notebooks. Requires browser automation environment — fails gracefully when unavailable.","https:\u002F\u002Fgithub.com\u002Fvikasvardhanv\u002Fjerry_skills\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Fnotebooklm\u002Fskills\u002Fnotebooklm\u002FSKILL.md",[],[],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":18},"01M7BEQZAZAQRTXFJRY7RHV3TY","litreview","Academic literature orientation skill that searches papers via free keyless APIs (PubMed E-utilities + OpenAlex) by default — with the Consensus MCP as an optional enhancement lane when connected — builds a strategic search plan using PICO (default) or SPIDER \u002F Decomposition \u002F hybrid as fallbacks, and synthesizes findings into a formatted Word (.docx) research guide. Grill-me intake (research question specificity + framework hint + tentative depth) before the recon search; a second forcing checkpoint after Phase 2 confirms framework + sub-areas + depth before searches consume budget. Configurable depth (5\u002F10\u002F20 queries) controls coverage vs. speed. Output is a 'launching pad' — an orientation guide that lets a researcher dive in confidently, not a finished review. Use when the user starts literature-oriented research (e.g., 'litreview on [topic]', 'literature review on [topic]', 'I'm starting a literature review on X', 'I'm writing a paper on X', 'help me research X', 'I'm doing research on X', 'can you help me research X'). Do NOT use for single one-off paper searches wanting a quick list — that's a plain PubMed\u002FOpenAlex (or Consensus) query.","https:\u002F\u002Fgithub.com\u002Fvikasvardhanv\u002Fjerry_skills\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Flitreview\u002Fskills\u002Flitreview\u002FSKILL.md",[],[],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":18},"01M7BEQKJ45K31QK5VRAQSVJCJ","grants","NIH grant research skill for clinical researchers. Grill-me intake (research idea + career stage + preliminary data + environment + submission posture + known institute targets) locks down the funding strategy before any search runs. Runs a 5-facet Consensus positioning analysis (with draft Significance\u002FInnovation language), maps the research to the right NIH institutes and study sections via RePORTER, finds NOSIs and funded overlap, and produces an editable Word document (.docx) with budget\u002Fscope-aware mechanism recommendations, submission timelines, and a mandatory program officer recommendation. Use when the user asks about research funding or makes any grant-related request (e.g., 'grants for [topic]', 'find grants for my research idea', 'what grants match my research', 'help me find NIH funding', 'grant opportunities for my research'). NIH-only scope — non-NIH funders (PCORI, DOD CDMRP, VA, foundations) are out of scope and flagged at intake.","https:\u002F\u002Fgithub.com\u002Fvikasvardhanv\u002Fjerry_skills\u002Fblob\u002Fmain\u002Fskills\u002Fresearch\u002Fgrants\u002Fskills\u002Fgrants\u002FSKILL.md",[],[]]