Skip to content

Refresh Codex plugin: upload-free archviz prompts + PNG icons#60

Merged
alcybiades merged 3 commits into
mainfrom
codex-plugin-archviz-prompts-png-icons
Jul 1, 2026
Merged

Refresh Codex plugin: upload-free archviz prompts + PNG icons#60
alcybiades merged 3 commits into
mainfrom
codex-plugin-archviz-prompts-png-icons

Conversation

@polooner

@polooner polooner commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

What

Two changes to the Codex plugin packaging inputs:

1. Upload-free architecture-visualization prompts

Replaces the three interface.defaultPrompt suggestions. The old ones all required a user upload/product ("...my product", "...this reference image", "Upscale this image..."), which doesn't work for a first-run showcase. New prompts are self-contained text-to-image, focused on archviz:

  • Generate 6 exterior concepts for a modern family home: coastal, forest, desert, urban, alpine, lakeside
  • Render a photorealistic hillside villa at golden hour with floor-to-ceiling glass and an infinity pool
  • Visualize a cozy Scandinavian living room with oak floors, a linen sofa, and soft morning light

2. Fix missing logo in the installed-plugins list

Icons were JPG. Every example in the Codex plugin docs uses PNG, and the installed-plugins icon renderer doesn't decode JPG — so the icon was packaged but blank. Converted logo/composerIcon to PNG (2048×2048, same artwork) and updated the manifest references.

build.py retains the dual-location asset copy so icon paths resolve whether the app treats them as plugin-root- or manifest-directory-relative.

Notes

  • dist/ is gitignored; rebuild with python3 .codex-plugin/build.py.
  • No version bump (content/asset change only); manifest stays at 0.5.2 so the CI version-consistency check passes.

🤖 Generated with Claude Code

- Replace the three default suggestion prompts with self-contained
  architecture-visualization prompts that need no user upload, showcasing
  text-to-image generation (exterior concepts, photoreal villa, interior).
- Convert logo/composerIcon from JPG to PNG and update manifest references;
  the installed-plugins icon renderer does not decode JPG (docs use PNG).
- Keep the dual-location asset copy in build.py so icon paths resolve whether
  treated as plugin-root- or manifest-directory-relative.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

Claude finished @polooner's task in 1m 57s —— View job


Review: Refresh Codex plugin

  • Gather context (diff, changed files)
  • Review build.py dual-location copy
  • Review plugin.json / plugin-overrides.json
  • Verify PNG assets & manifest references
  • Post review feedback

Verdict: LGTM. Small, well-scoped change. The reasoning holds up and I found no correctness or CI-regression risks. One non-blocking note left inline on build.py.

