Atlas / Skills / pr1m4lc0d3 / ekphrasis

ekphrasisSAFE

skills/pr1m4lc0d3/ekphrasis

Adjectives are how slop is made, not how it is cured. A Claude Code skill for image and animation prompts: name the subject, fix the light, restrict the medium, say what it is not.

Verdict
SAFE
Grade
B
Trust score
89 /100
Version
—
Hosts
1 documented
License
NOASSERTION
Stars
0
01

Overview

Adjectives are how slop is made, not how it is cured. A Claude Code skill for image and animation prompts: name the subject, fix the light, restrict the medium, say what it is not.

Read from source at commit a5d48c307a66OBSERVED · 2026-10-12
02

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
codexmentioned
03

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: ekphrasis
description: Use when writing prompts for an image or animation generator — cover art, hero images, podcast covers, product renders, stop-motion sheets, thumbnails, or any request phrased as "generate an image", "make artwork", "create a cover", "an image prompt for ChatGPT/Codex/Flux/Midjourney/DALL-E", or when generated art comes back looking glossy, generic, or obviously AI. Also use when animation frames jitter or refuse to hold a consistent subject. This is prompt AUTHORSHIP, not image editing — for producing and optimising image files see `image`, for ad specs see `ad-creative`, for video see `hyperframes`.
---

# ekphrasis

Classical *ekphrasis* is the vivid description of a visual work in words. That is
exactly this: words engineered to produce an image, rather than words that
describe a mood and hope.

## Provenance

Distilled from the `codeai-artist` agent's own vault in Chatterbot 2000, written
during a working conversation with the owner:

- `AppData\Roaming\Chatterbot 2000\Vault\codeai-artist\ref-prompt-methodology.md`
- `AppData\Roaming\Chatterbot 2000\Vault\codeai-artist\ref-legibility-tell.md`

⚠ This is a *field method*, not a paper. It was arrived at by generating images,
looking at them, and naming what went wrong. Its claims about mechanism are
stated below with their limits attached, because the method's own honesty is
part of why it works.

---

## The core stance

**Slop is not cured by adding adjectives. Adding adjectives is how slop is made.**

Slop comes from prompts that describe a **mood** instead of a **subject**. Given
a mood, the model fills every unspecified gap with its most probable answer, and
the sum of most-probable answers is the mean of everyone's averages. That mean
*is* the glossy AI look.

The method is **specificity plus constraint**. It is the opposite of a
style-word pile.

⛔ Delete on sight: `8k`, `hyperdetailed`, `masterpiece`, `award-winning`,
`cinematic`, `stunning`, `breathtaking`, `ultra-realistic`, `trending on
artstation`. Every one of them pushes the sample toward the generic centre.

---

## The six principles

**1. Name a real subject with particularity.**
Not "a forest" but *"a stand of birches in November, one leaning against its
neighbour, bark peeling in narrow strips."* Give the model something concrete
to anchor to.

**2. Commit to one light source with a physical direction.**
Slop lives in diffuse, directionless light. *"Late northern light through a high
window, long raking shadows"* forces choices the model would otherwise average
away.

**3. Say what the image is NOT.**
Use the negative field: no lens flare, no chromatic aberration, no
oversharpening, no soft-focus glow, no cinematic lighting, no 8k.

**4. Restrict the medium explicitly.**
"Colour photograph" drifts to commercial gloss. *"Shot on 35mm film, mild grain,
halation"* or *"soft charcoal study, visible smudges and erased lines"* fights
the plastic sheen directly.

**5. Give the composition a job.**
Ask for asymmetry, negative space, an off-centre subject, a quiet corner.
Restraint reads as intention.

**6. Know what it is FOR before writing.**
A cover, a mood board, a texture study and an editorial illustration each want a
different prompt. Writing before knowing produces a prompt that serves none of
them.

---

## The legibility tell

**The single most reliable giveaway, and most people cannot name it.**

Image models are rewarded for text being *readable*. So they rotate documents,
signs, books and labels flat-on to the viewer, at readable angles, in readable
type, **even when nobody in the scene would arrange them that way**. The model is
not reasoning about the scene's internal logic. It is arranging the world for the
viewer's convenience.

Once you can see it you cannot unsee it. It is the same mechanism that makes AI
hands hold objects at awkward camera-facing angles.

### The four-move fix, strongest first

1. **Take the text out of the image entirely.** The strongest fix by a distance.
   *"A neat stack of folded papers bound by a rubber band, lying flat."* No text,
   no legibility pressure, no rotation problem. The meaning survives without
   visible words.
2. **If text must be readable, make it partial and incidental.** Never centred,
   never flat-on. *"A worksheet lying askew at the table's edge, half under a
   saucer, the edge faded."* Physics anchoring makes rotation harder.
3. **Reduce the count.** One legible element is a target. Three is a cluster the
   model arranges like a display. Cut to one, or swap readable things for
   unlabelled equivalents — a paper cup instead of a worksheet.
4. **Add a recessional instruction.** *"The table is seen at a steep
   three-quarter angle receding into the scene; objects follow the table's
   perspective, none facing the viewer."*

Inline negative that names the failure mode directly:

> no readable documents facing the viewer, no text turned toward the camera,
> nothing arranged for the viewer's convenience — every object follows the
> scene's own perspective

⚠ **Move 4 alone will not save you.** Models obey it unreliably. Removal is the
defence; the instruction is a bonus. When text is not in the frame at all, the
tell has nothing to latch onto.

---

## Animation: why sheets jitter, and the fix

**The diagnosis:** generators draw each frame autonomously with no shared
coordinate system. Frame 3's hand does not belong to frame 2's clock. The jitter
is the model having no consistent geometry across frames.

**The fix:** stop asking for frames. Ask for **one numbered contact sheet** with
gutters. Inside a single image the model *does* hold geometry.

Lock everything static identical across frames. Change only the moving part,
along a clean known sequence. End on a rest frame identical to frame 1 so it
loops.

Phrases that do the actual engineering:

- "identical framing and identical camera angle"
- "the only thing that changes between frames is [the moving part]"
- "[static elements]
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeNA
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (0)

No findings outside the package's declared scope.

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha a5d48c307a66full audit observations/trust-audit/skill/pr1m4lc0d3__ekphrasis.json · Report an issue / request a re-scan
05

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-12a5d48c307a66SAFEB89first audit
06

Questions

What does the ekphrasis skill do?

Adjectives are how slop is made, not how it is cured. A Claude Code skill for image and animation prompts: name the subject, fix the light, restrict the medium, say what it is not.

Is ekphrasis safe to install?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.

What can ekphrasis access on my machine?

The audit observed no filesystem, network or shell use at all in its source.

Which assistants does ekphrasis work with?

Its documentation mentions codex. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (a5d48c307a66), read on 2026-10-12. The repository is watched, and a new audit runs when it changes — this is the first audit.

Advertisement