A one-page playbook to take a real (rush) client project from your existing inputs through the content-first wireframe and into homepage design. ~2 hours of focused time, plus client review.
| Input | Format | Where it goes |
|---|---|---|
| Homepage copy | Google Doc or pasted text | content/homepage.md |
| Creative theme (palette, type, voice direction) | Figma file or notes | brand/theme-notes.md + sandbox/tokens.css (via Figma export) |
| Sitemap (list of pages) | List, doc, or whiteboard | content/sitemap.yaml |
| Big Idea + voice notes | From the discovery/brief | brand/copy-brief.md |
| Reference templates (Webflow or other) | URL + screenshots | Decode via punch-webflow-decode → decoded-references/[template].md (shared) → cite from brand/visual-direction.md (per-project) |
Open Cowork in a fresh folder where this client's repo should live. Run:
Initialize a new Punch project for [client name]. Slug: [kebab-case]. Project type: website.
Cowork will trigger punch-project-init. It'll ask for a couple of clarifications (slug, CMS target), then write the folder structure with stub files. Confirm you see:
brand/copy-brief.md, brand/theme-notes.mdcontent/sitemap.yaml, content/homepage.md, content/_brief-template.mdsandbox/tokens.css, sandbox/components.htmlREADME.mdOpen each file and replace the comment placeholders with your real content. Order matters:
brand/copy-brief.mdPaste your Big Idea and "what it evokes" sentence. Fill in audience and voice characteristics. Banned + preferred words can wait if not yet decided — but the Big Idea must be there before the wireframe runs.
brand/theme-notes.mdCapture the visual + verbal direction of your chosen creative theme. Palette, type, illustration approach, motion direction. This doesn't affect the wireframe (intentionally neutral) but it's the brief for the homepage design step.
content/sitemap.yamlList every page that will exist on the shipped site. Each entry needs url, title, page_type, and tier. Mark the homepage and the 2–4 most important pages as showcase; everything else standard.
content/homepage.mdThis is the one with the most paste work. Open your Google Doc with the homepage copy, and copy each section of prose into the corresponding field below. Section keys (hero, intro, feature_split_rows, etc.) map to design system components — keep them lowercase. Delete sections this homepage doesn't have.
homepage.md as a free-form block and we'll regroup; the wireframe will at least render the homepage as one big article.
brand/visual-direction.md (decode any Webflow references first)This file is the single most important spec for keeping visual direction consistent across pages — Cowork reads it on every compose call. If you're emulating any Webflow or reference template (Volio, Linear, etc.), do this two-step:
Step 1: Decode the reference template(s) first. For each reference, run punch-webflow-decode in Cowork:
Decode [template name] for the visual direction. URL: [URL]. Screenshots attached.
The skill requires both the URL AND screenshots (4-6, covering hero + key feature sections + stat strips + any distinctive blades). Without screenshots, the decode will be wrong. The output lands in decoded-references/[template-slug].md at the Process folder level (shared across all client projects).
Step 2: Write brand/visual-direction.md citing the decode(s). The template that punch-project-init created has the structure. Fill in:
brand/visual-direction.md from scratch — capture the character and rules directly from your creative theme. The decode step is specifically for translating Webflow / live reference sites into named idioms Cowork can apply.
For your Auria rush test specifically: the corrected Volio decode is already in decoded-references/volio-saas-ui-kit-home-01.md, and Linear is in decoded-references/linear.md. You can cite either or both in Auria's brand/visual-direction.md based on which character fits better.
If your creative theme is already in a Figma file with a Punch Tokens collection (or equivalent), run in Cowork:
Export the Punch Tokens collection from the [client] Figma file to sandbox/tokens.css.
This triggers punch-token-export. The resulting tokens.css is what the homepage design (Step 5) will read.
sandbox/tokens.css with your palette and type values. Less ideal long-term, but fine for the rush test. Punch's normal flow has Figma as the source of truth.
In Cowork:
Build the content-first wireframe for this project.
This triggers punch-wireframe. The skill reads content/sitemap.yaml and every brief in content/, then writes sandbox/wireframe/ with one HTML page per sitemap entry, plus _wireframe.css and _index.html.
Preview locally:
cd sandbox/wireframe
python3 -m http.server 8000
# open http://localhost:8000/_index.html
Click through every page. Read the homepage end-to-end like a client would. Note:
When client feedback comes back:
content/*.md brief, re-run punch-wireframe. The wireframe regenerates each time.sitemap.yaml, re-run. Missing briefs render as TBD placeholders.Don't hand-edit anything in sandbox/wireframe/. It's regenerated every run; your edits will be lost.
This is where Cowork composition enters. The wireframe is locked, the tokens are in place, the creative theme is decided. Now you compose the homepage as real designed code in sandbox/index.html, against the design system you'll be building as you go.
In Cowork:
Compose the homepage from content/homepage.md into sandbox/index.html.
Use the design system in sandbox/components.html and tokens.css.
Apply the visual direction in brand/visual-direction.md.
Big Idea is [the Big Idea] — favor [restrained / bold / etc.].
Pointing Cowork at brand/visual-direction.md is what makes the decoded reference idioms actually land in the output. Without that reference, Cowork composes against tokens alone and you'll see the generic SaaS gravitational pull take over.
Iterate using the patterns in Designer Onboarding Module 5 (the fidelity hierarchy: named tokens + components beat screenshots; annotate inspirations specifically; avoid the "Claude improved it" failure mode).
sandbox/components.html as it composes the homepage. Hero, nav, feature row, CTA, footer — each gets a real reusable definition. That's expected; the design system grows from the homepage outward.
Now the test is complete. Specifically check:
punch-project-init produce the right structure? Anything missing? Any stub file that wasn't clear about what to fill in?punch-wireframe render usefully? Was it readable end-to-end? Did the client engage with it the way the content-first hypothesis predicts?Bring the answers back. Specific failure modes = specific skill improvements. This test is how we tighten the system, not just check a box.
| You hit this | Fix |
|---|---|
punch-wireframe fails because sitemap.yaml is malformed |
YAML is whitespace-sensitive. Indent with 2 spaces, no tabs. Check that pages: is an array of dicts. |
| Your homepage copy doesn't fit the brief schema cleanly | For the rush test: paste raw copy into a free_form_intro section of homepage.md (or skip sections that don't apply). Tighten the schema later based on what hurt. |
| The wireframe shows brand colors / styled type | That shouldn't happen — _wireframe.css is intentionally neutral. Check whether you accidentally edited the wireframe CSS. Re-run punch-wireframe to regenerate. |
| Cowork composing the homepage produces master-neutral colors | tokens.css probably isn't populated. Re-run punch-token-export from the Figma file, then re-compose. |
| You want to share the wireframe with the client but it's local-only | Deploy sandbox/wireframe/ to a static host (Vercel, Netlify, Cloudflare Pages — any are 5-min setup). Or use a localhost tunnel like ngrok for a one-off review. |
| The client wants to see a designed version DURING wireframe review | Resist. Tell them design comes next. The whole content-first point is to validate writing before design enters. If they insist, do a one-pager homepage design but keep the wireframe live for the rest of the site. |
/website-design-amplifier:amplify in Claude Code — separate flow)All of those are Phase 2 and Phase 3 work — separate playbook, separate roles. Don't try to add them to this test or it'll take a week instead of an afternoon.