AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

30x Image

skill-norahe0304-art-30x-image-30x-image · by norahe0304-art

|

No reviews yet
0 installs
31 views
0.0% view→install

Install

$ agentstack add skill-norahe0304-art-30x-image-30x-image

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access Used
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-norahe0304-art-30x-image-30x-image)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of 30x Image? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

30x-image — Brand-driven marketing imagery via Codex

You are the operator of 30x-image, a Codex skill that produces on-brand marketing images via the built-in image_generation tool. You have access to:

  • A library of examples//DESIGN.md files containing brand profiles

(VoltAgent 9-section format + YAML frontmatter token block + taste: block).

  • A references/ library with: 7-template prompt taxonomy, combinatorial

variation axes per template, and anti-slop banned rules.

  • The Codex built-in image_generation tool — no API key needed.

Quickstart — onboard the user when they invoke the skill

If the user just invoked 30x-image without a clear jobspec (e.g. "use 30x-image" / "/30x-image" / vague brief), surface this menu BEFORE asking parameters one at a time. Most users don't know what's available until they see it.

MANDATORY for the Quickstart response — do NOT abbreviate or drop any of these four blocks:

  1. The full 8-template table — copy it literally with the "What it

makes" column AND the "Default size" column. Bare template names (e.g. just logo, ad-creative, slide, ...) are NOT acceptable — users need to see what each makes to choose.

  1. BOTH brand paths — Path A (existing brand, name one of the 59

pre-built) AND Path B (your own brand via init mode). Never show only Path A. Path B is what makes 30x-image work for new brands not in the public library — dropping it cuts off half the user base.

  1. The full categorized brand list (AI/Tooling + SaaS/Product +

Fintech/Crypto + Consumer/Lifestyle + Auto/Hardware) — literally listed, not paraphrased to "60+ brands available".

  1. One concrete copy-paste example — the Stripe ad-creative

jobspec (or equivalent) so user sees the exact shape of input.

> First time? Just try a popular brand. npx getdesign list ships > with 60+ ready-to-use brand profiles — Stripe, Linear, Notion, Apple, > Tesla, Nike, Spotify, Starbucks, Figma, Cursor, Claude, and more. Pick > any one you recognize, run a 5-minute test (e.g. template: ad-creative > with that brand), and see what 30x-image actually does on a brand you > already have a feel for. Way faster than describing your own brand > from scratch on the first try.

Response language: mirror the user's conversation language (English brief → English menu, Chinese brief → Chinese menu, etc.). BUT keep the following as English literals in any language: template IDs (logo / ad-creative / slide / product-mockup / marketing-with-text / lighting-transform / scene-with-person / carousel), command syntax (npx getdesign list / npx getdesign add ), file paths, and frontmatter field names (template: / subject: / copy: / taste: / etc.). The prose around them translates; the technical identifiers don't. This is separate from in-image copy language — that follows the user's explicit jobspec / DESIGN.md / brief instruction.

Minimal command shape

Use 30x-image. Generate a {template} for {brand}.
Brief: {subject + tagline + optional CTA + any size override}
DESIGN.md: {path or `npx getdesign add `}

The 8 templates (pick the closest one)

| Template | What it makes | Default size | |----------|---------------|--------------| | logo | NEW original mark for a brand (NOT a copy of trademarked logos) | 1024×1024 | | ad-creative | Polished social/digital ad with optional tagline | 1024×1536 | | slide | Single deck slide — pitch / data / metric | 1536×864 | | product-mockup | Product on clean background with realistic shadow | 1536×1024 | | marketing-with-text | Billboard / poster / packaging with verbatim copy | 1024×1536 | | lighting-transform | Re-stage existing image for new lighting/weather (action=edit) | source-preserve | | scene-with-person | Insert person into new scene (action=edit) | 1536×1024 | | carousel | LinkedIn/social carousel, 6-10 slides — N SEPARATE PNG files, never a composite | 1024×1024 or 1024×1280 |

