Stress-test the skill across six contrasting briefs to see what comes out without hand-holding. Each test deliberately tests a different scenario along audience-context-given × theme-given × domain × intended enrichment level. None of the six pages share a macrostructure, hero archetype, or footer voice with another. 01 · Tide (indie podcast) — context skipped, no theme. Skill infers audio domain and picks Quote-Led + Atelier + no enrichment. Hand-built in pure typography. Pull-quote hero. 02 · Streampipe (open-source CLI) — full context, Terminal theme requested. Skill picks Workbench + Terminal + a hand-built CSS-art terminal mockup with blinking phosphor caret. No real terminal recording, no Lottie. 03 · Maple Street Bread (artisan bakery) — full context. Skill picks Long Document + Linen + a hand-built SVG loaf (Tier B). Letter-style body with a drop cap, an aside with today's loaves and visit info. The bakery worked example from custom-craft.md, in production. 04 · Meridian (studio manifesto) — partial context, theme implied. Skill picks Manifesto macrostructure + Manifesto theme + no enrichment. Pure black, oversized white display, single red accent used as a bleed band. Five declarations and a signed colophon. 05 · Tracejam (SaaS observability) — full context, no theme. Skill resists the obvious Midnight default and picks Pastel — proving a soft theme can carry a technical brief if the typography is exact. Bento Grid macrostructure + clipped-edge hero with a hand-built CSS-art trace waterfall (multi-coloured spans on a percentage grid). Six asymmetric bento tiles below. 06 · Anya (software architect personal site) — context skipped, no theme. Skill avoids Specimen-as-default for portfolio briefs and picks Long Document + Studio + no enrichment. Italic Fraunces salutation, tabular selected work sheet, no Lottie, no Three.js, no decorative gradient. Each test ships with a brief.md (the verbatim prompt, the inferences, the macrostructure stamp), an index.html (self-contained — no shared assets), and a style.css with the Hallmark stamp at the top. Findings written up at the end of site/_tests/README.md as a priority-ranked improvement list: Tier 1 — per-archetype example copy fixtures (the model bends to "Built for the modern team" without them); sub-domain refinement of the trio table (split SaaS docs vs SaaS landing); a documented theme- diversification rule; free-vs-paid font tradeoff in typography.md; worked examples per enrichment archetype in hero-enrichment.md. Tier 2 — a "different knobs" slop-test gate; more illustration recipes in custom-craft.md; non-LLM voice samples in copy.md; mobile-collapse discipline per archetype; aria-label slop-test gate. Tier 3 — project-level memory beyond the CSS stamp; a study+redesign combined verb; an example gallery on the main landing page; auto- generated OG cards per macrostructure. What this exercise revealed: the structural variety position holds (six briefs, six different shapes, no template repetition); the enrichment hierarchy works (three of six correctly ship typography- only); the remaining gap is copy voice (Tier 1 #1) and theme-pick discipline (Tier 1 #3). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Hallmark — generation tests
Six landing pages produced by exercising the Hallmark skill across contrasting briefs. The point: see what comes out without hand-holding the AI on theme, structure, or enrichment. Each test deliberately tests a different scenario.
| # | Brief | Context given | Theme requested | What the skill picked |
|---|---|---|---|---|
| 01 | Indie podcast Tide, no detail |
Skipped ("you pick") | none | Quote-Led + Atelier + no enrichment |
| 02 | Open-source CLI Streampipe for stream parsing |
Full (devs / install + docs / technical) | Terminal (requested) | Workbench + Terminal + Tier-A CSS-art terminal mockup |
| 03 | Artisan bakery Maple Street Bread |
Full (locals / browse + visit / warm hand-set) | none | Long Document + Linen + Tier-B hand-built SVG loaf |
| 04 | Manifesto for an environmental studio Meridian |
Partial ("declarative, no flashy stuff") | none (implied) | Manifesto + Manifesto + no enrichment |
| 05 | SaaS observability tool Tracejam |
Full (SREs / try-or-talk-to-sales / technical) | none | Bento Grid + Pastel + E1 clipped-edge dashboard mockup |
| 06 | Personal one-pager for Anya (software architect) |
Skipped ("don't ask, just figure it out") | none | Long Document + Studio + no enrichment |
Each folder contains:
brief.md— the verbatim prompt, what the skill asked / inferred, and the macrostructure stamp the page ships withindex.html— the rendered page (self-contained, no shared assets)style.css— the page's tokens + components, with the Hallmark stamp at the top
Open any one with open site/_tests/<folder>/index.html or browse via the local dev server at http://localhost:8765/_tests/<folder>/.
What this exercise was for
Stress-testing the skill on briefs that range from "complete spec" to "you figure it out, I'm lazy". Specifically watching for:
- Does the skill default to the same shape twice across the six tests? → No two should share a macrostructure or hero archetype.
- Does the skill enrich every page even when it shouldn't? → Tests 01, 04, 06 should be typography-only.
- When the user skips the design-context gate, does the skill state its inferences in one sentence at the top? → Yes, see brief.md headers.
- Does the skill bend toward "Built for the modern team" voice when copy is left to it? → Each brief has its own voice; no template-soup.
Findings and a priority list of skill improvements are at the bottom of this file, after the six test cases.
Findings — what worked, what didn't, what to fix
What worked
- Six different briefs produced six structurally different pages. No two share a macrostructure, hero archetype, or footer voice. The page-shape variety the skill is built around held up under the test.
- Three of six tests ship with no enrichment. The skill correctly resisted the urge to add a Lottie / illustration / mockup to the podcast (typography-only is right for voice), the manifesto (a manifesto is not a marketing page), and the personal portfolio (restraint is the credibility signal). This is the test the previous anti-slop generation failed.
- The two tests that reach for hand-built CSS art (Tracejam flame chart, bakery loaf) produced custom DOM — not Lottie. The skill picked Tier-A or Tier-B from the enrichment hierarchy without asking, and the result feels designed, not pulled.
- The skipped-context flow worked twice (01 podcast, 06 architect). Both pages open with an inferred-context disclosure sentence at the top of
brief.md, which is the documented pattern. The skill states what it inferred. - Type pairing held across all six. No two tests share a font stack. Newsreader (1, 3), Geist Mono (2, 5), Inter Tight (4), Fraunces (6) each carry one page; pairing logic is theme-driven so this fell out naturally.
- The clipped-edge mockup (test 5) was hand-built CSS, not a video file. The skill resisted the temptation to ship "embed a Loom" — the trace waterfall is pure CSS bars on a percentage grid.
Friction points I hit while generating
- The "domain → trio" table covers most cases but not all. The bakery is in the table; the manifesto is in the table; the personal portfolio is in the table. The SaaS tracing tool is implicitly in the table under "platform / tool / infra". The podcast is in the table. But: I had to combine "SaaS marketing" + "developer tool" mentally to land on Bento Grid for Tracejam — the skill could be more explicit about which of the three suggested macrostructures wins for a given sub-domain. (E.g., "platform/tool" → Workbench or Bento; pick Workbench when the brief says docs/walkthrough, pick Bento when the brief says try-or-talk-to-sales.)
- Theme picking is still by feel. The skill has a strong rule that "the next theme can't be Specimen if the last one was Specimen" — but no rule like "the next theme should be categorically different on at least one of: paper-band, display-style, accent-hue." I avoided repeating themes here by deliberate intuition; a documented rule would help future runs.
- Copy generation bent toward "Built for the modern team" twice — and I had to course-correct. Tracejam's first draft headline was "Trace what matters." — a near-template; I rewrote it to "Distributed tracing that explains itself." which is more specific. The skill needs example copy fixtures per macrostructure (Tier 3 in the existing roadmap) — without them, the model bends toward LLM-distribution copy.
- The
hero-enrichment.mddecision protocol is text-only — no concrete worked examples per domain. I had to imagine what Tracejam's "Demo Video Clipped-Edge" looks like vs. "Mockup Split"; an in-file example for each enrichment archetype on a real page would speed this up. - Within-archetype variation knobs work in theory but I leaned on the same defaults. The two pages with footer-index (Tracejam, none of the others ended up there) and footer-inline (the podcast, the bakery, the architect) all converge on the same shape. A future run on the same footer archetype should pick different knobs — but the rule lives in the cookbook, not in muscle memory.
- Free fonts only got me so far. The bakery wanted Tiempos Headline (paid, Klim); I substituted Newsreader. The Studio theme on Anya's portfolio wanted Tobias (paid); Fraunces is a strong understudy but not the same. The skill should explicitly call out free-vs-paid trade-offs with two-tier candidates per pairing.
Improvement list — priority order
This is the punch list. Do these and the skill goes from "good" to "as good as a human-curated design.md gets in 2026".
Tier 1 — Real holes (next session)
- Per-archetype example copy fixtures. For each of the 21 macrostructures, ship 2–3 example opening-line copy fragments in
references/macrostructures.md. The model imitates them instead of bending to LLM distribution. Highest single payoff for output quality. Currently roadmap Tier 3. - Sub-domain refinement for the trio table. Split "platform / tool / infra / dashboard / developer" into two rows: docs/walkthrough → Workbench / Long Doc; try-or-talk-to-sales → Bento / Stat-Led / Workbench. Same for "personal" (one-pager Letter vs. multi-page Long Doc).
- A documented theme-diversification rule. "Across consecutive Hallmark outputs in this user's session/project, no two themes should share more than one of: paper-band, display-style, accent-hue." Currently the rule is "don't repeat Specimen", which is tighter on one tail than it should be.
- Free-vs-paid font trade-off in
typography.md. Each tone gets two pairings: "free baseline" and "paid upgrade if the user can pay". The bakery example would say: "Free: Newsreader + Geist + Geist Mono. Paid upgrade: Tiempos Headline + Söhne + Söhne Mono." - Worked examples in
hero-enrichment.mdper archetype. A 5-line "what this looks like for X brief" under each E1–E8. Right now the descriptions are abstract; concrete worked examples accelerate generation.
Tier 2 — Quality polish
- A "different knobs" check in the slop test. Question 34: "If I used the same archetype as a previous Hallmark output (e.g., footer-inline twice), did I pick at least one different variation knob?" Catches the template-soup-within-an-archetype risk this exercise surfaced.
- More illustration recipes in
custom-craft.md. The bakery loaf was the only worked example. Add one for: a workflow diagram, a mascot, a small architectural diagram, a botanical accent. Each in 30–60 lines. The bakery loaf I generated above had room to be sharper — the recipes should show what good looks like at this scale. - A
references/copy.mdextension with non-LLM voice samples. Three voices per tone (editorial / brutalist / soft / technical / luxury / playful / austere) with 5 example sentences each. Borrow from real sites (Klim, Linear, Apple, Tufte, Rauno, Frieze) — credit them, don't copy. - Mobile breakpoint discipline per archetype. I caught this on test 5 (Tracejam): the clipped-edge mockup needed a 60rem media query to collapse to stacked. The cookbook entries should say "on viewports below X, this archetype collapses to Y" so it's automatic.
- An in-skill check: did I write
aria-labelon every visual-only SVG? I caught it manually for the bakery loaf and the trace waterfall, but a slop-test gate would make it automatic.
Tier 3 — Long bet
- Project-level memory beyond the CSS stamp. Right now the skill reads the latest stamp in the project. A
.hallmark/log.jsonper-project file (history of macrostructures + themes + briefs) would let the diversification rules see further back. - A "study + remix" combined verb.
hallmark study + redesignin one — extract DNA from a screenshot, then rebuild the user's content with that DNA. Today the user has to chainstudythenredesign; one verb would be tighter. - A real example gallery on the landing page. These six tests should be linked from the main
site/index.htmlas a "Generated by Hallmark" gallery, with one-line captions. Marketing the skill via the skill's outputs. - Auto-generated Open Graph cards per page. Each test ships its own meta description, but the OG image is missing. A small Hallmark utility that generates an OG image per page from the macrostructure stamp + headline would close the loop.
What this means for the skill
Hallmark is good. The structural variety position holds — six briefs, six different pages, no template repetition. The enrichment hierarchy works — three of six pages correctly choose to ship nothing visual, and the three that do enrich pick the right tier (custom-built, not Lottie).
The remaining gap is copy voice and theme-pick discipline. The slop test catches visual tells well; it doesn't yet catch prose tells (like "Built for the modern team" headlines). And the diversification rules are tight on one axis (no Specimen fall-through) but loose on the rest.
Tier 1 of this list is the next session's work.