Skip to content

feat: multi-agent support, install docs, banner, and site redesign - #5

Merged
vamgan merged 7 commits into
mainfrom
fix/site-counts-and-pages
Aug 25, 2026
Merged

vamgan merged 7 commits into
mainfrom
fix/site-counts-and-pages

Conversation

@vamgan

@vamgan vamgan commented Aug 25, 2026 •

Copy link
Copy Markdown
Owner

The finding that drove most of this

I tested the universal skills installer against this repo:

npx skills add vamgan/declutter --skill '*' --agent claude-code --copy
→ .claude/skills/organizing-bookmarks/SKILL.md

Only SKILL.md. No references/, no scripts/. Every skill reached ../../../references/ for its safety rules, so under any cross-agent install it would have silently lost the backup workflow, the denylist, and the path resolver. Worst possible failure for a tool that writes to a home directory.

Verified the fix by testing a repo that works: superpowers keeps files inside each skill folder, and those do survive. That is not a stylistic choice on their part; the distribution model forces it.

Fix: references/ and scripts/ stay the single source humans edit and tests run against. scripts/sync-skills.py vendors them into each skill, pulling only the scripts that skill actually mentions. CI fails if copies drift, and a test rejects any ../ in a skill body.

Multi-agent support

npx skills add vamgan/declutter now installs into Claude Code, Cursor, Codex, Gemini CLI, OpenCode, and Windsurf. The plugin remains a convenience for Claude Code, not a requirement.

Site

  • Install section added. The site never said how to install it, which was the biggest gap on the page.
  • Fake terminal removed. A product UI simulated from styled divs is a tell. Replaced with the clutter-to-order composition: scattered panes settle from disorder, ordered rows file in one at a time. The animation is the claim.
  • Agent-neutral copy, copy-to-clipboard buttons, all motion gated on prefers-reduced-motion.

Banner

No image generator was available, so the banner is authored as HTML and rasterised with headless Chrome at 2x, which buys real blur and layered depth that hand-written SVG cannot. banner.html is the source; PNGs are build output via scripts/build-assets.sh.

README

Rewritten around installing-first, with a theme-aware banner, a skills table carrying install names, a disclaimer, and a questions section.

Also in here

  • Browser count corrected to 10 everywhere, with tests deriving it from the code
  • The "one line in a table" claim corrected to three lines across two files; the omitted line is the one whose absence caused the Opera bug, and the contributor guide now explains why a partial addition is dangerous
  • Pages deploy workflow

109 tests, green on Linux, macOS, and Windows across Python 3.10 and 3.13.

vamgan added 6 commits August 24, 2026 21:52
The site advertised eight browsers and the README nine, while the code
supports ten. Adding Opera never propagated to either.

Both are corrected, and three tests now derive the expected count from
scripts/platforms.py so a published claim cannot drift from the code
again. That drift is exactly what happened here and nothing would have
caught it.

Adds a Pages workflow that publishes site/ on pushes that touch it.
Pages cannot serve from a subdirectory directly, so a workflow keeps the
source where it belongs rather than duplicating the file into /docs.
The site, the README, and the contributor guide all said adding Vivaldi
was one line in a table. It is three lines across two files: the
reference table, the family paths, and PROCESS_NAMES.

The omitted third line is the one whose absence caused the Opera bug. A
path without a process name means running() returns None, a skill cannot
tell the browser is open, and the write is clobbered on quit. The copy
was understating precisely the part that destroys data, and the
contributor guide was the worst place for it to be wrong.

The guide now lists all three registration points and explains why a
partial addition is dangerous, since the test that enforces the pairing
only helps someone who knows why it exists.
No image generator was available, so the banner is authored as HTML and
rasterised with headless Chrome at 2x. That buys real backdrop blur,
layered shadows, and glass depth, which hand-written SVG cannot do, and
keeps the source editable.

The composition states the product without words: scattered panes
resolving into an ordered list.

banner.html is the source. The PNGs are build output. Edit the HTML and
re-run scripts/build-assets.sh; never hand-edit the images.
The site never said how to install it, which was the largest gap on the
page.

Installing now leads, with two paths: npx skills add for any agent, and
the plugin for Claude Code. Commands have copy buttons, and the macOS
permission step is stated where someone will actually hit it.

The hero's fake terminal is gone. A product UI simulated from styled divs
is a tell, and it was the weakest thing on the page. In its place, the
same clutter-to-order composition as the banner: scattered panes settle
from disorder, then ordered rows file in one at a time. The animation is
the product claim, made without words.

Hero copy is now agent-neutral rather than naming Claude.

Motion is gated on prefers-reduced-motion, and the copy button stays
pinned while a long command scrolls beside it.
Leads with the banner, theme-aware via picture so it works against both
GitHub themes.

Installing comes first and covers every agent, not just Claude Code:
npx skills add, the plugin, and copying a folder by hand. A skills table
gives each install name so a reader can take one skill without the rest.

Adds a disclaimer, since these skills write to a home directory, and a
questions section answering what people actually ask first: where files
go, how to undo, whether it needs Claude, and why skill judgment is not
gated by CI.
@vamgan vamgan changed the title fix(site): correct browser count and deploy to Pages feat: multi-agent support, install docs, banner, and site redesign Aug 25, 2026
Studied tasteskill.dev rather than guessing at what it does. Its motion
is not cinematic: two keyframe animations on the whole page, and 265
elements carrying a 0.5s transition on cubic-bezier(.22,1,.36,1). The
character comes from nearly everything responding consistently, not from
big effects.

So easing and duration are now shared tokens, and cards, buttons, chips,
nav links, and rules all transition on them.

Adopted structurally: a floating pill navigation instead of a full-width
bar, an announcement pill with a pinging dot, and the install command
promoted into the hero as its centrepiece. The hero is a single
left-aligned column with the composition below it, bleeding wide behind a
mask, rather than a split.

The nav pill cannot hold six links on a phone, so below 820px it keeps
the brand and the primary action and drops the rest. The stage is a
two-part composition and collapses its own dimensions rather than
overflowing.
@vamgan
vamgan merged commit 1df3f56 into main Aug 25, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant