关于 web-shader-extractor
web-shader-extractor 是用于调查网页着色器与 Canvas 视觉效果并在本地重放的技能。它引导先收集和验证证据,再构建可编辑项目。
主要功能
- 01针对 WebGL、WebGPU 和 Canvas 视觉效果
- 02通过分阶段门槛推进调查
- 03使用源码与运行时证据
- 04定义重放和基线验证步骤
- 05提供针对平台的参考指南
适用场景
- 01在本地重现网页动画背景
- 02调查产品着色器或交互场景
- 03构建与证据匹配的视觉基线
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lixiaolin94/ skills --skill web-shader-extractor安装后在 Claude Code 中输入/web-shader-extractor确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/capture-backends.mdevidence-policy.mdoperating-contract.mdqa-failure-policy.mdrecon-kernel.mdreplay-policy.mdshaders-com.mdsource-analysis.mdsurface-discovery.mdtarget-lock.mdthree-shader-reconstruction.mdtool-capability-matrix.mdunicorn-studio.mdscripts/fetch-rendered-dom.mjsscan-bundle.shtemplates/extraction-report.mdknown-gaps.mdqa-report.mdreplay-manifest.jsonrun-state.jsonscout-card.json详细介绍
Web Shader 提取器
用于调查 WebGL / WebGPU / Canvas 渲染并在本地重放的索引。 从目标视觉效果入手。锁定表面组。追踪源码或运行时事实。构建可运行的基线。然后再将其整理为项目。
路由约定
此文件是索引,不要将其视为完整操作手册。开始执行任务前,请阅读:
references/operating-contract.mdreferences/recon-kernel.md
然后只加载当前状态所需的专项参考资料。 不要将大量证据、捕获内容和生成的输出放入对话中。 将它们存储在用户的输出目录中。
适用场景
- 提取网页的 WebGL、WebGPU、Canvas2D、OffscreenCanvas、着色器或动画画布效果。
- 在本地重放动画背景、产品着色器、交互式 WebGL 场景或 Canvas 视觉效果。
- 先构建与证据匹配的基线,再构建可编辑项目。
- 调查与目标绑定的着色器/渲染图/时序/资源/输入事实。
不要将其用于普通 DOM/CSS 仿制、静态截图、通用网站复制、无关的 JavaScript 反混淆或产品 UI 重新设计。 仅在任务有着色器/画布目标时使用。
核心规则
- 先绑定目标,再绑定框架:全局 Three.js、平台或着色器特征,在与目标表面组关联之前都只是一个假设。
- 探测必须具有区分性:运行探测前,说明它要区分哪些有效假设,以及每种结果会排除什么。与所有候选项都一致的证据较弱;只有一个候选项能预测的证据较强。
- 先取证,再实现:源码、运行时对象、帧捕获、源码映射和公开的结构化定义,优先于视觉拟合。
- 不得捏造数值:通过假设状态和
SOURCE/PARTIAL/GUESS表示置信程度,绝不编造概率或分数。 - 先建立基线,再整理为项目:绝不为了清理、简化或原生转换而覆盖已验证的基线。
- 如实标记:实现关键事实必须标为
SOURCE、PARTIAL或GUESS;未标记的值一律视为GUESS。 - 不得通过调参补偿:不要调整亮度、时间、颜色、偏移量或噪声,以掩盖管线证据缺失。
- 门控产物是状态转换的保护条件:如果所需产物缺失、不完整,或门控关键字段中含有占位符,则状态尚未推进。
- 仅在产品范围变更或外部访问/权限受阻时提问。
- 使用朴素记录:陈述事实、证据路径、当前未知项和下一步操作。避免使用隐喻、宽泛论断和缺乏依据的结论。
状态路由
完整的状态机、分支和门控语义见 references/recon-kernel.md。门控顺序固定:
TARGET_LOCKED 必须先于深入的源码/包分析。
锁定前,只允许执行与 nextProbe 相关的有限源码探测。
REPLAY_READY 必须先于实现。
BASELINE_VERIFIED 必须先于项目化。
参考路由器
仅加载当前状态所需的内容:
| 需求 | 阅读 |
|---|---|
| 全局约定、事实标签、完成状态 | references/operating-contract.md |
| 内核、初始协议、状态流、自主性、预算 | references/recon-kernel.md |
| 表面发现与视觉归因 | references/surface-discovery.md |
| 锁定标准、绑定目标的证据、范围、Three.js 绑定 | references/target-lock.md |
| 证据标签、台账、未知类别、敏感数据 | references/evidence-policy.md |
| 工具能力选择 | references/tool-capability-matrix.md |
| WebGL、WebGPU 和 Canvas2D 捕获事实 | references/capture-backends.md |
| Source map、bundle 切片、配置、编码定义 | references/source-analysis.md |
| 重放就绪状态、路由、基线、技术栈选择、项目化 | references/replay-policy.md |
| QA、故障路由、严重性、不匹配特征 | references/qa-failure-policy.md |
| Three.js 着色器注入或 TSL 重建 | references/three-shader-reconstruction.md |
| Unicorn Studio 目标 | references/unicorn-studio.md |
| shaders.com / TSL 目标 | references/shaders-com.md |
工具与产物策略
工具是可替换的能力,而非前置条件。首先记录可用能力配置:
navigate, runtime-eval, preload-script, network-metadata, network-body,
source-map, canvas-screenshot, interaction, frame-capture-webgl,
frame-capture-webgpu, local-run, multi-frame-compare
仅当 Playwright 已可用时,才将 scripts/fetch-rendered-dom.mjs 用作可选的清单辅助工具。
仅针对绑定目标的 bundle 切片或精确的 nextProbe 使用 scripts/scan-bundle.sh。
脚本输出属于假设性证据,无法单独满足表面归因、目标锁定、重放就绪或 QA 门槛。
将随附模板用作模式,而非自由格式的笔记:
templates/scout-card.jsontemplates/replay-manifest.jsontemplates/run-state.jsontemplates/qa-report.mdtemplates/known-gaps.mdtemplates/extraction-report.md
平台适配器
仅在绑定目标的证据指向相应平台后,才加载平台参考资料:
- Unicorn Studio:
references/unicorn-studio.md - shaders.com / TSL:
references/shaders-com.md - Three.js 着色器注入或 TSL:
references/three-shader-reconstruction.md
如果没有适用的适配器,请遵循 references/capture-backends.md 中针对通用 WebGL、WebGPU 或 Canvas2D 的捕获方法。