v1.3.0: version bump, README variants-v2 + edit-time-linting sections, roadmap refresh

Skill and package to 1.3.0; preview-example version strings to v1.3.0;
README variants section rewritten for v2 (progressive reveal, parallel +
sketch-default, thumbnails, compositional grafts, section-zoom, scoped
injection); ROADMAP marks the five v1.3 items shipped.
This commit is contained in:
Youssef
2026-07-24 14:55:42 +01:00
parent cc06e7f23c
commit 2dc9974414
5 changed files with 21 additions and 24 deletions
+1 -1
View File
@@ -96,7 +96,7 @@ It stays a quiet branch; vanilla briefs never see it. The protocol lives in [`cu
## Variants <sup>NEW</sup>
`hallmark variants <brief>` runs the ceremony once, then builds **three complete directions**: different macrostructure, different theme (one dark, one mid, one light paper, forced), different nav, different footer. A tiny zero-dependency picker server (`skills/hallmark/scripts/variants/`) shows all three as live frames; in an existing app each direction is a temporary route your own dev server renders, with a small chip in the corner to flip and pick. Choose one and Hallmark promotes it, archives the others under `.hallmark/variants/`, and logs the whole run. Say `riff` for a fourth direction. No Node available? The picker degrades to a static compare page, and a chat reply ("pick 2") always works.
`hallmark variants <brief>` runs the ceremony once, then builds **three structurally distinct directions** (different macrostructure, theme, nav, footer) and serves a local picker to flip between them and choose. v2 makes it fast and smooth: the picker opens immediately and fills **progressively** (you evaluate direction 1 while 2 and 3 finish), directions generate **in parallel** at **sketch depth** by default (only the winner completes to full), the grid shows screenshot **thumbnails** (so it survives dev servers that block iframes), and the verdict can be **compositional** ("direction 2, but the pricing from 3" grafts that section in). After the pick you can **zoom** to riff a single section, every round is logged to `.hallmark/variants/<run>/decisions.md`, and in a Vite/Astro/SvelteKit app a dev-only overlay previews each direction in place. No Node? A static compare page and a chat reply ("pick 2") always work.
---
+10 -13
View File
@@ -1,28 +1,28 @@
# Roadmap
What's next. (v1.2 shipped: the `variants` verb + picker, the custom art-direction ritual with the draw and the direction atlas, the sloplint mechanical checker, open-model hardening + the eval harness, and the big token diet.)
What's next. (v1.3 shipped: the edit-time lint hook, four new themes with the image hook, spec files for all 24 themes, the Tier A conformance harness, and variants v2 with progressive reveal + grafts + thumbnails + scoped injection.)
---
## Now
**Land the new themes.** Five candidates + two alternates are proposed with visuals in `site/_proposals/five-themes.html` (Plate, Grid, Bench, Maison, Field; Ledger, Arcade). Waiting on the pick; each chosen theme gets tokens, axes comments, a spec file, and two example builds.
**Run the eval matrices on real endpoints.** Tier B (`gen-direct.py`) and Tier A (`gen-cli.mjs`) are built. Run the 6-brief matrix on GLM (Together) and Kimi (OpenRouter) for Tier B, and the Claude conformance pass for Tier A in a logged-in terminal; iterate the skill text until the acceptance criteria in `eval/README.md` hold. Add Z.ai + Moonshot tokens to unlock the Tier A open-model arms.
**Run the eval matrix on real endpoints.** `eval/` is built; run the 6-brief matrix against GLM (Together) and Kimi (OpenRouter), iterate the skill text until the acceptance criteria in `eval/README.md` hold, and publish the compare gallery. Re-run when Together lands Kimi K3.
**Measure the variants speedup.** `eval/variants-bench.md` documents the four-config protocol; run it on a real authenticated machine and publish the wall-clock + token table (parallel + sketch + progressive vs the v1 baseline).
**Nanobanana hook for image-heavy briefs.** Recommend-only today. First-class hook: write the prompt, invoke the API, ingest the image, wire it into the build (cache by prompt hash). Pairs with the Plate theme candidate.
**Second example builds for the four new themes.** Each shipped with a canonical `-01`; add a `-02` on a second brief, and marketing cards on the homepage gallery.
---
## Next
**sloplint as an edit-time hook.** The checker currently runs at Step 7. Wire it as a PostToolUse hook so mechanical slop is caught the moment a file is written, before the model moves on.
**sloplint as an edit-time hook, on by default.** The hook exists (`scripts/install-hook.mjs`) and is opt-in. Consider shipping a project `.claude/settings.json` with it pre-wired, or a one-line prompt in `init`.
**Theme spec files for the remaining 16 themes.** Only Carnival, Cobalt, Hum, and Lumen carry signature-move specs today. Cap each at ~150 lines; the tokens block cannot encode voice.
**Grow the direction atlas + rate the draw.** More lineages, usage-weighted dealing, a ratings pass so strong directions surface more often.
**Tier A harness runs.** `eval/gen-cli.mjs`: drive the real Claude Code binary headless per model (Z.ai / Moonshot Anthropic-shaped endpoints) to test skill triggering and load-order discipline, not just instruction-following.
**Variants v2.1.** Screenshot thumbnails in the picker are in; next: DOM-injection with write-back for non-file-router apps (the hard AST-codemod path deliberately deferred), and a live variants demo wired on usehallmark.com.
**Brand-first flow.** From a short product description, generate a complete brand (palette, type, voice, imagery) locked into a `design.md`; then every page builds against it.
**Brand-first flow.** From a short product description, generate a complete brand (palette, type, voice, imagery via the image hook) locked into a `design.md`; then every page builds against it.
**Theme-aware motion tokens.** Per-theme `--dur-micro` / `--dur-short` / `--dur-long`; Atelier should feel slower than Brutal.
@@ -30,18 +30,15 @@ What's next. (v1.2 shipped: the `variants` verb + picker, the custom art-directi
**`study` reads your own codebase.** Third input mode: a path. Walk the files, extract the tokens + fingerprint in use, emit the same `design.md`.
**Structural cookbook.** Twelve to twenty worked fingerprints with short HTML/CSS sketches; patterns are easier to reach for than principles.
**Charts reference.** A `data-viz.md`: small multiples over dense singles, one accent + neutrals, the worst chart types banned outright.
---
## Later
- **Grow the direction atlas.** More lineages, usage-weighted dealing, a ratings pass so strong directions surface more often.
- **Per-harness prebuilt bundles.** Compiled copies for Gemini CLI, Copilot, OpenCode and friends, with placeholder substitution per harness.
- **`hallmark explain`** - narrate the choices axis by axis; the skill teaches.
- **Negative-capability rules** - for each anti-pattern, the perceptual reason it fails.
- **Emotion-first prompting** - *nostalgic · optimistic · sceptical* instead of tone adjectives.
- **Emotion-first prompting** - *nostalgic, optimistic, sceptical* instead of tone adjectives.
- **Sound + haptic policy** - when web sound is acceptable without kitsch.
- **Live preview as an MCP server** - watch, render, screenshot, feed back into the gate sweep (the `--render` tier is the seed of this).
- **Live preview as an MCP server** - watch, render, screenshot, feed back into the gate sweep (the `--render` tier and `gen-cli.mjs` are the seeds of this).
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "hallmark",
"version": "1.2.0",
"version": "1.3.0",
"description": "A design skill for AI coding assistants. Makes the UIs they generate look made, not generated. Powered by Together AI.",
"keywords": [
"claude",
+2 -2
View File
@@ -1,7 +1,7 @@
---
name: hallmark
description: "Anti-AI-slop design skill for greenfield pages, audits, redesigns, design extraction from URLs or screenshots, and side-by-side design variations. Use when the user asks to build a new app or landing page, wants to redesign something, wants multiple design directions to pick from, invokes Hallmark by name, or uses audit/redesign/study/variants."
version: 1.2.0
version: 1.3.0
---
# Hallmark
@@ -251,7 +251,7 @@ Then run the image-need table at [`references/hero-enrichment.md` § Image-need
**Do:** emit the preview block, then stop for a beat before writing code. This is the user's five-second redirect window.
```markdown
**Hallmark · v1.2.0**
**Hallmark · v1.3.0**
- **Macrostructure** · Stat-Led
- **Theme** · Coral (near-white paper · quiet neutrals · coral accent)
@@ -5,7 +5,7 @@ Four sample Step 5 preview blocks for the model to imitate, varied across macros
---
*Long Document (editorial, motion-cut):*
> **Hallmark · v1.2.0**
> **Hallmark · v1.3.0**
>
> - **Macrostructure** · Long Document
> - **Theme** · Newsprint (cool slate paper · steel-blue accent · geometric sans)
@@ -16,7 +16,7 @@ Four sample Step 5 preview blocks for the model to imitate, varied across macros
> - **Diversification** · first run for this project
*Bento Grid (SaaS, motion-on):*
> **Hallmark · v1.2.0**
> **Hallmark · v1.3.0**
>
> - **Macrostructure** · Bento Grid
> - **Theme** · Newsprint (cool slate paper · steel-blue accent · geometric sans)
@@ -27,18 +27,18 @@ Four sample Step 5 preview blocks for the model to imitate, varied across macros
> - **Diversification** · differs from Coral on paper hue (light-cool vs pure-white) + accent (indigo vs ink-blue)
*Manifesto (declarative, no enrichment):*
> **Hallmark · v1.2.0**
> **Hallmark · v1.3.0**
>
> - **Macrostructure** · Manifesto
> - **Theme** · Manifesto (dark · Inter Tight 900 · single red bleed)
> - **Enrichment** · none (typography only voice carries the brand)
> - **Enrichment** · none (typography only - voice carries the brand)
> - **Sections** · Masthead · Title · Five Declarations · Bleed Band · What We Refuse · Working Rules · Practice · Reading · Colophon
> - **Motion** · none typography only
> - **Motion** · none - typography only
> - **Slop test** · 58 / 58 ✓ (run after Build)
> - **Diversification** · differs from Newsprint on paper band (dark vs light) + display style (display-heavy vs geometric-sans)
*Custom (Coffeebox archival café):*
> **Hallmark · v1.2.0**
> **Hallmark · v1.3.0**
>
> - **Macrostructure** · Long Document
> - **Direction** · the postal frank (draw 6/7, wildcard no)
@@ -48,4 +48,4 @@ Four sample Step 5 preview blocks for the model to imitate, varied across macros
> - **Sections** · Masthead · Letter · Three Notes · Visit · Colophon
> - **Motion** · breathing-loop on bean (with reduced-motion fallback)
> - **Slop test** · 58 / 58 ✓ (run after Build)
> - **Diversification** · custom axes: light / geometric-sans / warm differs from previous catalog Newsprint on display style
> - **Diversification** · custom axes: light / geometric-sans / warm - differs from previous catalog Newsprint on display style