[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7CEG2MNJ2TESJC4GF7C4B73":3,"skill-same:01M7CEG2MNJ2TESJC4GF7C4B73":77},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":14,"repositoryHtmlUrl":32,"repositoryHomepageUrl":6,"ownerHtmlUrl":33,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":34,"install":35,"resources":48},"01M7CEG2MNJ2TESJC4GF7C4B73","landing",null,"Generates a premium single-page HTML landing page with 3D CSS animations, GSAP scroll effects, and mouse-parallax depth. Forcing intake (product + elevator pitch, audience register, brand overrides, tone) locks down positioning before any copy or markup is written, so the page reflects the actual product rather than generic boilerplate. Use whenever the user says 'landing for X', 'create a landing page', 'build a landing page', 'make a landing page for X', 'I need a web page for Y', or provides product\u002Fservice details and wants a polished website. Also triggers on 'promotional page', 'product page', 'one-pager', 'web presence', 'sales page'. Outputs a single self-contained HTML file (Claude Code) or HTML artifact (Claude.ai). Supports configurable brand colors via CSS custom property overrides.","azhri1990\u002Fjarvis-mega-repo","azhri1990","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F281207543?v=4","01M7BMC0WHXB2ZA9SH1PFJDYNS","Nashriq Mokhtar","01M7C4WMQVQ450E0NA99BG7BHA",0,"MIT","https:\u002F\u002Fgithub.com\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002FJ.A.R.V.I.S\u002Fcomponents\u002Fcore\u002Fclaude-skills\u002F.vibe\u002Fskills\u002Fclaude-skills\u002Fmarketing\u002Flanding\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: landing\ndescription: \"Generates a premium single-page HTML landing page with 3D CSS animations, GSAP scroll effects, and mouse-parallax depth. Forcing intake (product + elevator pitch, audience register, brand overrides, tone) locks down positioning before any copy or markup is written, so the page reflects the actual product rather than generic boilerplate. Use whenever the user says 'landing for X', 'create a landing page', 'build a landing page', 'make a landing page for X', 'I need a web page for Y', or provides product\u002Fservice details and wants a polished website. Also triggers on 'promotional page', 'product page', 'one-pager', 'web presence', 'sales page'. Outputs a single self-contained HTML file (Claude Code) or HTML artifact (Claude.ai). Supports configurable brand colors via CSS custom property overrides.\"\nlicense: MIT\nmetadata:\n  source_spec: \"megaprompts\u002F04-landing-megaprompt.md\"\n  build_pattern: \"Path B (direct conversion)\"\n  distinct_from: \"product-team\u002Fskills\u002Flanding-page-generator (different output format + optimization target)\"\n  version: 1.0.0\n---\n\n# Landing — Premium HTML Landing Page Generator\n\n> **Distinct from `product-team\u002Fskills\u002Flanding-page-generator\u002F`.** That skill outputs Next.js TSX components optimized for conversion \u002F lead-gen. THIS skill outputs a single self-contained `.html` file optimized for premium visual experience with GSAP animations. Pick by use case.\n\nGenerate a polished, self-contained `.html` landing page from a text prompt or brief. The output is ONE HTML file: all CSS inline in `\u003Cstyle>`, all JS inline in `\u003Cscript>`, only external dependencies being Google Fonts + GSAP via CDN. The page is visually distinctive, animated, and production-quality.\n\n## Invocation Triggers\n\n- \"create a landing page\"\n- \"build a landing page\"\n- \"make a landing page for X\"\n- \"I need a web page for Y\"\n- \"promotional page\"\n- \"product page\"\n- \"one-pager\"\n- \"web presence\"\n- \"sales page\"\n- \"landing for X\"\n\n## Delivery Mode\n\nIn **Claude Code CLI**, write the file to disk at the specified path. In **Claude.ai web**, create an HTML artifact with the same content.\n\n## Phase 0: Grill-Me Intake (4 forcing questions, one at a time)\n\nDependency-ordered. Each question carries explicit \"why I'm asking\". Stop condition: max 4.\n\n### Q1 (root) — Product \u002F Service\n\n> **What's the product or service? Give me the name + a 1–2 sentence elevator pitch — what does it do, and who's it for?**\n>\n> *Why I'm asking:* The headline, subtext, and feature copy all derive from this. \"App for productivity\" produces generic boilerplate; \"Async standup tool for remote engineering teams who hate Zoom\" produces a landing page that converts.\n\n**Refuse mush.** If user gives just a name with no pitch, push back once: \"What does it do? Who's it for?\" If still no pitch after push-back, deliver with explicit \"generic positioning\" caveat.\n\n### Q2 (depends on Q1) — Audience Register\n\n> **Who's the audience? Pick one:**\n>\n> 1. **Technical buyers** (engineers, ops, security)\n> 2. **Business buyers** (PMs, execs, ops leaders)\n> 3. **Consumers** (general public, hobbyists)\n> 4. **Internal** (employees, partners — not for public sale)\n>\n> *Why I'm asking:* Audience dictates copy register, jargon level, social-proof choices, and CTA framing. Technical buyers want specifics; consumers want benefits; internal pages can skip persuasion.\n\nForcing choice.\n\n### Q3 (always) — Brand Overrides\n\n> **Brand colors \u002F fonts to override the default (dark navy + teal + Inter)? Provide as: primary HEX, accent HEX, optional bg HEX. Or say \"default\" if you want the polished default.**\n>\n> *Why I'm asking:* The default is intentionally beautiful, but matching your brand makes the page feel native to your existing site. Even just a primary color override goes a long way.\n\nAccept \"default\" or partial overrides (e.g., just primary). If only primary provided, derive accent algorithmically (lighten \u002F darken).\n\n### Q4 (depends on Q1) — Tone\n\n> **Tone — pick one:**\n>\n> 1. **Professional** — confident, restrained, B2B-friendly\n> 2. **Playful** — warm, light, occasional humor\n> 3. **Authoritative** — expert, data-forward, trust-building\n> 4. **Minimal** — terse, design-led, low copy density\n>\n> *Why I'm asking:* Tone affects every sentence — headlines, microcopy, button text, closing copy. Picking upfront prevents tonal whiplash across sections.\n\nForcing choice. **Recommended default:** professional if Q2 = technical\u002Fbusiness; playful if Q2 = consumer; minimal if the product is design-led.\n\n**Stop condition:** After Q4, commit and generate. No follow-up questions during generation.\n\n## Content Extraction (with Fallback Strategy)\n\nFrom Q1's elevator pitch, derive:\n- **Hero headline** — punchy version of \"what it does\" (8–12 words)\n- **Hero subtext** — version of \"who it's for + payoff\" (1–2 sentences)\n- **3–6 feature bullets** — distilled from pitch + audience (Q2) + tone (Q4)\n- **CTA text** — action-oriented, matches tone\n- **Closing copy** — short, emotive, matches tone\n\n**Fallback when input is sparse:** invent compelling content from product-name semantics + audience register. Flag inferred content with a comment in the HTML source (`\u003C!-- inferred: ... -->`). Don't stall waiting for more input.\n\n## Brand System Specification\n\n### Default Color Palette (Dark Navy + Teal)\n\n```css\n:root {\n  --navy:       #0A1628;\n  --navy-mid:   #0D1F38;\n  --teal:       #00D4AA;\n  --teal-glow:  rgba(0, 212, 170, 0.12);\n  --amber:      #F5A623;\n  --off-white:  #F7F7F2;\n  --text-muted: rgba(247, 247, 242, 0.68);\n  --card-bg:    rgba(0, 212, 170, 0.06);\n  --card-border:rgba(0, 212, 170, 0.15);\n}\n```\n\n### Override Pattern\n\nWhen Q3 provides custom brand values, the skill substitutes them into the `:root` block:\n\n```\nBrand override:\n- primary: #FF6B35    →  --navy \u002F hero bg\n- accent:  #2EC4B6    →  --teal \u002F CTA \u002F highlights\n- bg:      #011627    →  --navy-mid \u002F section bg\n- text:    #FDFFFC    →  --off-white\n```\n\nIf only primary provided, derive accent algorithmically (lighten 15% for accent; darken 8% for navy-mid; convert to rgba at 0.12 alpha for glow). Use `scripts\u002Fbrand_palette_validator.py` for the deterministic derivation.\n\nSee [`references\u002Fbrand_system_design.md`](references\u002Fbrand_system_design.md) for color theory + WCAG + algorithmic palette derivation canon.\n\n### Typography\n\n- **Font family:** Inter (via Google Fonts)\n- **Weight scale:** 400 (body), 500 (eyebrow), 600 (links), 700 (subtitle), 800 (H1 + H2)\n- **Size scale:**\n  - Hero H1: 68–82px\n  - Section H2: 52–62px\n  - Card titles: 22px\n  - Body: 17–19px\n  - Eyebrow: 13px (uppercase, letter-spaced)\n  - CTA button: 18px (500 weight)\n\n### Components (Must Specify CSS)\n\n- `.btn-primary` — CTA button with hover state (lift + brightness)\n- `.feature-card` — card with hover lift (translateY(-6px) + border-brighten)\n- `.eyebrow` — letter-spaced (0.2em) uppercase category label\n\n## Section 1: Hero\n\n- `min-height: 100vh`, flex-centered content\n- Optional eyebrow label above H1\n- H1 (68–82px, 800 weight)\n- Subtitle (17–19px, 1–2 sentences)\n- CTA button (.btn-primary)\n- Scroll-down indicator (animated chevron, CSS bounce)\n- **Depth layers** (mouse parallax):\n  - `.hero-shapes-back` — large blurred circles, absolute-positioned, low opacity\n  - `.hero-shapes-mid` — smaller shapes, sharper edges, higher opacity\n  - Content layer (H1 + subtitle) — moves subtly in same direction as mouse\n\n## Section 2: Features\n\n- 3 columns default (`repeat(3, 1fr)` grid)\n- Responsive:\n  - 2 columns at 900px breakpoint\n  - 1 column at 580px breakpoint\n- Each card:\n  - SVG icon (28px, stroke=var(--teal), no fill)\n  - Title (22px, 700 weight)\n  - Description (15–16px, --text-muted)\n- Hover state:\n  - `transform: translateY(-6px)`\n  - `border-color: var(--teal)` (brighten from --card-border)\n  - `transition: 0.3s ease`\n\n## Section 3: Closing CTA\n\n- Full-width, `background: var(--navy-mid)`\n- `padding: 120px 24px`, text-align: center\n- Large closing headline (52–62px, 800 weight)\n- Short subtext (--text-muted, 1–2 sentences)\n- CTA button with ambient radial-gradient glow behind it:\n  ```css\n  background: radial-gradient(circle, var(--teal-glow) 0%, transparent 70%);\n  ```\n\n## Animation Patterns\n\nSee [`references\u002Fgsap_animation_patterns.md`](references\u002Fgsap_animation_patterns.md) for the canon. Five patterns required:\n\n### 1. Hero Entrance (GSAP timeline)\n\n```js\n\u002F\u002F MUST use gsap.set() FIRST to prevent FOUC\ngsap.set([\".eyebrow\", \".hero h1\", \".hero .subtitle\", \".btn-primary\", \".scroll-down\"], {\n  opacity: 0,\n  y: 30\n});\n\nconst tl = gsap.timeline({ defaults: { ease: \"power3.out\" } });\ntl.to(\".eyebrow\", { opacity: 1, y: 0, duration: 0.6 })\n  .to(\".hero h1\", { opacity: 1, y: 0, duration: 0.8 }, \"-=0.3\")\n  .to(\".hero .subtitle\", { opacity: 1, y: 0, duration: 0.6 }, \"-=0.5\")\n  .to(\".btn-primary\", { opacity: 1, y: 0, duration: 0.5 }, \"-=0.3\")\n  .to(\".scroll-down\", { opacity: 1, y: 0, duration: 0.4 }, \"-=0.2\");\n```\n\n### 2. Mouse Parallax\n\n```js\nconst hero = document.querySelector(\".hero\");\nhero.addEventListener(\"mousemove\", (e) => {\n  const x = (e.clientX \u002F window.innerWidth - 0.5) * 2;\n  const y = (e.clientY \u002F window.innerHeight - 0.5) * 2;\n  gsap.to(\".hero-shapes-back\", { x: x * 45, y: y * 22, duration: 0.8 });\n  gsap.to(\".hero-shapes-mid\",  { x: x * 22, y: y * 11, duration: 0.8 });\n  gsap.to(\".hero .container\",  { x: x * 8,  y: y * 5,  duration: 0.8 });\n});\n```\n\n### 3. Scroll-Triggered Feature Cards\n\n```js\ngsap.set(\".feature-card\", { opacity: 0, y: 55, rotateX: 18 });\n\nScrollTrigger.batch(\".feature-card\", {\n  start: \"top 80%\",\n  onEnter: batch => gsap.to(batch, {\n    opacity: 1, y: 0, rotateX: 0,\n    duration: 0.8,\n    stagger: 0.11,\n    ease: \"power2.out\"\n  })\n});\n```\n\n### 4. Floating Decorative Shapes (CSS keyframes — NOT GSAP)\n\nCSS handles ambient continuous motion (smoother, cheaper than GSAP for indefinite animations):\n\n```css\n@keyframes floatA {\n  0%, 100% { transform: translate(0, 0) rotate(0deg); }\n  50%      { transform: translate(20px, -30px) rotate(8deg); }\n}\n@keyframes floatB { \u002F* different duration + rotation *\u002F }\n@keyframes floatC { \u002F* different duration + rotation *\u002F }\n\n.hero-shapes-back .shape-a { animation: floatA 12s ease-in-out infinite; }\n```\n\n### 5. Scroll Indicator (CSS bounce)\n\n```css\n@keyframes bounce {\n  0%, 100% { transform: translateY(0); }\n  50%      { transform: translateY(8px); }\n}\n.scroll-down { animation: bounce 2s ease-in-out infinite; }\n```\n\n## Required CDN Dependencies\n\n```html\n\u003Clink href=\"https:\u002F\u002Ffonts.googleapis.com\u002Fcss2?family=Inter:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\n\u003Cscript src=\"https:\u002F\u002Fcdnjs.cloudflare.com\u002Fajax\u002Flibs\u002Fgsap\u002F3.12.2\u002Fgsap.min.js\">\u003C\u002Fscript>\n\u003Cscript src=\"https:\u002F\u002Fcdnjs.cloudflare.com\u002Fajax\u002Flibs\u002Fgsap\u002F3.12.2\u002FScrollTrigger.min.js\">\u003C\u002Fscript>\n```\n\nNO other external CSS or JS files. All custom CSS in `\u003Cstyle>`, all custom JS in `\u003Cscript>` blocks within the same HTML file.\n\nSee [`references\u002Fsingle_file_html_discipline.md`](references\u002Fsingle_file_html_discipline.md) for the inline-only rationale.\n\n## Layout Rules\n\n- **Container max-width:** 1200px, centered\n- **Section padding:** `120px 24px` (vertical 120, horizontal 24, scales down on mobile)\n- **Responsive breakpoints:**\n  - 900px → features grid 3-col → 2-col\n  - 580px → all grids → 1-col; H1 scales down to ~52px\n- **Viewport meta:** `\u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\">`\n\n## Output Spec\n\n- **Path:** `${OUTPUT_DIR}\u002F\u003Cproduct-name-kebab>.html`\n- **Default `${OUTPUT_DIR}`:** `.\u002Flanding-pages\u002F`\n- **Filename:** lowercase kebab-case from product name (\"Quill AI\" → `quill-ai.html`). Use `scripts\u002Fkebab_slug_generator.py` for deterministic slug generation + duplicate detection.\n- **Self-contained:** all CSS in `\u003Cstyle>`, all JS in `\u003Cscript>`, only Google Fonts + GSAP CDN external.\n\n## Validation (Post-Generation)\n\nRun `scripts\u002Fhtml_validator.py --file ${OUTPUT_DIR}\u002F\u003Cslug>.html` after generation. Checks:\n\n- All 3 required sections present (`.hero`, `.features`, `.closing-cta`)\n- CDN deps present (Inter + GSAP + ScrollTrigger)\n- `gsap.set()` initial states precede any `gsap.timeline` or `gsap.to` (FOUC prevention)\n- Responsive breakpoints at 900px + 580px\n- No external `\u003Clink rel=\"stylesheet\">` other than Google Fonts\n- No external `\u003Cscript src=>` other than GSAP CDN\n- `\u003Cmeta name=\"viewport\">` present\n- All animated elements have initial-state declarations\n\n## Error Handling\n\n| Situation | Behavior |\n|---|---|\n| Input is just a name with no context | Invent compelling content from name semantics + audience register; flag as `\u003C!-- inferred -->` in HTML source |\n| Input file is large or PDF | Read fully before generating; don't truncate |\n| Brand colors insufficient (only 1 HEX provided) | Use as primary; derive secondary\u002Faccent algorithmically (lighten\u002Fdarken via brand_palette_validator.py) |\n| Features count not specified | Default to 4 |\n| Output dir doesn't exist | Create it |\n| Existing file at output path | Append timestamp suffix or ask user (kebab_slug_generator.py flags duplicates) |\n| html_validator returns FAIL | Regenerate ONLY the failing sections in one targeted pass; do NOT abandon the file |\n\n## Portability\n\n- **Claude Code CLI:** Native — writes HTML file directly to filesystem.\n- **Claude.ai web:** Native — produces HTML as an artifact instead of file.\n\n## Tooling\n\n| Script | Role |\n|---|---|\n| `scripts\u002Fbrand_palette_validator.py` | Validates HEX format, checks WCAG AA contrast, generates derived palette from primary (algorithmic lighten\u002Fdarken). |\n| `scripts\u002Fkebab_slug_generator.py` | Product name → kebab-case filename + duplicate detection in output dir. |\n| `scripts\u002Fhtml_validator.py` | Post-generation structural check: 3 sections, CDN deps, gsap.set() initial states, responsive breakpoints, no external files. |\n\n## References\n\n- [`references\u002Fbrand_system_design.md`](references\u002Fbrand_system_design.md) — color theory + WCAG + algorithmic palette derivation (7+ sources)\n- [`references\u002Fgsap_animation_patterns.md`](references\u002Fgsap_animation_patterns.md) — entrance timeline + ScrollTrigger reveals + mouse parallax + CSS floats + scroll indicator (7+ sources)\n- [`references\u002Fsingle_file_html_discipline.md`](references\u002Fsingle_file_html_discipline.md) — why inline + CDN-only externals + accessibility minimums + no-build rationale (7+ sources)\n\n## Anti-Patterns To Reject\n\n- Hardcoded absolute paths in output directory\n- Single brand palette without override documentation\n- Outlining before writing — write in one pass\n- External CSS or JS files (must be inline; only Google Fonts + GSAP CDN allowed)\n- Skipping `gsap.set()` initial states (causes FOUC)\n- More than 6 features in default grid (becomes unscannable)\n- Brand-specific content references in the skill itself\n\n---\n\n**Version:** 1.0.0\n**Source spec:** `megaprompts\u002F04-landing-megaprompt.md` (maintainer-local draft spec — gitignored, not present in the public repository)\n**Build pattern:** Path B (direct conversion). Distinct from `product-team\u002Fskills\u002Flanding-page-generator\u002F`.\n","# Landing — Premium HTML Landing Page Generator\n\n> **Distinct from `product-team\u002Fskills\u002Flanding-page-generator\u002F`.** That skill outputs Next.js TSX components optimized for conversion \u002F lead-gen. THIS skill outputs a single self-contained `.html` file optimized for premium visual experience with GSAP animations. Pick by use case.\n\nGenerate a polished, self-contained `.html` landing page from a text prompt or brief. The output is ONE HTML file: all CSS inline in `\u003Cstyle>`, all JS inline in `\u003Cscript>`, only external dependencies being Google Fonts + GSAP via CDN. The page is visually distinctive, animated, and production-quality.\n\n## Invocation Triggers\n\n- \"create a landing page\"\n- \"build a landing page\"\n- \"make a landing page for X\"\n- \"I need a web page for Y\"\n- \"promotional page\"\n- \"product page\"\n- \"one-pager\"\n- \"web presence\"\n- \"sales page\"\n- \"landing for X\"\n\n## Delivery Mode\n\nIn **Claude Code CLI**, write the file to disk at the specified path. In **Claude.ai web**, create an HTML artifact with the same content.\n\n## Phase 0: Grill-Me Intake (4 forcing questions, one at a time)\n\nDependency-ordered. Each question carries explicit \"why I'm asking\". Stop condition: max 4.\n\n### Q1 (root) — Product \u002F Service\n\n> **What's the product or service? Give me the name + a 1–2 sentence elevator pitch — what does it do, and who's it for?**\n>\n> *Why I'm asking:* The headline, subtext, and feature copy all derive from this. \"App for productivity\" produces generic boilerplate; \"Async standup tool for remote engineering teams who hate Zoom\" produces a landing page that converts.\n\n**Refuse mush.** If user gives just a name with no pitch, push back once: \"What does it do? Who's it for?\" If still no pitch after push-back, deliver with explicit \"generic positioning\" caveat.\n\n### Q2 (depends on Q1) — Audience Register\n\n> **Who's the audience? Pick one:**\n>\n> 1. **Technical buyers** (engineers, ops, security)\n> 2. **Business buyers** (PMs, execs, ops leaders)\n> 3. **Consumers** (general public, hobbyists)\n> 4. **Internal** (employees, partners — not for public sale)\n>\n> *Why I'm asking:* Audience dictates copy register, jargon level, social-proof choices, and CTA framing. Technical buyers want specifics; consumers want benefits; internal pages can skip persuasion.\n\nForcing choice.\n\n### Q3 (always) — Brand Overrides\n\n> **Brand colors \u002F fonts to override the default (dark navy + teal + Inter)? Provide as: primary HEX, accent HEX, optional bg HEX. Or say \"default\" if you want the polished default.**\n>\n> *Why I'm asking:* The default is intentionally beautiful, but matching your brand makes the page feel native to your existing site. Even just a primary color override goes a long way.\n\nAccept \"default\" or partial overrides (e.g., just primary). If only primary provided, derive accent algorithmically (lighten \u002F darken).\n\n### Q4 (depends on Q1) — Tone\n\n> **Tone — pick one:**\n>\n> 1. **Professional** — confident, restrained, B2B-friendly\n> 2. **Playful** — warm, light, occasional humor\n> 3. **Authoritative** — expert, data-forward, trust-building\n> 4. **Minimal** — terse, design-led, low copy density\n>\n> *Why I'm asking:* Tone affects every sentence — headlines, microcopy, button text, closing copy. Picking upfront prevents tonal whiplash across sections.\n\nForcing choice. **Recommended default:** professional if Q2 = technical\u002Fbusiness; playful if Q2 = consumer; minimal if the product is design-led.\n\n**Stop condition:** After Q4, commit and generate. No follow-up questions during generation.\n\n## Content Extraction (with Fallback Strategy)\n\nFrom Q1's elevator pitch, derive:\n- **Hero headline** — punchy version of \"what it does\" (8–12 words)\n- **Hero subtext** — version of \"who it's for + payoff\" (1–2 sentences)\n- **3–6 feature bullets** — distilled from pitch + audience (Q2) + tone (Q4)\n- **CTA text** — action-oriented, matches tone\n- **Closing copy** — short, emotive, matches tone\n\n**Fallback when input is sparse:** invent compelling content from product-name semantics + audience register. Flag inferred content with a comment in the HTML source (`\u003C!-- inferred: ... -->`). Don't stall waiting for more input.\n\n## Brand System Specification\n\n### Default Color Palette (Dark Navy + Teal)\n\n```css\n:root {\n  --navy:       #0A1628;\n  --navy-mid:   #0D1F38;\n  --teal:       #00D4AA;\n  --teal-glow:  rgba(0, 212, 170, 0.12);\n  --amber:      #F5A623;\n  --off-white:  #F7F7F2;\n  --text-muted: rgba(247, 247, 242, 0.68);\n  --card-bg:    rgba(0, 212, 170, 0.06);\n  --card-border:rgba(0, 212, 170, 0.15);\n}\n```\n\n### Override Pattern\n\nWhen Q3 provides custom brand values, the skill substitutes them into the `:root` block:\n\n```\nBrand override:\n- primary: #FF6B35    →  --navy \u002F hero bg\n- accent:  #2EC4B6    →  --teal \u002F CTA \u002F highlights\n- bg:      #011627    →  --navy-mid \u002F section bg\n- text:    #FDFFFC    →  --off-white\n```\n\nIf only primary provided, derive accent algorithmically (lighten 15% for accent; darken 8% for navy-mid; convert to rgba at 0.12 alpha for glow). Use `scripts\u002Fbrand_palette_validator.py` for the deterministic derivation.\n\nSee [`references\u002Fbrand_system_design.md`](references\u002Fbrand_system_design.md) for color theory + WCAG + algorithmic palette derivation canon.\n\n### Typography\n\n- **Font family:** Inter (via Google Fonts)\n- **Weight scale:** 400 (body), 500 (eyebrow), 600 (links), 700 (subtitle), 800 (H1 + H2)\n- **Size scale:**\n  - Hero H1: 68–82px\n  - Section H2: 52–62px\n  - Card titles: 22px\n  - Body: 17–19px\n  - Eyebrow: 13px (uppercase, letter-spaced)\n  - CTA button: 18px (500 weight)\n\n### Components (Must Specify CSS)\n\n- `.btn-primary` — CTA button with hover state (lift + brightness)\n- `.feature-card` — card with hover lift (translateY(-6px) + border-brighten)\n- `.eyebrow` — letter-spaced (0.2em) uppercase category label\n\n## Section 1: Hero\n\n- `min-height: 100vh`, flex-centered content\n- Optional eyebrow label above H1\n- H1 (68–82px, 800 weight)\n- Subtitle (17–19px, 1–2 sentences)\n- CTA button (.btn-primary)\n- Scroll-down indicator (animated chevron, CSS bounce)\n- **Depth layers** (mouse parallax):\n  - `.hero-shapes-back` — large blurred circles, absolute-positioned, low opacity\n  - `.hero-shapes-mid` — smaller shapes, sharper edges, higher opacity\n  - Content layer (H1 + subtitle) — moves subtly in same direction as mouse\n\n## Section 2: Features\n\n- 3 columns default (`repeat(3, 1fr)` grid)\n- Responsive:\n  - 2 columns at 900px breakpoint\n  - 1 column at 580px breakpoint\n- Each card:\n  - SVG icon (28px, stroke=var(--teal), no fill)\n  - Title (22px, 700 weight)\n  - Description (15–16px, --text-muted)\n- Hover state:\n  - `transform: translateY(-6px)`\n  - `border-color: var(--teal)` (brighten from --card-border)\n  - `transition: 0.3s ease`\n\n## Section 3: Closing CTA\n\n- Full-width, `background: var(--navy-mid)`\n- `padding: 120px 24px`, text-align: center\n- Large closing headline (52–62px, 800 weight)\n- Short subtext (--text-muted, 1–2 sentences)\n- CTA button with ambient radial-gradient glow behind it:\n  ```css\n  background: radial-gradient(circle, var(--teal-glow) 0%, transparent 70%);\n  ```\n\n## Animation Patterns\n\nSee [`references\u002Fgsap_animation_patterns.md`](references\u002Fgsap_animation_patterns.md) for the canon. Five patterns required:\n\n### 1. Hero Entrance (GSAP timeline)\n\n```js\n\u002F\u002F MUST use gsap.set() FIRST to prevent FOUC\ngsap.set([\".eyebrow\", \".hero h1\", \".hero .subtitle\", \".btn-primary\", \".scroll-down\"], {\n  opacity: 0,\n  y: 30\n});\n\nconst tl = gsap.timeline({ defaults: { ease: \"power3.out\" } });\ntl.to(\".eyebrow\", { opacity: 1, y: 0, duration: 0.6 })\n  .to(\".hero h1\", { opacity: 1, y: 0, duration: 0.8 }, \"-=0.3\")\n  .to(\".hero .subtitle\", { opacity: 1, y: 0, duration: 0.6 }, \"-=0.5\")\n  .to(\".btn-primary\", { opacity: 1, y: 0, duration: 0.5 }, \"-=0.3\")\n  .to(\".scroll-down\", { opacity: 1, y: 0, duration: 0.4 }, \"-=0.2\");\n```\n\n### 2. Mouse Parallax\n\n```js\nconst hero = document.querySelector(\".hero\");\nhero.addEventListener(\"mousemove\", (e) => {\n  const x = (e.clientX \u002F window.innerWidth - 0.5) * 2;\n  const y = (e.clientY \u002F window.innerHeight - 0.5) * 2;\n  gsap.to(\".hero-shapes-back\", { x: x * 45, y: y * 22, duration: 0.8 });\n  gsap.to(\".hero-shapes-mid\",  { x: x * 22, y: y * 11, duration: 0.8 });\n  gsap.to(\".hero .container\",  { x: x * 8,  y: y * 5,  duration: 0.8 });\n});\n```\n\n### 3. Scroll-Triggered Feature Cards\n\n```js\ngsap.set(\".feature-card\", { opacity: 0, y: 55, rotateX: 18 });\n\nScrollTrigger.batch(\".feature-card\", {\n  start: \"top 80%\",\n  onEnter: batch => gsap.to(batch, {\n    opacity: 1, y: 0, rotateX: 0,\n    duration: 0.8,\n    stagger: 0.11,\n    ease: \"power2.out\"\n  })\n});\n```\n\n### 4. Floating Decorative Shapes (CSS keyframes — NOT GSAP)\n\nCSS handles ambient continuous motion (smoother, cheaper than GSAP for indefinite animations):\n\n```css\n@keyframes floatA {\n  0%, 100% { transform: translate(0, 0) rotate(0deg); }\n  50%      { transform: translate(20px, -30px) rotate(8deg); }\n}\n@keyframes floatB { \u002F* different duration + rotation *\u002F }\n@keyframes floatC { \u002F* different duration + rotation *\u002F }\n\n.hero-shapes-back .shape-a { animation: floatA 12s ease-in-out infinite; }\n```\n\n### 5. Scroll Indicator (CSS bounce)\n\n```css\n@keyframes bounce {\n  0%, 100% { transform: translateY(0); }\n  50%      { transform: translateY(8px); }\n}\n.scroll-down { animation: bounce 2s ease-in-out infinite; }\n```\n\n## Required CDN Dependencies\n\n```html\n\u003Clink href=\"https:\u002F\u002Ffonts.googleapis.com\u002Fcss2?family=Inter:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\n\u003Cscript src=\"https:\u002F\u002Fcdnjs.cloudflare.com\u002Fajax\u002Flibs\u002Fgsap\u002F3.12.2\u002Fgsap.min.js\">\u003C\u002Fscript>\n\u003Cscript src=\"https:\u002F\u002Fcdnjs.cloudflare.com\u002Fajax\u002Flibs\u002Fgsap\u002F3.12.2\u002FScrollTrigger.min.js\">\u003C\u002Fscript>\n```\n\nNO other external CSS or JS files. All custom CSS in `\u003Cstyle>`, all custom JS in `\u003Cscript>` blocks within the same HTML file.\n\nSee [`references\u002Fsingle_file_html_discipline.md`](references\u002Fsingle_file_html_discipline.md) for the inline-only rationale.\n\n## Layout Rules\n\n- **Container max-width:** 1200px, centered\n- **Section padding:** `120px 24px` (vertical 120, horizontal 24, scales down on mobile)\n- **Responsive breakpoints:**\n  - 900px → features grid 3-col → 2-col\n  - 580px → all grids → 1-col; H1 scales down to ~52px\n- **Viewport meta:** `\u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\">`\n\n## Output Spec\n\n- **Path:** `${OUTPUT_DIR}\u002F\u003Cproduct-name-kebab>.html`\n- **Default `${OUTPUT_DIR}`:** `.\u002Flanding-pages\u002F`\n- **Filename:** lowercase kebab-case from product name (\"Quill AI\" → `quill-ai.html`). Use `scripts\u002Fkebab_slug_generator.py` for deterministic slug generation + duplicate detection.\n- **Self-contained:** all CSS in `\u003Cstyle>`, all JS in `\u003Cscript>`, only Google Fonts + GSAP CDN external.\n\n## Validation (Post-Generation)\n\nRun `scripts\u002Fhtml_validator.py --file ${OUTPUT_DIR}\u002F\u003Cslug>.html` after generation. Checks:\n\n- All 3 required sections present (`.hero`, `.features`, `.closing-cta`)\n- CDN deps present (Inter + GSAP + ScrollTrigger)\n- `gsap.set()` initial states precede any `gsap.timeline` or `gsap.to` (FOUC prevention)\n- Responsive breakpoints at 900px + 580px\n- No external `\u003Clink rel=\"stylesheet\">` other than Google Fonts\n- No external `\u003Cscript src=>` other than GSAP CDN\n- `\u003Cmeta name=\"viewport\">` present\n- All animated elements have initial-state declarations\n\n## Error Handling\n\n| Situation | Behavior |\n|---|---|\n| Input is just a name with no context | Invent compelling content from name semantics + audience register; flag as `\u003C!-- inferred -->` in HTML source |\n| Input file is large or PDF | Read fully before generating; don't truncate |\n| Brand colors insufficient (only 1 HEX provided) | Use as primary; derive secondary\u002Faccent algorithmically (lighten\u002Fdarken via brand_palette_validator.py) |\n| Features count not specified | Default to 4 |\n| Output dir doesn't exist | Create it |\n| Existing file at output path | Append timestamp suffix or ask user (kebab_slug_generator.py flags duplicates) |\n| html_validator returns FAIL | Regenerate ONLY the failing sections in one targeted pass; do NOT abandon the file |\n\n## Portability\n\n- **Claude Code CLI:** Native — writes HTML file directly to filesystem.\n- **Claude.ai web:** Native — produces HTML as an artifact instead of file.\n\n## Tooling\n\n| Script | Role |\n|---|---|\n| `scripts\u002Fbrand_palette_validator.py` | Validates HEX format, checks WCAG AA contrast, generates derived palette from primary (algorithmic lighten\u002Fdarken). |\n| `scripts\u002Fkebab_slug_generator.py` | Product name → kebab-case filename + duplicate detection in output dir. |\n| `scripts\u002Fhtml_validator.py` | Post-generation structural check: 3 sections, CDN deps, gsap.set() initial states, responsive breakpoints, no external files. |\n\n## References\n\n- [`references\u002Fbrand_system_design.md`](references\u002Fbrand_system_design.md) — color theory + WCAG + algorithmic palette derivation (7+ sources)\n- [`references\u002Fgsap_animation_patterns.md`](references\u002Fgsap_animation_patterns.md) — entrance timeline + ScrollTrigger reveals + mouse parallax + CSS floats + scroll indicator (7+ sources)\n- [`references\u002Fsingle_file_html_discipline.md`](references\u002Fsingle_file_html_discipline.md) — why inline + CDN-only externals + accessibility minimums + no-build rationale (7+ sources)\n\n## Anti-Patterns To Reject\n\n- Hardcoded absolute paths in output directory\n- Single brand palette without override documentation\n- Outlining before writing — write in one pass\n- External CSS or JS files (must be inline; only Google Fonts + GSAP CDN allowed)\n- Skipping `gsap.set()` initial states (causes FOUC)\n- More than 6 features in default grid (becomes unscannable)\n- Brand-specific content references in the skill itself\n\n---\n\n**Version:** 1.0.0\n**Source spec:** `megaprompts\u002F04-landing-megaprompt.md` (maintainer-local draft spec — gitignored, not present in the public repository)\n**Build pattern:** Path B (direct conversion). Distinct from `product-team\u002Fskills\u002Flanding-page-generator\u002F`.\n",{"name":5,"license":15,"metadata":24,"description":7},{"version":25,"source_spec":26,"build_pattern":27,"distinct_from":28},"1.0.0","megaprompts\u002F04-landing-megaprompt.md","Path B (direct conversion)","product-team\u002Fskills\u002Flanding-page-generator (different output format + optimization target)","main","46d43f3edecde97283ac410e9051444d90120cfb","repos\u002FJ.A.R.V.I.S\u002Fcomponents\u002Fcore\u002Fclaude-skills\u002F.vibe\u002Fskills\u002Fclaude-skills\u002Fmarketing\u002Flanding","https:\u002F\u002Fgithub.com\u002Fazhri1990\u002Fjarvis-mega-repo","https:\u002F\u002Fgithub.com\u002Fazhri1990","2026-10-10 07:58:58",{"source":8,"skillName":5,"commands":36,"prompt":46,"zipAvailable":47},[37,40,43],{"tool":38,"command":39},"npx","npx skills add azhri1990\u002Fjarvis-mega-repo --skill landing",{"tool":41,"command":42},"bunx","bunx skills add azhri1990\u002Fjarvis-mega-repo --skill landing",{"tool":44,"command":45},"pnpm","pnpm dlx skills add azhri1990\u002Fjarvis-mega-repo --skill landing","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002FJ.A.R.V.I.S\u002Fcomponents\u002Fcore\u002Fclaude-skills\u002F.vibe\u002Fskills\u002Fclaude-skills\u002Fmarketing\u002Flanding\u002FSKILL.md",true,[49,55,59,63,69,73],{"path":50,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":53,"sourceHtmlUrl":54},"references\u002Fbrand_system_design.md","REFERENCE","参考文档",8401,"https:\u002F\u002Fgithub.com\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002FJ.A.R.V.I.S\u002Fcomponents\u002Fcore\u002Fclaude-skills\u002F.vibe\u002Fskills\u002Fclaude-skills\u002Fmarketing\u002Flanding\u002Freferences\u002Fbrand_system_design.md",{"path":56,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":57,"sourceHtmlUrl":58},"references\u002Fgsap_animation_patterns.md",9654,"https:\u002F\u002Fgithub.com\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002FJ.A.R.V.I.S\u002Fcomponents\u002Fcore\u002Fclaude-skills\u002F.vibe\u002Fskills\u002Fclaude-skills\u002Fmarketing\u002Flanding\u002Freferences\u002Fgsap_animation_patterns.md",{"path":60,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":61,"sourceHtmlUrl":62},"references\u002Fsingle_file_html_discipline.md",8528,"https:\u002F\u002Fgithub.com\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002FJ.A.R.V.I.S\u002Fcomponents\u002Fcore\u002Fclaude-skills\u002F.vibe\u002Fskills\u002Fclaude-skills\u002Fmarketing\u002Flanding\u002Freferences\u002Fsingle_file_html_discipline.md",{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"scripts\u002Fbrand_palette_validator.py","SCRIPT","脚本",9269,"https:\u002F\u002Fgithub.com\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002FJ.A.R.V.I.S\u002Fcomponents\u002Fcore\u002Fclaude-skills\u002F.vibe\u002Fskills\u002Fclaude-skills\u002Fmarketing\u002Flanding\u002Fscripts\u002Fbrand_palette_validator.py",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},"scripts\u002Fhtml_validator.py",12458,"https:\u002F\u002Fgithub.com\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002FJ.A.R.V.I.S\u002Fcomponents\u002Fcore\u002Fclaude-skills\u002F.vibe\u002Fskills\u002Fclaude-skills\u002Fmarketing\u002Flanding\u002Fscripts\u002Fhtml_validator.py",{"path":74,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":75,"sourceHtmlUrl":76},"scripts\u002Fkebab_slug_generator.py",3912,"https:\u002F\u002Fgithub.com\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002FJ.A.R.V.I.S\u002Fcomponents\u002Fcore\u002Fclaude-skills\u002F.vibe\u002Fskills\u002Fclaude-skills\u002Fmarketing\u002Flanding\u002Fscripts\u002Fkebab_slug_generator.py",[78,85,92,99,106,113],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":19},"01M7CYPF9V9EMA4ZXS1TTCMBFH","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\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002Fproject-genesis\u002Fclaude-skills\u002Fresearch\u002Fsyllabus\u002Fskills\u002Fsyllabus\u002FSKILL.md",[],[],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":19},"01M7CYNRJDTQCRF5KGPMBMSB1S","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\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002Fproject-genesis\u002Fclaude-skills\u002Fresearch\u002Fpulse\u002Fskills\u002Fpulse\u002FSKILL.md",[],[],{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":19},"01M7CYNAVSE84QD7HAWZWTY2FS","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\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002Fproject-genesis\u002Fclaude-skills\u002Fresearch\u002Fpatent\u002Fskills\u002Fpatent\u002FSKILL.md",[],[],{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":19},"01M7CYN0CE8P5ZN7WV2X06HKPC","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\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002Fproject-genesis\u002Fclaude-skills\u002Fresearch\u002Fnotebooklm\u002Fskills\u002Fnotebooklm\u002FSKILL.md",[],[],{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":19},"01M7CYMHZ3QRJ9BKRB859KW8TQ","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\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002Fproject-genesis\u002Fclaude-skills\u002Fresearch\u002Flitreview\u002Fskills\u002Flitreview\u002FSKILL.md",[],[],{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":119,"publishedAt":19},"01M7CYM3D8YKV7R6DT4RNJSF0A","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\u002Fazhri1990\u002Fjarvis-mega-repo\u002Fblob\u002Fmain\u002Frepos\u002Fproject-genesis\u002Fclaude-skills\u002Fresearch\u002Fgrants\u002Fskills\u002Fgrants\u002FSKILL.md",[],[]]