CtrlK
BlogDocsLog inGet started
Tessl Logo

create-image-fal

Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent. image_urls must be public URLs (orchestrator hosts local product refs via MCP upload->presign). The recipe names the model + prompt. Use for keyframes, flat-cover transforms, product hero edits. (For the OpenAI gpt-image family specifically, create-image-gpt-image-fal also exists.)

63

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Medium

Suggest reviewing before use

Fix and improve this skill with Tessl

tessl review fix ./skills/ads/capabilities/create-image-fal/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

72%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is concise and well-organized with real bundle-file references, but the runnable example leaves the payload as a placeholder and the workflow lacks an explicit verification step on the paid call's output.

Suggestions

Replace the '{...}' payload placeholder with at least one concrete, copy-paste-ready example payload so the Run command is executable as written.

Add an explicit verification checkpoint (e.g., confirm the returned *.fal.media URL is reachable/non-empty before reporting success) to close the workflow feedback loop on a paid, externally billed operation.

Show how to invoke the bundled media_proxy.py with a short example command so the routing requirement is actionable rather than only described.

DimensionReasoningScore

Conciseness

The body is lean with no padding or restatement of concepts Claude already knows; every line (Run command, Contract bullets) earns its place, matching the top anchor.

3 / 3

Actionability

The Run line gives a concrete command but uses a placeholder payload ('--payload \'{...}\''), so it is not copy-paste ready; the Contract references the bundled media_proxy.py but lacks a complete executable example. Between anchors 2 and 3, settling at 2 for incomplete detail.

2 / 3

Workflow Clarity

This is a single-command skill with a clear invocation, but there is no validation/verification checkpoint on the returned *.fal.media URL before treating the paid call as successful; checkpoints are implicit rather than explicit, capping at 2.

2 / 3

Progressive Disclosure

Content is split into clear 'Run' and 'Contract' sections and references the real bundled files gen_image.py and media_proxy.py at one level deep with no nesting, fitting the simple-skill top anchor.

3 / 3

Total

10

/

12

Passed

Description

77%

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is specific and includes an explicit 'Use for' trigger, but its keywords lean toward technical model names rather than natural user phrasings, and it flags a sibling skill that introduces overlap risk.

Suggestions

Add natural-language trigger terms a user would actually say (e.g., 'generate an image', 'edit an image', 'image generation') alongside the model names to lift trigger term quality.

Sharpen the boundary with create-image-gpt-image-fal so Claude knows when to pick this one over its sibling, reducing conflict risk.

Trim internal routing/billing details ('ROUTED THROUGH THE fal-proxy so it bills the Ads agent') that are implementation rather than trigger guidance.

DimensionReasoningScore

Specificity

The description names multiple concrete actions ('Generate or edit an image', 'keyframes, flat-cover transforms, product hero edits') rather than vague language, matching the top anchor.

3 / 3

Completeness

It explicitly states what the skill does and gives an explicit 'Use for keyframes, flat-cover transforms, product hero edits' trigger clause, satisfying both 'what' and 'when'.

3 / 3

Trigger Term Quality

It surfaces relevant model terms ('nano-banana edit', 'gpt-image', 'flux') but these are technical product names, not natural phrasings a user would say; common variations like 'generate/edit an image' are only implied. Below the top anchor for natural keyword coverage.

2 / 3

Distinctiveness Conflict Risk

It has a clear niche (FAL models routed through the fal-proxy) but explicitly names a sibling skill 'create-image-gpt-image-fal' that overlaps the same gpt-image family, leaving material conflict risk. Not the top anchor because overlap is acknowledged rather than eliminated.

2 / 3

Total

10

/

12

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
gooseworks-ai/goose-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.