A flat oval loop track carrying an upright dark tile on a carriage past two matching lens barrels aimed at it from opposite sides and a small grinding wheel, a spring clamp and a straight exit rail ending in a ring terminal, the far curve of the loop drawn in bone-grey outline past a diagonal cut, with a cyan line following the track through both lenses to the ring.
Creative

ArtDirection

Directs visual quality across images, films, slides, and site captures through a direction council, two vendors' vision judgments against anchored craft criteria, ranked defects, bounded iteration, gated delivery, and recorded human calibration labels

05
Workflows
03
Tools
01
Reference
08
Triggers

Key Points

Not for producing the artifact itself (use the appropriate image, motion, story-film, video-essay, web-design, or slide-production capability), for text writing audits, or for rating and rendering an ISA (ISA)

Inside the Skill

The thinking, frameworks, and architecture that distinguish this skill from a generic version of the same task.

Ideal State

  • Nothing artistic reaches the principal or a public surface without a current passing critique from the judge panel bound to the exact bytes delivered. The panel is cross-vendor whenever two approved vendors are reachable; a one-vendor panel may still pass, and its report carries the vendor_missing flag as weaker evidence.
  • Every verdict is honest: pass only when the pooled median reaches the bar and each vendor median reaches bar minus 0.5, with no UNKNOWN score or critical defect, a cap hit reported with its shortfall, and an unreachable vendor reported as unavailable rather than as a quality failure.
  • Each round names ranked, located defects a producer can fix, judged against the concept-first rubric rather than adjectives.
  • A figure's anatomy and mechanics are judged as a defect class: extra or missing limbs, a grip or pose that does not match the object held, or physically impossible motion is a critical defect located by image region or frame, so the critique fails it; the judges read this rule from References/Rubric.md.
  • The principal's own scores are kept verbatim as labels, and judges change only through a deliberate calibration, never automatically.

Intent Routing

Intent Trigger File
Loop Full quality loop or iterate to the bar Intents/Loop.md
Direction Art council or new visual direction Intents/Direction.md
Critique Rate the visuals or inspect a render Intents/Critique.md
Deliver Hand over a passing artifact Intents/Deliver.md
Calibrate Record the principal's score and note Intents/Calibrate.md
File Read when
References/Rubric.md writing a brief or reading a critique: the anchored axes, document and figure rules, defect shape and the Brief.json schema (References/BriefExample.json is a filled brief); Critique reads it at runtime
Setup.md first-time setup: the two judge vendors' access, ffmpeg for films, and a no-cost proof

Tool contract

Run with bun skills/ArtDirection/ prefixed to each tool path, from the config root.

Tool CLI contract
Critique Tools/Critique.ts --video <mp4> | --image <png> [--images <glob>] --brief <Brief.json> [--bar 8.5] [--samples 12] [--concurrency N] [--vendors openai,anthropic] [--sample-seed <n>] [--out <dir>] [--json] [--allow-identity]
Deliver Tools/Deliver.ts --artifact <file> [--critique <Critique.json>] --to <dir>
Calibrate Tools/Calibrate.ts --artifact <file> --verdict <1-10> --note "<text>"

Each intent file carries its tool's defaults, refusals and exit codes.

Data & Config

User customizations live at <configRoot>/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/ArtDirection/ (configRoot is $CLAUDE_CONFIG_DIR when set, else ~/.claude). When it exists, its PREFERENCES.md, configurations and resources override the defaults here; when absent, the defaults stand. First-time setup (accounts, keys, config, a proof it works) is in Setup.md.

  • A brief may name "calibration": "<target>". Critique then adds that Calibrate target's Taste.json (the principal's labeled likes and dislikes) to the judge prompt and records its labels_hash in the report; a target with no profile yet is noted under outstanding. Briefs without the field produce the prompt they always did.
  • Calibration labels append to ~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/ArtDirection/labels.jsonl (fields in Intents/Calibrate.md).
  • The panel is the vision vendors named by art_judges in <configRoot>/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/ArtDirection/Config.md (OpenAI, Anthropic and Google have seats; a missing file or key stops the critique with an error naming both). That folder's PREFERENCES.md, when present, is appended to References/Rubric.md as install-specific judging rules, and check_set.version hashes the two together. OpenAI vision runs as codex exec -i through the codex CLI signed in to ChatGPT (Assay/Tools/OpenAIVision.ts; no API key is read); Anthropic vision runs through LIFEOS/TOOLS/Inference.ts image input (the claude CLI on the subscription), never falling back to another vendor. Panel selection (--vendors) is in Intents/Critique.md. No credentials belong in briefs or logs.
  • Models come from LIFEOS/TOOLS/models.ts: CROSS_VENDOR.openaiJudge for OpenAI and the high rung of EFFORT_MODEL for Anthropic, never pinned here.
  • Preferences use configRoot above; the current credential and label implementations use the home .claude location.

Gotchas

  • Hand-over is gated by Deliver.ts because a first-draft video reached the principal with no critique on 2026-09-17, while the rule lived only in prose (the story is in the USER extension's History.md).
  • The rubric leads with concept (does the artifact carry its idea as one metaphor a stranger reads at a glance), and overall follows concept most. Changed 2026-09-28 after the principal's first Calibrate scores showed the old craft-first rubric ranking the scored artifacts almost at random (the measurement is in the USER extension's History.md).

Examples

User: "iterate until it's great" on a render → Loop intent → Brief.json and Direction.md exist, critique rounds run until the artifact passes the bar, or the four-round cap is reported with its shortfall.

User: "rate the visuals" → Critique intent → Critique.json with both vendors' scores, ranked defects and a pass, fail or unavailable verdict.

User: "that one's a 6, the type is cramped" → Calibrate intent → one label appended with verdict 6 and the note in the principal's words.

Workflows & Routing · 5

Each workflow is one job the skill runs. The trigger phrases route your request to the right one — this is the skill's routing table.

  1. 01
    Loop Intents/Loop.md

    Full quality loop or iterate to the bar

  2. 02
    Direction Intents/Direction.md

    Art council or new visual direction

  3. 03
    Critique Intents/Critique.md

    Rate the visuals or inspect a render

  4. 04
    Deliver Intents/Deliver.md

    Hand over a passing artifact

  5. 05
    Calibrate Intents/Calibrate.md

    Record the principals score and note

Tools · 3

Deterministic executables the workflows call — the code that does the real work, not prompt scaffolding.

  • Calibrate.ts
  • Critique.ts
  • Deliver.ts

How to Invoke

Say any of these to your DA and LifeOS activates the ArtDirection skill automatically:

  • "critique this"
  • "art direction"
  • "quality loop"
  • "rate the visuals"
  • "is this pro"
  • "iterate until it's great"
  • "deliver the render"
  • "art council"

Or invoke explicitly:

Skill("ArtDirection")

References · 1

Auxiliary files the skill loads at runtime — frameworks, guides, configs.

  • Setup

Want LifeOS to do this for you?

Install LifeOS on your machine — your DA gets the ArtDirection skill plus 96 others, all hooked into one Life OS.