diff --git a/.gitignore b/.gitignore index 2d50239..2a1e773 100644 --- a/.gitignore +++ b/.gitignore @@ -49,7 +49,7 @@ site/_launch-comparison/ # Local example explorations — kept on disk, never published. The landing # carousel links only the featured builds (carnival-01, cobalt-01, custom-01–05, -# hum-02, lumen-01); those stay tracked. Everything below is scratch: extra +# hum-07, lumen-01); those stay tracked. Everything below is scratch: extra # generations, the private gallery/worked indexes, and component demos. site/examples/index.html site/examples/worked.html diff --git a/skills/hallmark/SKILL.md b/skills/hallmark/SKILL.md index 859b6a4..c7b554b 100644 --- a/skills/hallmark/SKILL.md +++ b/skills/hallmark/SKILL.md @@ -341,7 +341,7 @@ By the time you reach this step, one of four things is true: **Custom is a quiet branch, not a default question.** Most briefs route to catalog and the user never sees the words "catalog" or "custom." The 20 named themes plus the rotation rule already deliver structural variety; the fork is reserved for when the brief specifically asks for a tuned look the catalog can't carry. -A custom theme is a **complete** OKLCH palette + font pairing tuned to the brief — not a one-off colour swap, not an excuse to bypass the rules. Every constraint in [`color.md`](references/color.md), [`typography.md`](references/typography.md), and [`anti-patterns.md`](references/anti-patterns.md) still applies. The 57 slop-test gates fire unchanged. The Step 5 preview block surfaces the palette + pairing in plain text **before** any code is emitted, so the user can redirect. +A custom theme is a **complete** OKLCH palette + font pairing tuned to the brief — not a one-off colour swap, not an excuse to bypass the rules. Every constraint in [`color.md`](references/color.md), [`typography.md`](references/typography.md), and [`anti-patterns.md`](references/anti-patterns.md) still applies. The 58 slop-test gates fire unchanged. The Step 5 preview block surfaces the palette + pairing in plain text **before** any code is emitted, so the user can redirect. The diversification rule is theme-route-blind: a custom run that follows another custom (or a catalog) must differ on at least one of the three axes from the previous entry, same as catalog-vs-catalog. Custom entries record their three axes explicitly into `.hallmark/log.json` (see [`custom-theme.md`](references/custom-theme.md) § F). @@ -378,7 +378,7 @@ The non-negotiables live in [`references/`](references/). **Be precise about wha - [`preview-examples.md`](references/preview-examples.md) — load only if you need a worked example of the Step 5 preview block format. The bullet list in Step 5 itself is normally enough; reach for the file only when picking unusual macrostructures / custom themes. **Load-at-the-end (Step 7 only):** -- [`slop-test.md`](references/slop-test.md) — **strictly Step 7, after Build.** The 57 gates are a post-emit check, not a pre-emit reference. Pre-loading slop-test.md costs ~7K tokens for nothing — the gates inform fixes, not generation. If a gate fails at Step 7, fix and re-test; do not consult the file earlier "to know what to avoid" — that's what `anti-patterns.md` is for. +- [`slop-test.md`](references/slop-test.md) — **strictly Step 7, after Build.** The 58 gates are a post-emit check, not a pre-emit reference. Pre-loading slop-test.md costs ~7K tokens for nothing — the gates inform fixes, not generation. If a gate fails at Step 7, fix and re-test; do not consult the file earlier "to know what to avoid" — that's what `anti-patterns.md` is for. - [`contract.md`](references/contract.md) — load at handoff time for output-contract + scope rules. - [`export-formats.md`](references/export-formats.md) — load at Step 6 only when the project warrants multi-format exports (i.e. has a `design.md`). Single-page builds emit `tokens.css` from the in-memory token state and don't need this file. @@ -416,7 +416,7 @@ Before emitting any code, output a tight summary of what you're about to ship. T - **Enrichment** · none (typography only) - **Sections** · Hero · Logos · Stats · Features · Testimonials · Pricing · FAQ · CTA · Footer - **Motion** · counter · pricing-lift · pulse-once -- **Slop test** · 57 / 57 ✓ (run after Build) +- **Slop test** · 58 / 58 ✓ (run after Build) - **Diversification** · differs from Newsprint on display style + accent hue ``` @@ -427,7 +427,7 @@ Before emitting any code, output a tight summary of what you're about to ship. T 3. **Enrichment** — the chosen archetype + tier, or *none (typography only)*. 4. **Sections** — section names separated by ` · `, in DOM order. 5. **Motion** — microinteraction primitives separated by ` · `, or *none — typography only*. Always under three primitives per the [`microinteractions.md`](references/microinteractions.md) hard rules. -6. **Slop test** — `57 / 57 ✓` if all gates pass, or `N / 57 — fails: ` if any are open. Run the slop test BEFORE writing this row; the slop test is Step 7. +6. **Slop test** — `58 / 58 ✓` if all gates pass, or `N / 58 — fails: ` if any are open. Run the slop test BEFORE writing this row; the slop test is Step 7. 7. **Diversification** *(optional, only when `.hallmark/log.json` has prior entries)* — what axes differ vs the previous run. **Then one quiet CTA line, italicised, after the bullets:** @@ -466,7 +466,7 @@ Always: ### 7. The slop test -Before handing back, run the output through the 57-gate slop test in [`references/slop-test.md`](references/slop-test.md). Every answer must be **no**. Load that file at this step (not earlier — it isn't needed until handoff). The active genre matters: some gates are universal, some are genre-scoped (atmospheric loosens the radial-bloom gate; modern-minimal loosens the zero-chroma neutral gate; etc.). The full per-genre overrides are listed inline in `slop-test.md`. +Before handing back, run the output through the 58-gate slop test in [`references/slop-test.md`](references/slop-test.md). Every answer must be **no**. Load that file at this step (not earlier — it isn't needed until handoff). The active genre matters: some gates are universal, some are genre-scoped (atmospheric loosens the radial-bloom gate; modern-minimal loosens the zero-chroma neutral gate; etc.). The full per-genre overrides are listed inline in `slop-test.md`. Run the slop test BEFORE writing the Slop test row in the Step 5 preview block — that row reflects the actual outcome of this step. diff --git a/skills/hallmark/references/genres/editorial.md b/skills/hallmark/references/genres/editorial.md index b1345ab..853604b 100644 --- a/skills/hallmark/references/genres/editorial.md +++ b/skills/hallmark/references/genres/editorial.md @@ -56,7 +56,7 @@ Each macrostructure under editorial picks from these opening-line patterns. Imit ## Nav and footer voice - **Default nav:** N6 Newspaper masthead — full-width, large centred wordmark, thin issue/date row in serif small caps, double-rule below. Reads as broadsheet. -- **Acceptable also:** N1 Wordmark + 2 links (when destinations are minimal); N9 Edge-aligned minimal (when the page is letter-shaped or atelier-quiet). +- **Acceptable also:** N1a Wordmark + 2 links (when destinations are minimal); N9 Edge-aligned minimal (when the page is letter-shaped or atelier-quiet). - **Default footer:** Ft1 Mast-headed (wordmark anchors a single horizontal band, tagline + small links beside). - **Acceptable also:** Ft2 Inline single line; Ft4 Dense colophon (newsprint / almanac voices); Ft6 Letter close (atelier / garden / personal); Ft7 Newsletter-first (when the brand legitimately publishes). - **Banned for editorial:** N5 Floating pill (modern-minimal vocabulary), N7 Brutal slab (fights the restraint), Ft8 Marquee scroll (kinetic; wrong genre). diff --git a/skills/hallmark/references/preview-examples.md b/skills/hallmark/references/preview-examples.md index 7c2b9c2..9f51262 100644 --- a/skills/hallmark/references/preview-examples.md +++ b/skills/hallmark/references/preview-examples.md @@ -12,7 +12,7 @@ Four sample Step 5 preview blocks for the model to imitate, varied across macros > - **Enrichment** · Tier-B hand-built SVG (a 60-line coffee bean with `@property --rise` 6 s breathing-loop) > - **Sections** · Masthead · Letter · Three Notes · Visit · Colophon > - **Motion** · breathing-loop on bean only (respects `prefers-reduced-motion`) -> - **Slop test** · 57 / 57 ✓ +> - **Slop test** · 58 / 58 ✓ > - **Diversification** · first run for this project *Bento Grid (SaaS, motion-on):* @@ -23,7 +23,7 @@ Four sample Step 5 preview blocks for the model to imitate, varied across macros > - **Enrichment** · E1 Clipped-Edge Demo Video, Tier-A CSS-art trace waterfall > - **Sections** · Hero · 6-tile Bento (stat · sparkline · quote · code · integrations · spotlight) · Index Footer > - **Motion** · counter · pricing-lift · CSS marquee on integrations strip -> - **Slop test** · 57 / 57 ✓ +> - **Slop test** · 58 / 58 ✓ > - **Diversification** · differs from Plain on paper hue (light-cool vs pure-white) + accent (indigo vs ink-blue) *Manifesto (declarative, no enrichment):* @@ -34,7 +34,7 @@ Four sample Step 5 preview blocks for the model to imitate, varied across macros > - **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 -> - **Slop test** · 57 / 57 ✓ +> - **Slop test** · 58 / 58 ✓ > - **Diversification** · differs from Newsprint on paper band (dark vs light) + display style (display-heavy vs geometric-sans) *Custom (Coffeebox archival café):* @@ -45,5 +45,5 @@ Four sample Step 5 preview blocks for the model to imitate, varied across macros > - **Enrichment** · Tier-A pure-CSS coffee bean (60-line SVG, breathing-loop optional) > - **Sections** · Masthead · Letter · Three Notes · Visit · Colophon > - **Motion** · breathing-loop on bean (with reduced-motion fallback) -> - **Slop test** · 57 / 57 ✓ +> - **Slop test** · 58 / 58 ✓ > - **Diversification** · custom axes: light / italic-serif / chromatic-terracotta — differs from previous catalog Newsprint on accent hue + display style diff --git a/skills/hallmark/references/slop-test.md b/skills/hallmark/references/slop-test.md index eeae520..3bc7ec1 100644 --- a/skills/hallmark/references/slop-test.md +++ b/skills/hallmark/references/slop-test.md @@ -1,4 +1,4 @@ -# Slop test — 57 gates + pre-emit self-critique +# Slop test — 58 gates + pre-emit self-critique Run this list before handing back any output. Every answer must be **no**. Update the Step 5 preview block's `Slop test` row to reflect the actual outcome of this run. @@ -8,7 +8,7 @@ Some gates are **universal** (apply to every genre); some are **genre-scoped** ( ## Pre-emit self-critique (six axes) -Run this **before** the gate list, not after. Score the planned output 1–5 on each axis. Anything **< 3 on any axis triggers a revision pass** before the gate sweep — don't bring known weakness into a fifty-seven-gate review. +Run this **before** the gate list, not after. Score the planned output 1–5 on each axis. Anything **< 3 on any axis triggers a revision pass** before the gate sweep — don't bring known weakness into a fifty-eight-gate review. Two passes is normal. Three is a sign the brief is wrong, not the design — re-read the brief. @@ -129,7 +129,7 @@ The CSS stamp at Step 6 should record the result: `· contrast: pass (40–41)` Universal — apply to every genre. These gates catch the most-recognised AI fingerprints in nav, footer, and hero shape. They sit alongside the structural-fingerprint gate (gate 8): gate 8 catches the *page* fingerprint; 42–45 catch the *chrome* fingerprints that sit on top of it. -42. **Nav fingerprint.** Is the page's `