← 返回
未分类 中文

Artifact Deck

Public OpenClaw skill for generating reproducible PPTX decks from project notes, status bullets, and screenshots. Use when the user wants a stakeholder-ready...
公共OpenClaw技能,用于从项目笔记、状态要点和截图生成可复用的PPTX,适用于需要准备面向利益相关者的演示。
zack-dev-cm zack-dev-cm 来源
未分类 clawhub v1.0.6 2 版本 100000 Key: 无需
★ 1
Stars
📥 536
下载
💾 1
安装
2
版本
#artifacts#latest#pptx#presentation

概述

Artifact Deck

Goal

Turn curated project notes and screenshots into a clean, reproducible .pptx deck:

  • one manifest that defines the deck title, subtitle, status slides, and optional appendix images
  • one input check before build
  • one local PPTX build
  • one share-safe markdown summary with a rebuild command template and slide list

This skill is for deterministic stakeholder packaging, not autonomous research or design generation.

It requires Python 3.9+ and python-pptx.

Use This Skill When

  • release notes, weekly updates, or launch artifacts need to become a decision-ready deck
  • browser screenshots or diagrams should be included as appendix slides
  • the user wants a rebuildable .pptx instead of a one-off manual slide edit
  • you need a concise executive or client status deck from repo-local notes

