Sitesmith skill

sitesmith — Demo/output image published by the author in the repo (repo README): SiteSmith project page showing its browser release rig and a deliberately blocked control page

Illustration · not a resultFrom the byensitmagnus/sitesmith README — shows the whole collection, not only this skill.source ↗

Design, build, redesign, audit and polish websites and web apps that do not look AI-generated.

by byensitmagnus·MIT license·★ 0 Stars on the repo·GitHub ↗

Use now

Files of Sitesmith

byensitmagnus/main1 file shown
SKILL.md
Show the full text196 lines

sitesmith

A website is not done when the code compiles, and it is not done when the checks pass. The checks are a floor. It is done when it has the fourteen things in v2/00-done.md, and has been rendered, looked at, measured and corrected.

Read v2/. That is the skill. The pipeline it follows is declared once, in PIPELINE.json — which is also what the command vocabulary and the provider packages are generated from. references/ is the upstream material this descends from, kept for attribution and not read during a build.

Progressive disclosure is mandatory. What is always in context is this file, the sixty core rules, and one mode file. Everything else is read at its step and put down again. A routine task must never pull the whole rule set or the 1.4 MB of data into context.


1. Route

Two questions, in this order.

Which mode is this page? Route per page, not per project — a shop's About page is marketing and its order admin is product UI. One design system across all of them.

Mode The visitor is Open
M Marketing Deciding whether to care. Company sites, services, launches, portfolios, editorial. v2/modes/marketing.md
E E-commerce Deciding whether to buy, and from whom. Listings, product pages, checkout. v2/modes/ecommerce.md
P Product UI Already committed, and now working. Dashboards, admin, forms, consoles. v2/modes/product-ui.md

Which task is this?

The situation Task Start at
Empty directory, no frontend stack SETUP references/10-setup.md, then NEW
"Build a site / page / portfolio" NEW Step 1 below
Existing code, "redesign / make it better" REDESIGN references/06-redesign-audit.md — audit before touching anything
"Build a pricing table / nav / hero" COMPONENT blocks/
"Review this UI / is it accessible?" AUDIT v2/00-done.md, then the mode file

2. Three-command product loop

The ordinary journey is init → build → audit. The internal order still matters, but the user should not have to operate nineteen implementation steps. The exact machine-readable sequence lives in PIPELINE.json.

init — decide what will be built
  1. Write BRIEF.md, including the three justified 1–10 dials: visual density, motion intensity and aesthetic boldness.
  2. Inspect the existing repository and run scripts/stack-router.mjs detect . --write. It selects one adapter; Next.js and Astro outrank their optional React dependency.
  3. Write the evidence, brand and asset records. Plan what every picture carries before sourcing or generating it.
  4. Build three structurally different comps. Pass the dials to candidate search, choose one with reasons, and make the surface, label, figure and depth grammar explicit. Check the winner against the shared direction history, then write DIRECTION.md, DESIGN-SYSTEM.md and INTERACTIONS.md from it.

The order is evidence → direction → contract. A contract written before the direction is the mechanism that made unrelated subjects converge on one house style.

python scripts/search.py "<subject> <trade>" --candidates \
  --density <1-10> --motion <1-10> --boldness <1-10>
node scripts/direction-check.mjs directions/
node scripts/direction-history.mjs check DIRECTION.md <winner-url> --project <name>
build — make it work in the detected stack

Structure the argument, read only .sitesmith/STACK.md and its named adapter, implement every state, and wire at least one journey per surface. The edit loop renders only the changed surface:

node scripts/verify.mjs <changed-url> --out .sitesmith/shots/preview --no-axe

That explicit axe waiver is preview-only. It keeps a visual iteration cheap; it can never produce a release verdict.

audit — make one release decision

Run the canonical verification once, including axe, direction fidelity, token drift, journeys and the production gate. Re-check the finished render against the shared direction history and record it only when it is new. Open the screenshots and write one specific critique. Then walk all fourteen items in v2/00-done.md and write PRODUCTION-REPORT.md, including every failure.

node scripts/verify.mjs <url> --out .sitesmith/shots
node scripts/direction-fidelity.mjs DIRECTION.md <url>
node scripts/token-drift.mjs "<pages>" --contract DESIGN-SYSTEM.md
node scripts/journey.mjs journeys/ --base <url>
node scripts/production-gate.mjs "<pages>" --manifest ASSET-MANIFEST.md --production
node scripts/direction-history.mjs commit DIRECTION.md <url> --project <name>

harden reruns only the functional or production checks that failed. polish applies one round driven by a specific screenshot criticism. doctor checks the installation. None is a mandatory fourth phase.

Portfolio diversity, assignment-blinded reviews, sealed keys and container isolation belong to the repository's benchmark lab. They run only for an explicit benchmark task, never while building one customer website. They are mandatory before benchmark pages enter the public showcase: an individual critique pass is necessary and insufficient. The boundary is recorded in RELEASE-MAP.md.

3. Precedence

When two things disagree, the higher row wins.

  1. Accessibility and platform requirements — contrast, touch targets, keyboard, reduced motion. Never overridden by aesthetics.
  2. The brief — the client's context decides, not your preference.
  3. The mode file — one answer for this context beats a general answer.
  4. v2 core — the sixty.
  5. Aesthetic ambition — commit hard to one direction.

references/ does not appear in this list. It is provenance, not authority.

4. What to read

File When
v2/00-done.md First in init, and again at the end of audit
v2/05-evidence.md init — before direction work
v2/10-core.md Once per build
v2/modes/ After routing — one file only
v2/20-direction-lab.md init — after evidence, before the contract
v2/24-asset-plan.md init — before anything is sourced
v2/25-assets.md init, and again during audit
v2/30-contract.md init — after the direction is chosen, never before
v2/40-interaction.md End of init, then journeys in build
v2/50-critique.md audit, after technical verification
blocks/ build
references/06-redesign-audit.md REDESIGN only
references/ Provenance. Not during a build.

Sixty core rules plus one mode file is what you hold while working. The others are read at their step and put down again. That is the constraint.

5. Anti-slop is judgement, not a ban list

The recognisable patterns — purple gradients, blurred orbs, glassmorphism everywhere, bento grids by default, three equal feature cards, pill shapes on everything, decorative icons, huge type over thin content, centred heroes regardless of sector, animation on everything — are defaults reached for without a reason. Each is correct when the brand, the content or the function asks for it.

A brand colour is never slop. The tell is not the hue; it is a gradient chosen because no decision was made.

Hard tells with no legitimate use, and the only things here stated as absolutes: fabricated testimonials, invented customer logos, made-up metrics, fake prices, Lorem Ipsum, "John Doe", "Acme Corp", "Unlock your potential".

The final question, every time: would a designer look at this and say a machine made it?

6. Scripts

Script Purpose Needs
scripts/stack-router.mjs Detect Next.js, React/Vite or Astro and record one adapter Node 18+
scripts/search.py --candidates Three contrasting starts shaped by visible dials, with repeat warnings Python 3.10+
scripts/direction-check.mjs Are the three comps actually three directions Node 18+, playwright optional
scripts/direction-history.mjs Block known SiteSmith recipes and remember passing renders across projects Node 18+, playwright
scripts/verify.mjs Screenshots at 3 widths, axe in both schemes, links, console, overflow, --font-stress Node 18+, npx playwright install chromium
scripts/token-drift.mjs Values used that the contract never declared Node 18+
scripts/journey.mjs Runs the interaction journeys Node 18+, playwright
scripts/production-gate.mjs Placeholders, unmanifested images, empty brand marks, missing journeys Node 18+

The prose still works without the scripts, but an audit cannot pass until the canonical checks have actually run. If a browser tool is unavailable, open the page manually and report that the mechanical release verdict is missing.

7. Attribution

sitesmith v1 was assembled from four openly licensed projects, credited in NOTICE.md: taste-skill (MIT), ui-ux-pro-max-skill (MIT), frontend-design (Apache 2.0) and impeccable (Apache 2.0). Their material is in references/, and several v2 core rules descend from it.

v2/, blocks/, references/06-redesign-audit.md, references/10-setup.md, scripts/verify.mjs and scripts/token-drift.mjs are original work, MIT. Full provenance: LICENSE-AUDIT.md.

