Extend document seed mode to gather brand assets first - #369
Draft
abdulwahabone wants to merge 89 commits into
Draft
Extend document seed mode to gather brand assets first#369abdulwahabone wants to merge 89 commits into
abdulwahabone wants to merge 89 commits into
Conversation
Ship the browsable mosaic document as an isolated HTML file and document the build intent in WHAT.md so the categorization work has a concrete UI target. Co-authored-by: Cursor <cursoragent@cursor.com>
Deploying impeccable with
|
| Latest commit: |
2c1acfc
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://a89db499.impeccable-2rv.pages.dev |
| Branch Preview URL: | https://questionaire.impeccable-2rv.pages.dev |
Contributor
|
Thanks for the PR. Impeccable is moving quickly, and this PR is currently waiting on contributor action. It has been waiting for contributor action for 7 days. Please address the outstanding review feedback, draft state, or explicit maintainer wait request. PRs that are still waiting on contributor action after 14 days are closed automatically. If nothing changes, this PR may be closed on or after 2026-07-28. Happy to reopen when it is ready to continue. |
Ask for logos, reference images, and moodboards before the five-question interview so the first DESIGN.md seed can ground taste selections in real visual context. Co-authored-by: Cursor <cursoragent@cursor.com>
Seed questions now avoid skill vocabulary (mirroring init.md's magazine-editor line), and a new step offers 2-4 generated palette cue images: native image_gen when the harness has it, otherwise an opt-in IMAGE_GEN_API_KEY in gitignored .impeccable/.env. Co-authored-by: Cursor <cursoragent@cursor.com>
A stored IMAGE_GEN_API_KEY in .impeccable/.env now counts as image generation being available for shape probes and the craft codex flow. The key ask itself stays exclusive to document seed mode; shape and craft still never prompt for APIs or tooling. Co-authored-by: Cursor <cursoragent@cursor.com>
This reverts commit 70eddbe.
Document seed mode's palette pick used to ask the user to imagine colors from words. Add a visual-cues pipeline: compose four-hex palettes from the brief (mood, references, PRODUCT.md), generate a hero scene plus a cream artifact sheet per concept, crop the sheet into isolated artifacts, and write cues.json so the user can pick a direction by eye. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the single-mind palette composition in the visual-cues pipeline with a three-wave studio: six persona specialists compose in parallel, a new OKLab similarity command plus peer critiques build each persona's scorecard, then each revises and generates its hero and artifact sheet. AI-assisted (Cursor agent), directed by abdulwahabone. Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the parallel "round" vocabulary from the visual-cues studio so one counting system covers the three spawn waves; the subagent template calls the palette a first draft instead. AI-assisted (Cursor agent), directed by abdulwahabone. Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the six-way critique wave from the visual-cues studio: after the compose wave, the OKLab similarity script loops with revision waves for flagged personas only (capped at three) until every verdict is clear, then the generation wave stages the settled palettes. AI-assisted (Cursor agent), directed by abdulwahabone. Co-authored-by: Cursor <cursoragent@cursor.com>
This reverts commit 57e4562.
Personas now compose sequentially, each shown the color territories the earlier personas claimed, replacing the similarity script and peer critique as the uniqueness mechanism. Generation moves to a parallel wave of dedicated image-prompt specialists that stage the finished palettes. AI-assisted (Cursor agent), directed by abdulwahabone. Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the sequential palette chain: the parent carves six visual, emotional, or strategic territories from the brief, then all six personas spawn in one parallel batch, each composing inside its own territory and generating both images in the same task. AI-assisted (Cursor agent), directed by abdulwahabone. Co-authored-by: Cursor <cursoragent@cursor.com>
Name the common spawn tools, require all six spawns in a single message, and call out spawn-await-spawn as the serial-loop failure it is. The no-subagent fallback now runs all six personas instead of four, so the user gets six cues on every path. AI-assisted (Cursor agent), directed by abdulwahabone. Co-authored-by: Cursor <cursoragent@cursor.com>
Investigation of a live run showed five of six palettes converging on the brief's deep-teal anchor: territories were scenic but hue-silent, and the anchor reached every spawn unscoped. Territories now must close on a hue ground (no two in one family), the anchor is owned by exactly one territory with everyone else told to leave it, spawn tasks may not be compressed, and each subagent critiques its palette and concept against the rules before generating. AI-assisted (Cursor agent), directed by abdulwahabone. Co-authored-by: Cursor <cursoragent@cursor.com>
AI-assisted (Cursor agent), directed by abdulwahabone. Co-authored-by: Cursor <cursoragent@cursor.com>
Live cues rendered the good colors as slivers: the hero prompt asked for an atmospheric scene with a 60% neutral ground and a small accent. The skeleton now frames tight on the subject and stages each color as a large unbroken field (neutral about half, primary a continuous third, tertiary small but legible), with the rationale in the fill rules. AI-assisted (Cursor agent), directed by abdulwahabone. Co-authored-by: Cursor <cursoragent@cursor.com>
A live run shipped one hero under three slugs: parallel subagents all wrote the generation tool's output as a generic hero.png in the shared project assets folder, then copied and referenced each other's files. Spawn tasks now require slug-based output filenames, using only the tool-reported path, a verify-your-own-files check before reporting, and the parent hashes all heroes before cropping and re-spawns duplicates. AI-assisted (Cursor agent), directed by abdulwahabone. Co-authored-by: Cursor <cursoragent@cursor.com>
…ll-lit generations Artifact crops now ship with real alpha: each sheet is generated twice (cream, then black via image edit) and fused by a new difference-matting command, sidestepping models' inability to emit alpha and the chroma key's spill. Crop and matte reject non-square inputs so squareness must come from the generation call's 1:1 parameter, and the hero prompt now demands bright, generous light so palettes stay sampleable. Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the two-pass matte pipeline in favor of one chroma-key sheet per cue: each specialist picks the farthest-hue key, stages larger artifacts with shadowless crisp edges, reports CHROMA in its reply, and crop records the hex in cues.json for browser keying downstream. Co-authored-by: Cursor <cursoragent@cursor.com>
Each specialist now generates one hero image instead of a second chroma-key sheet, and the compile step replaces crop with a simpler cues.json shape. AI-assisted commit. Co-authored-by: Cursor <cursoragent@cursor.com>
…eads. Replace preflight generation with harness tool presence, move territories into brief.md, forbid specialist repo reads, and document native tool output paths. AI-assisted commit. Co-authored-by: Cursor <cursoragent@cursor.com>
Ship image-gen.mjs with bfl and gemini backends plus custom delegation, document the keyless flow in image-api.md, and tighten seed Step 4 so missing keys ask once and opt-out falls back to text-only seeding. Compile now removes in-folder hero intermediates so each cue keeps one PNG. AI-assisted commit. Co-authored-by: Cursor <cursoragent@cursor.com>
Ban hex codes from image prompts to stop Nano Banana swatch strips, require crisp deep focus and set-dressed surfaces inside close product-world scenes, and add wordless and real-estate inspection retries. The Gemini wrapper now converts JPEG bytes to PNG and infers AQ.-prefixed keys. AI-assisted commit. Co-authored-by: Cursor <cursoragent@cursor.com>
Font pair screen: drop the phone footer from the type boards, widen the hero picture, split the editorial band evenly with the card row, center the desktop cards, and fix the label line heights. The handset takes a 26px headline, stepped section spacing instead of one uniform gap, and a single centered proof item between chevrons. Every word slot on these boards now draws lorem rather than product copy, so a pair is judged on its setting. Color strategy screen: one-line question, an options panel that hugs its rows, a preview whose height is free again, and the CTA stack in the same place the font screen keeps it. Also nudges the type scale specimen's top and left padding. Prepared with AI assistance (Cursor). Co-authored-by: Cursor <cursoragent@cursor.com>
The card row's squares came out three different widths: centering the cards in the gallery shrank each one to its own label, and the square is a share of its card. The cards take their column again and their contents do the centering. On the handset the section title and its paragraph were the smallest type on a board that has room for more, so both take a step up. Prepared with AI assistance (Cursor). Co-authored-by: Cursor <cursoragent@cursor.com>
…ette The index board grows the parts only a portfolio has: a project rail, a support row, and a pagination rail restated at the foot of the handset stack. They mount behind a prop rather than for every board, because the motion screen reads the same index body through :nth-of-type and a stray sibling would shift its scenes. Their sheet loads after the boundary, corner, and depth sheets so it wins ties on source order. The color strategy question now opens on Full palette. Prepared with AI assistance (Cursor). Co-authored-by: Cursor <cursoragent@cursor.com>
The default lives in each surface's fallback, not in the markup: show() checks whichever row the fallback names every time a tab opens, so the checked attribute on the option never survived. Persuade, Operate, and Read now open on Full palette. Experience keeps Restrained because four working colors are not on its allow list, and a default pointing at a blocked row would leave that tab with nothing selected. The font screen's boards also take the chosen palette under Restrained, which is the one answer no strategy block rewrites. They were drawing a page the palette had never reached while screen 03 kept its color under the same answer. Prepared with AI assistance (Cursor). Co-authored-by: Cursor <cursoragent@cursor.com>
Each option now draws its own page rather than a shared field with a different column count. Simple grid holds strict paired rows at equal image measures, balanced alternates wide images against captions, and freeform crops a lead, adds an upper portrait, and spills the card row into a set of prints with their own captions and marks. All three carry handset sequences at the reference measures. Behind them: one shared alignment-grid component mounted on every body that asks for it, code-native nav primitives placed at the reference measures rather than left to their grids, a project image-tone contract the boards key their fills on, and footer link groups. Prepared with AI assistance (Cursor). Co-authored-by: Cursor <cursoragent@cursor.com>
Add neutralContrastIssue() with a 7:1 ink floor and a 3:1 primary separation floor, re-run it from renderPreview(), and paint the palette hint in vermilion while the working neutral is bad. The warning clears as soon as the neutral is fixed. Prepared with AI assistance (Cursor). Co-authored-by: Cursor <cursoragent@cursor.com>
Let questionnaire runs finish early or jump into the seven remaining questions from a summary card grid, with hub navigation and per-answer summaries. Co-authored-by: Cursor <cursoragent@cursor.com>
Add the intro lede, per-row patina answer marks with DOM-sourced notes, mode-tile hover, and tighter card typography including inline pills and title arrows. Co-authored-by: Cursor <cursoragent@cursor.com>
Pills shrink to content width and use slightly more padding so values read as compact chips rather than full-width rows. Co-authored-by: Cursor <cursoragent@cursor.com>
Type scale and layout return to the linear path before configure; the hub shrinks to five cards with updated navigation. Also fixes palette tooltip clipping, drops the design-context masthead and icon hub notes, and locks the mosaic shell to the viewport without overflow. Co-authored-by: Cursor <cursoragent@cursor.com>
Product, Brand, Typography, and Material vignettes now use anim-join so their gold accent reads at 25% opacity before hover and brightens on hover, matching the Color tile. Co-authored-by: Cursor <cursoragent@cursor.com>
…st states. Replace the neutral palette hint warning with an on-swatch badge, simplify the finish loader screen, and keep typography/material vignettes ink-only until hover. Co-authored-by: Cursor <cursoragent@cursor.com>
Mirror the screen 02 neutral contrast badge on the strategy strip, share alert painting between both strips, and render richer PRODUCT.md context in the design document with matching visual-cues schema guidance. AI-assisted commit. Co-authored-by: Cursor <cursoragent@cursor.com>
Un-ignore tmp/questionaire for the gallery toolchain, baseline HTML, and the improved replica with drenched, committed, and full-palette color fixes. Co-authored-by: Cursor <cursoragent@cursor.com>
Add sequential labels to figcaptions and iframe titles in the gallery builder, then regenerate baseline and improved HTML. Co-authored-by: Cursor <cursoragent@cursor.com>
…roles. Boost docs strategy-stage line and dot weight to match App UI legibility, keep phone artboard lines proportional via pv-text scaling, and extend the gallery replica experiments for cells 14–18. Co-authored-by: Cursor <cursoragent@cursor.com>
Board-stage read artboards get thicker bar weight in picker.css; the gallery replica adds matching experiments plus desktop caption circles for Portfolio restrained/committed/drenched and drenched color roles on cell 21. AI-assisted commit. Co-authored-by: Cursor <cursoragent@cursor.com>
…ents. Tighten Landing, App UI, and Docs type-board copy, color, spacing, and gallery experiments so the improved preview gallery matches the live picker. AI-assisted commit. Co-authored-by: Cursor <cursoragent@cursor.com>
Add gallery avatars, tighten the experience index layout, and sync the improved previews gallery replica. Co-authored-by: Cursor <cursoragent@cursor.com>
Add product conversion/principles/surface copy and leading-surface badge; Brand voice and principles blocks; Color ink chips plus as-dealt/edited provenance tags. Extend visual-cues schema. Polish font-pair preview cells 24–25 and sync gallery replica. AI-assisted. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/impeccable documentseed mode before the five-question interviewIMAGE_GEN_API_KEYin gitignored.impeccable/.envwhen the harness lacks nativeimage_gen)DESIGN.mdprose while keeping other tokens as honest placeholdersTest plan
bun run build(skill prose validator passes)/impeccable document --seedon a pre-implementation project with and without assetsbun run test:skill-behavior(Setup-adjacent suite; not required for this seed-only change)Follow-up (deliberately out of scope)
IMAGE_GEN_API_KEYfrom document seed as an available image-generation path (same exception we discussed). Left out of this PR to keep it surgical; document seed owns the key ask today.AI-assisted change.