Punch Docs · v0.1
Figma Starter Spec
What's inside the Punch Website Starter master file and the Aldera sample fork. How copy flows from strategist to designer. What's still missing.
Overview
▭ Showcase · Case Study, ▭ Showcase · Service Page, ▭ Showcase · About Page, ▭ Standard-Tier Wires, and 🗂 Copy Composition (the renamed Copy Layer Naming page). Showcase pages now compose in Cowork against the live design system; standard-tier pages are generated by the /website-design-amplifier:amplify Claude Code skill; the Copy Composition workflow has been retired entirely (no skill called punch-copy-sync exists). Figma is now a token repository, an exploration surface, and a handoff staging surface. See Figma-Master-Audit.md for the full cleanup record.
Punch's website workflow makes HTML/CSS the canonical design system — the sandbox/ folder is the source of truth. Figma is a token repository, a per-project visual exploration surface, and a handoff staging surface. The starter file is the scaffold that every per-client Figma file forks from.
Two files were built. A master starter with empty token slots, page-archetype wireframes, copy-naming conventions, and a handoff checklist. A sample client fork for a fictional architecture practice called Aldera, showing what the master looks like when populated.
The two Figma files
What's in the master
Every page exists for a specific reason. None are decoration.
✦ Cover & README
Purpose statement, fork instructions, ownership, what each page contains. Rewritten in v0.2 to drop the legacy framing.
◆ Foundations · Tokens
All 54 token swatches and specimens: color (19), type ramp (default H1–H6 + Body 22/16/14 + Eyebrow + Button, plus full Blog set), space scale (12 steps), radius (5 steps). Bound to the Punch Tokens variable collection.
⊟ Layout & Grid
Three breakpoint frames matching the QA gate spec: 1280 / 768 / 375. 12 / 8 / 4 cols. Containers 1120 / 720 / 327.
🪧 Brand Assets
The Brand Marks group, where designers drop the client's logo vectors on fork. Five canonical variants: Logo · Full Color (default — nav + footer use this), Logo · Reverse (mark branded, wordmark white — for dark sections), Logo · White (entire lockup white — for photo overlays / dark heroes), Mark · Full Color, Mark · White. Each exports to assets/logo-{slug}.svg via punch-component-export.
🧱 Components
The real component library: 45+ token-bound components. Primitives (Button set, Link, Input, Textarea, Tag, Avatar, Eyebrow, Icon), section pieces (Nav, Footer, SectionHeader, FeatureTile, Stat, Quote, ProjectCard, ProcessStep, MediaBlock), full patterns (Hero set, FeatureGrid, BentoGrid, StatStrip, Gallery, CTAStrip, IntroStatement, ServicesList, FeatureSplitRows, ProcessSteps, StickyLeadCards, StaggeredCards, ContentSplit, ManifestoBlock, EditorialDualImage), specialist sections (IntegrationGrid, ComplianceRow, ComparisonTable, FAQ, ResourceTeaser, NewsletterSignup, DemoForm, TeamGrid, TeamMember), and a complete mega-menu system (MenuLink, MenuColumn, MegaMenuFooter, MegaMenuPanel) — plus a MegaMenuPanel · Schema (for Claude Code) frame documenting the JSON data contract.
✅ Handoff Checklist
Tick boxes mapped to the workflow's six gates. Five sections: Before forking this master, ① Before Production runs amplifier, ② Before Dev starts the CMS pilot, ③ Before every gate (TDM QA against The Build), ④ Before Dev migrates to CMS. Rewritten in v0.2 to match the four real handoffs in the current process.
▭ Showcase · Case Study, ▭ Showcase · Service Page, ▭ Showcase · About Page, ▭ Standard-Tier Wires, 🗂 Copy Composition (formerly Copy Layer Naming), and ⬚ Pattern Archetypes. The showcase scaffolds and standard-tier wires were superseded by Cowork composition + the Claude Code amplifier; Copy Composition was retired along with the never-built punch-copy-sync skill; Pattern Archetypes duplicated what Components already covers at higher fidelity. See Figma-Master-Audit.md for the full record.
The token schema
One Variables collection called Punch Tokens with 54 variables in a consistent dotted path: color/brand/primary, space/4, type/size/h1, etc. Master values are neutral placeholders (mostly grayscale, with a Punch red accent). Each client fork overrides values — never the structure.
What's in the Aldera fork
A fictional architecture practice in Portland called Aldera, with an emerald-and-cream editorial palette and a serif display font. Built to demonstrate four things every per-client fork does.
✦ Cover & Client Brief
Editorial cover in the client's brand. Project meta — tier mix, brand summary, dev target.
◆ Foundations · Tokens
Same schema as master, populated with Aldera's actual colors and type sizes.
🎨 Hero Explorations
Three stylistic options for the homepage hero. Art director picks one, designer codes it.
🗂 Copy Brief
The strategist's homepage.md with brief schema + notes on how the designer reads it.
Three pages were intentionally left empty as slots the project team fills during work: Homepage Composition, Showcase · Case Study (Aldera), Handoff to Dev. The fork's tokens collection (Aldera Tokens) carries 54 variables identical in schema to the master, with values for emerald primary, cream surfaces, ink text, and clay accents.
How copy flows in
The strategist owns content. The designer owns visual structure. They never edit the same surface — that's how you stop overwrites.
The contract
Strategists write each page as a structured Markdown brief in the project's content/ folder. The schema is fixed: every section type (hero, intro, feature_grid, cta, etc.) has named keys that map exactly to Figma text-layer names.
page: homepage
url: /
tier: showcase
hero:
eyebrow: ARCHITECTURE · PORTLAND
headline: Buildings that plant.
subhead: Civic architecture for a warming Pacific Northwest.
cta_label: See our work
cta_url: /projects
intro:
headline: A studio that reads its site.
body: Aldera is a 12-person practice in Portland.
The designer's job with the brief
The designer reads the brief, then in Figma names every text layer to match the brief keys: hero.headline, feature_grid.0.title, cta.cta_label. The visible text in the Figma file is fill-in. The brief stays the source of truth.
Keeping them in sync
A Claude prompt called punch-copy-sync reads the Markdown brief and the Figma frame, returns a diff: missing sections, extra sections, mismatched copy. Run it before per-batch QA (gate 4). The creative-qa skill already does this kind of comparison for visual deliverables — copy sync is the same idea applied to text.
Alignment with the Website Redesign Workflow
The Figma starter respects the workflow's first principle: HTML sandbox is canonical, Figma is exploration. A few specific alignments:
| Workflow concept | Where it lives in the starter |
|---|---|
Sandbox spec (tokens.css, components.html, etc.) |
Lives outside Figma. Component Stubs page references it; tokens.css values mirror the Figma Variables. |
| Page tiering (80% standard / 20% showcase) | Standard-tier pages are now generated by /website-design-amplifier:amplify directly from the homepage + sitemap — no Figma involvement. Showcase pages compose in Cowork against the live design system; Figma's role for showcase is exploration-only (early visual direction, optional structural staging). |
| Sitemap revisit gate (Gate 3, after homepage) | Surfaced via the Handoff Checklist's "before Production runs amplifier" section. |
| Per-batch QA gate (Gate 5) | Checklist includes brand, voice, all three breakpoints, copy diff, a11y, and "no hardcoded values." Run by TDM against amplified output, not against Figma frames. |
| Breakpoint spec (375 / 768 / 1280) | Layout & Grid page hard-codes these three breakpoints with column counts and gutters. |
| "A human runs every step" | Nothing in the starter implies autonomous generation. Claude is referenced only as a copy-sync and QA tool, never as a page-generator. |
Handoff Checklist — replacement copy
The checklist page in the master Figma file (page 09) still reads against the old flow. Below is the replacement checklist, structured around the four moments where a real handoff happens in the new process. The art director (or whoever owns the Figma master) should paste this into the page on the next master pass.
① Before Production runs /website-design-amplifier:amplify
Triggered: end of Phase 1, after Gate 3 (Sitemap Revisit). Owner: Lead Designer + PM verify together.
- The homepage is built in code in
sandbox/and renders correctly at 1280 / 768 / 375. site-llm(or equivalent compact site description) is current and includes voice, big idea, tone notes, and any blog/thought-leadership content the amplifier should fold in.content/sitemap.yamlis final and matches what the client approved at Gate 3.- Design tokens are exported from Figma to
tokens.cssviapunch-token-exportand the homepage is bound to them — no hardcoded brand values anywhere in the homepage source. - The Punch Tokens collection in the Figma fork reflects the final brand values (the amplifier will read the exported tokens, not Figma directly, but they must match).
- PM has confirmed Production has access to the project repo and Claude Code is configured.
② Before Dev starts the CMS pilot
Triggered: start of Phase 2, in parallel with Production amplification. Owner: TDM + Dev.
- CMS target is confirmed (WordPress, HubSpot, Webflow, Sanity, etc.) and an empty instance is provisioned.
- One page is selected as the CMS pilot — usually a standard-tier page so the harder cases come later. PM has flagged the choice in Asana.
- The dev branch is set up, CI is green, and Production has a separate branch for amplified output so the two streams don't collide.
- Blog/thought-leadership content source is identified (existing CMS export, archive scrape, or content doc) so blog migration can begin in Phase 2.
/website-to-static:converthas run on any reference material that needs to be ingested.
③ Before every gate (Phase 2 + Phase 3) — TDM QA against The Build
Triggered: every internal gate before showing the client. Owner: TDM, with Production support for amplified pages and Dev support for CMS-piloted pages.
- All pages render at 1280 / 768 / 375 without layout breaks.
- No hardcoded color, type, or space values — everything reads from
tokens.css. - Copy matches the latest content briefs (run
punch-copy-syncon any page that's been edited since last gate). - Brand voice is consistent — no boilerplate the amplifier may have invented that drifts from the client's tone.
- WCAG 2.1 AA baseline: color contrast, focus states, semantic headings, alt text. (Run
design:accessibility-reviewfor any showcase page.) - Blog/thought-leadership pages are migrated and rendering with the new design system.
- Internal links resolve to pages that exist in
sitemap.yaml.
④ Before Dev migrates everything to the CMS for final client preview
Triggered: end of Phase 3, after The Build has been client-approved (Gate 6). Owner: Dev, with Production polishing CMS-format edits afterward.
- Static preview is signed off — no outstanding visual or copy edits.
- CMS content model is built and mirrors the page structure (page types, block components, taxonomy).
- Dev has a rollback plan in case CMS migration introduces regressions vs The Build.
- Production is queued to run CMS-format polish after Dev's migration (typography fine-tunes, image asset handling, any CMS-specific copy edits that the static format didn't constrain).
- Forms, analytics, search, and any third-party integrations are configured and tested in the CMS.
- 301 redirects from the old site are in place for any URL changes since the original sitemap.
Gaps and next steps
These are the holes in v0.1 — worth knowing about before the team starts using it.
tokens.css for the dev sandbox.
Either use Tokens Studio plugin for round-trip, or a small Figma API → Style Dictionary script. Lives outside Figma; design ops or dev owns it.
punch-copy-sync, punch-token-audit, and punch-handoff-{webflow,nextjs,wordpress}. None of these are built.
Build the four highest-impact skills first: copy-sync, token-audit, handoff-nextjs (since most projects), and one of webflow or wordpress depending on next project.
Onboarding course — parked
Designer onboarding is on the roadmap. The shape that fits Punch's culture is an interactive HTML walkthrough that mirrors the workflow doc's tone — a single self-contained file, not a PDF, with hands-on exercises rather than passive reading.
A working draft would include: a four-phase tour mapped to the workflow doc, a forking exercise where the designer duplicates the master and fills in Aldera-style tokens, a copy-naming drill matching Figma layer names to a sample brief, a per-batch QA simulation (designer is given a deliberately-broken design and has to find the issues), and a handoff exercise that produces a spec doc. The designer course lands first; strategist and dev courses share most of the workflow scaffolding with role-specific exercises swapped in.
This is a non-trivial build — probably a half-day to scaffold and another half-day to make it actually good. Pick this up after the v1.0 starter is in real use and you have a few real client projects to anchor the exercises against.