Repository navigation
FAQ
No. It judges, explains and says what to change; generation, editing and grid fixing belong to other tools, which
the skills name (Skills). The only images aw.py writes are
working copies: fitted copies, contact sheets, pair images, previews and deliberately damaged test images.
No, and it says so. Nothing in the pixels settles it, so the skills answer neither yes nor no: they describe visible traits, never as proof, and name what would settle it, such as provenance, the file's history or C2PA metadata. The same goes for "is this a real Rubens" and "what is it worth" (Skills).
Because models judging images are swayed by which image comes first: in the research the judge is built on, swapping two images flipped up to 61% of verdicts. When the two orders disagree, the honest answer is a tie, shown to a person (How images are judged).
Model scores bunch at the top and mean little on their own. artwright ranks by comparison. When you ask for an
absolute score, it gives one anchored by three labelled reference images and warns about the bunching, and
verdict validate rejects a score without score_anchors.
aw.py info prints the cost of reading any image on the standard and high-resolution tiers before it is read
(Commands). The judge skill's own figure for a 16-image round robin in both orders is about
624k image tokens at the default 768 px pair cell; above about 12 images it switches to Swiss rounds.
No. Without either, aw.py reads PNG in pure Python and every other format fails with a message saying what to
install. With ffmpeg it reads JPEG, WebP and more; with Pillow (11 or later) it reads everything Pillow reads, and
faster. aw.py doctor says which applies (Getting started).
They stay on your machine, in ARTWRIGHT_HOME (default ~/.artwright): verdicts.jsonl, taste.md,
calibration/labels.jsonl, keywords/ and palettes/. The skills never write them into a repository. aw.py
makes a network request only to fetch a Lospec palette you name or for doctor --probe.
Yes. --against (for palette) and --palette (for pixel) take pico-8, a .hex, .txt or .gpl file,
comma-separated hex colours, or a Lospec slug (Commands).
It reports the largest block size the colour changes fit, and a pattern of 4-pixel squares drawn at 4x is made of
16 x 16 single-colour blocks. Pass --scale 4
(Errors and edge cases).
The skills turn a living artist's name into descriptive traits (medium, palette, line, subject, era) and say so in one line. Public-domain masters, movements and studio genres may be named.
The style skill answers in the tradition's own terms from its traditions file, and says when a row there is not yet verified by a fetched source. The README notes why: style labels from vision models are right about half the time and worse for non-Western art.
From sources fetched for the question, not from memory: the facts procedure names the readings of a question, checks the category and the year to date, and hands the dated facts to historywright for two independent sources (Guinness and Wikipedia count as finders, not sources). Each answer ends with a confidence line.
It is written for Claude Code, GitHub Copilot, Cursor and Codex. Claude Code installs it as a plugin; the others take the four skill folders copied into their skills folder (Getting started). Only Claude Code was run for this wiki.
Yes. The latest is 0.7.2, tagged v0.7.2 on 2026-10-26. Its
release page holds artwright-0.7.2.zip: the four
skill folders with the README, LICENSE and SECURITY.md. 0.3.0, 0.4.0, 0.4.2 and 0.7.0 have releases too; the
versions in between were never tagged and ship inside the next release (Versions and upgrading).
The rubric version is part of the cache key. 0.3.0 moved the default from 1 to 2 and 0.5.0 from 2 to 3, so
cache get misses on verdicts stored under an older version and the judge judges those images again under the
new rubric. Passing --rubric-version 2 (or 1) reaches the old rows
(Versions and upgrading).
No. A flag such as glowing_shadows or competing_focal says where to look. The skill opens that region, confirms
it, and only then writes it as a finding with the region named. The thresholds were set from how often each flag
fired on 7 museum works and 48 AI stills, with no owner labels, so the repository calls them uncalibrated
(Light, colour and composition).
No. The 0.7.0 craft numbers (banding, corner_doubles, jaggies_interior, pillow, edge_lost_on_bg and the
tile repetition fields) are reported and never change clean_pixel_art. None of them has a pass line yet: the
repository will not set one until there is evidence for it (LEARNINGS L-019). Read them as where to look; even the
clean test sprite reports banding (Commands).
Yes, since 0.4.0: aw.py geomgate compares the painting with the render's wheel rims, spokes, parts and contacts,
given a render folder with beauty.png, id.png and sprite.json. aw.py sprite checks a painted game sprite
against the set it joins, and aw.py setfit (0.5.0) one illustration against its series
(Commands).
Open an issue. Security problems can go through the repository's Security tab, "Report a vulnerability" (see SECURITY.md).
This wiki describes artwright 0.7.2 (the v0.7.2 tag, commit a185c05) and was last updated on 2026-10-26. The plugin is MIT licensed. Report problems in the issues. It installs from the repository, m4bwav/artwright, or from the 0.7.2 release.
Using it
- Getting started
- Skills
- Commands
- Light, colour and composition
- How images are judged
- Verdict contract
- Errors and edge cases
- Recipes
- FAQ
The releases
Contributing
Elsewhere