Quick Start

  1. Initialize the manifest.
    • Ensure the active Python environment already has python-pptx available.
    • Use python3 {baseDir}/scripts/init_artifact_deck_manifest.py --title --subtitle <subtitle> --section "What Changed=/abs/path/changes.md" --out <manifest.json></code>.</li><li>Repeat <code>--section</code> for more markdown-backed status slides.</li><li>Optional: repeat <code>--slide "Risks=Pending scan|Need approval"</code> for direct bullet slides.</li><li>Optional: repeat <code>--image "Browser Proof=/abs/path/screenshot.png|Upload flow after publish"</code> for appendix slides.</li></ul></ol><ol><li>Validate the inputs.</li><ul><li>Use <code>python3 {baseDir}/scripts/check_artifact_deck_inputs.py --manifest <manifest.json> --out <check.json></code>.</li><li>Fix missing content or image-path errors before building.</li></ul></ol><ol><li>Build the deck.</li><ul><li>Use <code>python3 {baseDir}/scripts/build_artifact_deck.py --manifest <manifest.json> --deck-out <deck.pptx> --out <build.json></code>.</li><li>This writes the <code>.pptx</code> and a small JSON build summary.</li></ul></ol><ol><li>Render the summary.</li><ul><li>Use <code>python3 {baseDir}/scripts/render_artifact_deck_summary.py --manifest <manifest.json> --check <check.json> --build <build.json> --out <summary.md></code>.</li><li>Share the deck and the summary together; the summary omits absolute local paths and keeps only a rebuild command template.</li></ul></ol><h2>Operating Rules</h2><h3>Scope rules</h3><ul><li>Keep the promise narrow: curated notes and screenshots in, reproducible <code>.pptx</code> out.</li><li>Prefer concise bullets. Six bullets per slide is a practical ceiling.</li><li>Treat missing or mistyped file paths as hard failures.</li></ul><h3>Deck rules</h3><ul><li>Use a title slide plus focused status slides.</li><li>Put screenshots and diagrams in appendix slides unless the user explicitly wants them inline.</li><li>Keep slide titles explicit: <code>What Changed</code>, <code>Risks</code>, <code>Asks</code>, <code>Appendix</code>, or equivalent.</li></ul><h2>Bundled Scripts</h2><ul><li><code>scripts/init_artifact_deck_manifest.py</code></li><li>Build a manifest from markdown sections, direct bullet slides, and optional image appendix entries.</li><li><code>scripts/check_artifact_deck_inputs.py</code></li><li>Validate manifest structure, bullet availability, and image paths.</li><li><code>scripts/build_artifact_deck.py</code></li><li>Generate the <code>.pptx</code> and a machine-readable build summary.</li><li><code>scripts/render_artifact_deck_summary.py</code></li><li>Render a concise markdown summary with the deck filename, slide count, and a rebuild command template.</li></ul></div> </div> </div> <div id="tab-versions" class="detail-content"> <div class="detail-section"> <h2>版本历史</h2> <p style="margin-bottom:12px;font-size:14px;color:#94a3b8;">共 2 个版本</p> <ul class="version-list"> <li> <div> <span class="version-tag">v1.0.6</span> <span style="font-size:11px;color:#5b6abf;margin-left:8px;background:#eef0ff;padding:1px 8px;border-radius:10px;">当前</span> </div> <div style="font-size:12px;color:#94a3b8;"> 2026-05-21 13:05 安全 安全 </div> </li> <li> <div> <span class="version-tag">v1.0.5</span> </div> <div style="font-size:12px;color:#94a3b8;"> 2026-05-03 10:00 安全 安全 </div> </li> </ul> </div> </div> <div id="tab-security" class="detail-content"> <div class="detail-section"> <h2>安全检测</h2> <div class="sec-grid"> <div class="sec-card"> <h4>腾讯云安全 (Keen)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://tix.qq.com/search/skill?keyword=f851b5b9509c82bb2cd36c60765549bc" target="_blank">查看报告</a> </div> <div class="sec-card"> <h4>腾讯云安全 (Sanbu)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://static.cloudsec.tencent.com/html-report-v2/2026/05/26/433102_d18b7d4ce3cdb9b86792fef37b34ad50.html?q-sign-algorithm=sha1&q-ak=AKID8JMG1bzBC1dz96qNhssfFftujT1NCoFi&q-sign-time=1783284651%3B1814820651&q-key-time=1783284651%3B1814820651&q-header-list=host&q-url-param-list=&q-signature=380dc2e931a4dea8c3823f02dc38dc0c7eaf7bec" target="_blank">查看报告</a> </div> </div> </div> </div> <!-- Recommended Skills --> <div style="margin-top:24px;"> <h2 style="font-size:18px;font-weight:600;margin-bottom:16px;">🔗 相关推荐</h2> <div class="rec-grid"> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">dev-programming</span> <h3><a href="/s/data-science-cv-repro-lab">Data Science CV Repro Reviewer</a></h3> <div class="rec-owner">zack-dev-cm</div> <div class="rec-desc">审查计算机视觉实验的可重复性证据、数据集准备度、指标阈值和上线风险。当用户要求谨慎的CV实验时使用。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 1</span> <span style="color:#5b6abf;">📥 983</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">office-efficiency</span> <h3><a href="/s/gog">Gog</a></h3> <div class="rec-owner">steipete</div> <div class="rec-desc">Google Workspace 命令行工具,支持 Gmail、日历、云端硬盘、通讯录、表格和文档。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 937</span> <span style="color:#5b6abf;">📥 188,052</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">office-efficiency</span> <h3><a href="/s/word-docx">Word / DOCX</a></h3> <div class="rec-owner">ivangdavila</div> <div class="rec-desc">创建、检查和编辑 Microsoft Word 文档及 DOCX 文件,支持样式、编号、修订记录、表格、分节符及兼容性检查等功能。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 476</span> <span style="color:#5b6abf;">📥 158,025</span> </div> </div> </div> </div> </div> <script> document.addEventListener('DOMContentLoaded',function(){ document.querySelectorAll('.detail-tab').forEach(function(btn){ btn.addEventListener('click',function(e){ var tab = this.getAttribute('data-tab'); document.querySelectorAll('.detail-tab').forEach(function(b){b.classList.remove('active')}); document.querySelectorAll('.detail-content').forEach(function(c){c.classList.remove('active')}); this.classList.add('active'); var el = document.getElementById('tab-'+tab); if(el) el.classList.add('active'); }); }); }); </script> <div class="footer"> <p>Skill工具集 © 2026</p> </div></body> </html>