mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-21 10:36:27 +03:00
craft + brand: framework foundation, build-pipeline respect, image verification
Three closely-linked additions surfaced by an eval-harness session
investigating why the agent always shipped flat single-file HTML and
zero imagery on greenfield brand briefs.
1. craft.md gains a new Step 0 "Project Foundation" before Shape.
Detects existing framework / component library / icon set and
uses what's there. Greenfield: ask the user via AskUserQuestion
with sensible defaults framed by the brief (Astro for content/
brand sites, SvelteKit/Next/Nuxt for app surfaces, single
index.html only for one-shot demos). Skipping the framework
decision and writing flat HTML "to satisfy the spec" produces
work that reads as a 2018 prototype regardless of visual
quality.
2. craft.md Step 5 production bar gains two bullets:
- Respect the build pipeline. Edit source files and run the
project's `npm run build`; do not write to build/ / dist/ /
.next/ directly with cat/heredoc/Bash redirects. Bypassing
the pipeline skips asset hashing, image optimization, code
splitting, and CSS extraction.
- Verify external image URLs before referencing them. Use an
image-search MCP, web-fetch tool, or browser if available;
guessed photo IDs ship as broken-image placeholders.
3. brand.md "Imagery" section:
- Generalizes the Unsplash URL guidance to "verify URLs
before referencing them" with a hierarchy: image-search MCP
> web-fetch > confidence-restricted manual selection >
fewer photos.
- Tightens the tech/dev-tool exception. Old line "zero imagery
can be correct" gave models a permission slip. New framing
keeps the underlying truth (typography + code + diagrams
primarily carry voice) but raises the floor: imagery still
earns its place when it serves the brief, and skipping it
requires naming the typographic/diagrammatic move that's
carrying the visual weight instead. "Zero imagery is the
failure mode of laziness, not restraint."
Eval-harness corpus that prompted this: 19/19 brand landing tasks
shipped 0 images each, including ones where Opus had taste enough
to break the dev-tool color default lane. The skill needs to teach
both halves of the decision; the harness shouldn't have to nudge.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
8f98f36e3d
commit
e3ad2eff25
@@ -81,12 +81,12 @@ Brand surfaces lean on imagery. A restaurant, hotel, magazine, or product landin
|
||||
|
||||
**When the brief implies imagery (restaurants, hotels, magazines, photography, hobbyist communities, food, travel, fashion, product), you must ship imagery.** Zero images is a bug, not a design choice. "Restraint" is not an excuse. If the approved comp or brief is image-led, ship real project assets, generated raster assets, or a credible canvas/SVG/WebGL scene. Do not replace photographic, architectural, product, or place imagery with generic CSS panels, decorative diagrams, cards, bullets, or copy.
|
||||
|
||||
- **For greenfield work without local assets, use stock imagery.** Unsplash is the default. The URL shape is `https://images.unsplash.com/photo-{id}?auto=format&fit=crop&w=1600&q=80`. Pick real Unsplash photo IDs you're confident exist (`photo-1559339352-11d035aa65de`, `photo-1590490360182-c33d57733427`, etc.); if unsure, pick fewer photos but don't substitute colored `<div>` placeholders.
|
||||
- **For greenfield work without local assets, use stock imagery.** Unsplash is the default. The URL shape is `https://images.unsplash.com/photo-{id}?auto=format&fit=crop&w=1600&q=80`. **Verify the URLs before referencing them.** If you have an image-search MCP, web-fetch tool, or browser access, use it to find real photo IDs and confirm they resolve. Guessed IDs (even ones that look real) often 404 and ship as broken-image placeholders. Without a verification path, pick fewer photos you're confident exist over more that you guessed; never substitute colored `<div>` placeholders.
|
||||
- **Search for the brand's physical object**, not the generic category: "handmade pasta on a scratched wooden table" beats "Italian food"; "cypress trees above a limestone hotel facade at dusk" beats "luxury hotel".
|
||||
- **One decisive photo beats five mediocre ones.** Hero imagery should commit to a mood; padding with more stock doesn't rescue an indecisive one.
|
||||
- **Alt text is part of the voice.** "Coastal fettuccine, hand-cut, served on the terrace" beats "pasta dish".
|
||||
|
||||
Tech / dev-tool brands are the exception where zero imagery can be correct; a developer landing page often carries its voice through typography, code samples, diagrams. Know which kind of brand you're working on.
|
||||
"Imagery" here is broader than stock photography: product screenshots, custom data visualizations, generated SVG, and canvas/WebGL scenes are all imagery. Text-only pages where typography alone carries the entire visual weight are the failure mode.
|
||||
|
||||
## Motion
|
||||
|
||||
|
||||
Reference in New Issue
Block a user