with one click
html-deck-pipeline-skill
// 端到端 HTML 讲稿流水线技能,适用于”上下文过长””分镜拆分””并行生成””风格控制”等超过 10 页的 HTML 演示任务。采用网站骨架输出模式(CSS 三层架构 + hash 路由 + 自适应缩放),支持一键导出 HTML 和 PPTX。强调分镜先行、风格契约、舞台比例可配置(16:9/4:3/16:10/adaptive)、版本递增与样式多样性。
// 端到端 HTML 讲稿流水线技能,适用于”上下文过长””分镜拆分””并行生成””风格控制”等超过 10 页的 HTML 演示任务。采用网站骨架输出模式(CSS 三层架构 + hash 路由 + 自适应缩放),支持一键导出 HTML 和 PPTX。强调分镜先行、风格契约、舞台比例可配置(16:9/4:3/16:10/adaptive)、版本递增与样式多样性。
| name | html-deck-pipeline-skill |
| description | 端到端 HTML 讲稿流水线技能,适用于”上下文过长””分镜拆分””并行生成””风格控制”等超过 10 页的 HTML 演示任务。采用网站骨架输出模式(CSS 三层架构 + hash 路由 + 自适应缩放),支持一键导出 HTML 和 PPTX。强调分镜先行、风格契约、舞台比例可配置(16:9/4:3/16:10/adaptive)、版本递增与样式多样性。 |
html-deck-pipeline-skill/
├─ SKILL.md
├─ README.md
├─ examples/
│ └─ <style-id>/
│ ├─ style-contract-<style-id>.md
│ └─ style-showcase-<style-id>.html
├─ references/ # 流程规范与参考文档(详见目录内)
├─ templates/
│ ├─ init_topic/
│ ├─ stage-b/
│ │ └─ B-framework-vXX.md
├─ internal-skill/
│ ├─ scrapling-web-fetch/ # 网页抓取与分析(内置)
│ ├─ html-deck-to-pptx/ # PPTX 导出保底方案(Playwright 截图)
│ ├─ web-style-extraction/ # 网页风格提取辅助技能
│ └─ measure-utilization/ # 页面空间利用率检测
├─ container/
│ ├─ index.html
│ ├─ slides-config.json
│ ├─ serve.py
│ ├─ js/
│ │ └─ deck.js
│ └─ css/
│ ├─ config.yaml # 主题与字号配置
│ ├─ common/ # 共享 base.css + components.css
│ ├─ fontsize/ # 字号配置(standard/high-contrast/large)
│ └─ theme/ # 主题 tokens(dark-theme/dark-theme-2/light-theme/qclaw-theme)
├─ scripts/
当前阶段聚焦创建与优化,不包含安装、测试、打包或发布。
说明:凡由 scripts/ 覆盖的任务均为必须脚本执行项;除非脚本报错,不读取脚本源码。
六阶段流水线,不可越级、不可跳过、每阶段独立门禁:
| 阶段 | 名称 | 核心产出 |
|---|---|---|
| A:问 | 需求问询与对齐 | 目标、受众、页数范围、风格资产、冻结快照 |
| B:架 | 结构规划与版本初始化 | 总分总结构、版本号、框架文档、目录就绪 |
| C:镜 | 分镜与风格应用 | 全部页面分镜稿(含完整文案、Emoji、样式标注) |
| D:页 | HTML 页面生成与预览 | 分页 HTML、网站骨架构建、本地预览、自查改进 |
| E:验 | 验收与发布 | 导出单文件 HTML/PPTX、用户验收、版本冻结 |
| F:归 | 归档与经验总结 | 版本归档、改动清单、经验沉淀 |
触发条件与典型场景请使用:references/09-trigger-matrix.md。
工具名兼容说明:本技能中所有
ask_questions均指代 Claude Code 中的AskUserQuestion工具。若目标执行平台的用户交互工具名称不同,请自动映射为平台实际可用的工具名。
A → B → C → D → E → F;禁止跳过、越级或先做后补。v-01、v-02),禁止覆盖旧版。分镜稿、HTML 页面、网站骨架必须使用同一版本号。references/03-storyboard-spec.md §2.2.0。{part_no:02d}-{part_name}-分镜稿.md。HTML 页面存放:slides/<part_id>/<NN-description>.html,页面清单由 slides-config.json 定义。默认流程优先复用已有 style-id,不进入”新建风格契约”流程。
仅当用户显式要求”新建/重写风格契约”时,才加载:
references/08-style-contract-creation-mode.mdreferences/06-style-contract-authoring-guide.mdreferences/01-template-pages-standard.md(style-showcase 模板页规范)若用户要求”参考某个网站的风格”或”从网页中提取设计元素”,同时加载:
internal-skill/web-style-extraction/SKILL.md(网页风格提取辅助技能)internal-skill/scrapling-web-fetch/SKILL.md(网页抓取)样式多样性门槛与页面模式清单详见:references/10-style-diversity-rules.md。
以下约定适用于所有阶段,各阶段不再逐条重复:
{work_dir}/00-input/comms/。文件名格式:{stage_letter}-round{round_no:02d}-{yyyymmdd}.md(单文件包含本轮交互上下文与 AI 结构化总结)。禁止保留 YYYYMMDD 占位文件名。ask_questions 暂停,等待用户确认后方可进入下一阶段。未确认前禁止推进。ask_questions 确认进入下一阶段;交互记录按上述规则落盘。ratio_mode(默认 16:9,可选 4:3 / 16:10 / adaptive),后续阶段不得中途切换。style-id;仅当用户显式要求时进入风格契约创建模式(见 references/08-style-contract-creation-mode.md)。目标、受众、页数范围、ratio_mode、风格资产来源、交付格式、时间约束。ask_questions 获取用户确认后,才允许修改冻结项。references/04-stage-a-question-card.md。ask_questions 与用户交互,而不是一次性自由提问。ratio_mode)与并行策略偏好七类信息。总分总(导航-主体-总结/行动) 或 总分(导航-主体);默认 总分总。references/04-stage-a-question-card.md。屏幕适配的三条具体建议详见 references/05-interaction-accessibility-baseline.md §屏幕适配。
编号与目录结构详见 references/02-numbering-rules.md。
若有未明确项:发起第二轮问询(仅追问未明确项),然后回到 A.2 再次“总结 + 确认”。
若无未明确项且用户明确同意进入下一阶段:执行以下收尾动作并冻结需求:
python scripts/init_topic_folder.py \
--workspace-root "<workspace_root>" \
--topic-folder "<topic_folder>" \
--topic-code "<topic_code>" \
--topic-title "<topic_title>" \
--version "v-XX" \
--style-id "<style_id>" \
--scheme-name "<scheme_name>" \
--record-date "YYYYMMDD"
references/02-numbering-rules.md)
{work_dir}/00-input/{work_dir}/10-storyboards/v-XX/{work_dir}/20-html/v-XX/{work_dir}/90-tests/{stage_letter}-round{round_no:02d}-{yyyymmdd}.md。ratio_mode)按全局交互约定执行,确认”可进入阶段 B”。未确认前只能继续补充 A 阶段材料,不得开始 B 阶段工作。
v-01)。{part_no:02d}-{part_name}-分镜稿.md、HTML 页面 slides/<part_id>/<NN-description>.html、网站骨架目录 v-XX/。{work_dir}/00-input/(含阶段交互记录){work_dir}/10-storyboards/v-XX/{work_dir}/20-html/v-XX/{work_dir}/90-tests/B-framework-v-XX.md(由模板复制并填充)references/11-scope-sizing-and-splitting.md。11-组内分享/docs/4.01主题开发 已采用该思路。ask_questions 与用户确认。ask_questions 之前,必须先输出”细化到页码级别的规划大纲”(至少包含:页码、所属章节、页面类型、该页核心信息),确保用户有足够信息做决策。references/11-scope-sizing-and-splitting.md。templates/stage-b/B-framework-vXX.md{work_dir}/10-storyboards/v-XX/B-framework-v-XX.md。B-raw... / B-summary...,并作为阶段 C 输入资产。v-01。按全局交互约定执行,确认"可进入阶段 C"。
阶段 C 聚焦于内容和结构,不负责视觉风格决策——视觉由主题 CSS 自动渲染。分镜稿描述”页面上有什么、以什么结构组织”。
references/03-storyboard-spec.md 与 references/07-quality-gate-patterns.md。style-contract-<style-id>.md)和风格展示文件(style-showcase-<style-id>.html),了解可用组件类名与布局模式。references/03-storyboard-spec.md。style-id。references/07-quality-gate-patterns.md §1。references/10-style-diversity-rules.md。python scripts/validate_storyboards_generic.py \
--storyboards-dir “<storyboards_dir>” \
--version “v-XX”
source-coverage-strike.md 由 AI 生成,并输出覆盖率自评估(默认门禁阈值 70%)。按全局交互约定执行,总结分镜状态,确认"可进入阶段 D"。
阶段 D 将分镜稿转化为实际的 HTML 页面,构建网站骨架并启动本地预览,确保 AI 和用户能即时查看渲染效果。
<section class=”slide”>。slides/<part_id>/<NN-description>.html。<style> 块。references/19-website-skeleton-spec.md §8(slide 模板格式)。slides/<part_id>/<NN-description>.html。模板格式见 templates/init_topic/slide_section.html。<section class=”slide”> 根元素,不含 <html>/<body>/<style>。components.css 中已有的组件 class(.panel、.card、.chip、table、.quote-box 等)。slides-config.json 的 slides 数组(config 中每项含 part、file、title;parts 和 partOrder 在阶段 B 已冻结,D 阶段不修改)。模板格式见 templates/init_topic/slides-config.json。页面模式类型、背景呈现策略、界面元素布局、示例锚点、执行约束、中间章节组织模式、演讲备注、过渡句。data-layout);最终页面仅保留播放必需属性(如 data-index)。style-contract-<style-id>.mdstyle-showcase-<style-id>.htmlreferences/12-parallel-html-generation-playbook.md。references/05-interaction-accessibility-baseline.md。slides/<part>/<NN-desc>.html 放好。python container/serve.py <target_dir> --theme <theme_name>,脚本从 container/ 直接提供骨架文件,同时将 slides-config.json 和 slides/ 路由到目标目录——无需复制任何文件。#ch0X/XX-slug);applyAutoScale() 正常触发,无纵向滚动条;internal-skill/measure-utilization/SKILL.md):
python scripts/measure_utilization.py http://localhost:8080 [--threshold 30]
脚本通过 Playwright 对每页 slide 执行 40×40 网格采样,检测有效内容(文本/背景/边框/图片等)的占比;利用率低于阈值(默认 30%)的页面将被标记为稀疏(sparse),需调整字号/密度/卡片排布。结果同时支持 --json 输出落盘到 90-tests/<version>/。<style>/<script> 标签;components.css 仅含跨章节共享规则。ask_questions 获取用户确认(确认是否修改、先改哪些项、接受的取舍边界)。90-tests/<version>/。display 属性(尤其是 display: grid 对文本宽度的约束),详见 references/21-css-layout-pitfalls.md。Ctrl+Shift+R)或用带时间戳的 URL 验证,避免缓存干扰。ask_questions 提示用户在浏览器中查看完整 deck 效果,收集修改意见。v-XX/style/<part_id>.css 中添加章节样式(使用 .part-<part_id> 命名空间,优先使用已有组件和 token 变量)。模板格式见 templates/init_topic/style_part.css。references/18-d4-review-question-card.md。按全局交互约定执行,确认”可进入阶段 E”。收口仅做确认,不在此环节进行额外修改。
阶段 E 聚焦于导出静态文件、用户最终验收与版本冻结。网站骨架已在阶段 D.2 构建并启动,阶段 E 不再重复构建。
exportToSingleHTML() 函数;file:// 协议打开且功能正常(翻页、进度条、自适应缩放均可用);{主题}-{版本}.html,落盘到 20-html/v-XX/。exportToPPTX() 函数;internal-skill/html-deck-to-pptx/ 的 Playwright 截图方案——逐页截图后组装 PPTX,详见该子技能的 SKILL.md。{主题}-{版本}.pptx,落盘到 20-html/v-XX/。10-storyboards/v-XX/ 下的对应分镜稿,确保分镜稿文案与定版 HTML 严格一致。20-html/v-XX/ 目录(含 HTML、PPTX 及全部 slides 源文件)。20-html/v-XX/ 目录整体作为正式版本冻结。100% / 125% / 150% 三种缩放下的首屏与章节页。版本升级(定版后新需求):定版冻结后若用户提出新想法或修改需求,视为新版本启动:
v-03 → v-04)。20-html/v-{旧版本}/ 全部内容到 20-html/v-{新版本}/。10-storyboards/v-{旧版本}/ 全部内容到 10-storyboards/v-{新版本}/。python container/serve.py <新版本target_dir> --theme <theme_name>。按全局交互约定执行,确认”本轮收口”或”进入阶段 F 归档总结”。未确认前不得私自启动重构或风格重写。
ask_questions 询问用户“是否将经验教训回传到技能目录(SKILL.md / references/)”。references/13-run-checklist.mdreferences/14-failure-signals-and-recovery.mdreferences/15-acceptance-criteria.mdreferences/16-delivery-principles.mdreferences/17-style-namespacing-rules.mdreferences/19-website-skeleton-spec.mdreferences/21-css-layout-pitfalls.md审计项目的 AI agent harness 配置,评估完备性和合理性,检测反模式,给出优先级排序的改进建议。当用户想要审查 harness 配置、询问 harness 质量,或说"harness audit"、"检查harness"、"harness评分"、"harness检查"时使用。
将HTML幻灯片演示文稿截图并生成PPTX文件。当用户需要把HTML slides导出为PPT、将HTML演示文稿转成PPTX、对HTML幻灯片逐页截图打包时激活。Convert HTML slide decks to PPTX by screenshotting each slide and assembling into a PowerPoint file. Activates when user needs to export HTML slides to PPT, convert HTML deck to .pptx, screenshot HTML presentation pages.
测量 HTML 演示文稿每页的空间利用率,找到过于空旷的页面。使用 Playwright 渲染 + 网格采样方法。当用户想检查页面密度、找空白页面、优化页面布局或询问"空间利用率"时使用。
使用 Scrapling 抓取、清洗、分析网页并生成结构化数据或中文报告。适用于 scrape / crawl / fetch / extract / summarize 网站内容、profile/activity feed、回答/文章/帖子列表、近 1 年动态、批量网页调研,以及用户明确提到 401/403、反爬、Cloudflare、登录受限、signin/login、need_force_login、需要 cookies/token、动态渲染、滚动加载、批量抓取、站点主题分析、网页证据收集等场景。特别适合知乎、专栏、公众号、博客、列表页+详情页链路。核心使用场景:批量采集多页/多站内容、突破访问受限(403/Cloudflare/反爬屏蔽)、抓取需要鉴权(login/cookie/token)的页面。
系统化版本对比和变更分析。当用户需要版本对比、变更分析、更新日志生成、版本差异比较、升级影响评估时激活。Systematic version comparison and change analysis. Activates when user needs version comparison, change analysis, update log generation, version diff, or upgrade impact assessment.
系统化代码分析技能,用于代码质量评估、技术债务识别、性能优化分析和架构重构评估。采用"总-分-总"结构化分析方法,支持多轮迭代分析,生成量化指标和改进建议。适用于需要进行代码审查、系统分析、重构规划等场景。