🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Artifact Deck

by @zack-dev-cm

Public OpenClaw skill for generating reproducible PPTX decks from project notes, status bullets, and screenshots. Use when the user wants a stakeholder-ready...

Versionv1.0.5
Installs1
πŸ’‘ Examples

1. Initialize the manifest. - Install the dependency once in the environment: python3 -m pip install python-pptx. - Use python3 {baseDir}/scripts/init_artifact_deck_manifest.py --title --subtitle <subtitle> --section "What Changed=/abs/path/changes.md" --out <manifest.json></code>. - Repeat <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">--section</code> for more markdown-backed status slides. - Optional: repeat <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">--slide "Risks=Pending scan|Need approval"</code> for direct bullet slides. - Optional: repeat <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">--image "Browser Proof=/abs/path/screenshot.png|Upload flow after publish"</code> for appendix slides.</p><p style="margin:8px 0">2. Validate the inputs. - Use <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">python3 {baseDir}/scripts/check_artifact_deck_inputs.py --manifest <manifest.json> --out <check.json></code>. - Fix missing content or image-path errors before building.</p><p style="margin:8px 0">3. Build the deck. - Use <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">python3 {baseDir}/scripts/build_artifact_deck.py --manifest <manifest.json> --deck-out <deck.pptx> --out <build.json></code>. - This writes the <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">.pptx</code> and a small JSON build summary.</p><p style="margin:8px 0">4. Render the summary. - Use <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">python3 {baseDir}/scripts/render_artifact_deck_summary.py --manifest <manifest.json> --check <check.json> --build <build.json> --out <summary.md></code>. - Share the deck and the summary together; the summary omits absolute local paths and keeps only a rebuild command template.</p></div></div></div><button style="background:none;border:none;color:#6366f1;cursor:pointer;font-size:.82em;padding:4px 0;display:inline-flex;align-items:center;gap:4px">β–Έ Show full description</button></div><div class="actions-row" style="margin-top:8px;margin-bottom:4px;gap:8px"><a href="https://clawhub.ai/zack-dev-cm/artifact-deck" target="_blank" rel="noopener" class="btn-secondary" style="padding:6px 12px;font-size:.82em;border-radius:8px;background:transparent;border:1px solid #1e1e3f;color:#6b7280;text-decoration:none;white-space:nowrap">View on <!-- -->ClawHub</a><button class="copy-btn" data-cmd="clawhub install artifact-deck" style="background:linear-gradient(135deg, #22c55e22, #16a34a22);color:#22c55e;border:1px solid #22c55e33;border-radius:8px;padding:6px 12px;font-size:.82em;cursor:pointer;white-space:nowrap;font-weight:700">πŸ“‹ Copy install</button></div></div><div class="install-box"><div class="install-header"><div class="install-dots"><div class="dot" style="background:#ef4444"></div><div class="dot" style="background:#eab308"></div><div class="dot" style="background:#22c55e"></div></div><span class="install-label">TERMINAL</span></div><div class="install-body" style="flex-wrap:wrap"><code class="install-cmd">clawhub install artifact-deck</code><button class="copy-btn" data-cmd="clawhub install artifact-deck" style="font-weight:700">Copy</button></div></div><section class="next-step-card"><h2 class="next-step-title">πŸ§ͺ Use this skill with your agent</h2><p class="next-step-sub">Most visitors already have an agent. Pick your environment, install or copy the workflow, then run the smoke-test prompt above.</p><div class="agent-grid"><a class="agent-card" href="https://manus.im/invitation/PAN0HWLUJPLKA?utm_source=bytesagain&utm_medium=skill_page&utm_campaign=agent_cta" target="_blank" rel="sponsored noopener noreferrer"><div class="agent-name"><span>Manus</span><span class="sponsored-pill">invite</span></div><div class="agent-desc">Task-oriented agent. Great for testing AI skills end-to-end.</div><div class="agent-link">Try Manus<!-- --> β†’</div></a><a class="agent-card" href="/install"><div class="agent-name"><span>OpenClaw</span></div><div class="agent-desc">Local-first agent. Install skills via ClawHub CLI.</div><div class="agent-link">Set up OpenClaw<!-- --> β†’</div></a><a class="agent-card" href="https://code.claude.com/docs" target="_blank" rel="noopener noreferrer"><div class="agent-name"><span>Claude Code</span></div><div class="agent-desc">Anthropic's coding agent. Paste the prompt or SKILL.md into your session.</div><div class="agent-link">Claude Code docs<!-- --> β†’</div></a><a class="agent-card" href="https://cursor.com" target="_blank" rel="noopener noreferrer"><div class="agent-name"><span>Cursor</span></div><div class="agent-desc">AI-powered IDE. Use the smoke-test prompt in Cursor Agent.</div><div class="agent-link">Open Cursor<!-- --> β†’</div></a><a class="agent-card" href="https://docs.continue.dev/customize/tools" target="_blank" rel="noopener noreferrer"><div class="agent-name"><span>Continue.dev</span></div><div class="agent-desc">Open-source AI code assistant. Add SKILL.md as a custom tool.</div><div class="agent-link">Continue docs<!-- --> β†’</div></a><a class="agent-card" href="https://codeium.com/windsurf" target="_blank" rel="noopener noreferrer"><div class="agent-name"><span>Windsurf</span></div><div class="agent-desc">Agentic IDE by Codeium. Paste the prompt into Cascade.</div><div class="agent-link">Try Windsurf<!-- --> β†’</div></a><a class="agent-card" href="https://github.com/cline/cline" target="_blank" rel="noopener noreferrer"><div class="agent-name"><span>Cline</span></div><div class="agent-desc">VS Code extension for autonomous coding with MCP tools.</div><div class="agent-link">Cline on GitHub<!-- --> β†’</div></a><a class="agent-card" href="https://github.com/features/copilot" target="_blank" rel="noopener noreferrer"><div class="agent-name"><span>Copilot Workspace</span></div><div class="agent-desc">GitHub's AI dev environment. Suitable for code-generation skills.</div><div class="agent-link">Copilot Workspace<!-- --> β†’</div></a></div></section><div class="cta-banner"><div><p class="cta-title">πŸ” Can't find the right skill?</p><p class="cta-sub">Search 60,000+ AI agent skills β€” free, no login needed.</p></div><a href="/" class="btn-primary" style="font-size:.88em;padding:10px 22px">Search Skills β†’</a></div></div><div class="two-col-side"></div></div></div><script> document.querySelectorAll('.copy-btn, .script-copy-btn').forEach(btn => { btn.addEventListener('click', () => { const cmd = btn.getAttribute('data-cmd'); if (!cmd) return; navigator.clipboard.writeText(cmd).then(() => { const orig = btn.textContent; btn.textContent = 'Copied!'; setTimeout(() => btn.textContent = orig, 1500); }).catch(() => {}); }); }); </script><!--$--><!--/$--></main><footer style="background:#0a0a1a;border-top:1px solid #1a1a2e;margin-top:60px"><div style="border-top:1px solid #111;max-width:1200px;margin:0 auto;padding:24px 20px"><div style="display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;margin-bottom:24px"><div><div style="font-weight:700;color:#ccc;margin-bottom:8px">BytesAgain</div><div style="color:#555;font-size:.82em;max-width:200px">Discover the best AI agent skills for your workflow.</div></div><div><div style="color:#888;font-size:.75em;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px">Explore</div><div style="margin-bottom:6px"><a href="/skills" style="color:#666;text-decoration:none;font-size:.85em">Skills</a></div><div style="margin-bottom:6px"><a href="/articles" style="color:#666;text-decoration:none;font-size:.85em">Articles</a></div><div style="margin-bottom:6px"><a href="/use-case" style="color:#666;text-decoration:none;font-size:.85em">Cases</a></div></div><div><div style="color:#888;font-size:.75em;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px">Company</div><div style="margin-bottom:6px"><a href="/about" style="color:#666;text-decoration:none;font-size:.85em">About</a></div><div style="margin-bottom:6px"><a href="/contact" style="color:#666;text-decoration:none;font-size:.85em">Contact</a></div><div style="margin-bottom:6px"><a href="/privacy-policy" style="color:#666;text-decoration:none;font-size:.85em">Privacy Policy</a></div><div style="margin-bottom:6px"><a href="/terms" style="color:#666;text-decoration:none;font-size:.85em">Terms</a></div><div style="margin-bottom:6px"><a href="/feedback" style="color:#666;text-decoration:none;font-size:.85em">Feedback</a></div></div></div><div style="border-top:1px solid #111;padding-top:16px"><div style="color:#444;font-size:.8em;margin-bottom:8px">Β© <!-- -->2026<!-- --> BytesAgain. All rights reserved.</div><div style="color:#333;font-size:.75em;line-height:1.6;max-width:720px">BytesAgain is an independent skill directory. We index and link to third-party content (ClawHub, GitHub, LobeHub, Dify, etc.) for informational purposes only. All trademarks, skill names, and content are the property of their respective owners. BytesAgain does not claim ownership of any indexed content.</div></div></div></footer><button style="position:fixed;bottom:28px;right:28px;z-index:1000;width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;background:linear-gradient(135deg,#667eea,#00d4ff);color:#fff;font-size:1.3em;box-shadow:0 4px 20px #667eea66;display:flex;align-items:center;justify-content:center;transition:transform .2s">πŸ’¬</button><script src="/_next/static/chunks/0ze4gu236oq96.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[62894,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"LangProvider\"]\n3:I[16988,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"default\"]\nd:I[68027,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"default\",1]\n:HL[\"/_next/static/chunks/0u0u2jc_hw-33.css?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"style\"]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n4:Td5e,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"BytesAgain\",\"url\":\"https://bytesagain.com\",\"description\":\"Search 60,000+ verified AI agent skills via MCP API or REST. Supports 7 languages. Free, no auth required.\",\"inLanguage\":[\"en\",\"zh\",\"es\",\"fr\",\"de\",\"ja\",\"ko\"],\"potentialAction\":{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https://bytesagain.com/skills?q={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}},{\"@context\":\"https://schema.org\",\"@type\":\"Organization\",\"name\":\"BytesAgain\",\"url\":\"https://bytesagain.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://bytesagain.com/og-image.png\"},\"description\":\"AI agent skill directory. Search 60,000+ skills, 1,000+ use cases, and community requests.\",\"foundingDate\":\"2026\",\"foundingLocation\":{\"@type\":\"Place\",\"name\":\"Global\"},\"sameAs\":[\"https://x.com/bytesagain\",\"https://github.com/bytesagain/ai-skills\",\"https://clawhub.ai/profile/bytesagain\"],\"contactPoint\":{\"@type\":\"ContactPoint\",\"email\":\"hello@bytesagain.com\",\"contactType\":\"customer support\"},\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"value\":1}},{\"@context\":\"https://schema.org\",\"@type\":\"WebApplication\",\"name\":\"BytesAgain AI Skills Search\",\"url\":\"https://bytesagain.com\",\"applicationCategory\":\"DeveloperApplication\",\"operatingSystem\":\"Web\",\"description\":\"Search engine and MCP API for 60,000+ AI agent skills. Semantic search, role recommendations, and use case packs.\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"USD\"},\"featureList\":[\"Search 60,000+ AI agent skills\",\"Role-based recommendations for developers, creators, and traders\",\"1,000+ curated use case packs\",\"Free MCP API and REST API\",\"Multi-language search (EN, ZH, ES, FR, DE, JA, KO)\"],\"potentialAction\":{\"@type\":\"SearchAction\",\"target\":\"https://bytesagain.com/skills?q={search_term_string}\",\"query-input\":\"required name=search_term_string\"},\"dateModified\":\"2026-05-14\"},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is BytesAgain?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"BytesAgain is a curated directory of 60,000+ AI agent skills from ClawHub, GitHub, LobeHub, and Dify. Search skills by keyword in 7 languages, browse by role (developer, creator, trader, marketer) or by use case.\"}},{\"@type\":\"Question\",\"name\":\"How do I find AI skills on BytesAgain?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use the search bar on BytesAgain.com to search by keyword in 7 languages. You can also browse by role (developer, creator, trader, marketer) or by use case. Each skill shows install instructions for Claude, Cursor, OpenClaw, Continue, and more.\"}},{\"@type\":\"Question\",\"name\":\"Is BytesAgain free?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, BytesAgain is completely free. No registration required for searching skills. The MCP API is also free with rate limits.\"}},{\"@type\":\"Question\",\"name\":\"Does BytesAgain have an API for AI agents?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes! BytesAgain provides a free MCP SSE endpoint at /api/mcp/sse for AI agents, plus a REST API at /api/mcp?action=search\u0026q=\u003cquery\u003e. No authentication needed.\"}},{\"@type\":\"Question\",\"name\":\"Can I request a new AI skill on BytesAgain?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes! Visit the Requests page on BytesAgain.com to submit a skill request. Your request will be visible to the community and notified to the site admin.\"}}]}]"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"skill\",\"artifact-deck\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"skill\",{\"children\":[[\"slug\",\"artifact-deck\",\"d\",null],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0u0u2jc_hw-33.css?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"llms\",\"href\":\"/llms.txt\"}],[\"$\",\"link\",null,{\"rel\":\"llms-full\",\"href\":\"/llms-full.txt\"}],[\"$\",\"script\",null,{\"async\":true,\"src\":\"https://www.googletagmanager.com/gtag/js?id=G-3C1MM9FWYF\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n window.dataLayer = window.dataLayer || [];\\n function gtag(){dataLayer.push(arguments);}\\n gtag('js', new Date());\\n gtag('config', 'G-3C1MM9FWYF');\\n \"}}]]}],[\"$\",\"body\",null,{\"className\":\"geist_9e050971-module__05dp7a__className\",\"style\":{\"background\":\"#0a0a1a\",\"color\":\"#e0e0e0\",\"margin\":0},\"children\":[\"$\",\"$L2\",null,{\"children\":[[\"$\",\"div\",null,{\"style\":{\"width\":\"100%\",\"background\":\"linear-gradient(90deg,#13103a,#0d0d1f,#13103a)\",\"borderBottom\":\"1px solid #2a2a5a\",\"padding\":\"8px 20px\",\"textAlign\":\"center\",\"fontSize\":\".82em\",\"color\":\"#818cf8\"},\"children\":[\"🎁 \",[\"$\",\"strong\",null,{\"style\":{\"color\":\"#e2e8f0\"},\"children\":\"Get the FREE AI Skills Starter Guide\"}],\" β€” \",[\"$\",\"a\",null,{\"href\":\"/register\",\"style\":{\"color\":\"#00d4ff\",\"textDecoration\":\"underline\"},\"children\":\"Subscribe β†’\"}]]}],[\"$\",\"$L3\",null,{}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$4\"}}],\"$L5\",\"$L6\",\"$L7\"]}]}]]}]]}],{\"children\":[\"$L8\",{\"children\":[\"$L9\",{\"children\":[\"$La\",{},null,false,null]},null,false,\"$@b\"]},null,false,\"$@b\"]},null,false,null],\"$Lc\",false]],\"m\":\"$undefined\",\"G\":[\"$d\",[\"$Le\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"f:I[39756,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"default\"]\n10:I[37457,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"default\"]\n11:I[90940,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"default\"]\n12:I[16397,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"default\"]\n14:I[97367,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"OutletBoundary\"]\n15:\"$Sreact.suspense\"\n18:I[97367,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"ViewportBoundary\"]\n1a:I[97367,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"MetadataBoundary\"]\n"])</script><script>self.__next_f.push([1,"5:[\"$\",\"main\",null,{\"children\":[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L10\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]\n"])</script><script>self.__next_f.push([1,"6:[\"$\",\"$L11\",null,{}]\n7:[\"$\",\"$L12\",null,{}]\n8:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L10\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n9:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L10\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\na:[\"$\",\"$1\",\"c\",{\"children\":[\"$L13\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/13n0i~5jmm-ff.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L14\",null,{\"children\":[\"$\",\"$15\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@16\"}]}]]}]\n17:[]\nb:\"$W17\"\nc:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L18\",null,{\"children\":\"$L19\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1a\",null,{\"children\":[\"$\",\"$15\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1b\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\ne:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0u0u2jc_hw-33.css?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"19:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"1c:I[27201,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"IconMark\"]\n16:null\n"])</script><script>self.__next_f.push([1,"1b:[[\"$\",\"title\",\"0\",{\"children\":\"Artifact Deck β€” AI Agent Skill | BytesAgain | BytesAgain\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Public OpenClaw skill for generating reproducible PPTX decks from project notes, status bullets, and screenshots. Use when the user wants a stakeholder-ready...\"}],[\"$\",\"meta\",\"2\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"3\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"4\",{\"name\":\"llms-txt\",\"content\":\"https://bytesagain.com/llms.txt\"}],[\"$\",\"meta\",\"5\",{\"name\":\"llms-full-txt\",\"content\":\"https://bytesagain.com/llms-full.txt\"}],[\"$\",\"link\",\"6\",{\"rel\":\"canonical\",\"href\":\"https://bytesagain.com/skill/artifact-deck\"}],[\"$\",\"meta\",\"7\",{\"name\":\"baidu-site-verification\",\"content\":\"codeva-0evUqX1TFs\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:title\",\"content\":\"Artifact Deck β€” AI Agent Skill | BytesAgain\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:description\",\"content\":\"Public OpenClaw skill for generating reproducible PPTX decks from project notes, status bullets, and screenshots. Use when the user wants a stakeholder-ready...\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:url\",\"content\":\"https://bytesagain.com/skill/artifact-deck\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:site_name\",\"content\":\"BytesAgain\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image\",\"content\":\"https://bytesagain.com/social-preview.png\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:title\",\"content\":\"Artifact Deck β€” AI Agent Skill | BytesAgain\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:description\",\"content\":\"Public OpenClaw skill for generating reproducible PPTX decks from project notes, status bullets, and screenshots. Use when the user wants a stakeholder-ready...\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:image\",\"content\":\"https://bytesagain.com/social-preview.png\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"22\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L1c\",\"23\",{}]]\n"])</script><script>self.__next_f.push([1,"1d:T1e26,"])</script><script>self.__next_f.push([1,"\n .skill-page { max-width: 1100px; margin: 0 auto; padding: 32px 20px 80px; }\n .two-col { display: flex; gap: 32px; align-items: flex-start; }\n .two-col-main { flex: 1; min-width: 0; }\n .two-col-side { width: 300px; flex-shrink: 0; }\n @media (max-width: 860px) {\n .two-col { flex-direction: column; }\n .two-col-side { width: 100%; }\n }\n .breadcrumb { font-size: .82em; color: #4b5563; margin-bottom: 28px; }\n .breadcrumb a { color: #818cf8; text-decoration: none; }\n .breadcrumb a:hover { text-decoration: underline; }\n .skill-card { background: #0d0d1f; border: 1px solid #1e1e3f; border-radius: 20px; padding: 28px; margin-bottom: 24px; }\n .skill-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }\n .skill-badges { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }\n .skill-top-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }\n .badge { display: inline-flex; align-items: center; gap: 5px; font-size: .75em; font-weight: 600; padding: 4px 12px; border-radius: 999px; border: 1px solid transparent; }\n .skill-title { font-size: 1.6em; font-weight: 800; color: #f1f5f9; margin: 0 0 4px; line-height: 1.2; }\n .skill-owner { font-size: .82em; color: #4b5563; margin: 0 0 14px; }\n .skill-owner span { color: #818cf8; }\n .skill-desc { font-size: .92em; color: #94a3b8; line-height: 1.65; margin: 0 0 16px; }\n .skill-meta { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid #1e1e3f; }\n .meta-item { display: flex; flex-direction: column; gap: 2px; }\n .meta-label { font-size: .7em; color: #374151; text-transform: uppercase; letter-spacing: 1px; font-weight: 600; }\n .meta-value { font-size: .92em; color: #94a3b8; font-weight: 600; }\n .tags-row { display: flex; gap: 6px; flex-wrap: wrap; }\n .tag { font-size: .75em; color: #6366f1; background: #6366f115; border: 1px solid #6366f130; border-radius: 6px; padding: 3px 10px; text-decoration: none; }\n .tag:hover { background: #6366f125; }\n .install-box { background: #070714; border: 1px solid #1e1e3f; border-radius: 12px; overflow: hidden; margin-bottom: 24px; }\n .install-header { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px; border-bottom: 1px solid #1e1e3f; }\n .install-dots { display: flex; gap: 6px; }\n .dot { width: 10px; height: 10px; border-radius: 50%; }\n .install-label { font-size: .72em; color: #374151; font-family: monospace; letter-spacing: 1px; }\n .install-body { padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }\n .install-cmd { font-family: 'Courier New', monospace; font-size: 1em; color: #a5f3fc; }\n .copy-btn { font-size: .75em; color: #6366f1; background: #6366f115; border: 1px solid #6366f130; border-radius: 6px; padding: 5px 12px; cursor: pointer; white-space: nowrap; transition: all .15s; }\n .copy-btn:hover { background: #6366f125; }\n .btn-primary { display: inline-flex; align-items: center; gap: 8px; padding: 13px 28px; background: linear-gradient(135deg, #6366f1, #818cf8); border-radius: 10px; color: #fff; text-decoration: none; font-weight: 700; font-size: .95em; transition: opacity .15s; }\n .btn-primary:hover { opacity: .88; }\n .btn-secondary { display: inline-flex; align-items: center; gap: 8px; padding: 13px 24px; background: transparent; border: 1px solid #1e1e3f; border-radius: 10px; color: #6b7280; text-decoration: none; font-weight: 600; font-size: .95em; transition: all .15s; }\n .btn-secondary:hover { border-color: #818cf8; color: #818cf8; }\n .actions-row { display: flex; gap: 12px; flex-wrap: wrap; }\n .disclaimer { margin-top: 20px; padding: 14px 18px; background: #070714; border: 1px solid #1a1a3a; border-radius: 10px; font-size: .78em; color: #374151; line-height: 1.7; }\n .disclaimer a { color: #6366f1; }\n .ours-badge { display: inline-flex; align-items: center; gap: 6px; font-size: .72em; font-weight: 700; color: #22d3ee; background: #22d3ee10; border: 1px solid #22d3ee30; border-radius: 999px; padding: 4px 14px; }\n .section-card { background: #0d0d1f; border: 1px solid #1e1e3f; border-radius: 16px; padding: 22px 24px; margin-bottom: 20px; }\n .section-title { color: #f8fafc; font-size: 1.08em; font-weight: 800; margin: 0 0 12px; display: flex; align-items: center; gap: 8px; }\n .section-content { font-size: .88em; color: #94a3b8; line-height: 1.7; }\n .next-step-card { background: linear-gradient(135deg, #10102a, #0d0d1f); border: 1px solid #6366f144; border-radius: 16px; padding: 20px; margin: 0 0 20px; }\n .next-step-title { color: #f8fafc; font-size: 1.18em; font-weight: 800; margin: 0 0 8px; }\n .next-step-sub { color: #94a3b8; line-height: 1.65; margin: 0 0 18px; }\n .agent-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 12px; margin-top: 14px; }\n .agent-card { display: block; background: #070714; border: 1px solid #1e1e3f; border-radius: 14px; padding: 16px; text-decoration: none; transition: border-color .15s, transform .15s; }\n .agent-card:hover { border-color: #818cf8; transform: translateY(-1px); }\n .agent-name { color: #f8fafc; font-weight: 800; margin-bottom: 6px; display: flex; justify-content: space-between; gap: 8px; }\n .agent-desc { color: #64748b; font-size: .84em; line-height: 1.55; margin-bottom: 12px; }\n .agent-link { color: #a5b4fc; font-size: .82em; font-weight: 800; }\n .sponsored-pill { color: #fbbf24; background: #fbbf2414; border: 1px solid #fbbf2444; border-radius: 999px; padding: 2px 7px; font-size: .7em; white-space: nowrap; }\n .cta-banner { background: linear-gradient(135deg, #0d0d1f, #13103a); border: 1px solid #6366f133; border-radius: 16px; padding: 24px 28px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 8px; }\n .cta-title { font-weight: 700; color: #e2e8f0; margin: 0 0 4px; }\n .cta-sub { color: #4b5563; font-size: .86em; }\n /* Script box */\n .script-box { background: #050510; border: 1px solid #1e1e3f; border-radius: 12px; overflow: hidden; }\n .script-header { display: flex; align-items: center; justify-content: space-between; padding: 8px 14px; background: #0a0a1c; border-bottom: 1px solid #1e1e3f; }\n .script-filename { font-size: .72em; color: #4b5563; font-family: 'Courier New', monospace; }\n .script-copy-btn { font-size: .72em; color: #6366f1; background: none; border: 1px solid #6366f130; border-radius: 4px; padding: 2px 10px; cursor: pointer; }\n .script-copy-btn:hover { background: #6366f115; }\n .script-body { padding: 14px 16px; font-family: 'Courier New', monospace; font-size: .82em; line-height: 1.6; color: #a5f3fc; overflow-x: auto; max-height: 420px; overflow-y: auto; white-space: pre; }\n /* Articles */\n .article-card { display: block; background: #0f0f23; border: 1px solid #1a1a3e; border-radius: 10px; padding: 14px 16px; text-decoration: none; transition: border-color .15s; }\n .article-card:hover { border-color: #6366f1; }\n @media (max-width: 600px) {\n .skill-card { padding: 20px; }\n .skill-title { font-size: 1.5em; }\n .cta-banner { flex-direction: column; align-items: flex-start; }\n }\n "])</script><script>self.__next_f.push([1,"13:[[\"$\",\"style\",null,{\"children\":\"$1d\"}],\"$L1e\",\"$L1f\"]\n"])</script><script>self.__next_f.push([1,"20:I[78297,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/13n0i~5jmm-ff.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"default\"]\n21:I[32109,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/13n0i~5jmm-ff.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"default\"]\n22:T50d,1. Initialize the manifest.\n - Install the dependency once in the environment: `python3 -m pip install python-pptx`.\n - Use `python3 {baseDir}/scripts/init_artifact_deck_manifest.py --title \u003ctitle\u003e --subtitle \u003csubtitle\u003e --section \"What Changed=/abs/path/changes.md\" --out \u003cmanifest.json\u003e`.\n - Repeat `--section` for more markdown-backed status slides.\n - Optional: repeat `--slide \"Risks=Pending scan|Need approval\"` for direct bullet slides.\n - Optional: repeat `--image \"Browser Proof=/abs/path/screenshot.png|Upload flow after publish\"` for appendix slides.\n\n2. Validate the inputs.\n - Use `python3 {baseDir}/scripts/check_artifact_deck_inputs.py --manifest \u003cmanifest.json\u003e --out \u003ccheck.json\u003e`.\n - Fix missing content or image-path errors before building.\n\n3. Build the deck.\n - Use `python3 {baseDir}/scripts/build_artifact_deck.py --manifest \u003cmanifest.json\u003e --deck-out \u003cdeck.pptx\u003e --out \u003cbuild.json\u003e`.\n - This writes the `.pptx` and a small JSON build summary.\n\n4. Render the summary.\n - Use `python3 {baseDir}/scripts/render_artifact_deck_summary.py --manifest \u003cmanifest.json\u003e --check \u003ccheck.json\u003e --build \u003cbuild.json\u003e --out \u003csummary.md\u003e`.\n - Share the deck and the summary together; the summary omits absolute local paths and keeps only a rebuild command template.23:Ted9,"])</script><script>self.__next_f.push([1,"---\nname: artifact-deck\ndescription: Public OpenClaw skill for generating reproducible PPTX decks from project notes, status bullets, and screenshots. Use when the user wants a stakeholder-ready deck from repo notes, release summaries, audit outputs, or screenshot evidence, and the deliverable should be a rebuildable `.pptx` rather than a freeform narrative.\nversion: 1.0.5\nhomepage: https://github.com/zack-dev-cm/artifact-deck\nlicense: MIT-0\nuser-invocable: true\nmetadata: {\"openclaw\":{\"homepage\":\"https://github.com/zack-dev-cm/artifact-deck\",\"skillKey\":\"artifact-deck\",\"requires\":{\"anyBins\":[\"python3\",\"python\"]}}}\n---\n\n# Artifact Deck\n\n## Goal\n\nTurn curated project notes and screenshots into a clean, reproducible `.pptx` deck:\n\n- one manifest that defines the deck title, subtitle, status slides, and optional appendix images\n- one input check before build\n- one local PPTX build\n- one share-safe markdown summary with a rebuild command template and slide list\n\nThis skill is for deterministic stakeholder packaging, not autonomous research or design generation.\nIt requires Python 3.9+ and `python-pptx`.\n\n## Use This Skill When\n\n- release notes, weekly updates, or launch artifacts need to become a decision-ready deck\n- browser screenshots or diagrams should be included as appendix slides\n- the user wants a rebuildable `.pptx` instead of a one-off manual slide edit\n- you need a concise executive or client status deck from repo-local notes\n\n## Quick Start\n\n1. Initialize the manifest.\n - Install the dependency once in the environment: `python3 -m pip install python-pptx`.\n - Use `python3 {baseDir}/scripts/init_artifact_deck_manifest.py --title \u003ctitle\u003e --subtitle \u003csubtitle\u003e --section \"What Changed=/abs/path/changes.md\" --out \u003cmanifest.json\u003e`.\n - Repeat `--section` for more markdown-backed status slides.\n - Optional: repeat `--slide \"Risks=Pending scan|Need approval\"` for direct bullet slides.\n - Optional: repeat `--image \"Browser Proof=/abs/path/screenshot.png|Upload flow after publish\"` for appendix slides.\n\n2. Validate the inputs.\n - Use `python3 {baseDir}/scripts/check_artifact_deck_inputs.py --manifest \u003cmanifest.json\u003e --out \u003ccheck.json\u003e`.\n - Fix missing content or image-path errors before building.\n\n3. Build the deck.\n - Use `python3 {baseDir}/scripts/build_artifact_deck.py --manifest \u003cmanifest.json\u003e --deck-out \u003cdeck.pptx\u003e --out \u003cbuild.json\u003e`.\n - This writes the `.pptx` and a small JSON build summary.\n\n4. Render the summary.\n - Use `python3 {baseDir}/scripts/render_artifact_deck_summary.py --manifest \u003cmanifest.json\u003e --check \u003ccheck.json\u003e --build \u003cbuild.json\u003e --out \u003csummary.md\u003e`.\n - Share the deck and the summary together; the summary omits absolute local paths and keeps only a rebuild command template.\n\n## Operating Rules\n\n### Scope rules\n\n- Keep the promise narrow: curated notes and screenshots in, reproducible `.pptx` out.\n- Prefer concise bullets. Six bullets per slide is a practical ceiling.\n- Treat missing or mistyped file paths as hard failures.\n\n### Deck rules\n\n- Use a title slide plus focused status slides.\n- Put screenshots and diagrams in appendix slides unless the user explicitly wants them inline.\n- Keep slide titles explicit: `What Changed`, `Risks`, `Asks`, `Appendix`, or equivalent.\n\n## Bundled Scripts\n\n- `scripts/init_artifact_deck_manifest.py`\n - Build a manifest from markdown sections, direct bullet slides, and optional image appendix entries.\n- `scripts/check_artifact_deck_inputs.py`\n - Validate manifest structure, bullet availability, and image paths.\n- `scripts/build_artifact_deck.py`\n - Generate the `.pptx` and a machine-readable build summary.\n- `scripts/render_artifact_deck_summary.py`\n - Render a concise markdown summary with the deck filename, slide count, and a rebuild command template.\n"])</script><script>self.__next_f.push([1,"1e:[\"$\",\"div\",null,{\"className\":\"skill-page\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"SoftwareApplication\\\",\\\"name\\\":\\\"Artifact Deck\\\",\\\"description\\\":\\\"Public OpenClaw skill for generating reproducible PPTX decks from project notes, status bullets, and screenshots. Use when the user wants a stakeholder-ready...\\\",\\\"url\\\":\\\"https://bytesagain.com/skill/artifact-deck\\\",\\\"applicationCategory\\\":\\\"clawhub\\\",\\\"operatingSystem\\\":\\\"Any\\\",\\\"offers\\\":{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"0\\\",\\\"priceCurrency\\\":\\\"USD\\\"},\\\"publisher\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"BytesAgain\\\",\\\"url\\\":\\\"https://bytesagain.com\\\"}}\"}}],[\"$\",\"div\",null,{\"className\":\"breadcrumb\",\"children\":[[\"$\",\"a\",null,{\"href\":\"/\",\"children\":\"BytesAgain\"}],\" β€Ί \",[\"$\",\"a\",null,{\"href\":\"/skills\",\"children\":\"Skills\"}],\" β€Ί \",\"Artifact Deck\"]}],[\"$\",\"div\",null,{\"className\":\"two-col\",\"children\":[[\"$\",\"div\",null,{\"className\":\"two-col-main\",\"children\":[[\"$\",\"div\",null,{\"className\":\"skill-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"skill-header\",\"children\":[[\"$\",\"div\",null,{\"className\":\"skill-badges\",\"children\":[[\"$\",\"span\",null,{\"className\":\"badge\",\"style\":{\"color\":\"#818cf8\",\"background\":\"#818cf822\",\"borderColor\":\"#818cf844\"},\"children\":[\"πŸ¦€\",\" \",\"ClawHub\"]}],false]}],[\"$\",\"div\",null,{\"className\":\"skill-top-actions\",\"children\":[\"$\",\"$L20\",null,{\"slug\":\"artifact-deck\"}]}]]}],[\"$\",\"h1\",null,{\"className\":\"skill-title\",\"children\":\"Artifact Deck\"}],[\"$\",\"p\",null,{\"className\":\"skill-owner\",\"children\":[\"by \",[\"$\",\"span\",null,{\"children\":[\"@\",\"zack-dev-cm\"]}]]}],[\"$\",\"p\",null,{\"className\":\"skill-desc\",\"children\":\"Public OpenClaw skill for generating reproducible PPTX decks from project notes, status bullets, and screenshots. Use when the user wants a stakeholder-ready...\"}],[\"$\",\"div\",null,{\"className\":\"skill-meta\",\"children\":[[\"$\",\"div\",null,{\"className\":\"meta-item\",\"children\":[[\"$\",\"span\",null,{\"className\":\"meta-label\",\"children\":\"Version\"}],[\"$\",\"span\",null,{\"className\":\"meta-value\",\"children\":[\"v\",\"1.0.5\"]}]]}],false,[\"$\",\"div\",null,{\"className\":\"meta-item\",\"children\":[[\"$\",\"span\",null,{\"className\":\"meta-label\",\"children\":\"Installs\"}],[\"$\",\"span\",null,{\"className\":\"meta-value\",\"children\":\"1\"}]]}],false,false,[\"$\",\"div\",null,{\"className\":\"meta-item\",\"style\":{\"flexDirection\":\"row\",\"gap\":6,\"alignItems\":\"center\"},\"children\":[[\"$\",\"a\",\"clawhub\",{\"href\":\"/?q=clawhub\",\"className\":\"tag\",\"children\":[\"#\",\"clawhub\"]}]]}]]}],[\"$\",\"$L21\",null,{\"slug\":\"artifact-deck\",\"owner\":\"zack-dev-cm\",\"sections\":{\"examples\":\"$22\",\"configuration\":null,\"tips\":null,\"when_to_use\":null,\"core_types\":null,\"constraints\":null,\"script\":null},\"fullDesc\":\"$23\"}],\"$L24\"]}],\"$L25\",null,false,\"$L26\",\"$L27\",false]}],\"$L28\"]}]]}]\n"])</script><script>self.__next_f.push([1,"1f:[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n document.querySelectorAll('.copy-btn, .script-copy-btn').forEach(btn =\u003e {\\n btn.addEventListener('click', () =\u003e {\\n const cmd = btn.getAttribute('data-cmd');\\n if (!cmd) return;\\n navigator.clipboard.writeText(cmd).then(() =\u003e {\\n const orig = btn.textContent;\\n btn.textContent = 'Copied!';\\n setTimeout(() =\u003e btn.textContent = orig, 1500);\\n }).catch(() =\u003e {});\\n });\\n });\\n \"}}]\n"])</script><script>self.__next_f.push([1,"29:I[71521,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\",\"/_next/static/chunks/13n0i~5jmm-ff.js?dpl=dpl_A2hgSD3MeXFzVLary6X9Y4AbeWfD\"],\"default\"]\n24:[\"$\",\"div\",null,{\"className\":\"actions-row\",\"style\":{\"marginTop\":8,\"marginBottom\":4,\"gap\":8},\"children\":[[\"$\",\"a\",null,{\"href\":\"https://clawhub.ai/zack-dev-cm/artifact-deck\",\"target\":\"_blank\",\"rel\":\"noopener\",\"className\":\"btn-secondary\",\"style\":{\"padding\":\"6px 12px\",\"fontSize\":\".82em\",\"borderRadius\":8,\"background\":\"transparent\",\"border\":\"1px solid #1e1e3f\",\"color\":\"#6b7280\",\"textDecoration\":\"none\",\"whiteSpace\":\"nowrap\"},\"children\":[\"View on \",\"ClawHub\"]}],[\"$\",\"button\",null,{\"className\":\"copy-btn\",\"data-cmd\":\"clawhub install artifact-deck\",\"style\":{\"background\":\"linear-gradient(135deg, #22c55e22, #16a34a22)\",\"color\":\"#22c55e\",\"border\":\"1px solid #22c55e33\",\"borderRadius\":8,\"padding\":\"6px 12px\",\"fontSize\":\".82em\",\"cursor\":\"pointer\",\"whiteSpace\":\"nowrap\",\"fontWeight\":700},\"children\":\"πŸ“‹ Copy install\"}]]}]\n25:[\"$\",\"div\",null,{\"className\":\"install-box\",\"children\":[[\"$\",\"div\",null,{\"className\":\"install-header\",\"children\":[[\"$\",\"div\",null,{\"className\":\"install-dots\",\"children\":[[\"$\",\"div\",null,{\"className\":\"dot\",\"style\":{\"background\":\"#ef4444\"}}],[\"$\",\"div\",null,{\"className\":\"dot\",\"style\":{\"background\":\"#eab308\"}}],[\"$\",\"div\",null,{\"className\":\"dot\",\"style\":{\"background\":\"#22c55e\"}}]]}],[\"$\",\"span\",null,{\"className\":\"install-label\",\"children\":\"TERMINAL\"}]]}],[\"$\",\"div\",null,{\"className\":\"install-body\",\"style\":{\"flexWrap\":\"wrap\"},\"children\":[[\"$\",\"code\",null,{\"className\":\"install-cmd\",\"children\":\"clawhub install artifact-deck\"}],[\"$\",\"button\",null,{\"className\":\"copy-btn\",\"data-cmd\":\"clawhub install artifact-deck\",\"style\":{\"fontWeight\":700},\"children\":\"Copy\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"26:[\"$\",\"section\",null,{\"className\":\"next-step-card\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"next-step-title\",\"children\":\"πŸ§ͺ Use this skill with your agent\"}],[\"$\",\"p\",null,{\"className\":\"next-step-sub\",\"children\":\"Most visitors already have an agent. Pick your environment, install or copy the workflow, then run the smoke-test prompt above.\"}],[\"$\",\"div\",null,{\"className\":\"agent-grid\",\"children\":[[\"$\",\"a\",\"Manus\",{\"className\":\"agent-card\",\"href\":\"https://manus.im/invitation/PAN0HWLUJPLKA?utm_source=bytesagain\u0026utm_medium=skill_page\u0026utm_campaign=agent_cta\",\"target\":\"_blank\",\"rel\":\"sponsored noopener noreferrer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"agent-name\",\"children\":[[\"$\",\"span\",null,{\"children\":\"Manus\"}],[\"$\",\"span\",null,{\"className\":\"sponsored-pill\",\"children\":\"invite\"}]]}],[\"$\",\"div\",null,{\"className\":\"agent-desc\",\"children\":\"Task-oriented agent. Great for testing AI skills end-to-end.\"}],[\"$\",\"div\",null,{\"className\":\"agent-link\",\"children\":[\"Try Manus\",\" β†’\"]}]]}],[\"$\",\"a\",\"OpenClaw\",{\"className\":\"agent-card\",\"href\":\"/install\",\"target\":\"$undefined\",\"rel\":\"$undefined\",\"children\":[[\"$\",\"div\",null,{\"className\":\"agent-name\",\"children\":[[\"$\",\"span\",null,{\"children\":\"OpenClaw\"}],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"agent-desc\",\"children\":\"Local-first agent. Install skills via ClawHub CLI.\"}],[\"$\",\"div\",null,{\"className\":\"agent-link\",\"children\":[\"Set up OpenClaw\",\" β†’\"]}]]}],[\"$\",\"a\",\"Claude Code\",{\"className\":\"agent-card\",\"href\":\"https://code.claude.com/docs\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"agent-name\",\"children\":[[\"$\",\"span\",null,{\"children\":\"Claude Code\"}],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"agent-desc\",\"children\":\"Anthropic's coding agent. Paste the prompt or SKILL.md into your session.\"}],[\"$\",\"div\",null,{\"className\":\"agent-link\",\"children\":[\"Claude Code docs\",\" β†’\"]}]]}],[\"$\",\"a\",\"Cursor\",{\"className\":\"agent-card\",\"href\":\"https://cursor.com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"agent-name\",\"children\":[[\"$\",\"span\",null,{\"children\":\"Cursor\"}],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"agent-desc\",\"children\":\"AI-powered IDE. Use the smoke-test prompt in Cursor Agent.\"}],[\"$\",\"div\",null,{\"className\":\"agent-link\",\"children\":[\"Open Cursor\",\" β†’\"]}]]}],[\"$\",\"a\",\"Continue.dev\",{\"className\":\"agent-card\",\"href\":\"https://docs.continue.dev/customize/tools\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"agent-name\",\"children\":[[\"$\",\"span\",null,{\"children\":\"Continue.dev\"}],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"agent-desc\",\"children\":\"Open-source AI code assistant. Add SKILL.md as a custom tool.\"}],[\"$\",\"div\",null,{\"className\":\"agent-link\",\"children\":[\"Continue docs\",\" β†’\"]}]]}],[\"$\",\"a\",\"Windsurf\",{\"className\":\"agent-card\",\"href\":\"https://codeium.com/windsurf\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"agent-name\",\"children\":[[\"$\",\"span\",null,{\"children\":\"Windsurf\"}],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"agent-desc\",\"children\":\"Agentic IDE by Codeium. Paste the prompt into Cascade.\"}],[\"$\",\"div\",null,{\"className\":\"agent-link\",\"children\":[\"Try Windsurf\",\" β†’\"]}]]}],[\"$\",\"a\",\"Cline\",{\"className\":\"agent-card\",\"href\":\"https://github.com/cline/cline\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"agent-name\",\"children\":[[\"$\",\"span\",null,{\"children\":\"Cline\"}],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"agent-desc\",\"children\":\"VS Code extension for autonomous coding with MCP tools.\"}],[\"$\",\"div\",null,{\"className\":\"agent-link\",\"children\":[\"Cline on GitHub\",\" β†’\"]}]]}],[\"$\",\"a\",\"Copilot Workspace\",{\"className\":\"agent-card\",\"href\":\"https://github.com/features/copilot\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"agent-name\",\"children\":[[\"$\",\"span\",null,{\"children\":\"Copilot Workspace\"}],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"agent-desc\",\"children\":\"GitHub's AI dev environment. Suitable for code-generation skills.\"}],[\"$\",\"div\",null,{\"className\":\"agent-link\",\"children\":[\"Copilot Workspace\",\" β†’\"]}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"27:[\"$\",\"div\",null,{\"className\":\"cta-banner\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"cta-title\",\"children\":\"πŸ” Can't find the right skill?\"}],[\"$\",\"p\",null,{\"className\":\"cta-sub\",\"children\":\"Search 60,000+ AI agent skills β€” free, no login needed.\"}]]}],[\"$\",\"a\",null,{\"href\":\"/\",\"className\":\"btn-primary\",\"style\":{\"fontSize\":\".88em\",\"padding\":\"10px 22px\"},\"children\":\"Search Skills β†’\"}]]}]\n28:[\"$\",\"div\",null,{\"className\":\"two-col-side\",\"children\":[\"$\",\"$L29\",null,{\"category\":\"clawhub\",\"currentSlug\":\"artifact-deck\",\"name\":\"Artifact Deck\",\"tags\":[\"clawhub\"]}]}]\n"])</script></body></html>