mohamedabdallah-14/prompt-to-asset · Archived

asset-validation-debug

Diagnose and repair asset-generation failures.

First seen Jun 26, 2026

Installation

$ npx skills add mohamedabdallah-14/prompt-to-asset --skill asset-validation-debug

Summary

  • Diagnose and repair asset-generation failures.
  • Maps tier-0/1/2 validation codes (checkerboard, missing alpha, safe-zone violation, palette drift, garbled wordmark, low contrast) to concrete repair primitives (matte, inpaint, route change, seed sweep, composite).
  • Applies a retry budget so Claude does not loop on hopeless regenerations.

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from mohamedabdallah-14/prompt-to-asset · top by installs.

npx skills add mohamedabdallah-14/prompt-to-asset

Browse all from mohamedabdallah-14/prompt-to-asset

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 17
License LICENSE
Default branch main
Open issues 1
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 8,119 B
  • docs SUMMARY.md 366 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 7 installs

SKILL.md

Asset validation + repair

Triggered when assetvalidate(), assetgenerate*, or assetsaveinlinesvg returns warnings or errors. Do NOT loop on the same failure; follow the tree and respect the retry budget.

Failure code → repair table

Code Origin Repair primitive Retry budget
T0_CHECKERBOARD Imagen/Gemini rendering fake transparency Route change → gpt-image-1 (background:"transparent"), Ideogram v3 (style:"transparent"), Recraft V3 2
T0ALPHAMISSING RGB-only output on transparency-required asset Matte via assetremovebackground (BiRefNet preferred, RMBG fallback) 1
T0_DIMENSIONS wrong width/height API params Fix params, regenerate 1
T0SAFEZONE subject bleeds outside platform center Regenerate with explicit "centered with 20% padding on all sides" 1
T0FILESIZE (SVG) path count blows budget assetsaveinline_svg → SVGO → K-means color reduction → vtracer 1
T0DCTENTROPY solid-color / NSFW-filter hit Regenerate same params once; if repeats, change prompt 1
T1PALETTEDRIFT model ignored hex constraint Recraft with controls.colors or recolor post-process (K-means remap in LAB) 1
T1TEXTMISSPELL diffusion garbled wordmark Drop text, composite SVG type (retry Ideogram 3 if text-only asset) 0 in-diffusion / 1 on Ideogram
T1LOWCONTRAST pale palette at 16×16 or over background Regenerate with explicit contrast instruction; else post-boost luminance 2
T1_VQASCORE prompt-image alignment weak Defect area <15% → inpaint; else full regenerate 2
T2BRANDDRIFT style diverges from brand refs Seed sweep (N=4, rank by CLIPScore + HPSv2); augment brand bundle 1
T2_COMPOSITION off-center, cluttered, poor whitespace img2img at low denoise (0.35) — preserves layout, fixes style 1

When a budget exhausts: stop retrying, report to user with diagnostic payload. Do not loop.

Diagnosis tree

asset_validate() returns warnings[]
   └─ for each warning:
      ├─ read code + affected tier
      ├─ classify failure class:
      │    local   (<15% image area)         → inpaint / post-process
      │    global  (style/palette-wide)      → route change / regenerate
      │    compositional (safe-zone/framing) → regenerate with centering prompt
      └─ select repair primitive (table above)
         ├─ apply
         ├─ re-validate
         └─ if same code fires again:
              ├─ retry_count < budget → try next primitive in fallback chain
              └─ retry_count ≥ budget → escalate to user

Repair primitives — cost / ROI

Primitive Cost relative to 1× generation When to choose
SVGO / palette remap / recolor 0.01–0.05× Deterministic fix, no model call
Matte (BiRefNet / RMBG) 0.05× alpha missing, no regeneration needed
Inpaint (masked edit) 0.3× defect area <15%, composition is right
img2img low-denoise 1× global style drift, preserve layout
ControlNet tile reinjection 1.5× preserve structure, regen detail
Full regenerate 4× architectural failure (checkerboard, wrong model)
Seed sweep (N=4) 4× + selection brand drift, pick best

Prefer cheaper primitives first when they apply.

Route-change rules for architectural failures