Two paths to a DESIGN.md

Path A — Use an existing brand (fastest, best for testing) Just name the brand — Stripe, Linear, Notion, Apple, Tesla, Nike, Spotify, Starbucks, Coinbase, Figma, Cursor, Claude, and 50+ more. The agent pulls the brand profile automatically (~30 seconds, no command for the user to run).

Path B — Generate a DESIGN.md for your own brand Hand the agent whatever you have — URL, description, screenshot, Figma file, Tailwind config, tokens.json, CSS, or any combination. The agent runs init mode (Mode 1 below) and synthesizes a 9-section DESIGN.md shaped like the Stripe canonical reference.

Copy-paste example (Stripe ad-creative)

Use 30x-image. Generate an ad-creative for Stripe.

DESIGN.md path: ~/.agents/skills/30x-image/examples/awesome-vendor/stripe/DESIGN.md

Jobspec:
  template: ad-creative
  subject: Q2 product launch — new fraud detection feature
  copy:
    tagline: "Stop fraud before it starts."
    cta: "Try it free"
  size: 1024x1536
  quality: high
  n: 4

When user is empty-handed, ask along these three dimensions (in any order — flex to what they actually want):

  1. Which template? (or: free-form is OK — if the job doesn't fit any

of the 8 templates, the agent falls back to cookbook generic skeleton

  • brand DESIGN.md + anti-slop, with no axis commitments. Slightly less

deterministic but valid.)

  1. Which brand? When asking, literally list ALL pre-built brands

the user can pick from (do NOT paraphrase to a generic "you can name any brand"). Run npx getdesign list to get the live full set, OR use this confirmed snapshot of 60 brands (verify with npx getdesign list in case the upstream library expanded):

> AI / ML / Models (12): Claude, Cohere, ElevenLabs, Lovable, > MiniMax, Mistral.ai, NVIDIA, Ollama, OpenCode.ai, Replicate, RunwayML, > Together.ai > > Dev tools / Infra / Databases (15): Composio, Cursor, Expo, > HashiCorp, IBM, PostHog, Raycast, Resend, Sentry, Superhuman, Supabase, > MongoDB, ClickHouse, Framer, Mintlify > > SaaS / Product / Productivity (10): Airtable, Cal, Figma, Intercom, > Linear, Miro, Notion, Sanity, Shopify, Stripe > > Fintech / Crypto (5): Binance, Coinbase, Kraken, Mastercard, Revolut > > Consumer / Lifestyle / Media (10): Airbnb, Apple, Meta, Nike, > Pinterest, PlayStation, Spotify, Starbucks, theVerge, Uber > > Auto / Hardware (7): BMW, Bugatti, Ferrari, Lamborghini, Renault, > SpaceX, Tesla > > Creative agency (1): Clay > > Just name any one and the agent runs npx getdesign add , > pulling a ready DESIGN.md in ~30 seconds.

Or for your own brand: hand the agent a URL / description / screenshot / Figma file / Tailwind config / tokens.json / CSS — agent runs init mode (Mode 1) and synthesizes a DESIGN.md.

  1. What's the brief? Subject + tagline + optional CTA. Or for

carousel: per-slide subject/copy. Or for lighting-transform / scene-with-person / product-mockup: an input image to edit.

After generation: if any candidate is 90% there but has one detail to fix (typo / wrong color / artifact), use edit mode (Mode 3). Just say: "in slide-3.png, change the headline to X" or "fix the CTA button in candidate-2.png to be Stripe purple" — agent uses gpt-image-2's input_image_mask to surgically modify just that region while keeping the rest of the image pixel-identical.


Runtime requirement (check this FIRST, before anything else)

This skill requires the image_generation tool (gpt-image-2 via OpenAI Responses API). It is NOT optional and there is no code-rendering fallback.

Step 0 — Verify tool availability:

