Skip to content
Back to skills

Gtm Workflow Gif Generation

ASecurity

Generate workflow-style GTM GIFs from validated HTML demo reports using synthetic scene slides plus Playwright/Pillow scroll capture, with Python 3.12 fallback and GIF size optimization.

  • 17 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 9, 2026
toolspythongogitapi

Works with

  • claude code
  • api

Security analysis

A100/100

Scanned September 24, 2026

npx -y skills add vamseeachanta/workspace-hub --skill gtm-workflow-gif-generation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gtm Workflow Gif Generation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Gtm Workflow Gif Generation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vamseeachanta-gtm-workflow-gif-generation/badge)](https://www.skillsdirectory.com/skills/vamseeachanta-gtm-workflow-gif-generation)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: gtm-workflow-gif-generation
description: Generate workflow-style GTM GIFs from validated HTML demo reports using synthetic scene slides plus Playwright/Pillow scroll capture, with Python 3.12 fallback and GIF size optimization.
version: 1.0.0
category: workspace-hub-learned
tags: [gtm, gif, playwright, pillow, demo, workflow, digitalmodel]
---

# GTM Workflow GIF Generation

Use when a demo/report already has a validated HTML artifact and you need a reusable GIF that tells the full story:
prompt -> setup -> execution -> report -> browser walkthrough.

## When to use
- A report-scroll GIF already exists but is not enough for GTM
- You need one deterministic, reproducible workflow GIF per demo
- The HTML report is already validated and present under `examples/demos/gtm/output/`

## Core pattern
1. Keep the generator local to `examples/demos/gtm/media/`.
2. Reuse the existing workflow generator structure from another demo if available.
3. Build 5 synthetic HTML scenes with shared dark-theme CSS:
   - prompt
   - repo/code setup
   - analysis execution/progress
   - report/artifact output
   - browser walkthrough label
4. Render those scenes with Playwright headless Chromium.
5. Append a scroll-through of the real validated HTML report by taking a full-page screenshot and cropping viewport-sized frames.
6. Assemble frames into a GIF with Pillow.
7. Update `examples/demos/gtm/media/README.md` with:
   - deliverable row
   - generation note
   - regeneration command
8. Commit/push the GIF, generator script, and README together.

## Important implementation details
- Prefer `python3.12` directly if the script imports `playwright.sync_api`; `uv run python` may use a Python without Playwright installed.
- For local HTML reports with external Plotly CDN assets, use:
  - `page.goto(..., wait_until="domcontentloaded")`
  - then `page.wait_for_timeout(5000)`
  instead of `networkidle`, which can hang or fail.
- Keep constants aligned across demos:
  - `WIDTH = 1024`
  - `HEIGHT = 640`
  - `FRAME_DURATION_MS = 120`
  - `SCROLL_STEP = 80`
- Hold each synthetic slide for several duplicate frames, then insert a few dark transition frames.
- For the walkthrough, do one full-page screenshot and crop it into scrolling frames rather than driving interactive scrolling in real time.

## Size-control lesson
If the generated GIF exceeds the repo hook threshold (5 MB), re-quantize it after generation:
- reopen GIF with Pillow
- quantize frames to ~128 colors
- resave with `optimize=True`
This was enough to shrink a 5.4 MB workflow GIF to ~3.6 MB without changing the underlying scene logic.

## Minimal file set per demo
- `examples/demos/gtm/media/<demo>_workflow.gif`
- `examples/demos/gtm/media/generate_<demo>_workflow_gif.py`
- `examples/demos/gtm/media/README.md`

## Recovery / orchestration lessons
- In tmux/interactive Claude Code sessions, the useful files may already exist even if the session later hits an Anthropic API 500.
- After any interactive failure, verify externally before retrying:
  - `git status --short --branch`
  - `ls -lh examples/demos/gtm/media/...`
- If the artifact exists and only commit/push remains, finish that outside the Claude session instead of rerunning the whole generation.

## Good commit pattern
- `feat(gtm): add Demo N end-to-end workflow GIF for #2288`

## Closeout rule
Once all demos in scope have workflow GIFs and README regeneration notes, close the follow-up issue and move downstream to gallery/embed work rather than continuing asset generation.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.