Symptom Current route Change to
Checkerboard Imagen / Gemini gpt-image-1 (first), Ideogram v3, Recraft V3
Wordmark garbled any diffusion Ideogram 3 Turbo (first), gpt-image-1 (second), composite SVG (always works)
Palette drift after 2 tries any Recraft (hard palette lock via controls.colors)
Subject misrendered SDXL Flux.1 [dev], gpt-image-1
Path count >200 on SVG Recraft SVG inline_svg mode + strict path budget

Proactive (pre-generation) checks

Prevent 70% of failures by validating the brief before calling assetgenerate*:

BRIEF:
☐ asset_type in closed enum (logo|app_icon|favicon|og_image|splash_screen|
                             illustration|icon_pack|sticker|hero|transparent_mark)
☐ subject noun concrete (not just adjectives)
☐ prompt ≥ 10 words OR brand_bundle provides style refs

TEXT-IN-IMAGE:
☐ quoted string ≤ 12 chars? else composite SVG type
☐ string > 5 words? force composite, skip diffusion-text path

PALETTE:
☐ brand.palette provided?
☐ hex codes ≤ 4 (over-constraint degrades Flux/SDXL)

TRANSPARENCY:
☐ transparency required + model in [Imagen, Gemini]?   → reroute
☐ transparency required + gpt-image-1?                  → set API `background:"transparent"`
☐ transparency required + Flux/SDXL?                    → plan post-matte

ROUTING:
☐ text required + model ≠ Ideogram/gpt-image-1?         → suggest reroute
☐ native SVG needed + model ≠ Recraft?                  → suggest Recraft or inline_svg

Where the codes come from

asset_validate (and every generator that runs a tier-0 pass before returning) emits the codes as a structured array:

{
  "pass": false,
  "warnings": [...],
  "failures": [
    { "code": "T0_CHECKERBOARD", "tier": 0, "detail": "checkerboard pattern detected in 42.7% of analyzed pixels; reject and route to native-RGBA provider", "data": { "ratio": 0.427 } },
    { "code": "T1_PALETTE_DRIFT", "tier": 1, "detail": "...", "data": { "avg_delta_e2000": 14.2, "threshold": 10 } }
  ],
  "tier0": { "width": 1024, "height": 1024, "has_alpha": false, ... }
}

Read validations.failures (when consuming an AssetBundle) or the top-level failures (when calling asset_validate directly). The data field on each failure carries enough context (bbox coords, ΔE value, Levenshtein distance) to pick a repair primitive without re-running the check. Source: packages/mcp-server/src/pipeline/validate.ts, ValidationFailure type in types.ts.

Integration with systematic debugging

Four-phase loop per failure:

  1. Gather evidence — read validate output; log model, seed, guidance, prompt_hash.
  2. Pattern analysis — match to failure code; classify local/global/compositional.
  3. Hypothesis — pick cheapest repair primitive from the matrix.
  4. Verify — re-validate; if same code recurs, step down the route-change ladder, not the same primitive.

Red flags (stop, escalate):

  • Same failure code 3+ times in a row
  • Two different route changes failed for the same asset
  • Cascading repairs (matte → vectorize → safe-zone) — brief is structurally wrong

Evidence to log per pipeline boundary

GENERATION:   model, seed, guidance_scale, num_steps, prompt_hash, latency_ms, status
MATTE:        tool (birefnet|rmbg|difference), alpha_px_before, alpha_px_after, checker_probe
VECTORIZE:    path_count_before, path_count_after, color_count, tool (recraft|vtracer|potrace)
EXPORT:       variants[].{path, format, w, h, size_bytes}
VALIDATE:     tier0{...}, tier1{palette_de: x, vqa: y, ocr_lev: z}, tier2{sim: w}

Research

  • docs/research/14-negative-prompting-artifacts/14b-artifact-taxonomy.md — taxonomy + origin points
  • docs/research/14-negative-prompting-artifacts/14c-regenerate-vs-repair-strategies.md — primitives, cost/time tradeoffs
  • docs/research/03-evaluation-metrics/3e-asset-specific-eval.md — VQAScore, OCR, WCAG, CSD thresholds
  • docs/research/24-skills-for-p2a/06-validation-debug-skill.md — full design spec