From 65f28fa9e4176702abee0759c3d1579c975490f1 Mon Sep 17 00:00:00 2001 From: garrytan Date: Tue, 29 Sep 2026 19:16:00 +0000 Subject: [PATCH] fix(plan-design-review): treat a designer with no API key as unavailable Both proof runs (36597762183, 36606688266) printed DESIGN_READY, hit 'No OpenAI API key found' on the first $D variants call, then hand-built HTML/CSS wireframes, screenshots and a comparison board for ~195-245 s before the first review question; the second run timed out at 600 s. A failed first generation now takes the existing text-only path, and the skill forbids substituting hand-built mockups. --- plan-design-review/SKILL.md | 4 +++- plan-design-review/SKILL.md.tmpl | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/plan-design-review/SKILL.md b/plan-design-review/SKILL.md index 48574b18c..cf0991f32 100644 --- a/plan-design-review/SKILL.md +++ b/plan-design-review/SKILL.md @@ -767,6 +767,8 @@ review design — real visuals, not text descriptions." The ONLY time you skip mockups is when: - `DESIGN_NOT_AVAILABLE` was printed (designer binary not found) +- The first `$D` generation command fails before producing an image (for + example `No OpenAI API key found`): treat it exactly as `DESIGN_NOT_AVAILABLE` - The plan has zero UI scope (pure backend/API/infrastructure) If the user explicitly says "skip mockups" or "text only", respect that. Otherwise, generate. @@ -928,7 +930,7 @@ Note which direction was approved. This becomes the visual reference for all sub **Multiple variants/screens:** If the user asked for multiple variants (e.g., "5 versions of the homepage"), generate ALL as separate variant sets with their own comparison boards. Each screen/variant set gets its own subdirectory under `designs/`. Complete all mockup generation and user selection before starting review passes. -**If `DESIGN_NOT_AVAILABLE`:** Tell the user: "The gstack designer isn't set up yet. Run `$D setup` to enable visual mockups. Proceeding with text-only review, but you're missing the best part." Then proceed to review passes with text-based review. +**If `DESIGN_NOT_AVAILABLE`:** Tell the user: "The gstack designer isn't set up yet. Run `$D setup` to enable visual mockups. Proceeding with text-only review, but you're missing the best part." Then proceed to review passes with text-based review. Do not substitute hand-built HTML/CSS wireframes, screenshots or a comparison board of your own: they delay the first review question by minutes and are not designer output. ## Design Outside Voices (independent) diff --git a/plan-design-review/SKILL.md.tmpl b/plan-design-review/SKILL.md.tmpl index db88a19fb..5ce6b5341 100644 --- a/plan-design-review/SKILL.md.tmpl +++ b/plan-design-review/SKILL.md.tmpl @@ -205,6 +205,8 @@ review design — real visuals, not text descriptions." The ONLY time you skip mockups is when: - `DESIGN_NOT_AVAILABLE` was printed (designer binary not found) +- The first `$D` generation command fails before producing an image (for + example `No OpenAI API key found`): treat it exactly as `DESIGN_NOT_AVAILABLE` - The plan has zero UI scope (pure backend/API/infrastructure) If the user explicitly says "skip mockups" or "text only", respect that. Otherwise, generate. @@ -264,7 +266,7 @@ Note which direction was approved. This becomes the visual reference for all sub **Multiple variants/screens:** If the user asked for multiple variants (e.g., "5 versions of the homepage"), generate ALL as separate variant sets with their own comparison boards. Each screen/variant set gets its own subdirectory under `designs/`. Complete all mockup generation and user selection before starting review passes. -**If `DESIGN_NOT_AVAILABLE`:** Tell the user: "The gstack designer isn't set up yet. Run `$D setup` to enable visual mockups. Proceeding with text-only review, but you're missing the best part." Then proceed to review passes with text-based review. +**If `DESIGN_NOT_AVAILABLE`:** Tell the user: "The gstack designer isn't set up yet. Run `$D setup` to enable visual mockups. Proceeding with text-only review, but you're missing the best part." Then proceed to review passes with text-based review. Do not substitute hand-built HTML/CSS wireframes, screenshots or a comparison board of your own: they delay the first review question by minutes and are not designer output. {{DESIGN_OUTSIDE_VOICES}}