web-shader-extractor logo

web-shader-extractor

web shader extractor

SKILL.md

Full skill instructions

Web Shader Extractor

Index for WebGL / WebGPU / Canvas rendering investigation and local replay. Start from the target visual. Lock the surface group. Trace source or runtime facts. Build a runnable baseline. Then projectize.

Router Contract

This file is the index. Do not treat it as the full operating manual. Before task action, read:

  • references/operating-contract.md
  • references/recon-kernel.md

Then load only the focused references needed by the current state. Keep large evidence, captures, and generated outputs out of the conversation. Store them in the user's output directory.

Use This For

  • Extracting a webpage WebGL, WebGPU, Canvas2D, OffscreenCanvas, shader, or animated canvas effect.
  • Replaying an animated background, product shader, interactive WebGL scene, or Canvas visual locally.
  • Building an evidence-matched baseline first, then an editable project.
  • Investigating target-bound shader/render graph/timing/resource/input facts.

Do not use this for ordinary DOM/CSS cloning, static screenshots, generic website copying, unrelated JavaScript deobfuscation, or product UI redesign. Use it only when the task has a shader/canvas target.

Core Rules

  • Target-bound before framework-bound: a global Three.js, platform, or shader signature is only a hypothesis until tied to the target surface group.
  • Probes must discriminate: before running a probe, state which live hypotheses it separates and what each outcome eliminates. Evidence consistent with every candidate is weak; evidence only one candidate predicts is strong.
  • Evidence before implementation: source, runtime objects, frame captures, source maps, and public structured definitions outrank visual fitting.
  • No fabricated numbers: confidence is expressed with hypothesis status and SOURCE/PARTIAL/GUESS, never invented probabilities or scores.
  • Baseline before projectization: never overwrite a verified baseline for cleanup, simplification, or native conversion.
  • Honest labels: implementation-critical facts are SOURCE, PARTIAL, or GUESS; unlabeled values are treated as GUESS.
  • No compensation tuning: do not adjust brightness, time, color, offsets, or noise to mask missing pipeline evidence.
  • Gate artifacts are transition guards: if the required artifact is missing, incomplete, or has placeholders in gate-critical fields, the state has not advanced.
  • Ask only for product scope changes or external access/permission blockers.
  • Use plain records: state the fact, evidence path, current unknown, and next action. Avoid metaphor, broad claims, and unsupported conclusions.

State Router

The full state machine, branches, and gate semantics live in references/recon-kernel.md. The gate order is fixed:

TARGET_LOCKED must precede deep source/bundle work. Before lock, only narrow source probes tied to nextProbe are allowed. REPLAY_READY must precede implementation. BASELINE_VERIFIED must precede projectization.

Reference Router

Load only what the current state needs:

NeedRead
Global contract, fact labels, completion statesreferences/operating-contract.md
Kernel, initial protocol, state flow, autonomy, budgetsreferences/recon-kernel.md
Surface discovery and visual attributionreferences/surface-discovery.md
Lock criteria, target-bound evidence, scope, Three.js bindingreferences/target-lock.md
Evidence labels, ledgers, unknown classes, sensitive datareferences/evidence-policy.md
Tool capability selectionreferences/tool-capability-matrix.md
WebGL, WebGPU, and Canvas2D capture factsreferences/capture-backends.md
Source maps, bundle slices, config, encoded definitionsreferences/source-analysis.md
Replay readiness, routes, baseline, stack choice, projectizationreferences/replay-policy.md
QA, failure routing, severity, mismatch signaturesreferences/qa-failure-policy.md
Three.js shader injection or TSL reconstructionreferences/three-shader-reconstruction.md
Unicorn Studio targetreferences/unicorn-studio.md
shaders.com / TSL targetreferences/shaders-com.md

Tool And Artifact Policy

Tools are replaceable capabilities, not prerequisites. First record the available capability profile:

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

Use scripts/fetch-rendered-dom.mjs only as an optional inventory helper when Playwright is already available. Use scripts/scan-bundle.sh only on target-bound bundle slices or a precise nextProbe. Script output is hypothesis evidence. It never satisfies Surface Attribution, Target Lock, Replay Ready, or QA gates by itself.

Use bundled templates as schemas, not free-form notes:

  • templates/scout-card.json
  • templates/replay-manifest.json
  • templates/run-state.json
  • templates/qa-report.md
  • templates/known-gaps.md
  • templates/extraction-report.md

Platform Adapters

Load platform references only after target-bound evidence points there:

  • Unicorn Studio: references/unicorn-studio.md
  • shaders.com / TSL: references/shaders-com.md
  • Three.js shader injection or TSL: references/three-shader-reconstruction.md

If no adapter fits, follow generic WebGL, WebGPU, or Canvas2D capture in references/capture-backends.md.