Second pass after measuring more biases against the eval corpus.
- SKILL.md Color: explicit "cream/sand/beige body bg is the saturated
AI default of 2026" rule. Tone down the "tint every neutral" line so
it doesn't read as "default to warm-tinted near-white" (which OpenAI
hits at 74% and Anthropic at 31%-47%).
- SKILL.md Absolute bans: add universal bans for two slop patterns
detected at 55-95% across providers — tiny uppercase tracked eyebrow
above every section (the 2023-era kicker that's now AI grammar) and
numbered section markers (01/02/03). Also explicit "text that
overflows its container is the universal defect on tablet/mobile."
- SKILL.md Absolute bans → <codex> block: ban the GPT-specific defects
Paul annotated repeatedly — `border:1px solid` + soft-wide-shadow
(≥16px blur) "ghost cards", `border-radius:32px+` over-rounding,
hand-drawn/sketchy SVG illustrations (loose-sketch / *-sketch classes,
feTurbulence paper-grain filters), repeating-linear-gradient stripes,
"X theater" AI-slop copy phrases.
- SKILL.md Motion → <gemini> block: the image :hover transform tell
(38% Google skill-on rate). Hover effects on images add no info; the
image isn't an action target. Animate card chrome, not the image.
- SKILL.md Typography: hard display letter-spacing floor ≥-0.04em
(OpenAI defaults to -0.075em → cramped). Existing hero ceiling
<codex> block extended with the letter-spacing rule.
- codex.md Step A example: stop seeding "warm-grounded (deep oxblood +
cream)" as the warm-palette template, which primes the cream default.
- colorize.md Tinted backgrounds: stop printing the literal cream
recipe `oklch(97% 0.01 60)`; replace with brand-anchored guidance.
- document.md examples: warm-ash-cream → cool-paper so the example
doesn't seed cream as the canonical neutral example.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
A live Codex test against v3.1.0 caught the model skipping both
shape questions (when PRODUCT.md was present) and image generation
entirely, going straight to implementation after the compact shape
brief. The loophole: "confirm or override" at the end of compact
shape reads as the final gate, even though codex.md adds four more
gates before code.
Three tightenings:
- craft.md: new "Gates: do not compress" section at the top that
names the four gates explicitly (shape brief, direction questions,
palette, mock approval). Compact shape's closing line now says it
advances to Step 3 and codex.md, not Step 4. New precondition at
the top of Step 4 forbids mentioning implementation, file paths,
or patch plans until codex.md Steps A-D are complete.
- codex.md: new "Four stop points before code" intro listing the
user-facing gates as a numbered checklist. Step A now says it's
required even when shape just produced a confirmed brief; the
shape and Step-A questions cover different ground. Explicit STOP
markers added to Steps A, B, and D.
- Changelog: v3.1.0 "Shape gates restored" bullet rewritten as
"Shape and craft gates strengthened" to cover the additional
craft.md sequencing.
Retagging v3.1.0 to include this fix rather than cutting a 3.1.1
since the original tag is minutes old, no marketing went out, and
the gate work is what the asset-producer story needs to actually
work in Codex.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Codex is the only harness today with native image generation
(image_gen) and the shipped impeccable_asset_producer subagent. The
detailed mock/palette/asset workflow only applies there. Inlining
it in craft.md made every non-Codex harness read past 49 lines of
instructions it can't act on, and weakened the Codex-specific
guidance by averaging it down to a cross-provider lowest common
denominator.
Split:
- New skill/reference/codex.md: Steps A-F covering direction
exploration, palette-first generation, mock generation against
confirmed palette, approval loop, mock-fidelity inventory, and
asset slicing via the impeccable_asset_producer subagent. Adds
the "palette first" forcing function that wasn't in craft.md
before; locking the palette before any mocks is what stops
generated comps from drifting.
- craft.md Step 3 is now a one-line conditional: if the harness has
native image generation, load codex.md and follow Steps A-F. If
not, state in one line that the step is being skipped because the
harness lacks native image generation, then proceed using the
brief as the visual reference. Same announcement-required pattern
as shape.md.
- craft.md Step 4 (asset extraction) is absorbed into codex.md
Step F. Steps renumber: 5 (build), 6 (iterate), 7 (present)
become 4, 5, 6.
Net: craft.md goes from 155 lines to 106 lines for non-Codex
providers. Codex gets a sharper 92-line image flow with the
palette-first gate that wasn't there before.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>