[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71GNP9M7Z44P9YN8FCDVSJQ":3,"skill-same:01M71GNP9M7Z44P9YN8FCDVSJQ":160},{"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":28,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":55,"install":56,"resources":69},"01M71GNP9M7Z44P9YN8FCDVSJQ","agentpreso",null,"Create professional presentations from markdown. Use when users want to create slides, decks, presentations, or pitch decks. Supports charts, diagrams, themes, and export to PDF\u002FPPTX.","JSGforever\u002Fskillguard","JSGforever","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F85541948?v=4","01M71FQD3E132VMR5F4TAYX3YS","01M71FQD4DYW0XJ4XQ4YQH75Y9",2,"GPL-3.0","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002FSKILL.md",[17,22,25],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":26,"categoryName":27,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",[5,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"diagrams","PDF","pptx","professional","Charts","themes","pitch","when","create","markdown","presentations","export","slides","use","users","2026-11-10 10:12:30",false,"---\nname: agentpreso\ndescription: Create professional presentations from markdown. Use when users want to create slides, decks, presentations, or pitch decks. Supports charts, diagrams, themes, and export to PDF\u002FPPTX.\n---\n\n# AgentPreso\n\nAI-native presentation platform. Create, edit, and render professional slide decks through natural conversation.\n\n## Getting Started\n\n### 1. Install the CLI\n\n```bash\ncurl -fsSL https:\u002F\u002Fagentpreso.com\u002Finstall.sh | sh\n```\n\nInstalls the `agentpreso` binary. Run `agentpreso update` later to get new versions.\n\n### 2. Create an account\n\nSign up at **https:\u002F\u002Fapp.agentpreso.com\u002Fregister**. An invite code is required during early access — run `agentpreso login` for details on how to request one.\n\n### 3. Authenticate\n\n```bash\nagentpreso login\n```\n\nPrompts for email and password, then saves an API key locally. Verify with `agentpreso whoami`.\n\n## Reading Strategy (for AI agents)\n\nRead this file first. Only read additional docs when needed:\n- Building a custom theme? → `docs\u002FDESIGN-GUIDE.md`, then the Custom Themes section below\n- Adding charts\u002Fdiagrams? → the Charts and Diagrams section below\n- Logo handling? → the Logos section below\n\nDon't front-load all references — read them just-in-time.\n\n## CLI Quick Reference\n\n```bash\n# Auth\nagentpreso login                          # Authenticate\nagentpreso whoami                         # Check current user\n\n# Themes\nagentpreso themes                         # List available themes\nagentpreso themes show \u003Cname>             # Show theme details\nagentpreso themes add \u003Cpath>              # Upload custom theme directory\nagentpreso themes update \u003Cname> theme.yaml  # Update theme from manifest\nagentpreso themes update \u003Cname> --css f.css # Update raw CSS only\nagentpreso themes delete \u003Cname>           # Delete custom theme\n\n# Decks — local-first workflow\nagentpreso new \u003Cfile> -t \u003Ctheme>          # Scaffold local markdown file\nagentpreso push [file]                    # Push local file to cloud (creates or updates)\nagentpreso pull \u003Cslug>                    # Download cloud deck to local file\nagentpreso list                           # List cloud decks\n\n# Rendering\nagentpreso render \u003Cfile> --format pdf     # Export to html, pdf, or pptx\nagentpreso render \u003Cfile> --var company=\"Acme\" --vars data.yaml\nagentpreso preview \u003Cfile> -s 1            # Preview slide as PNG (for verification)\nagentpreso serve \u003Cfile>                   # Live preview server with hot reload\n\n# Content generation\nagentpreso add-graphic \u003Cslug> \"prompt\"    # AI-generate image into deck\nagentpreso add-illustration \u003Cslug> --file drawing.yaml\nagentpreso render-chart chart.yaml        # Render chart YAML to SVG\nagentpreso render-diagram flow.mmd        # Render Mermaid to SVG\n\n# Assets\nagentpreso assets upload \u003Cfile>           # Upload image for use in slides\nagentpreso assets                         # List uploaded assets\n\n# Sharing\nagentpreso share \u003Cslug>                   # Generate public share link\nagentpreso share \u003Cslug> --private         # Revoke public access\n```\n\n## Workflow\n\nAgentPreso uses a **local-first** workflow: edit markdown files locally, push to cloud for rendering.\n\n1. **Start**: `agentpreso themes` — pick a theme that matches the tone\n2. **Create**: Write a `.md` file (see format below), or `agentpreso new deck.md -t corporate`\n3. **Push**: `agentpreso push deck.md` — uploads to cloud, prints a **dashboard link** (requires login)\n4. **Preview**: `agentpreso preview deck.md -s 1` — check each slide as PNG\n5. **Iterate**: Edit the local file, re-push, re-preview until satisfied\n6. **Deliver**: Always give the user the dashboard URL from `push` so they can view their slides\n7. **Export**: `agentpreso render deck.md --format pdf` — check response for `warnings`\n8. **Share** (optional, requires consent): Only if the user explicitly asks for a public link, run `agentpreso share deck-slug`. **You MUST ask the user for confirmation before sharing** — this creates a public URL accessible to anyone without authentication.\n\nFor cloud-only editing (no local file), use `agentpreso pull \u003Cslug>` to fetch, edit, then `agentpreso push`.\n\n### Previewing Slides\n\nUse `agentpreso preview \u003Cfile> -s \u003Cn>` to render a single slide as PNG.\nTo review multiple slides, run preview for each slide index sequentially.\nAlways preview after push to verify charts, diagrams, and images rendered correctly.\nIf the preview shows a red error block, the chart\u002Fdiagram has a syntax error — fix before continuing.\n\n### Sharing\n\n**WARNING: `agentpreso share` creates a PUBLIC link accessible to anyone without authentication. Never run this command without explicit user consent.** The presentation may contain confidential information.\n\nTo generate a share link (only after the user confirms they want a public link):\n\n```bash\nagentpreso share \u003Cdeck-slug>\n```\n\nTo revoke public access:\n\n```bash\nagentpreso share \u003Cdeck-slug> --private\n```\n\n### Render Warnings\n\nAfter rendering, check the response for `warnings`. If any chart, diagram, or image errors\noccurred, they appear in the warnings array. Fix all warnings before sharing — they indicate\nbroken content in the rendered output.\n\n## Markdown Format\n\nStandard markdown. Slides separated by `---`. Deck-level frontmatter sets theme and options. Per-slide frontmatter sets layout and directives:\n\n```markdown\n---\ntheme: corporate\npaginate: true\n---\n\n# Title Slide\n\n---\nlayout: bullets\n---\n\n## Content Slide\n\n- Bullet points work naturally\n\n---\nlayout: quote\n---\n\n> \"Styled blockquote\"\n>\n> — Attribution\n```\n\n### Per-Slide Frontmatter\n\nEach slide can have its own YAML frontmatter block (Slidev-style). The `layout` key maps to the slide's CSS class:\n\n```markdown\n---\nlayout: bullets\n---\n\n## My Bullets\n- Point A\n- Point B\n```\n\nSupported per-slide keys: `layout`, `class`, `transition`, `backgroundColor`, `backgroundImage`, `fragments`, `fragmentType`, `paginate`, `header`, `footer`, `color`, `style`.\n\nThe `layout` key is the primary way to set a slide's layout. Alternative: `\u003C!-- _class: layout-name -->` (HTML comment syntax, still supported).\n\n### Named Slots\n\nFor multi-column and container layouts, use `::name::` syntax to route content into named slots:\n\n```markdown\n---\nlayout: two-col\n---\n\n## Comparison\n\n::left::\n### Option A\n- First benefit\n\n::right::\n### Option B\n- Different benefit\n```\n\nAvailable slot names: `left`, `right`, `center`, `col`, `column`, `stat`. The `:::name ... :::` container syntax is also supported as an alternative.\n\n### Pagination directives\n\n| Directive | Effect |\n|-----------|--------|\n| `\u003C!-- _paginate: false -->` | Hide page number |\n| `\u003C!-- _paginate: skip -->` | Hide and don't count (use on title) |\n| `\u003C!-- _paginate: hold -->` | Same number as previous slide |\n\nThese can also be set via per-slide frontmatter: `paginate: false`, `paginate: skip`, `paginate: hold`.\n\n### Slide Layouts\n\nApply with per-slide frontmatter `layout: layout-name` (preferred) or `\u003C!-- _class: layout-name -->`:\n\n**Opening & Closing**\n\n| Layout | Use For |\n|--------|---------|\n| `title-hero` | Opening title slide |\n| `chapter` | Section dividers |\n| `full-bleed-title` | Title over full-bleed background image |\n| `title-img` | Title slide with side image |\n| `quote-hero` | Bold quote as opening\u002Fclosing statement |\n| `summary` | Key takeaways with checkmarks |\n| `cta` | Call-to-action closing slide |\n\n**Content**\n\n| Layout | Use For |\n|--------|---------|\n| `bullets` | Standard bullet lists |\n| `steps` | Numbered sequences |\n| `focus` | Single key message, centered |\n| `definition` | Term\u002Fdefinition pairs |\n| `agenda` | Meeting or talk agenda |\n| `cards` | Card grid for features or concepts |\n| `custom` | Blank canvas for agent-authored HTML with component classes |\n\n**Media**\n\n| Layout | Use For |\n|--------|---------|\n| `img-right` \u002F `img-left` | Text + image split |\n| `img-center` | Centered image with caption |\n| `img-top` | Image above text content |\n| `full-bleed` | Full-screen background image |\n| `gallery` | Multi-image grid |\n| `figure` | Wide visual (diagram\u002Fchart\u002Fimage) with brief text |\n\n**Data**\n\n| Layout | Use For |\n|--------|---------|\n| `stats-grid` | 2x2 metric display |\n| `stats-row` | Horizontal row of metrics |\n| `big-number` | Single hero statistic |\n| `timeline` | Horizontal sequence of events |\n\n**Comparison**\n\n| Layout | Use For |\n|--------|---------|\n| `two-col` | Side-by-side content |\n| `two-col-wide-right` | Two columns, right side wider |\n| `three-col` | Three equal columns |\n| `before-after` | Before\u002Fafter comparison |\n| `pros-cons` | Pros and cons with icons |\n| `matrix` | 2x2 grid of categories |\n\n### Dark Mode Per-Slide\n\nAdd `invert` to flip any slide to dark palette. Combine with layouts:\n\n```markdown\n---\nlayout: invert title-hero\n---\n\n# Dark Opening Slide\n```\n\nAlternative syntax: `\u003C!-- _class: invert title-hero -->`\n\nCharts, diagrams, and images auto-adapt to dark background.\n\n### Images\n\nUpload first, then reference by asset URI:\n\n```markdown\n![Description](asset:\u002F\u002Fasset_abc123)\n```\n\n### Logos\n\nUse an existing logo file (SVG or PNG). Download it first if needed:\n\n```bash\ncurl -o logo.png \"https:\u002F\u002Fexample.com\u002Flogo.png\"\nagentpreso assets upload logo.png\n```\n\nThen reference via asset URI in slides, or attach to a theme:\n\n```bash\nagentpreso themes add .\u002Fmy-theme\u002F --logo logo.svg\n```\n\nDo NOT attempt to reconstruct logos from HTML\u002FCSS\u002FJS extraction — use intact image files.\n\n### Charts and Diagrams\n\n````markdown\n```chart\ntype: bar\ndata:\n  labels: [Q1, Q2, Q3, Q4]\n  datasets:\n    - label: Revenue\n      data: [10, 15, 12, 18]\n```\n````\n\n````markdown\n```mermaid\ngraph LR\n    A[Start] --> B[Process] --> C[End]\n```\n````\n\n### Template Variables\n\nDefine defaults in frontmatter, override at render time:\n\n```markdown\n---\nagentpreso:\n  theme: corporate\n  vars:\n    company: \"Acme Corp\"\n    deal_size: \"$500K\"\n---\n\n# Proposal for {{company}}\nDeal size: {{deal_size}}\n```\n\nOverride: `agentpreso render deck.md --var company=\"Contoso\" --var deal_size=\"$1.2M\"`\n\nOr from a file: `agentpreso render deck.md --vars overrides.yaml`\n\n## Slide Design Principles\n\n- **Every slide needs visual structure** — use layouts, bold hierarchy, tables, callouts,\n  and stats. Charts and images are powerful but not required on every slide.\n- **One topic per slide** — but density is OK. A table + callouts + stats serving one topic\n  is better than 3 sparse slides.\n- **Match density to purpose** — board decks and data analysis should be information-dense.\n  Keynotes and narratives should breathe. There's no single right density.\n- **Create visual rhythm** — vary layouts, alternate dense and simple slides, mix data\n  with narrative. Don't repeat the same layout three times in a row.\n- **Bold text is your main tool** — `**bold**` renders in heading color in bullets, tables,\n  and stats. Use it to create visual anchors that guide the eye.\n- **Preview before done** — always check with `agentpreso preview` before declaring finished.\n\n### Writing Beautiful Markdown\n\nThe CSS does heavy lifting — but only if you write markdown that gives it something\nto work with. These patterns produce noticeably better slides:\n\n**Bullet lists with bold titles:**\nLead each item with a bold phrase. The CSS renders the bold text in heading color, creating visual anchors:\n\n```markdown\n- **Revenue grew 42%** — driven by enterprise expansion and seat upgrades\n- **Net retention hit 130%** — expansion outpacing churn 6:1\n- **Gross margin at 94%** — infrastructure migration cut per-query cost 44%\n```\n\n**Nested bullets as descriptions:**\nSub-items render smaller in secondary color — like a title + description pattern:\n\n```markdown\n- **Revenue grew 42%**\n  - Driven by enterprise expansion and seat upgrades across all segments\n- **Net retention hit 130%**\n  - Expansion outpacing churn 6:1, with enterprise NRR at 145%\n```\n\n**Tables with bold emphasis:**\nBold cells get heading color automatically. Use bold for the numbers you want to stand out:\n\n```markdown\n| Metric     | Q3      | Q4        | Change       |\n|------------|---------|-----------|--------------|\n| ARR        | $6.8M   | **$10.2M**| **+50%**     |\n| Customers  | 380     | **528**   | **+39%**     |\n```\n\n**Blockquote callouts:**\nUse blockquotes for contextual annotations. Lead with a bold title line:\n\n```markdown\n> **Revenue on track**\n> Q4 exceeded forecast by 12%, driven by enterprise expansion.\n```\n\n**Stats with bold values:**\nIn `stats-grid` and `stats-row` layouts, bold text becomes the hero number:\n\n```markdown\nRevenue\n**$10.2M**\n```\n\n### Data-Dense Slides\n\nFor board decks, financial reports, and analytical presentations, single-topic slides\nwith multiple components create the most professional output. Use `two-col` or\n`three-col` layouts to combine:\n\n- A **table** in one column showing the data\n- **Callouts** in the other column providing context and interpretation\n- **Stat boxes** summarizing key numbers\n\nExample structure:\n\n```markdown\n---\nlayout: two-col\n---\n## Revenue by Segment\n\n::left::\n| Segment | ARR | Growth |\n|---------|-----|--------|\n| Enterprise | **$5.8M** | **+68%** |\n| Mid-Market | $2.9M | +41% |\n| SMB | $1.5M | +12% |\n\n::right::\n> **Enterprise is the growth engine**\n> Average ACV doubled from $119K to $200K.\n\n> **SMB churn needs attention**\n> 4.2% quarterly — 16% annualized.\n```\n\nThis produces a slide with a clean data table on the left and interpretive\ncallouts on the right — far more useful than splitting this across 3 slides.\n\n### Custom HTML Slides\n\nFor layouts not covered by built-in options, use `layout: custom` with raw HTML.\nThe slide inherits theme variables but imposes no structural CSS.\n\n**Prefer component classes over inline styles.** The base CSS includes pre-styled\ncomponents that work across all themes:\n\n| Class | What it renders |\n|-------|----------------|\n| `.callout` + `.callout-success` \u002F `-warning` \u002F `-danger` \u002F `-info` \u002F `-primary` | Colored annotation box with title + body |\n| `.stat-box` + `.stat-box-success` \u002F `-warning` \u002F `-danger` \u002F `-info` \u002F `-primary` | Bordered metric box with value + label |\n| `.stat-box-value`, `.stat-box-label`, `.stat-box-detail` | Stat box inner elements |\n| `.card` + `.card-title` | Container that can wrap tables, stats, callouts |\n| `.bar-row` + `.bar-label` \u002F `.bar-track` \u002F `.bar-fill` \u002F `.bar-value` | CSS-only horizontal bar chart |\n| `.bar-fill-success` \u002F `-warning` \u002F `-danger` \u002F `-info` | Bar fill color variants |\n| `.summary-grid` + `.summary-item` \u002F `.summary-total` | Row of big numbers with optional total |\n| `.summary-item-value`, `.summary-item-label` | Summary grid inner elements |\n| `.quadrant-grid` + `.quadrant` + `.quadrant-title` | 2x2 colored matrix |\n| `.quadrant-success` \u002F `-warning` \u002F `-danger` \u002F `-info` | Quadrant background variants |\n| `.action-badge` + `.action-num` \u002F `.action-text` \u002F `.action-impact` | Numbered action items |\n\n**Authoring priority:**\n1. Standard markdown with a named layout (best — simplest, most portable)\n2. `layout: custom` with component classes (good — structured, theme-aware)\n3. `layout: custom` with inline styles and theme variables (acceptable — one-off designs)\n4. `\u003Cstyle>` or `\u003Cscript>` blocks (forbidden — stripped at render time)\n\n**Semantic colors** available in all components and via inline styles:\n`var(--color-success)`, `var(--color-warning)`, `var(--color-danger)`, `var(--color-info)`\n— plus `-light` variants for backgrounds.\n\nExample custom slide with components:\n\n```html\n---\nlayout: custom\n---\n\n\u003Cdiv style=\"display: grid; grid-template-columns: 3fr 2fr; gap: 2rem; height: 100%;\">\n  \u003Cdiv class=\"card\">\n    \u003Cdiv class=\"card-title\">Revenue by Segment\u003C\u002Fdiv>\n    \u003C!-- markdown table or HTML table here -->\n  \u003C\u002Fdiv>\n  \u003Cdiv>\n    \u003Cdiv class=\"callout callout-success\">\n      \u003Ch5>Enterprise is the engine\u003C\u002Fh5>\n      \u003Cp>ACV doubled to $200K. Net retention at 145%.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"callout callout-warning\" style=\"margin-top: 1rem;\">\n      \u003Ch5>SMB churn rising\u003C\u002Fh5>\n      \u003Cp>4.2% quarterly churn — needs the Growth tier.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n```\n\n### Diagrams and Charts — Layout Rules\n\n**Be cautious mixing long lists with large visuals.** If a chart or diagram shares a slide with bullets, keep the list short (3-4 items max) and use `two-col` or `figure` layout to give each element room. The renderer will warn if content overflows.\n\n| Visual scenario | Layout to use | Why |\n|----------------|---------------|-----|\n| Wide diagram + brief context | `figure` | Full-width visual with heading + 1-2 line description |\n| Diagram alongside bullets | `two-col` | Visual in one column, bullets in the other |\n| Full-width chart, minimal text | `figure` or no class | Heading + chart block fills the slide |\n| Chart with detailed breakdown | `two-col` | Chart in one column, bullet legend in the other |\n\nFor detailed theme design guidance (color palettes, typography, CSS variables, logo placement), see [docs\u002FDESIGN-GUIDE.md](.\u002Fdocs\u002FDESIGN-GUIDE.md).\n\n## Built-in Themes\n\n| Theme | Style | Best For |\n|-------|-------|----------|\n| `agentpreso` | Modern | Navy warmth, tangerine accents — the default brand theme |\n| `ink` | Editorial | Serif typography, newspaper red — reports, longform |\n| `neon` | Cyberpunk | Cyan glow on near-black — product launches, tech keynotes |\n| `terminal` | Retro | Green phosphor CRT — developer content, CLIs |\n| `chalk` | Educational | Handwriting headings, teal — workshops, tutorials |\n| `blueprint` | Technical | Grid overlay, engineering precision — architecture, specs |\n| `ember` | Cinematic | Warm amber on dark — storytelling, brand narratives |\n| `glacier` | Analytical | Cool blues, data-focused — dashboards, analytics |\n| `botanica` | Organic | Forest green, gold serif — sustainability, luxury |\n| `maison` | Luxury | Matte gold, minimalist — high-end proposals, fashion |\n\n### Custom Themes\n\nCreate a directory with `theme.yaml` (required), optional `overrides.css` and `scaffold.md`, then:\n\n> **Font limitation:** Only web-safe and Google Fonts render correctly. Proprietary fonts\n> (e.g., CiscoSans, BrandFont) will fall back to system fonts. Use close alternatives:\n> Inter, DM Sans, Source Sans Pro, etc.\n\n#### Theme Customization Strategy\n\nUse `theme.yaml` manifest options (colors, fonts, imagery) for all standard customization.\nDo NOT create `overrides.css` unless the user explicitly requests styling that cannot be\nachieved through `theme.yaml` parameters. The manifest covers colors, fonts, spacing,\nimagery guidance, and layout preferences — `overrides.css` is a last-resort escape hatch,\nnot a default tool.\n\nUsage:\n\n```bash\nagentpreso themes add .\u002Fmy-theme\u002F\nagentpreso themes add .\u002Fmy-theme\u002F --logo logo.svg --logo-position bottom-right --logo-size small\n```\n\nTo update an existing theme, point to the theme.yaml file directly:\n\n```bash\nagentpreso themes update my-brand .\u002Fmy-theme\u002Ftheme.yaml\n```\n\nThis re-assembles CSS from the manifest, auto-discovers `overrides.css` and logo files from the same directory, and updates the theme in-place (preserving logo asset IDs when logos haven't changed).\n","# AgentPreso\n\nAI-native presentation platform. Create, edit, and render professional slide decks through natural conversation.\n\n## Getting Started\n\n### 1. Install the CLI\n\n```bash\ncurl -fsSL https:\u002F\u002Fagentpreso.com\u002Finstall.sh | sh\n```\n\nInstalls the `agentpreso` binary. Run `agentpreso update` later to get new versions.\n\n### 2. Create an account\n\nSign up at **https:\u002F\u002Fapp.agentpreso.com\u002Fregister**. An invite code is required during early access — run `agentpreso login` for details on how to request one.\n\n### 3. Authenticate\n\n```bash\nagentpreso login\n```\n\nPrompts for email and password, then saves an API key locally. Verify with `agentpreso whoami`.\n\n## Reading Strategy (for AI agents)\n\nRead this file first. Only read additional docs when needed:\n- Building a custom theme? → `docs\u002FDESIGN-GUIDE.md`, then the Custom Themes section below\n- Adding charts\u002Fdiagrams? → the Charts and Diagrams section below\n- Logo handling? → the Logos section below\n\nDon't front-load all references — read them just-in-time.\n\n## CLI Quick Reference\n\n```bash\n# Auth\nagentpreso login                          # Authenticate\nagentpreso whoami                         # Check current user\n\n# Themes\nagentpreso themes                         # List available themes\nagentpreso themes show \u003Cname>             # Show theme details\nagentpreso themes add \u003Cpath>              # Upload custom theme directory\nagentpreso themes update \u003Cname> theme.yaml  # Update theme from manifest\nagentpreso themes update \u003Cname> --css f.css # Update raw CSS only\nagentpreso themes delete \u003Cname>           # Delete custom theme\n\n# Decks — local-first workflow\nagentpreso new \u003Cfile> -t \u003Ctheme>          # Scaffold local markdown file\nagentpreso push [file]                    # Push local file to cloud (creates or updates)\nagentpreso pull \u003Cslug>                    # Download cloud deck to local file\nagentpreso list                           # List cloud decks\n\n# Rendering\nagentpreso render \u003Cfile> --format pdf     # Export to html, pdf, or pptx\nagentpreso render \u003Cfile> --var company=\"Acme\" --vars data.yaml\nagentpreso preview \u003Cfile> -s 1            # Preview slide as PNG (for verification)\nagentpreso serve \u003Cfile>                   # Live preview server with hot reload\n\n# Content generation\nagentpreso add-graphic \u003Cslug> \"prompt\"    # AI-generate image into deck\nagentpreso add-illustration \u003Cslug> --file drawing.yaml\nagentpreso render-chart chart.yaml        # Render chart YAML to SVG\nagentpreso render-diagram flow.mmd        # Render Mermaid to SVG\n\n# Assets\nagentpreso assets upload \u003Cfile>           # Upload image for use in slides\nagentpreso assets                         # List uploaded assets\n\n# Sharing\nagentpreso share \u003Cslug>                   # Generate public share link\nagentpreso share \u003Cslug> --private         # Revoke public access\n```\n\n## Workflow\n\nAgentPreso uses a **local-first** workflow: edit markdown files locally, push to cloud for rendering.\n\n1. **Start**: `agentpreso themes` — pick a theme that matches the tone\n2. **Create**: Write a `.md` file (see format below), or `agentpreso new deck.md -t corporate`\n3. **Push**: `agentpreso push deck.md` — uploads to cloud, prints a **dashboard link** (requires login)\n4. **Preview**: `agentpreso preview deck.md -s 1` — check each slide as PNG\n5. **Iterate**: Edit the local file, re-push, re-preview until satisfied\n6. **Deliver**: Always give the user the dashboard URL from `push` so they can view their slides\n7. **Export**: `agentpreso render deck.md --format pdf` — check response for `warnings`\n8. **Share** (optional, requires consent): Only if the user explicitly asks for a public link, run `agentpreso share deck-slug`. **You MUST ask the user for confirmation before sharing** — this creates a public URL accessible to anyone without authentication.\n\nFor cloud-only editing (no local file), use `agentpreso pull \u003Cslug>` to fetch, edit, then `agentpreso push`.\n\n### Previewing Slides\n\nUse `agentpreso preview \u003Cfile> -s \u003Cn>` to render a single slide as PNG.\nTo review multiple slides, run preview for each slide index sequentially.\nAlways preview after push to verify charts, diagrams, and images rendered correctly.\nIf the preview shows a red error block, the chart\u002Fdiagram has a syntax error — fix before continuing.\n\n### Sharing\n\n**WARNING: `agentpreso share` creates a PUBLIC link accessible to anyone without authentication. Never run this command without explicit user consent.** The presentation may contain confidential information.\n\nTo generate a share link (only after the user confirms they want a public link):\n\n```bash\nagentpreso share \u003Cdeck-slug>\n```\n\nTo revoke public access:\n\n```bash\nagentpreso share \u003Cdeck-slug> --private\n```\n\n### Render Warnings\n\nAfter rendering, check the response for `warnings`. If any chart, diagram, or image errors\noccurred, they appear in the warnings array. Fix all warnings before sharing — they indicate\nbroken content in the rendered output.\n\n## Markdown Format\n\nStandard markdown. Slides separated by `---`. Deck-level frontmatter sets theme and options. Per-slide frontmatter sets layout and directives:\n\n```markdown\n---\ntheme: corporate\npaginate: true\n---\n\n# Title Slide\n\n---\nlayout: bullets\n---\n\n## Content Slide\n\n- Bullet points work naturally\n\n---\nlayout: quote\n---\n\n> \"Styled blockquote\"\n>\n> — Attribution\n```\n\n### Per-Slide Frontmatter\n\nEach slide can have its own YAML frontmatter block (Slidev-style). The `layout` key maps to the slide's CSS class:\n\n```markdown\n---\nlayout: bullets\n---\n\n## My Bullets\n- Point A\n- Point B\n```\n\nSupported per-slide keys: `layout`, `class`, `transition`, `backgroundColor`, `backgroundImage`, `fragments`, `fragmentType`, `paginate`, `header`, `footer`, `color`, `style`.\n\nThe `layout` key is the primary way to set a slide's layout. Alternative: `\u003C!-- _class: layout-name -->` (HTML comment syntax, still supported).\n\n### Named Slots\n\nFor multi-column and container layouts, use `::name::` syntax to route content into named slots:\n\n```markdown\n---\nlayout: two-col\n---\n\n## Comparison\n\n::left::\n### Option A\n- First benefit\n\n::right::\n### Option B\n- Different benefit\n```\n\nAvailable slot names: `left`, `right`, `center`, `col`, `column`, `stat`. The `:::name ... :::` container syntax is also supported as an alternative.\n\n### Pagination directives\n\n| Directive | Effect |\n|-----------|--------|\n| `\u003C!-- _paginate: false -->` | Hide page number |\n| `\u003C!-- _paginate: skip -->` | Hide and don't count (use on title) |\n| `\u003C!-- _paginate: hold -->` | Same number as previous slide |\n\nThese can also be set via per-slide frontmatter: `paginate: false`, `paginate: skip`, `paginate: hold`.\n\n### Slide Layouts\n\nApply with per-slide frontmatter `layout: layout-name` (preferred) or `\u003C!-- _class: layout-name -->`:\n\n**Opening & Closing**\n\n| Layout | Use For |\n|--------|---------|\n| `title-hero` | Opening title slide |\n| `chapter` | Section dividers |\n| `full-bleed-title` | Title over full-bleed background image |\n| `title-img` | Title slide with side image |\n| `quote-hero` | Bold quote as opening\u002Fclosing statement |\n| `summary` | Key takeaways with checkmarks |\n| `cta` | Call-to-action closing slide |\n\n**Content**\n\n| Layout | Use For |\n|--------|---------|\n| `bullets` | Standard bullet lists |\n| `steps` | Numbered sequences |\n| `focus` | Single key message, centered |\n| `definition` | Term\u002Fdefinition pairs |\n| `agenda` | Meeting or talk agenda |\n| `cards` | Card grid for features or concepts |\n| `custom` | Blank canvas for agent-authored HTML with component classes |\n\n**Media**\n\n| Layout | Use For |\n|--------|---------|\n| `img-right` \u002F `img-left` | Text + image split |\n| `img-center` | Centered image with caption |\n| `img-top` | Image above text content |\n| `full-bleed` | Full-screen background image |\n| `gallery` | Multi-image grid |\n| `figure` | Wide visual (diagram\u002Fchart\u002Fimage) with brief text |\n\n**Data**\n\n| Layout | Use For |\n|--------|---------|\n| `stats-grid` | 2x2 metric display |\n| `stats-row` | Horizontal row of metrics |\n| `big-number` | Single hero statistic |\n| `timeline` | Horizontal sequence of events |\n\n**Comparison**\n\n| Layout | Use For |\n|--------|---------|\n| `two-col` | Side-by-side content |\n| `two-col-wide-right` | Two columns, right side wider |\n| `three-col` | Three equal columns |\n| `before-after` | Before\u002Fafter comparison |\n| `pros-cons` | Pros and cons with icons |\n| `matrix` | 2x2 grid of categories |\n\n### Dark Mode Per-Slide\n\nAdd `invert` to flip any slide to dark palette. Combine with layouts:\n\n```markdown\n---\nlayout: invert title-hero\n---\n\n# Dark Opening Slide\n```\n\nAlternative syntax: `\u003C!-- _class: invert title-hero -->`\n\nCharts, diagrams, and images auto-adapt to dark background.\n\n### Images\n\nUpload first, then reference by asset URI:\n\n```markdown\n![Description](asset:\u002F\u002Fasset_abc123)\n```\n\n### Logos\n\nUse an existing logo file (SVG or PNG). Download it first if needed:\n\n```bash\ncurl -o logo.png \"https:\u002F\u002Fexample.com\u002Flogo.png\"\nagentpreso assets upload logo.png\n```\n\nThen reference via asset URI in slides, or attach to a theme:\n\n```bash\nagentpreso themes add .\u002Fmy-theme\u002F --logo logo.svg\n```\n\nDo NOT attempt to reconstruct logos from HTML\u002FCSS\u002FJS extraction — use intact image files.\n\n### Charts and Diagrams\n\n````markdown\n```chart\ntype: bar\ndata:\n  labels: [Q1, Q2, Q3, Q4]\n  datasets:\n    - label: Revenue\n      data: [10, 15, 12, 18]\n```\n````\n\n````markdown\n```mermaid\ngraph LR\n    A[Start] --> B[Process] --> C[End]\n```\n````\n\n### Template Variables\n\nDefine defaults in frontmatter, override at render time:\n\n```markdown\n---\nagentpreso:\n  theme: corporate\n  vars:\n    company: \"Acme Corp\"\n    deal_size: \"$500K\"\n---\n\n# Proposal for {{company}}\nDeal size: {{deal_size}}\n```\n\nOverride: `agentpreso render deck.md --var company=\"Contoso\" --var deal_size=\"$1.2M\"`\n\nOr from a file: `agentpreso render deck.md --vars overrides.yaml`\n\n## Slide Design Principles\n\n- **Every slide needs visual structure** — use layouts, bold hierarchy, tables, callouts,\n  and stats. Charts and images are powerful but not required on every slide.\n- **One topic per slide** — but density is OK. A table + callouts + stats serving one topic\n  is better than 3 sparse slides.\n- **Match density to purpose** — board decks and data analysis should be information-dense.\n  Keynotes and narratives should breathe. There's no single right density.\n- **Create visual rhythm** — vary layouts, alternate dense and simple slides, mix data\n  with narrative. Don't repeat the same layout three times in a row.\n- **Bold text is your main tool** — `**bold**` renders in heading color in bullets, tables,\n  and stats. Use it to create visual anchors that guide the eye.\n- **Preview before done** — always check with `agentpreso preview` before declaring finished.\n\n### Writing Beautiful Markdown\n\nThe CSS does heavy lifting — but only if you write markdown that gives it something\nto work with. These patterns produce noticeably better slides:\n\n**Bullet lists with bold titles:**\nLead each item with a bold phrase. The CSS renders the bold text in heading color, creating visual anchors:\n\n```markdown\n- **Revenue grew 42%** — driven by enterprise expansion and seat upgrades\n- **Net retention hit 130%** — expansion outpacing churn 6:1\n- **Gross margin at 94%** — infrastructure migration cut per-query cost 44%\n```\n\n**Nested bullets as descriptions:**\nSub-items render smaller in secondary color — like a title + description pattern:\n\n```markdown\n- **Revenue grew 42%**\n  - Driven by enterprise expansion and seat upgrades across all segments\n- **Net retention hit 130%**\n  - Expansion outpacing churn 6:1, with enterprise NRR at 145%\n```\n\n**Tables with bold emphasis:**\nBold cells get heading color automatically. Use bold for the numbers you want to stand out:\n\n```markdown\n| Metric     | Q3      | Q4        | Change       |\n|------------|---------|-----------|--------------|\n| ARR        | $6.8M   | **$10.2M**| **+50%**     |\n| Customers  | 380     | **528**   | **+39%**     |\n```\n\n**Blockquote callouts:**\nUse blockquotes for contextual annotations. Lead with a bold title line:\n\n```markdown\n> **Revenue on track**\n> Q4 exceeded forecast by 12%, driven by enterprise expansion.\n```\n\n**Stats with bold values:**\nIn `stats-grid` and `stats-row` layouts, bold text becomes the hero number:\n\n```markdown\nRevenue\n**$10.2M**\n```\n\n### Data-Dense Slides\n\nFor board decks, financial reports, and analytical presentations, single-topic slides\nwith multiple components create the most professional output. Use `two-col` or\n`three-col` layouts to combine:\n\n- A **table** in one column showing the data\n- **Callouts** in the other column providing context and interpretation\n- **Stat boxes** summarizing key numbers\n\nExample structure:\n\n```markdown\n---\nlayout: two-col\n---\n## Revenue by Segment\n\n::left::\n| Segment | ARR | Growth |\n|---------|-----|--------|\n| Enterprise | **$5.8M** | **+68%** |\n| Mid-Market | $2.9M | +41% |\n| SMB | $1.5M | +12% |\n\n::right::\n> **Enterprise is the growth engine**\n> Average ACV doubled from $119K to $200K.\n\n> **SMB churn needs attention**\n> 4.2% quarterly — 16% annualized.\n```\n\nThis produces a slide with a clean data table on the left and interpretive\ncallouts on the right — far more useful than splitting this across 3 slides.\n\n### Custom HTML Slides\n\nFor layouts not covered by built-in options, use `layout: custom` with raw HTML.\nThe slide inherits theme variables but imposes no structural CSS.\n\n**Prefer component classes over inline styles.** The base CSS includes pre-styled\ncomponents that work across all themes:\n\n| Class | What it renders |\n|-------|----------------|\n| `.callout` + `.callout-success` \u002F `-warning` \u002F `-danger` \u002F `-info` \u002F `-primary` | Colored annotation box with title + body |\n| `.stat-box` + `.stat-box-success` \u002F `-warning` \u002F `-danger` \u002F `-info` \u002F `-primary` | Bordered metric box with value + label |\n| `.stat-box-value`, `.stat-box-label`, `.stat-box-detail` | Stat box inner elements |\n| `.card` + `.card-title` | Container that can wrap tables, stats, callouts |\n| `.bar-row` + `.bar-label` \u002F `.bar-track` \u002F `.bar-fill` \u002F `.bar-value` | CSS-only horizontal bar chart |\n| `.bar-fill-success` \u002F `-warning` \u002F `-danger` \u002F `-info` | Bar fill color variants |\n| `.summary-grid` + `.summary-item` \u002F `.summary-total` | Row of big numbers with optional total |\n| `.summary-item-value`, `.summary-item-label` | Summary grid inner elements |\n| `.quadrant-grid` + `.quadrant` + `.quadrant-title` | 2x2 colored matrix |\n| `.quadrant-success` \u002F `-warning` \u002F `-danger` \u002F `-info` | Quadrant background variants |\n| `.action-badge` + `.action-num` \u002F `.action-text` \u002F `.action-impact` | Numbered action items |\n\n**Authoring priority:**\n1. Standard markdown with a named layout (best — simplest, most portable)\n2. `layout: custom` with component classes (good — structured, theme-aware)\n3. `layout: custom` with inline styles and theme variables (acceptable — one-off designs)\n4. `\u003Cstyle>` or `\u003Cscript>` blocks (forbidden — stripped at render time)\n\n**Semantic colors** available in all components and via inline styles:\n`var(--color-success)`, `var(--color-warning)`, `var(--color-danger)`, `var(--color-info)`\n— plus `-light` variants for backgrounds.\n\nExample custom slide with components:\n\n```html\n---\nlayout: custom\n---\n\n\u003Cdiv style=\"display: grid; grid-template-columns: 3fr 2fr; gap: 2rem; height: 100%;\">\n  \u003Cdiv class=\"card\">\n    \u003Cdiv class=\"card-title\">Revenue by Segment\u003C\u002Fdiv>\n    \u003C!-- markdown table or HTML table here -->\n  \u003C\u002Fdiv>\n  \u003Cdiv>\n    \u003Cdiv class=\"callout callout-success\">\n      \u003Ch5>Enterprise is the engine\u003C\u002Fh5>\n      \u003Cp>ACV doubled to $200K. Net retention at 145%.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"callout callout-warning\" style=\"margin-top: 1rem;\">\n      \u003Ch5>SMB churn rising\u003C\u002Fh5>\n      \u003Cp>4.2% quarterly churn — needs the Growth tier.\u003C\u002Fp>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\n```\n\n### Diagrams and Charts — Layout Rules\n\n**Be cautious mixing long lists with large visuals.** If a chart or diagram shares a slide with bullets, keep the list short (3-4 items max) and use `two-col` or `figure` layout to give each element room. The renderer will warn if content overflows.\n\n| Visual scenario | Layout to use | Why |\n|----------------|---------------|-----|\n| Wide diagram + brief context | `figure` | Full-width visual with heading + 1-2 line description |\n| Diagram alongside bullets | `two-col` | Visual in one column, bullets in the other |\n| Full-width chart, minimal text | `figure` or no class | Heading + chart block fills the slide |\n| Chart with detailed breakdown | `two-col` | Chart in one column, bullet legend in the other |\n\nFor detailed theme design guidance (color palettes, typography, CSS variables, logo placement), see [docs\u002FDESIGN-GUIDE.md](.\u002Fdocs\u002FDESIGN-GUIDE.md).\n\n## Built-in Themes\n\n| Theme | Style | Best For |\n|-------|-------|----------|\n| `agentpreso` | Modern | Navy warmth, tangerine accents — the default brand theme |\n| `ink` | Editorial | Serif typography, newspaper red — reports, longform |\n| `neon` | Cyberpunk | Cyan glow on near-black — product launches, tech keynotes |\n| `terminal` | Retro | Green phosphor CRT — developer content, CLIs |\n| `chalk` | Educational | Handwriting headings, teal — workshops, tutorials |\n| `blueprint` | Technical | Grid overlay, engineering precision — architecture, specs |\n| `ember` | Cinematic | Warm amber on dark — storytelling, brand narratives |\n| `glacier` | Analytical | Cool blues, data-focused — dashboards, analytics |\n| `botanica` | Organic | Forest green, gold serif — sustainability, luxury |\n| `maison` | Luxury | Matte gold, minimalist — high-end proposals, fashion |\n\n### Custom Themes\n\nCreate a directory with `theme.yaml` (required), optional `overrides.css` and `scaffold.md`, then:\n\n> **Font limitation:** Only web-safe and Google Fonts render correctly. Proprietary fonts\n> (e.g., CiscoSans, BrandFont) will fall back to system fonts. Use close alternatives:\n> Inter, DM Sans, Source Sans Pro, etc.\n\n#### Theme Customization Strategy\n\nUse `theme.yaml` manifest options (colors, fonts, imagery) for all standard customization.\nDo NOT create `overrides.css` unless the user explicitly requests styling that cannot be\nachieved through `theme.yaml` parameters. The manifest covers colors, fonts, spacing,\nimagery guidance, and layout preferences — `overrides.css` is a last-resort escape hatch,\nnot a default tool.\n\nUsage:\n\n```bash\nagentpreso themes add .\u002Fmy-theme\u002F\nagentpreso themes add .\u002Fmy-theme\u002F --logo logo.svg --logo-position bottom-right --logo-size small\n```\n\nTo update an existing theme, point to the theme.yaml file directly:\n\n```bash\nagentpreso themes update my-brand .\u002Fmy-theme\u002Ftheme.yaml\n```\n\nThis re-assembles CSS from the manifest, auto-discovers `overrides.css` and logo files from the same directory, and updates the theme in-place (preserving logo asset IDs when logos haven't changed).\n",{"name":5,"description":7},"main","f2ec4b3b9133d34eeaf9b38e4b0a97e8e5705a7f","benchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso",0,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard","https:\u002F\u002Fgithub.com\u002FJSGforever","2026-08-29 18:27:56",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add JSGforever\u002Fskillguard --skill agentpreso",{"tool":62,"command":63},"bunx","bunx skills add JSGforever\u002Fskillguard --skill agentpreso",{"tool":65,"command":66},"pnpm","pnpm dlx skills add JSGforever\u002Fskillguard --skill agentpreso","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002FSKILL.md",true,[70,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156],{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"commands\u002Fadd-chart.md","REFERENCE","参考文档",972,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Fcommands\u002Fadd-chart.md",{"path":77,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":78,"sourceHtmlUrl":79},"commands\u002Fadd-diagram.md",910,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Fcommands\u002Fadd-diagram.md",{"path":81,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":82,"sourceHtmlUrl":83},"commands\u002Fbrand-from-site.md",1201,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Fcommands\u002Fbrand-from-site.md",{"path":85,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":86,"sourceHtmlUrl":87},"commands\u002Fbrand.md",1148,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Fcommands\u002Fbrand.md",{"path":89,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":90,"sourceHtmlUrl":91},"commands\u002Fcreate-deck.md",3303,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Fcommands\u002Fcreate-deck.md",{"path":93,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":94,"sourceHtmlUrl":95},"commands\u002Frender.md",960,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Fcommands\u002Frender.md",{"path":97,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":98,"sourceHtmlUrl":99},"commands\u002Ftheme-create.md",1423,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Fcommands\u002Ftheme-create.md",{"path":101,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":102,"sourceHtmlUrl":103},"commands\u002Fthemes.md",1007,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Fcommands\u002Fthemes.md",{"path":105,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":106,"sourceHtmlUrl":107},"examples\u002Fminimal-starter.md",1366,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Fexamples\u002Fminimal-starter.md",{"path":109,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":110,"sourceHtmlUrl":111},"examples\u002Fproduct-launch.md",3474,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Fexamples\u002Fproduct-launch.md",{"path":113,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":114,"sourceHtmlUrl":115},"examples\u002Fquarterly-review.md",4045,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Fexamples\u002Fquarterly-review.md",{"path":117,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":118,"sourceHtmlUrl":119},"examples\u002Ftechnical-overview.md",5097,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Fexamples\u002Ftechnical-overview.md",{"path":121,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":122,"sourceHtmlUrl":123},"references\u002Fbrand-logos.md",5455,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Freferences\u002Fbrand-logos.md",{"path":125,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":126,"sourceHtmlUrl":127},"references\u002Fcharts-diagrams.md",3459,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Freferences\u002Fcharts-diagrams.md",{"path":129,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":130,"sourceHtmlUrl":131},"references\u002Fcli-reference.md",15489,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Freferences\u002Fcli-reference.md",{"path":133,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":134,"sourceHtmlUrl":135},"references\u002Fcustom-themes.md",4810,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Freferences\u002Fcustom-themes.md",{"path":137,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":138,"sourceHtmlUrl":139},"references\u002Fexport-formats.md",3283,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Freferences\u002Fexport-formats.md",{"path":141,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":142,"sourceHtmlUrl":143},"references\u002Fmarkdown-format.md",8883,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Freferences\u002Fmarkdown-format.md",{"path":145,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":146,"sourceHtmlUrl":147},"references\u002Fmcp-tools.md",10464,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Freferences\u002Fmcp-tools.md",{"path":149,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":150,"sourceHtmlUrl":151},"references\u002Fpresentation-craft.md",5708,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Freferences\u002Fpresentation-craft.md",{"path":153,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":154,"sourceHtmlUrl":155},"references\u002Fslide-layouts.md",10020,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Freferences\u002Fslide-layouts.md",{"path":157,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":158,"sourceHtmlUrl":159},"references\u002Fthemes.md",9804,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__agentpreso--agentpreso\u002Freferences\u002Fthemes.md",[161,190,206,233,255,276],{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":170,"publishedAt":44},"01M71HY2SNXBA9Q00WZDTZQ31Z","skillguard-codex-scanner","Hybrid deterministic+LLM agent-skill security scanner. Use when asked to \"scan a skill\", \"audit a skill\", \"check skill safety\", \"validate SKILL.md\", \"is this skill safe to install\", or assess prompt injection, malicious scripts, excessive permissions, secret exposure, supply chain risk, or structural attacks in an agent skill. Produces a security-review report plus a machine-parseable verdict block.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fsrc\u002Fskillguard\u002Fstatic_scanner\u002Fskillguard-codex-scanner\u002FSKILL.md",[167],{"categoryNo":168,"categoryName":169,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[171,172,173,174,175,176,177,178,179,180,181,182,36,183,184,185,186,187,188,189],"scanner","skillguard codex scanner","skillguard","codex","chain","skill security","security-review","review report","structural","secret","prompt injection","security scanner","review","malicious","permissions","exposure","audit","scripts","safe",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":194,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":202,"publishedAt":44},"01M71HY0SPKTT3S27BC2HPAC5M","data-exfiltrator","Analyzes data files","MIT","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Fsmoke-one-skill\u002Fasset1__cisco-ai-defense--data-exfiltrator\u002FSKILL.md",[197],{"categoryNo":198,"categoryName":199,"taxonomyType":200,"taxonomyTypeDesc":201},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[203,204,205],"data","data exfiltrator","files",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":212,"publishedAt":44},"01M71HXVS9EMN44BGDW215FZ72","real-time-collaboration-engine","Build real-time collaborative editing with WebSockets, OT\u002FCRDT conflict resolution, and presence awareness. Implements cursor tracking, optimistic updates, and offline sync. Use for collaborative editors, whiteboards, video editing. Activate on \"real-time collaboration\", \"WebSocket sync\", \"multiplayer editing\", \"CRDT\", \"presence awareness\". NOT for simple chat, request-response APIs, or single-user apps.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__curiositech--real-time-collaboration-engine\u002FSKILL.md",[],[213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232],"time","real time collaboration engine","real time collaboration","collaboration","engine","real time","Video","reliability","video editing","performance","conflict resolution","presence","access","apps","updates","Bash","activate","optimizer","react","streaming",{"skillNo":234,"name":235,"nameZh":6,"description":236,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":237,"categories":238,"keywords":242,"publishedAt":44},"01M71HXP6CTY4KFN0QVMMN0V7J","react-performance-optimizer","Optimize React apps for 60fps performance. Implements memoization, virtualization, code splitting, bundle optimization. Use for slow renders, large lists, bundle bloat. Activate on \"React performance\", \"slow render\", \"useMemo\", \"bundle size\", \"virtualization\". NOT for backend optimization, non-React frameworks, or premature optimization.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__curiositech--react-performance-optimizer\u002FSKILL.md",[239],{"categoryNo":240,"categoryName":241,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",[222,243,230,231,244,245,246,247,248,249,213,250,251,226,228,252,229,232,253,254],"react performance optimizer","react performance","performance optimizer","app","nextjs","expert","re","render","2025","code","router","strategies",{"skillNo":256,"name":257,"nameZh":6,"description":258,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":259,"categories":260,"keywords":262,"publishedAt":44},"01M71HXH7QXSQB4QTDZ7SP7YXQ","llm-streaming-response-handler","Build production LLM streaming UIs with Server-Sent Events, real-time token display, cancellation, error recovery. Handles OpenAI\u002FAnthropic\u002FClaude streaming APIs. Use for chatbots, AI assistants, real-time text generation. Activate on \"LLM streaming\", \"SSE\", \"token stream\", \"chat UI\", \"real-time AI\". NOT for batch processing, non-streaming APIs, or WebSocket bidirectional chat.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__curiositech--llm-streaming-response-handler\u002FSKILL.md",[261],{"categoryNo":240,"categoryName":241,"taxonomyType":20,"taxonomyTypeDesc":21},[263,232,264,265,266,267,222,213,268,269,270,228,229,230,271,231,272,273,274,275],"llm streaming response handler","handler","error","processing","retry","chat ui","error recovery","critical","batch","display","text","server","read",{"skillNo":277,"name":278,"nameZh":6,"description":279,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":280,"categories":281,"keywords":289,"publishedAt":44},"01M71HXCB0E1YRKYW1Y8T0Y106","github-actions-pipeline-builder","Build production CI\u002FCD pipelines with GitHub Actions. Implements matrix builds, caching, deployments, testing, security scanning. Use for automated testing, deployments, release workflows. Activate on \"GitHub Actions\", \"CI\u002FCD\", \"workflow\", \"deployment pipeline\", \"automated testing\". NOT for Jenkins\u002FCircleCI, manual deployments, or non-GitHub repositories.","https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__curiositech--github-actions-pipeline-builder\u002FSKILL.md",[282,285,288],{"categoryNo":283,"categoryName":284,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":286,"categoryName":287,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":168,"categoryName":169,"taxonomyType":20,"taxonomyTypeDesc":21},[290,291,292,293,294,295,296,220,248,297,298,299,229,254,300,275,301,302,303,304],"github actions pipeline builder","actions","github actions","pipeline builder","github","builder","pipeline","testing","ci","workflows","run","release","write","edit","git"]