Repository navigation
Releases
0.9.0
Lessons from taking a real product through a brand, scale and claims pass: a claims audit in dogfood, workspace at scale and new loading, motion and palette guidance in web-design, and brand scenes in web-graphics. See CHANGELOG.md.
astack 0.8.0
Measured checks for defects a settled screenshot hides, and a harder rule for launch stills. No library was added.
shoot.mjsreads the rendered page and reports inputs under 16px, a viewport that disables zoom,:hoverrules outside@media (hover: hover), selectable controls on a narrow viewport, and a missing tap-highlight reset.--shiftcompares a loading page with the settled page. It exits 1 when a shared region or the document scroll height moved by more than 1px, and exits 2 when no region was marked and the scroll height did not change. It does not read the performance timeline's layout-shift entries: headless Chrome can report none for a jump that has already painted, and a score of 0 would pass that page.web-designstates how to build that loading layout, andmobile.mdsays which of those lines a desktop capture can see.dogfoodandastack's completion checks read them before calling a phone journey done.deslopnames this season's UI tells with examples (pill tags, italic headline words, dividers, opacity ladders, borders on every box, over-detailed diagrams, decorative breadcrumbs, section numbers).slop-scan.mjsflagssection-indexandopacity-ramp.launchandweb-graphics: a bento, device or clip may frame a real capture. It may not redraw the screen, and it may not show a number the agreed copy file does not contain.- New
shift-and-stilleval fixture, with the planted failures named. The blind comparison was not run. The deterministicshoot.mjs --shiftrun is recorded inevals/RESULTS.md.
astack 0.7.1
Keep coupled agent work in one context and load skills as needed. Independent review remains available for risk, judgment and repository requirements. Discovery descriptions are 49.9% shorter, with the routing cues checked in repeated Claude and Codex runs.
Also fixes incomplete routing runs passing silently and preserves explicit delivery targets and existing authority. Required repository checks, package boundaries and release verification remain in place.
Validation: 300/300 final routing cases, repeated release-verification findings retained, eight checkout implementations passing browser checks, native package/installer tests and offline packed-CLI smoke. Execution timing was mixed; no general speedup is claimed.
npm: astack-skills@0.7.1.
astack 0.7.0
Review gates and video from LangChain's open-source design agent, Content Studio (Apache-2.0), credited where they are used. Its idea is that the model makes the creative calls and code renders, measures and refuses.
-
New
render-gate.mjsinweb-design,web-graphicsandlaunch. It renders a page, card or slide at each size as a fresh layout, then fails:- a brand face that silently fell back (Chrome reports which font actually painted each run);
- supplied copy that changed, or a deliberate clamp that cuts required copy;
- text clipped by its box or cropped by the canvas edge;
- painted colours and faces outside the DESIGN.md tokens.
Exit 2 means it could not check and is never a pass.
-
New
film.mjsinlaunch. It renders an HTML composition to MP4 frame by frame: every CSS and Web Animations animation is paused and seeked, so a demo clip is code and every take is identical. It fails:- a black or flat opening;
- a film where nothing moves;
- clock-driven motion, found by re-seeking frames and comparing them;
- the wrong size or duration;
- failed fonts or requests.
-
New
web-designreview rubric:- three gates before scoring (accuracy, the deterministic gates, the ask);
- six areas scored 1 to 5 with evidence;
- a ship / fix / rework verdict;
- a failure-pattern table.
astack's independent verifier andlaunchuse it for visual work. -
launchbuilds share cards withrender-gate.mjsand demo clips withfilm.mjs. A new film reference covers storyboard, animatic, motion, contact sheets and changelog clips from a pull request. -
web-designanti-patterns gain a section for sets and assets: scaled instead of recomposed, template sameness, silent font fallback, faked weight. -
New
launch-assetscomparison eval task. Scored blind: astack 19, baseline 17. Both fixed every planted problem; astack's clip re-rendered bit-identically and its cards stayed on tokens. -
shoot.mjs,render-gate.mjsandfilm.mjsnow stop Chrome's helper processes along with the browser, so the temporary profile is removed cleanly on Linux instead of failing the run.
astack 0.6.0
Motion and mobile craft from Emil Kowalski's skills and animated stickers from fun-isometric by Kelvin Adithya, both MIT and credited where they are used.
web-graphicsmakes animated sticker icons: flat-fill slabs with a thick outline that move on After Effects grade keyframe presets, for onboarding, empty states and rewards. The kit (kit/fun.ts,motions.ts, 24 worked icons, a React<Sticker>) is bundled, recolours from a brand's two colours, and plays live on canvas or exports to alpha webm and HEVC with a poster.- New
fi.mjschecks, sheets, frames and exports stickers. It is a dependency-free port of the original renderer: types are stripped per file and Chrome is driven over the DevTools protocol, so nothing installs Playwright at run time. Runs on Node 22.13+ or Bun. web-designmotion reference rewritten around a decision order: whether it should animate at all (never keyboard or high-frequency actions), ease by what is happening (neverease-inon UI), durations under 300ms, press feedback, origin-aware popovers, interruptible transitions and@starting-style, gesture rules, and a symptom table for janky animation. Reviews come back as a Before / After / Why table.- New
web-designreferences: a mobile baseline (tap flash, stuck hover,dvh/svh, input zoom, safe areas,touch-action) and a worst-case data method with a catalogue of plausible values that break layouts. slop-scan.mjsflagstransition: all,ease-inon UI,scale(0)entrances, disabled zoom and100vhapp shells.- Routing eval gains nine cases for stickers, janky motion, mobile feel and worst-case data.
astack 0.5.0
Each skill was reviewed against tstack, pstack, gstack, impeccable, Anthropic's skills and the slop packs, and kept, rewritten or extended accordingly.
- New
oneshot: idea to merged, deployed, verified live and announced. User-invoked only.astacknow stops at a review-ready PR. astackcopies its stages into the todo list and closes each with proof or a reason, has an explicit grant and a short list of when to ask, and waits on CI instead of stopping.shipclassifies CI failures before retrying, treats review comments with scepticism, gets an independent verdict from an agent that didn't write the change, re-checks right before merging and reads the merge back.web-designnames the current AI-design defaults (warm cream with serif and terracotta, dark with an acid accent, broadsheet hairlines, template chrome), plans in two passes with a generic test, and scales boldness by mode.slop-scan.mjsdetects those defaults and newer prose tells (copula avoidance, trailing -ing clauses, false agency, inflated significance, vague attribution).pr-state.mjsfalls back to REST when GitHub's GraphQL limit runs out.pr-stateandverify-livenow ship inside every skill that uses them.dogfoodgains diff-aware mode and red-first, one-commit-per-fix repairs;contextanchors in git history and tags threads;delivery-planskips trivial changes and settles questions by prototype;delivery-updatescans for secrets before sending.shoot.mjsworks on CI runners (--no-sandboxunder CI or root) and reports why Chrome failed to start.- Plain-English docs, a personal README, and a cleaner repo.
- Cut to 11 skills.
delivery-planfolds intoastackas a planning reference andmotionintoweb-designas a motion reference.delivery-updateandautomateare gone: a capable model writes a good update or a cron job without them, andoneshotnow carries the update step itself.
npx astack-skills@latest install --agent all