[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71PC37HPQC1H8WBXQFYRNBV":3,"skill-same:01M71PC37HPQC1H8WBXQFYRNBV":103},{"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":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":60,"commitSha":61,"skillDirectory":62,"forksCount":14,"repositoryHtmlUrl":63,"repositoryHomepageUrl":64,"ownerHtmlUrl":65,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":66,"install":67,"resources":80},"01M71PC37HPQC1H8WBXQFYRNBV","pptx-generator",null,"Generate, edit, and read PowerPoint presentations. Create from scratch with PptxGenJS (cover, TOC, content, section divider, summary slides), edit existing PPTX via XML workflows, or extract text with markitdown. Triggers: PPT, PPTX, PowerPoint, presentation, slide, deck, slides.","pattanation\u002FNorvik","pattanation","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F235419268?v=4","01M71M5THHYYB15ME8R2E4FCZG","Patta","01M71M5TJM1NDM992M8PDKYR2K",0,"MIT","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fpptx-generator\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"pptx generator","generator","pptx","triggers","scratch","deck","section","slides","toc","presentation","powerpoint","cover","edit","read","presentations","generate","create","text","io","workflows","2026-11-10 13:02:02",false,"---\nname: pptx-generator\ndescription: \"Generate, edit, and read PowerPoint presentations. Create from scratch with PptxGenJS (cover, TOC, content, section divider, summary slides), edit existing PPTX via XML workflows, or extract text with markitdown. Triggers: PPT, PPTX, PowerPoint, presentation, slide, deck, slides.\"\nlicense: MIT\nmetadata:\n  version: \"1.0\"\n  category: productivity\n  sources:\n    - https:\u002F\u002Fgitbrent.github.io\u002FPptxGenJS\u002F\n    - https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmarkitdown\n---\n\n# PPTX Generator & Editor\n\n## Overview\n\nThis skill handles all PowerPoint tasks: reading\u002Fanalyzing existing presentations, editing template-based decks via XML manipulation, and creating presentations from scratch using PptxGenJS. It includes a complete design system (color palettes, fonts, style recipes) and detailed guidance for every slide type.\n\n## Quick Reference\n\n| Task | Approach |\n|------|----------|\n| Read\u002Fanalyze content | `python -m markitdown presentation.pptx` |\n| Edit or create from template | See [Editing Presentations](references\u002Fediting.md) |\n| Create from scratch | See [Creating from Scratch](#creating-from-scratch-workflow) below |\n\n| Item | Value |\n|------|-------|\n| **Dimensions** | 10\" x 5.625\" (LAYOUT_16x9) |\n| **Colors** | 6-char hex without # (e.g., `\"FF0000\"`) |\n| **English font** | Arial (default), or approved alternatives |\n| **Chinese font** | Microsoft YaHei |\n| **Page badge position** | x: 9.3\", y: 5.1\" |\n| **Theme keys** | `primary`, `secondary`, `accent`, `light`, `bg` |\n| **Shapes** | RECTANGLE, OVAL, LINE, ROUNDED_RECTANGLE |\n| **Charts** | BAR, LINE, PIE, DOUGHNUT, SCATTER, BUBBLE, RADAR |\n\n## Reference Files\n\n| File | Contents |\n|------|----------|\n| [slide-types.md](references\u002Fslide-types.md) | 5 slide page types (Cover, TOC, Section Divider, Content, Summary) + additional layout patterns |\n| [design-system.md](references\u002Fdesign-system.md) | Color palettes, font reference, style recipes (Sharp\u002FSoft\u002FRounded\u002FPill), typography & spacing |\n| [editing.md](references\u002Fediting.md) | Template-based editing workflow, XML manipulation, formatting rules, common pitfalls |\n| [pitfalls.md](references\u002Fpitfalls.md) | QA process, common mistakes, critical PptxGenJS pitfalls |\n| [pptxgenjs.md](references\u002Fpptxgenjs.md) | Complete PptxGenJS API reference |\n\n---\n\n## Reading Content\n\n```bash\n# Text extraction\npython -m markitdown presentation.pptx\n```\n\n---\n\n## Creating from Scratch — Workflow\n\n**Use when no template or reference presentation is available.**\n\n### Step 1: Research & Requirements\n\nSearch to understand user requirements — topic, audience, purpose, tone, content depth.\n\n### Step 2: Select Color Palette & Fonts\n\nUse the [Color Palette Reference](references\u002Fdesign-system.md#color-palette-reference) to select a palette matching the topic and audience. Use the [Font Reference](references\u002Fdesign-system.md#font-reference) to choose a font pairing.\n\n### Step 3: Select Design Style\n\nUse the [Style Recipes](references\u002Fdesign-system.md#style-recipes) to choose a visual style (Sharp, Soft, Rounded, or Pill) matching the presentation tone.\n\n### Step 4: Plan Slide Outline\n\nClassify **every slide** as exactly one of the [5 page types](references\u002Fslide-types.md). Plan the content and layout for each slide. Ensure visual variety — do NOT repeat the same layout across slides.\n\n### Step 5: Generate Slide JS Files\n\nCreate one JS file per slide in `slides\u002F` directory. Each file must export a synchronous `createSlide(pres, theme)` function. Follow the [Slide Output Format](#slide-output-format) and the type-specific guidance in [slide-types.md](references\u002Fslide-types.md). Generate up to 5 slides concurrently using subagents if available.\n\n**Tell each subagent:**\n1. File naming: `slides\u002Fslide-01.js`, `slides\u002Fslide-02.js`, etc.\n2. Images go in: `slides\u002Fimgs\u002F`\n3. Final PPTX goes in: `slides\u002Foutput\u002F`\n4. Dimensions: 10\" x 5.625\" (LAYOUT_16x9)\n5. Fonts: Chinese = Microsoft YaHei, English = Arial (or approved alternative)\n6. Colors: 6-char hex without # (e.g. `\"FF0000\"`)\n7. Must use the theme object contract (see [Theme Object Contract](#theme-object-contract))\n8. Must follow the [PptxGenJS API reference](references\u002Fpptxgenjs.md)\n\n### Step 6: Compile into Final PPTX\n\nCreate `slides\u002Fcompile.js` to combine all slide modules:\n\n```javascript\n\u002F\u002F slides\u002Fcompile.js\nconst pptxgen = require('pptxgenjs');\nconst pres = new pptxgen();\npres.layout = 'LAYOUT_16x9';\n\nconst theme = {\n  primary: \"22223b\",    \u002F\u002F dark color for backgrounds\u002Ftext\n  secondary: \"4a4e69\",  \u002F\u002F secondary accent\n  accent: \"9a8c98\",     \u002F\u002F highlight color\n  light: \"c9ada7\",      \u002F\u002F light accent\n  bg: \"f2e9e4\"          \u002F\u002F background color\n};\n\nfor (let i = 1; i \u003C= 12; i++) {  \u002F\u002F adjust count as needed\n  const num = String(i).padStart(2, '0');\n  const slideModule = require(`.\u002Fslide-${num}.js`);\n  slideModule.createSlide(pres, theme);\n}\n\npres.writeFile({ fileName: '.\u002Foutput\u002Fpresentation.pptx' });\n```\n\nRun with: `cd slides && node compile.js`\n\n### Step 7: QA (Required)\n\nSee [QA Process](references\u002Fpitfalls.md#qa-process).\n\n### Output Structure\n\n```\nslides\u002F\n├── slide-01.js          # Slide modules\n├── slide-02.js\n├── ...\n├── imgs\u002F                # Images used in slides\n└── output\u002F              # Final artifacts\n    └── presentation.pptx\n```\n\n---\n\n## Slide Output Format\n\nEach slide is a **complete, runnable JS file**:\n\n```javascript\n\u002F\u002F slide-01.js\nconst pptxgen = require(\"pptxgenjs\");\n\nconst slideConfig = {\n  type: 'cover',\n  index: 1,\n  title: 'Presentation Title'\n};\n\n\u002F\u002F MUST be synchronous (not async)\nfunction createSlide(pres, theme) {\n  const slide = pres.addSlide();\n  slide.background = { color: theme.bg };\n\n  slide.addText(slideConfig.title, {\n    x: 0.5, y: 2, w: 9, h: 1.2,\n    fontSize: 48, fontFace: \"Arial\",\n    color: theme.primary, bold: true, align: \"center\"\n  });\n\n  return slide;\n}\n\n\u002F\u002F Standalone preview - use slide-specific filename\nif (require.main === module) {\n  const pres = new pptxgen();\n  pres.layout = 'LAYOUT_16x9';\n  const theme = {\n    primary: \"22223b\",\n    secondary: \"4a4e69\",\n    accent: \"9a8c98\",\n    light: \"c9ada7\",\n    bg: \"f2e9e4\"\n  };\n  createSlide(pres, theme);\n  pres.writeFile({ fileName: \"slide-01-preview.pptx\" });\n}\n\nmodule.exports = { createSlide, slideConfig };\n```\n\n---\n\n## Theme Object Contract (MANDATORY)\n\nThe compile script passes a theme object with these **exact keys**:\n\n| Key | Purpose | Example |\n|-----|---------|---------|\n| `theme.primary` | Darkest color, titles | `\"22223b\"` |\n| `theme.secondary` | Dark accent, body text | `\"4a4e69\"` |\n| `theme.accent` | Mid-tone accent | `\"9a8c98\"` |\n| `theme.light` | Light accent | `\"c9ada7\"` |\n| `theme.bg` | Background color | `\"f2e9e4\"` |\n\n**NEVER use other key names** like `background`, `text`, `muted`, `darkest`, `lightest`.\n\n---\n\n## Page Number Badge (REQUIRED)\n\nAll slides **except Cover Page** MUST include a page number badge in the bottom-right corner.\n\n- **Position**: x: 9.3\", y: 5.1\"\n- Show current number only (e.g. `3` or `03`), NOT \"3\u002F12\"\n- Use palette colors, keep subtle\n\n### Circle Badge (Default)\n\n```javascript\nslide.addShape(pres.shapes.OVAL, {\n  x: 9.3, y: 5.1, w: 0.4, h: 0.4,\n  fill: { color: theme.accent }\n});\nslide.addText(\"3\", {\n  x: 9.3, y: 5.1, w: 0.4, h: 0.4,\n  fontSize: 12, fontFace: \"Arial\",\n  color: \"FFFFFF\", bold: true,\n  align: \"center\", valign: \"middle\"\n});\n```\n\n### Pill Badge\n\n```javascript\nslide.addShape(pres.shapes.ROUNDED_RECTANGLE, {\n  x: 9.1, y: 5.15, w: 0.6, h: 0.35,\n  fill: { color: theme.accent },\n  rectRadius: 0.15\n});\nslide.addText(\"03\", {\n  x: 9.1, y: 5.15, w: 0.6, h: 0.35,\n  fontSize: 11, fontFace: \"Arial\",\n  color: \"FFFFFF\", bold: true,\n  align: \"center\", valign: \"middle\"\n});\n```\n\n---\n\n## Dependencies\n\n- `pip install \"markitdown[pptx]\"` — text extraction\n- `npm install -g pptxgenjs` — creating from scratch\n- `npm install -g react-icons react react-dom sharp` — icons (optional)\n","# PPTX Generator & Editor\n\n## Overview\n\nThis skill handles all PowerPoint tasks: reading\u002Fanalyzing existing presentations, editing template-based decks via XML manipulation, and creating presentations from scratch using PptxGenJS. It includes a complete design system (color palettes, fonts, style recipes) and detailed guidance for every slide type.\n\n## Quick Reference\n\n| Task | Approach |\n|------|----------|\n| Read\u002Fanalyze content | `python -m markitdown presentation.pptx` |\n| Edit or create from template | See [Editing Presentations](references\u002Fediting.md) |\n| Create from scratch | See [Creating from Scratch](#creating-from-scratch-workflow) below |\n\n| Item | Value |\n|------|-------|\n| **Dimensions** | 10\" x 5.625\" (LAYOUT_16x9) |\n| **Colors** | 6-char hex without # (e.g., `\"FF0000\"`) |\n| **English font** | Arial (default), or approved alternatives |\n| **Chinese font** | Microsoft YaHei |\n| **Page badge position** | x: 9.3\", y: 5.1\" |\n| **Theme keys** | `primary`, `secondary`, `accent`, `light`, `bg` |\n| **Shapes** | RECTANGLE, OVAL, LINE, ROUNDED_RECTANGLE |\n| **Charts** | BAR, LINE, PIE, DOUGHNUT, SCATTER, BUBBLE, RADAR |\n\n## Reference Files\n\n| File | Contents |\n|------|----------|\n| [slide-types.md](references\u002Fslide-types.md) | 5 slide page types (Cover, TOC, Section Divider, Content, Summary) + additional layout patterns |\n| [design-system.md](references\u002Fdesign-system.md) | Color palettes, font reference, style recipes (Sharp\u002FSoft\u002FRounded\u002FPill), typography & spacing |\n| [editing.md](references\u002Fediting.md) | Template-based editing workflow, XML manipulation, formatting rules, common pitfalls |\n| [pitfalls.md](references\u002Fpitfalls.md) | QA process, common mistakes, critical PptxGenJS pitfalls |\n| [pptxgenjs.md](references\u002Fpptxgenjs.md) | Complete PptxGenJS API reference |\n\n---\n\n## Reading Content\n\n```bash\n# Text extraction\npython -m markitdown presentation.pptx\n```\n\n---\n\n## Creating from Scratch — Workflow\n\n**Use when no template or reference presentation is available.**\n\n### Step 1: Research & Requirements\n\nSearch to understand user requirements — topic, audience, purpose, tone, content depth.\n\n### Step 2: Select Color Palette & Fonts\n\nUse the [Color Palette Reference](references\u002Fdesign-system.md#color-palette-reference) to select a palette matching the topic and audience. Use the [Font Reference](references\u002Fdesign-system.md#font-reference) to choose a font pairing.\n\n### Step 3: Select Design Style\n\nUse the [Style Recipes](references\u002Fdesign-system.md#style-recipes) to choose a visual style (Sharp, Soft, Rounded, or Pill) matching the presentation tone.\n\n### Step 4: Plan Slide Outline\n\nClassify **every slide** as exactly one of the [5 page types](references\u002Fslide-types.md). Plan the content and layout for each slide. Ensure visual variety — do NOT repeat the same layout across slides.\n\n### Step 5: Generate Slide JS Files\n\nCreate one JS file per slide in `slides\u002F` directory. Each file must export a synchronous `createSlide(pres, theme)` function. Follow the [Slide Output Format](#slide-output-format) and the type-specific guidance in [slide-types.md](references\u002Fslide-types.md). Generate up to 5 slides concurrently using subagents if available.\n\n**Tell each subagent:**\n1. File naming: `slides\u002Fslide-01.js`, `slides\u002Fslide-02.js`, etc.\n2. Images go in: `slides\u002Fimgs\u002F`\n3. Final PPTX goes in: `slides\u002Foutput\u002F`\n4. Dimensions: 10\" x 5.625\" (LAYOUT_16x9)\n5. Fonts: Chinese = Microsoft YaHei, English = Arial (or approved alternative)\n6. Colors: 6-char hex without # (e.g. `\"FF0000\"`)\n7. Must use the theme object contract (see [Theme Object Contract](#theme-object-contract))\n8. Must follow the [PptxGenJS API reference](references\u002Fpptxgenjs.md)\n\n### Step 6: Compile into Final PPTX\n\nCreate `slides\u002Fcompile.js` to combine all slide modules:\n\n```javascript\n\u002F\u002F slides\u002Fcompile.js\nconst pptxgen = require('pptxgenjs');\nconst pres = new pptxgen();\npres.layout = 'LAYOUT_16x9';\n\nconst theme = {\n  primary: \"22223b\",    \u002F\u002F dark color for backgrounds\u002Ftext\n  secondary: \"4a4e69\",  \u002F\u002F secondary accent\n  accent: \"9a8c98\",     \u002F\u002F highlight color\n  light: \"c9ada7\",      \u002F\u002F light accent\n  bg: \"f2e9e4\"          \u002F\u002F background color\n};\n\nfor (let i = 1; i \u003C= 12; i++) {  \u002F\u002F adjust count as needed\n  const num = String(i).padStart(2, '0');\n  const slideModule = require(`.\u002Fslide-${num}.js`);\n  slideModule.createSlide(pres, theme);\n}\n\npres.writeFile({ fileName: '.\u002Foutput\u002Fpresentation.pptx' });\n```\n\nRun with: `cd slides && node compile.js`\n\n### Step 7: QA (Required)\n\nSee [QA Process](references\u002Fpitfalls.md#qa-process).\n\n### Output Structure\n\n```\nslides\u002F\n├── slide-01.js          # Slide modules\n├── slide-02.js\n├── ...\n├── imgs\u002F                # Images used in slides\n└── output\u002F              # Final artifacts\n    └── presentation.pptx\n```\n\n---\n\n## Slide Output Format\n\nEach slide is a **complete, runnable JS file**:\n\n```javascript\n\u002F\u002F slide-01.js\nconst pptxgen = require(\"pptxgenjs\");\n\nconst slideConfig = {\n  type: 'cover',\n  index: 1,\n  title: 'Presentation Title'\n};\n\n\u002F\u002F MUST be synchronous (not async)\nfunction createSlide(pres, theme) {\n  const slide = pres.addSlide();\n  slide.background = { color: theme.bg };\n\n  slide.addText(slideConfig.title, {\n    x: 0.5, y: 2, w: 9, h: 1.2,\n    fontSize: 48, fontFace: \"Arial\",\n    color: theme.primary, bold: true, align: \"center\"\n  });\n\n  return slide;\n}\n\n\u002F\u002F Standalone preview - use slide-specific filename\nif (require.main === module) {\n  const pres = new pptxgen();\n  pres.layout = 'LAYOUT_16x9';\n  const theme = {\n    primary: \"22223b\",\n    secondary: \"4a4e69\",\n    accent: \"9a8c98\",\n    light: \"c9ada7\",\n    bg: \"f2e9e4\"\n  };\n  createSlide(pres, theme);\n  pres.writeFile({ fileName: \"slide-01-preview.pptx\" });\n}\n\nmodule.exports = { createSlide, slideConfig };\n```\n\n---\n\n## Theme Object Contract (MANDATORY)\n\nThe compile script passes a theme object with these **exact keys**:\n\n| Key | Purpose | Example |\n|-----|---------|---------|\n| `theme.primary` | Darkest color, titles | `\"22223b\"` |\n| `theme.secondary` | Dark accent, body text | `\"4a4e69\"` |\n| `theme.accent` | Mid-tone accent | `\"9a8c98\"` |\n| `theme.light` | Light accent | `\"c9ada7\"` |\n| `theme.bg` | Background color | `\"f2e9e4\"` |\n\n**NEVER use other key names** like `background`, `text`, `muted`, `darkest`, `lightest`.\n\n---\n\n## Page Number Badge (REQUIRED)\n\nAll slides **except Cover Page** MUST include a page number badge in the bottom-right corner.\n\n- **Position**: x: 9.3\", y: 5.1\"\n- Show current number only (e.g. `3` or `03`), NOT \"3\u002F12\"\n- Use palette colors, keep subtle\n\n### Circle Badge (Default)\n\n```javascript\nslide.addShape(pres.shapes.OVAL, {\n  x: 9.3, y: 5.1, w: 0.4, h: 0.4,\n  fill: { color: theme.accent }\n});\nslide.addText(\"3\", {\n  x: 9.3, y: 5.1, w: 0.4, h: 0.4,\n  fontSize: 12, fontFace: \"Arial\",\n  color: \"FFFFFF\", bold: true,\n  align: \"center\", valign: \"middle\"\n});\n```\n\n### Pill Badge\n\n```javascript\nslide.addShape(pres.shapes.ROUNDED_RECTANGLE, {\n  x: 9.1, y: 5.15, w: 0.6, h: 0.35,\n  fill: { color: theme.accent },\n  rectRadius: 0.15\n});\nslide.addText(\"03\", {\n  x: 9.1, y: 5.15, w: 0.6, h: 0.35,\n  fontSize: 11, fontFace: \"Arial\",\n  color: \"FFFFFF\", bold: true,\n  align: \"center\", valign: \"middle\"\n});\n```\n\n---\n\n## Dependencies\n\n- `pip install \"markitdown[pptx]\"` — text extraction\n- `npm install -g pptxgenjs` — creating from scratch\n- `npm install -g react-icons react react-dom sharp` — icons (optional)\n",{"name":5,"license":15,"metadata":54,"description":7},{"sources":55,"version":58,"category":59},[56,57],"https:\u002F\u002Fgitbrent.github.io\u002FPptxGenJS\u002F","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmarkitdown","1.0","productivity","claude\u002Finstall-gsd-build-foQdV","d86cd127f527124b5fd0fd0bc679a4d79b7d01d7",".agents\u002Fskills\u002Fpptx-generator","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik","https:\u002F\u002Fnorvik-orpin.vercel.app","https:\u002F\u002Fgithub.com\u002Fpattanation","2026-07-17 11:17:04",{"source":8,"skillName":5,"commands":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add pattanation\u002FNorvik --skill pptx-generator",{"tool":73,"command":74},"bunx","bunx skills add pattanation\u002FNorvik --skill pptx-generator",{"tool":76,"command":77},"pnpm","pnpm dlx skills add pattanation\u002FNorvik --skill pptx-generator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fpptx-generator\u002FSKILL.md",true,[81,87,91,95,99],{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fdesign-system.md","REFERENCE","参考文档",16159,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fpptx-generator\u002Freferences\u002Fdesign-system.md",{"path":88,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Fediting.md",6577,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fpptx-generator\u002Freferences\u002Fediting.md",{"path":92,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fpitfalls.md",3849,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fpptx-generator\u002Freferences\u002Fpitfalls.md",{"path":96,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fpptxgenjs.md",12752,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fpptx-generator\u002Freferences\u002Fpptxgenjs.md",{"path":100,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Fslide-types.md",15790,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fpptx-generator\u002Freferences\u002Fslide-types.md",[104,136,162,185,207,222],{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":108,"licenseFileUrl":109,"sourceHtmlUrl":110,"categories":111,"keywords":118,"publishedAt":49},"01M71QDV4DM8T19HEHWATEF1K4","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FSKILL.md",[112,115],{"categoryNo":113,"categoryName":114,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":116,"categoryName":117,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135],"webapp","testing","webapp testing","for","applications","local","frontend","debugging","toolkit","logs","browser","with","playwright","web","behavior","ui","screenshots",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":108,"licenseFileUrl":140,"sourceHtmlUrl":141,"categories":142,"keywords":144,"publishedAt":49},"01M71QDH2GGMXGA9105C9W1N7B","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fweb-artifacts-builder\u002FSKILL.md",[143],{"categoryNo":116,"categoryName":117,"taxonomyType":21,"taxonomyTypeDesc":22},[145,146,147,132,148,149,150,122,151,152,125,153,154,155,156,157,158,159,160,161],"builder","artifacts builder","artifacts","web artifacts builder","single-file","css","Tailwind","ui components","single","use","file","components","react","multi","state","routing","state management",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":166,"sourceHtmlUrl":167,"categories":168,"keywords":170,"publishedAt":49},"01M71QD9T2XC3EWMQNN9ACNWQ1","vueuse-functions","Apply VueUse composables where appropriate to build concise, maintainable Vue.js \u002F Nuxt features.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvueuse-functions\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvueuse-functions\u002FSKILL.md",[169],{"categoryNo":116,"categoryName":117,"taxonomyType":21,"taxonomyTypeDesc":22},[171,172,173,174,175,176,177,178,179,180,181,182,183,184],"functions","vueuse","vueuse functions","project","nuxt","apply","github","concise","build","https","features","vue","js","composables",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":189,"sourceHtmlUrl":190,"categories":191,"keywords":194,"publishedAt":49},"01M71QD51HWSGYMCMB7RW7PGK8","vue-testing-best-practices","Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002FSKILL.md",[192,193],{"categoryNo":113,"categoryName":114,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":116,"categoryName":117,"taxonomyType":21,"taxonomyTypeDesc":22},[195,120,196,182,197,131,198,199,200,177,201,122,202,203,204,154,205,183,206],"vue testing best practices","testing best practices","best practices","test","testing patterns","component","vitest","mocking","e2e","utils","patterns","e2e testing",{"skillNo":208,"name":209,"nameZh":6,"description":210,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":211,"sourceHtmlUrl":212,"categories":213,"keywords":215,"publishedAt":49},"01M71QD358H2DJ9THJRBP77T3T","vue-router-best-practices","Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002FSKILL.md",[214],{"categoryNo":116,"categoryName":117,"taxonomyType":21,"taxonomyTypeDesc":22},[216,182,217,197,218,200,219,177,205,220,221],"router","vue router best practices","route","guards","navigation","lifecycle",{"skillNo":223,"name":224,"nameZh":6,"description":225,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":226,"sourceHtmlUrl":227,"categories":228,"keywords":230,"publishedAt":49},"01M71QCYPNWDE2MQZ1TF3ED5S4","vue-best-practices","MUST be used for Vue.js tasks. Strongly recommends Composition API with `\u003Cscript setup>` and TypeScript as the standard approach. Covers Vue 3, SSR, Volar, vue-tsc. Load for any Vue, .vue files, Vue Router, Pinia, or Vite with Vue work. ALWAYS use Composition API unless the project explicitly requires Options API.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-best-practices\u002FSKILL.md",[229],{"categoryNo":116,"categoryName":117,"taxonomyType":21,"taxonomyTypeDesc":22},[231,182,197,232,174,233,234,235,216,236,237,238,239,240,241,122,242,154,243,244],"vue best practices","Composition","files","tasks","api","pinia","work","options","ssr","typescript","as","vite","load","standard"]