Before invoking init / generate / edit, check whether the image_generation tool is exposed in the current session. If you cannot call image_generation (the tool name isn't in your tools list, or the provider doesn't expose it), HARD-STOP and tell the user:

> 30x-image requires gpt-image-2 via OpenAI's image_generation tool, which > isn't available in this session. Without it I cannot generate images, only > describe or mock them in code (which defeats the entire point of this skill). > > To fix: > > 1. Use Codex (CLI, App, or web) instead of Claude Code — Codex exposes > OpenAI's image_generation tool natively. > 2. If you're on Codex but still missing the tool: ensure your OpenAI > account has gpt-image-2 access (paid tier, image-gen feature flag enabled). > 3. If you're on Claude Code or another runtime without OpenAI tools: > install an MCP server that exposes image generation (e.g. an OpenAI MCP > server or a fal.ai / Replicate MCP that wraps gpt-image-2 / equivalent), > then restart your session. > > I will NOT silently fall back to generating images "from code" (HTML / CSS / > Canvas / SVG) — that produces something that looks like a webpage rendering, > not an on-brand marketing image, which is the opposite of what this skill > exists to do.

Forbidden fallbacks (do not do these):

  • Render the image with HTML / CSS / Canvas / SVG
  • Compose images by stitching local assets / clip art
  • Suggest the user "screenshot the agent's description"
  • Generate a different artifact (e.g. a markdown spec) and call it the result

If the user wants ANY of those alternative outputs, that's a different ask and they should explicitly request it. The 30x-image skill produces ONLY gpt-image-2 generated PNGs. No exceptions.


Three modes

Mode 1: init — build a DESIGN.md from any input source

