---
name: weekly-stacks
description: Create editable weekly accumulation comparisons with a delayed second history, synchronized rows and a highlighted missing interval.
version: 1.0.4
---

# Weekly Stacks

Use for two histories measured with the same recurring units and a shared weekly scale. This is a parameterized HTML/GSAP renderer: an Agent supplies a structured brief. It does not infer statistics or create an arbitrary film from prose.

Read `references/brief.md` and `references/direction.md`. Author a new JSON brief outside this Skill. State whether the numbers are illustrative or sourced. Every block represents one unit of its category during one week. Use equal weekly units; quantities of different sizes need a different chart.

Run with Node 22.x:

```sh
npm install --ignore-scripts --no-audit --no-fund
node scripts/create.mjs --brief /absolute/brief.json --out /absolute/new-project --palette estuary
node scripts/render.mjs /absolute/new-project /absolute/output.mp4
```

HyperFrames is fixed at 0.8.30. FFmpeg and a supported Chromium browser are external prerequisites. The renderer propagates failures and stops after ten minutes. Dependencies may need network access for installation. Fonts and GSAP are bundled with their required notices, so generated projects use local assets.

Choose `estuary`, `afterglow`, `folio` or strictly neutral `carbon`. Content and choreography remain constant across palettes. Chinese text automatically selects Smiley Sans with Noto Sans SC fallback. Use `--zh-face noto` for Noto Sans SC, or `--font /absolute/font.ttf` for a custom font you have permission to use. Custom fonts keep the bundled CJK fallback.

Generated `index.html`, `brief.json` and `project.json` are editable. The latter records geometry, animation beats, font and duration. `window.__timelines['weekly-stacks']` exposes the paused GSAP timeline to HyperFrames. `window.weeklyStacks.seek(seconds)` supports manual inspection. There are no clocks, random effects or CSS animation loops.

Inspect the first arrivals, delayed heading, paired weekly arrivals, gap reveal and reading hold. Verify week labels, block count, absent interval and the final totals. Test backward and forward seeking through zero, dense input, CJK and every palette. View native 1920×1080 encoded frames and normal-speed playback. A successful encode alone does not establish visual or user acceptance.

The default output is silent, has no raster or presenter slots, and contains no music workflow. Supplying an audio cue list does not create a mix. Extend the editable project with an authorized audio workflow if a brief requires sound, and independently validate the final audio stream and listening result.