1---
2name: sitesmith
3description: "Design, build, redesign, audit and polish websites and web apps that do not look AI-generated. Use for landing pages, marketing sites, product and e-commerce pages, SaaS sites, dashboards, web apps, local business sites, portfolios and editorial sites, and for improving existing React, Next.js, Astro, Vue, Tailwind, shadcn or plain HTML/CSS projects. Triggers on: build a website, make a landing page, design a page, redesign this, make it look better, fix the design, improve the UI, this looks generic, choose colours or fonts, pick a style, add animations, make it responsive, add dark mode, accessibility pass, hero section, pricing table, dashboard layout, product page, component styling, design system, design review, UI audit."
4license: MIT
5---
6 
7# sitesmith
8 
9A website is not done when the code compiles, and it is not done when the checks pass. The
10checks are a floor. It is done when it has the fourteen things in
11[v2/00-done.md](v2/00-done.md), and has been rendered, looked at, measured and corrected.
12 
13**Read [v2/](v2/README.md). That is the skill.** The pipeline it follows is declared once, in
14[PIPELINE.json](PIPELINE.json) — which is also what the command vocabulary and the provider
15packages are generated from. `references/` is the upstream material this descends from, kept
16for attribution and not read during a build.
17 
18**Progressive disclosure is mandatory.** What is always in context is this file, the sixty
19core rules, and one mode file. Everything else is read at its step and put down again. A
20routine task must never pull the whole rule set or the 1.4 MB of data into context.
21 
22---
23 
24## 1. Route
25 
26Two questions, in this order.
27 
28**Which mode is this page?** Route per page, not per project — a shop's About page is
29marketing and its order admin is product UI. One design system across all of them.
30 
31| Mode | The visitor is | Open |
32| --- | --- | --- |
33| **M** Marketing | Deciding whether to care. Company sites, services, launches, portfolios, editorial. | [v2/modes/marketing.md](v2/modes/marketing.md) |
34| **E** E-commerce | Deciding whether to buy, and from whom. Listings, product pages, checkout. | [v2/modes/ecommerce.md](v2/modes/ecommerce.md) |
35| **P** Product UI | Already committed, and now working. Dashboards, admin, forms, consoles. | [v2/modes/product-ui.md](v2/modes/product-ui.md) |
36 
37**Which task is this?**
38 
39| The situation | Task | Start at |
40| --- | --- | --- |
41| Empty directory, no frontend stack | **SETUP** | [references/10-setup.md](references/10-setup.md), then NEW |
42| "Build a site / page / portfolio" | **NEW** | Step 1 below |
43| Existing code, "redesign / make it better" | **REDESIGN** | [references/06-redesign-audit.md](references/06-redesign-audit.md) — audit before touching anything |
44| "Build a pricing table / nav / hero" | **COMPONENT** | [blocks/](blocks/README.md) |
45| "Review this UI / is it accessible?" | **AUDIT** | [v2/00-done.md](v2/00-done.md), then the mode file |
46 
47## 2. Three-command product loop
48 
49The ordinary journey is **`init → build → audit`**. The internal order still matters, but the
50user should not have to operate nineteen implementation steps. The exact machine-readable
51sequence lives in [PIPELINE.json](PIPELINE.json).
52 
53### `init` — decide what will be built
54 
551. Write `BRIEF.md`, including the three justified 1–10 dials: visual density, motion
56 intensity and aesthetic boldness.
572. Inspect the existing repository and run `scripts/stack-router.mjs detect . --write`. It
58 selects one adapter; Next.js and Astro outrank their optional React dependency.
593. Write the evidence, brand and asset records. Plan what every picture carries before
60 sourcing or generating it.
614. Build three structurally different comps. Pass the dials to candidate search, choose one
62 with reasons, and make the surface, label, figure and depth grammar explicit. Check the
63 winner against the shared direction history, then write `DIRECTION.md`, `DESIGN-SYSTEM.md`
64 and `INTERACTIONS.md` from it.
65 
66The order is **evidence → direction → contract**. A contract written before the direction is
67the mechanism that made unrelated subjects converge on one house style.
68 
69```bash
70python scripts/search.py "<subject> <trade>" --candidates \
71 --density <1-10> --motion <1-10> --boldness <1-10>
72node scripts/direction-check.mjs directions/
73node scripts/direction-history.mjs check DIRECTION.md <winner-url> --project <name>
74```
75 
76### `build` — make it work in the detected stack
77 
78Structure the argument, read only `.sitesmith/STACK.md` and its named adapter, implement every
79state, and wire at least one journey per surface. The edit loop renders only the changed
80surface:
81 
82```bash
83node scripts/verify.mjs <changed-url> --out .sitesmith/shots/preview --no-axe
84```
85 
86That explicit axe waiver is preview-only. It keeps a visual iteration cheap; it can never
87produce a release verdict.
88 
89### `audit` — make one release decision
90 
91Run the canonical verification once, including axe, direction fidelity, token drift, journeys
92and the production gate. Re-check the finished render against the shared direction history and
93record it only when it is new. Open the screenshots and write one specific critique. Then walk
94all fourteen items in [v2/00-done.md](v2/00-done.md) and write `PRODUCTION-REPORT.md`, including
95every failure.
96 
97```bash
98node scripts/verify.mjs <url> --out .sitesmith/shots
99node scripts/direction-fidelity.mjs DIRECTION.md <url>
100node scripts/token-drift.mjs "<pages>" --contract DESIGN-SYSTEM.md
101node scripts/journey.mjs journeys/ --base <url>
102node scripts/production-gate.mjs "<pages>" --manifest ASSET-MANIFEST.md --production
103node scripts/direction-history.mjs commit DIRECTION.md <url> --project <name>
104```
105 
106`harden` reruns only the functional or production checks that failed. `polish` applies one
107round driven by a specific screenshot criticism. `doctor` checks the installation. None is a
108mandatory fourth phase.
109 
110Portfolio diversity, assignment-blinded reviews, sealed keys and container isolation belong
111to the repository's benchmark lab. They run only for an explicit benchmark task, never while
112building one customer website. They are mandatory before benchmark pages enter the public
113showcase: an individual critique pass is necessary and insufficient. The boundary is recorded in
114[RELEASE-MAP.md](../../docs/v2/RELEASE-MAP.md).
115 
116## 3. Precedence
117 
118When two things disagree, the higher row wins.
119 
1201. **Accessibility and platform requirements** — contrast, touch targets, keyboard, reduced
121 motion. Never overridden by aesthetics.
1222. **The brief** — the client's context decides, not your preference.
1233. **The mode file** — one answer for this context beats a general answer.
1244. **v2 core** — the sixty.
1255. **Aesthetic ambition** — commit hard to one direction.
126 
127`references/` does not appear in this list. It is provenance, not authority.
128 
129## 4. What to read
130 
131| File | When |
132| --- | --- |
133| [v2/00-done.md](v2/00-done.md) | First in `init`, and again at the end of `audit` |
134| [v2/05-evidence.md](v2/05-evidence.md) | `init` — before direction work |
135| [v2/10-core.md](v2/10-core.md) | Once per build |
136| [v2/modes/](v2/modes/README.md) | After routing — one file only |
137| [v2/20-direction-lab.md](v2/20-direction-lab.md) | `init` — after evidence, before the contract |
138| [v2/24-asset-plan.md](v2/24-asset-plan.md) | `init` — before anything is sourced |
139| [v2/25-assets.md](v2/25-assets.md) | `init`, and again during `audit` |
140| [v2/30-contract.md](v2/30-contract.md) | `init` — after the direction is chosen, never before |
141| [v2/40-interaction.md](v2/40-interaction.md) | End of `init`, then journeys in `build` |
142| [v2/50-critique.md](v2/50-critique.md) | `audit`, after technical verification |
143| [blocks/](blocks/README.md) | `build` |
144| [references/06-redesign-audit.md](references/06-redesign-audit.md) | REDESIGN only |
145| [references/](references/README.md) | Provenance. Not during a build. |
146 
147Sixty core rules plus one mode file is what you hold while working. The others are read at
148their step and put down again. That is the constraint.
149 
150## 5. Anti-slop is judgement, not a ban list
151 
152The recognisable patterns — purple gradients, blurred orbs, glassmorphism everywhere, bento
153grids by default, three equal feature cards, pill shapes on everything, decorative icons,
154huge type over thin content, centred heroes regardless of sector, animation on everything —
155are **defaults reached for without a reason**. Each is correct when the brand, the content or
156the function asks for it.
157 
158**A brand colour is never slop.** The tell is not the hue; it is a gradient chosen because no
159decision was made.
160 
161Hard tells with no legitimate use, and the only things here stated as absolutes: fabricated
162testimonials, invented customer logos, made-up metrics, fake prices, Lorem Ipsum, "John Doe",
163"Acme Corp", "Unlock your potential".
164 
165The final question, every time: **would a designer look at this and say a machine made it?**
166 
167## 6. Scripts
168 
169| Script | Purpose | Needs |
170| --- | --- | --- |
171| `scripts/stack-router.mjs` | Detect Next.js, React/Vite or Astro and record one adapter | Node 18+ |
172| `scripts/search.py --candidates` | Three contrasting starts shaped by visible dials, with repeat warnings | Python 3.10+ |
173| `scripts/direction-check.mjs` | Are the three comps actually three directions | Node 18+, playwright optional |
174| `scripts/direction-history.mjs` | Block known SiteSmith recipes and remember passing renders across projects | Node 18+, playwright |
175| `scripts/verify.mjs` | Screenshots at 3 widths, axe in both schemes, links, console, overflow, `--font-stress` | Node 18+, `npx playwright install chromium` |
176| `scripts/token-drift.mjs` | Values used that the contract never declared | Node 18+ |
177| `scripts/journey.mjs` | Runs the interaction journeys | Node 18+, playwright |
178| `scripts/production-gate.mjs` | Placeholders, unmanifested images, empty brand marks, missing journeys | Node 18+ |
179 
180The prose still works without the scripts, but an `audit` cannot pass until the canonical checks
181have actually run. If a browser tool is unavailable, open the page manually and report that the
182mechanical release verdict is missing.
183 
184## 7. Attribution
185 
186sitesmith v1 was assembled from four openly licensed projects, credited in
187[NOTICE.md](../../NOTICE.md): [taste-skill](https://github.com/Leonxlnx/taste-skill) (MIT),
188[ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) (MIT),
189[frontend-design](https://github.com/anthropics/claude-plugins-official) (Apache 2.0) and
190[impeccable](https://github.com/pbakaus/impeccable) (Apache 2.0). Their material is in
191[references/](references/README.md), and several v2 core rules descend from it.
192 
193`v2/`, `blocks/`, `references/06-redesign-audit.md`, `references/10-setup.md`,
194`scripts/verify.mjs` and `scripts/token-drift.mjs` are original work, MIT. Full provenance:
195[LICENSE-AUDIT.md](../../LICENSE-AUDIT.md).
196 

Discussion

Alternatives

Animation vocabularyReverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.Design & UI · MITPainted animationMake hand-painted watercolour-and-ink cartoon videos (MP4) with code — p5.js + p5.brush rendered frame by frame in headless Chrome, encoded with ffmpeg — starring Clawd or any character. Use when the user asks to make an animation, animated short, cartoon, music video, lyric video, animated GIF/loop or "a video of Clawd…", or mentions the PDoomVideo / ClaudeAnimationBase approach. Covers storyboarding, the engine API, the render-and-look review loop, music/lyric sync and splitting long videos across subagents.Coding · MITModern web guidanceSearch tool for modern web development best practices. MANDATORY: Execute FIRST for all HTML/CSS and clientside JS tasks. Do NOT skip — web APIs evolve rapidly and training weights contain obsolete patterns. Trigger immediately for: - UI/Layout: Modals, dialogs, popovers, Glassmorphism/backdrop-filters, anchor positioning, container queries, `:has()`, `:user-valid`. - Scroll/Motion: View Transitions, Scroll-driven animations, scroll parallax/reveals. - Performance: CWV (LCP, INP), content-visibility, Fetch Priority, image optimization. - System/APIs: Local filesystem access, WebUSB, WebSockets sync, WebAssembly widgets. - Frameworks: Adapting layout/styles in React, Vue, Angular. - General Frontend: Forms, autofill, advanced inputs, custom scrollbars, modern component states, etc. DO NOT trigger for: - Backend: Database SQL, ORMs, Express API routes. - Pipelines: CI/CD deployment, Docker, Actions. - Generic: Local scripts (Python/Go tools), ESLint, Git.Coding · Apache-2.0Biblioteca de Motion apenasdouglas · Versão DocumentalTraduz pedidos de animação em português ("faz o número quicar", "entra um depois do outro", "dá um tranco no zoom") para o efeito de motion graphics certo, com o termo técnico, a duração e a aceleração. Use sempre que o usuário pedir animação, motion, transição ou efeito em vídeo, HTML, CSS, GSAP, Remotion, HyperFrames ou After Effects, principalmente quando o pedido for vago ("faz uma animação bonita") ou o vídeo for de canal dark (faceless) de curiosidades, história ou documentário. Also triggers on English requests for motion graphics, easing and animation effects in documentary or faceless YouTube videos.Coding · MIT