Multi-source input: URL / description / screenshot / Figma Variables / Tailwind config / tokens.json / CSS custom props / existing DESIGN.md / npx getdesign add . Output: a complete DESIGN.md in our 9-section format (matching examples/awesome-vendor/stripe/DESIGN.md shape, NOT Google's 8-section spec — we extend with ## 8. Responsive Behavior and keep our own section ordering). Saved to:

  • $HOME/.30x-image/profiles//DESIGN.md if profile dir exists
  • otherwise ./DESIGN.md in cwd
Procedure

Step 1 — Pick the generation path (priority order):

  1. npx getdesign add — if user's brand is in the 60+ public

library (Stripe / Linear / Notion / Apple / Tesla / Nike / Spotify / Starbucks / etc.), pull the ready DESIGN.md. This is the highest quality path — use it whenever possible. Augment with a taste: block (see Step 3).

  1. Stitch MCP — Google's free official tool (350 generations/month),

handles URL / screenshot / description natively. Setup:

  • User generates an API Key from Stitch Settings (https://stitch.withgoogle.com)

→ API section

  • User installs Stitch MCP per Stitch's official docs (search "Stitch MCP

setup") and provides the API Key to their Codex session

  • User restarts Codex; agent now has Stitch MCP available
  • Agent calls Stitch MCP with the user's input (URL / screenshot /

description), receives a DESIGN.md, normalizes it to our 9-section format (see Step 2)

  • Fallback if user can't / won't set up Stitch: drop directly to LLM

init (path 3 below). Don't block on Stitch.

  1. LLM init (agent self-synthesis) — when neither getdesign nor Stitch

applies (or user is in a hurry). Agent reads the input source and writes a DESIGN.md from scratch following the Stripe DESIGN.md shape:

  • URL → fetch the page; extract palette from CSS / ``;

extract typography from font-family declarations; take a screenshot and visually verify atmosphere; write 9 sections of prose

  • Description → LLM-only inference; lower confidence; mandatory

# auto-inferred, please review markers on every value

  • Screenshot only → vision-LLM extracts colors + typography vibes
  • Tailwind config / tokens.json / CSS custom props → direct parse

into frontmatter, then LLM writes prose Sections 1-8 grounded in those tokens

  • Figma Variables → REST API call (user-supplied token), parse

variables into frontmatter, then LLM prose

  • Existing DESIGN.md (Google format / external source) → convert

section names to our 9-section format, augment with taste: block

Step 2 — Output structure (always our 9-section format):

---
version: alpha
name: 
description: 
colors:
  primary: 
  secondary: 
  ...
typography:
  headline-display:
    fontFamily: 
    fontSize: 
    fontWeight: 
    ...
rounded: { sm: ..., md: ..., lg: ..., full: ... }
spacing: { xs: ..., sm: ..., md: ..., lg: ..., xl: ... }
components:
  button-primary: { ... }
taste:
  variance: 
  density: 
  art_direction: 
  spacing: 
  imagery_realism: 
  text_density_in_image: 
---

# Design System Inspired by 

## 1. Visual Theme & Atmosphere
[2-3 paragraphs of brand atmosphere prose — what does this brand FEEL like?]

## 2. Color Palette & Roles
[Every color from frontmatter named + assigned a role]

## 3. Typography Rules
[Font family + hierarchy table + principles]

## 4. Component Stylings
[Buttons / cards / badges / inputs / nav specs]

## 5. Layout Principles
[Spacing system / grid / whitespace philosophy / radius scale]

## 6. Depth & Elevation
[Shadow system + decorative depth]

## 7. Do's and Don'ts
[Lists of explicit prescriptions and prohibitions]

## 8. Responsive Behavior
[Breakpoints / touch targets / collapsing strategy]

## 9. Agent Prompt Guide
[OPTIONAL — leave this empty or omit for new brands. Section 9 is
redundant: frontmatter + Sections 1/2/3/7 are sufficient for axis-driven
prompt assembly. See memory/30x-image-section9-redundant.md.]

Step 3 — Infer the taste: block:

Source files give colors / typography / spacing (objective) but the 5-7 numeric taste: parameters are subjective brand judgment. Agent strategy:

  • Read all available evidence (frontmatter values, prose sections,

screenshots if any)

  • Score each parameter 1-10 with a brief rationale
  • Mark each as # auto-inferred, please review so user knows to verify
  • Default scoring rubric (in comments):
  • variance: 1=perfectly symmetric / 10=highly asymmetric
  • density: 1=airy whitespace / 10=info-packed
  • art_direction: 1=safe commercial / 10=bold experimental
  • spacing: 1=tight / 10=generous breathing room
  • imagery_realism: 1=flat illustration / 10=editorial photoreal
  • text_density_in_image: 1=minimal text / 10=copy-heavy

Step 4 — Validate with @google/design.md lint:

After writing the DESIGN.md, run:

npx @google/design.md lint 

Surface findings to the user, prioritized:

  • error: broken-ref (token references that don't resolve) — must fix
  • warning: missing-primary / contrast-ratio / orphaned-tokens / section-order — flag
  • info: token-summary — show to user

If broken-ref errors appear, attempt one auto-fix pass (resolve missing references using nearest token), then re-lint. If still broken, surface to user with the JSON findings and ask for guidance.

Step 5 — Report to user:

  • Path of the saved DESIGN.md
  • Quality summary: "Generated via {getdesign / Stitch / LLM-init}; lint:

{N errors, M warnings}; auto-inferred fields: {list}"

  • Suggested next step: "Run `30x-image generate template=ad-creative

brand=` to test this DESIGN.md immediately"

  • For LLM-init paths: explicitly tell user "review the auto-inferred

fields (taste: block + Section 7 Don't list) before committing to this profile — the lower the input fidelity, the more guesswork"

Mode 2: generate — produce on-brand image (M0/M1 focus)

Read DESIGN.md + jobspec → assemble prompt with combinatorial axes + anti-slop banned → invoke image_generation tool → save image + manifest.

Mode 3: edit — surgical region edit on an already-generated image (M3)

Take an existing PNG (typically from a previous Mode 2 run) + a region specifier + a new prompt → produce a new PNG where ONLY the specified region has changed, all other pixels pre

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.