What I verified

  • PNG assets are valid. Both logo.png and composerIcon.png are genuine PNGs, 2048×2048, with the Krea "K" artwork on black. They are byte-identical (same SHA) — intentional per the PR ("same artwork"), which is fine.
  • No stale JPG references. Grepped the repo: nothing still points at logo.jpg / composerIcon.jpg. The only remaining .jpg hits are unrelated (eval scenarios, animation QA frame extraction). The manifest now references ./assets/*.png in plugin-overrides.json.
  • defaultPrompt limits respected. normalize_manifest truncates each prompt to 128 chars and keeps only the first 3. All three new prompts are ~95–103 chars, so none are silently cut.
  • Prompts fit the plugin surface. All three are self-contained text-to-image (no upload/reference-image dependency), which is right for a first-run showcase, and they align with the archviz keyword and the "architecture and interior visualization" longDescription. Routes cleanly through krea-generate.
  • No version drift. version stays 0.5.2 across plugin.json; the validate.yml version-consistency check should stay green. Asset/content-only change, so skipping the bump is defensible.
  • Build logic traces clean. ./assets/composerIcon.png resolves to staging_root/assets/composerIcon.png, which copy_assets now writes, so validate_plugin_root passes.

Inline note (non-blocking)

  • build.py: the dual-location copy is sound, but assert_packaged_file only validates the plugin-root-relative copy — it won't catch a missing manifest-dir-relative copy, which is the exact resolution ambiguity this PR is hedging against. Also flags that the copy duplicates every asset (screenshots included), harmless today. Details inline.

Note: I couldn't run python3 .codex-plugin/build.py to confirm the build end-to-end — it was blocked by sandbox permissions in this environment. The validation path is verified by inspection above; CI's build/validate job should confirm it.
· codex-plugin-archviz-prompts-png-icons

Comment thread .codex-plugin/build.py
Comment on lines +189 to +195
# Place assets at the plugin root AND alongside the manifest so
# interface.logo/composerIcon resolve whether the app treats those
# paths as plugin-root-relative or manifest-directory-relative.
for base in (staging_root / "assets", staging_root / ".codex-plugin" / "assets"):
target = base / relative
target.parent.mkdir(parents=True, exist_ok=True)
shutil.copy2(source, target)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The dual-location copy is a sound fix. One gap worth noting: validate_plugin_rootassert_packaged_file only checks the plugin-root-relative copy (staging_root / "./assets/…"), never the manifest-dir copy (.codex-plugin/assets/…) written here. Since the whole reason for copying to both is uncertainty over how the app resolves interface.logo/composerIcon, the validator can't actually catch the blank-icon failure this PR fixes if the manifest-relative copy ever goes missing. Consider asserting both paths exist. Not blocking — copy_assets always writes both today.

Also note this duplicates every asset into two locations (screenshots too), not just the icons. Harmless now (screenshots is empty, icons are tiny), just flagging the behavior.

Show the plugin's range instead of three architecture prompts:
- Architecture (image): photoreal hillside villa render
- Brand launch (video): 15s cinematic spot for a fictional e-bike brand
- Skincare campaign (video): 10s glow-serum ad for a fictional brand

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

Claude finished @polooner's task in 1m 42s —— View job


Review: Codex plugin refresh (re-review after Diversify commit)

  • Gather diff for latest commits (incl. Diversify Codex default prompts)
  • Review build.py dual-location copy
  • Verify PNG assets + manifest references
  • Check new default prompts against skill capabilities (lengths, video duration limits, workflow gates)
  • Post review

Verdict: LGTM — safe to merge. One non-blocking UX note left inline.

The PNG-icon fix and manifest references are unchanged and were already verified in the prior review. The new item in this push is the Diversify Codex default prompts commit, which swaps two archviz prompts for video prompts.

What I verified on the new prompts

  • No truncation. normalize_manifest (build.py:167) caps each prompt at 128 chars and keeps the first 3. The three new prompts are ~102–108 chars, so none are silently cut.
  • Durations are valid. 15s and 10s both fall within the model ranges (Kling 3–15, Seedance-2 4–15, and the social-video-short workflow's 5/10/15). No schema/duration failure.
  • Prompts route cleanly through krea-generate / krea-marketing video workflows.

Inline note (non-blocking) — plugin.json:38–42

Two of the three first-run defaults are now video prompts, which is in tension with this PR's stated goal of an upload-free quick-win first-run showcase. Video requests are gated by a mandatory cost-preflight (~1564 CU, 10–15 min for a 15s clip) and storyboard approval before anything renders — a very different first impression from the fast image prompt. Not a bug; just a deliberate UX call worth making. Consider keeping ≥2 image prompts and at most one short (5s) video prompt.

Also flagged inline: the PR description is now stale — it still lists the three archviz prompts, but the later commit replaced two with the Kestra/Velora video prompts. Worth updating the body.

Carryover from prior review (still applies, build.py:195, non-blocking)

validate_plugin_rootassert_packaged_file only checks the plugin-root-relative icon copy, not the manifest-dir copy this PR also writes — so the validator can't catch the blank-icon regression if the manifest-relative copy ever goes missing. And the loop duplicates every asset into both locations (harmless today). Already noted on the previous review; no action needed unless you want the tighter assertion.

Note: I couldn't run python3 .codex-plugin/build.py end-to-end (sandbox perms); the validation path is verified by inspection and CI's build/validate job should confirm it.
· codex-plugin-archviz-prompts-png-icons

Bump synced package, plugin, marketplace, codex/cursor manifest, and skill
versions to 0.5.3 so the install picks up the refreshed default prompts and
PNG icons (the plugin install cache is keyed by version).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

Claude finished @polooner's task in 1m 3s —— View job


Review: Refresh Codex plugin (updated for Release 0.5.3)

  • Gather diff for latest commits vs origin/main
  • Verify version sync across all manifests (0.5.3)
  • Check new default prompts against skill capabilities (video duration limits)
  • Re-verify PNG assets + manifest references
  • Post review

Verdict: LGTM. The latest commit (Release 0.5.3) resolves the one loose end from my prior review — versions are now bumped consistently instead of staying at 0.5.2. No new correctness or CI risks.

What I verified on the new commits

  • Version sync is clean. VERSION, krea-generate/VERSION, package.json, .claude-plugin/plugin.json, .claude-plugin/marketplace.json, .codex-plugin/plugin.json, .cursor-plugin/plugin.json, all four SKILL.md frontmatter blocks, and the README badge all read 0.5.3. No stray 0.5.2 remains outside the CHANGELOG history entry. The validate.yml version-consistency check should stay green. (Note: the PR description still says "No version bump / manifest stays at 0.5.2" — that's stale relative to the code, which is correct; worth updating the description for accuracy.)
  • New video prompts fit real duration limits. The two video defaultPrompts ask for a 15-second launch video and a 10-second skincare campaign. Seedance-2's user-selectable range is 4–15s (krea-generate/references/models/seedance-2.md:24), so both are valid — nothing will be silently clamped or rejected. The 15s prompt sits exactly at the ceiling, which is fine.
  • defaultPrompt char limits respected. All three prompts are ~100–110 chars, under the 128-char truncation in normalize_manifest, and there are exactly 3 (the max kept). None are silently cut.
  • PNG assets valid. logo.png and composerIcon.png are genuine PNGs, 2048×2048, and plugin-overrides.json references ./assets/*.png. No stale .jpg references remain.
  • Prompt mix is coherent. The three prompts now span the product surface (1 archviz image render, 1 fictional-brand launch video, 1 fictional skincare campaign) and are all upload-free — right for a first-run showcase. They route cleanly through krea-generate / krea-marketing.

Carried-over non-blocking note

  • build.py: the dual-location copy is sound, but assert_packaged_file still only validates the plugin-root-relative copy, not the manifest-dir-relative one — so the validator can't catch a missing manifest-relative icon, which is the exact ambiguity this hedge exists for. Already flagged inline on the prior review; still non-blocking since copy_assets always writes both.

I couldn't run python3 .codex-plugin/build.py end-to-end (sandbox permissions), but the validation path is verified by inspection; CI's build/validate job should confirm it.
· codex-plugin-archviz-prompts-png-icons

Comment thread .codex-plugin/plugin.json
Comment on lines 38 to 42
"defaultPrompt": [
"Generate 20 variations of my product in different studio backgrounds and angles",
"Make a 5-second product teaser from this reference image",
"Upscale this image with your top 5 enhancers and let me compare the results"
"Render a photorealistic hillside villa at golden hour with floor-to-ceiling glass and an infinity pool",
"Make a 15-second cinematic launch video for 'Kestra', an electric city bike brand, riding misty dawn streets",
"Create a 10-second skincare campaign video for 'Velora' glow serum: dewy skin, water ripples, soft light"
]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two of the three first-run defaults are now video prompts, which sits in tension with this PR's stated goal of an upload-free, self-contained quick-win showcase.

Unlike the image prompt (line 39), a video request routes through the marketing/generate video workflows, which gate on:

  • Mandatory cost-preflightkrea-generate/references/cost-preflight.md; per krea-marketing/workflows/social-video-short.md:24 a 15s Seedance-2 720p run is ~1564 CU and 10–15 min, and the agent must show the estimate and get a yes.
  • Storyboard approvalkrea-generate/references/troubleshooting.md:97: "Do not submit a short social video without showing the user an approved storyboard first."

So a brand-new user clicking "Make a 15-second cinematic launch video…" lands in a multi-minute, credit-heavy, approval-gated flow — a very different first impression from the image prompt's fast result. That's a UX judgment call, not a bug (durations are valid: 15s/10s are within the 3–15s / 4–15s model ranges, and prompts route cleanly), but worth a deliberate decision. If a fast first-run win is the goal, consider keeping ≥2 image prompts and a single short (5s) video prompt.

Note: the PR description still lists the three archviz prompts (villa / Scandinavian room / 6 exterior concepts); the later "Diversify" commit replaced two with these video prompts. Worth updating the PR body so reviewers see what actually ships.

@alcybiades alcybiades merged commit 7ed5a84 into main Jul 1, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants