Photo library culling & metadata
Cull, rate, keyword and organize a shoot by visual quality.
20 project-authored proposals · taxonomy v1.1 · 0 new benchmark runs. Verifiers and partial-credit rules below are designs, not executed results.
- Typical applications
- Lightroom Classic · Bridge · Photo Mechanic
- Class GUI-need label
HY· Hybrid
Task proposals · 20
Expand to inspect the complete original wording and proposed checks. Original proposal text remains English in both interfaces.
R06.02.01.04-T01 Cull a 240-frame wedding set and build the client selects
Original instruction
Lightroom Classic catalog fixtures/wedding.lrcat holds 240 ceremony raws. Reject every frame with closed eyes or missed focus on the main subject, 5-star the 12 hero moments described in input/brief.md (e.g. 'first kiss, wide, ring visible'), 4-star strong alternates, and create collection 'Client_Selects' containing exactly the 4–5 star frames.
- Platforms
mac· macOSwin· Windows- Applications
- Lightroom Classic
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clickkey· Shortcutsvis· Visual judgment- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro applong· Long-horizon- Proposed difficulty
- 4 / 5
Proposed verifier
SQLite on the .lrcat: pick flag = −1 set vs 31 GT rejects (F1 ≥ 0.85); 5-star set vs 12 GT heroes (≥ 10 match); 'Client_Selects' membership equals rating ≥ 4. Metadata must be written in the catalog (XMP-only edits ignored); no frame deleted from disk. Lightroom's Lua plug-ins are disabled and the .lrcat may only be written by the Lightroom process; sqlite3 edits from other processes are logged and rejected.
Proposed partial credit
35% reject F1; 35% hero recall; 15% collection equals 4–5 star set; 15% no deletions or stray ratings.
R06.02.01.04-T02 Apply an IPTC metadata preset to one card's images only
Original instruction
In Lightroom Classic, folder 'Event_0914' holds 236 images from two cards (filenames A_*.CR3 and B_*.CR3). Create a metadata preset 'Gala2026' (creator, copyright '© 2026 Studio North', city 'Lyon', keywords Event>Gala) and apply it to the 118 card-B images only; card-A images must stay untouched.
- Platforms
mac· macOSwin· Windows- Applications
- Lightroom Classic
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro app- Proposed difficulty
- 2 / 5
Proposed verifier
lrcat: preset named 'Gala2026' exists; all 118 B_* images have the 4 fields exactly and keyword path Event>Gala; all A_* images have none of them. Checks catalog tables, so writing XMP with exiftool alone does not pass.
Proposed partial credit
20% preset defined; 50% 118 B images correct; 30% A images untouched.
R06.02.01.04-T03 Auto-stack bracketed frames and build a low-light smart album
Original instruction
Capture One catalog fixtures/travel.cocatalog contains 54 AEB bracketed frames (3 per scene) among 300 images. Stack the brackets into 18 stacks with the bracket's middle exposure as pick, then build a Smart Album 'LowLight' = ISO ≥ 3200 AND focal length 50 mm.
- Platforms
mac· macOSwin· Windows- Applications
- Capture One
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Query catalog DB: 18 stacks each with exactly the 3 GT bracket members and pick = 0 EV frame; smart album rule definition equals ISO ≥ 3200 AND FocalLength = 50; resolved membership equals the 23 GT images.
Proposed partial credit
40% 18 correct stacks; 20% correct pick per stack; 25% smart album rule; 15% membership = 23.
R06.02.01.04-T04 Keep only the sharpest frame in each burst
Original instruction
Lightroom Classic collection 'Bursts' contains 9 burst sequences (6–14 frames each) of a dancer. In each burst keep the frame with the sharpest eyes as pick, reject the rest, and give the kept frames a green label.
- Platforms
mac· macOSwin· Windows- Applications
- Lightroom Classic
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicknav· Pan/zoom/scrollvis· Visual judgment- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro app- Proposed difficulty
- 4 / 5
Proposed verifier
GT per burst = max variance-of-Laplacian on the eye region (ties within 3% accept either). lrcat: exactly one pick per burst, all others rejected, picks labeled Green. Score = fraction of bursts with an accepted pick. Lightroom's Lua plug-ins are disabled and the .lrcat may only be written by the Lightroom process; sqlite3 edits from other processes are logged and rejected.
Proposed partial credit
70% correct keeper per burst (pro rata over 9 bursts); 20% all others rejected; 10% green labels.
R06.02.01.04-T05 Ingest two cards in Photo Mechanic with renaming and code replacements
Original instruction
Using Photo Mechanic, ingest fixtures/cardA/ and fixtures/cardB/ (match day) to ~/Jobs/2026-10-03_Derby/, renaming as {YYYYMMDD}_DERBY_{seq4} in capture-time order across both cards, and apply IPTC template input/derby.XMP. Use code replacement file input/roster.txt so captions typed with \h7 expand to player names.
- Platforms
mac· macOSwin· Windows- Applications
- Photo Mechanic
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Files exist under the job folder with names sorted by DateTimeOriginal across both cards (sequence gaps = 0); IPTC fields equal the template; the 6 GT captioned frames contain expanded names (no '\' codes left). Source cards unchanged.
Proposed partial credit
30% ingest location and count; 30% rename order across cards; 20% IPTC template; 20% code replacement expanded.
R06.02.01.04-T06 Build a location keyword hierarchy from GPS in Adobe Bridge
Original instruction
In Adobe Bridge, folder fixtures/eurotrip/ has 80 geotagged JPEGs from 5 cities. Create keyword hierarchy Location > Country > City and assign each image its city keyword based on its GPS position (use input/city_bounds.geojson as reference), plus country parent.
- Platforms
mac· macOSwin· Windows- Applications
- Adobe Bridge
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clickmulti· Cross-apptype· Text & forms- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Read XMP dc:subject and lr:hierarchicalSubject per file: each image has exactly one city path Location|Country|City matching its GT city from point-in-polygon; no cross-city tags. Bridge keyword panel export must show the hierarchy.
Proposed partial credit
20% hierarchy created; 60% correct city per image (scaled); 20% no wrong or duplicate tags.
R06.02.01.04-T07 Tag five people across an event shoot with face recognition
Original instruction
Lightroom Classic catalog fixtures/conference.lrcat has 150 photos of a synthetic-actor conference. Using the People view, name the 5 speakers shown in input/speakers.png (Speaker_A … Speaker_E) on every photo where they appear, confirming or correcting the suggestions.
- Platforms
mac· macOSwin· Windows- Applications
- Lightroom Classic
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsvis· Visual judgment- Work product
WP10· Annotations- Conditions
licensed· Licensed pro applong· Long-horizon- Proposed difficulty
- 4 / 5
Proposed verifier
lrcat face tables: per speaker, set of images with a confirmed face region named for them vs GT; macro F1 ≥ 0.9 for full credit. Face regions must overlap GT boxes (IoU ≥ 0.5). Unnamed or mis-named regions lower precision. Lightroom's Lua plug-ins are disabled and the .lrcat may only be written by the Lightroom process; sqlite3 edits from other processes are logged and rejected.
Proposed partial credit
80% per-speaker F1 (16 points each); 20% face regions positioned correctly.
R06.02.01.04-T08 Color-label product shots by visible variant
Original instruction
Lightroom Classic folder 'Shoes_SS27' has 96 catalog photos of a sneaker in 3 colorways (red, white, black) but filenames do not tell which. Label each image Red/Yellow/Purple label for red/white/black colorway respectively, and add keyword SKU-<code> from input/sku_map.csv.
- Platforms
mac· macOSwin· Windows- Applications
- Lightroom Classic
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clickkey· Shortcutsvis· Visual judgment- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
lrcat colorLabels and keywords per image vs GT colorway: accuracy ≥ 98% for full credit; SKU keyword must match the label's colorway. Checks catalog, not filenames. Lightroom's Lua plug-ins are disabled and the .lrcat may only be written by the Lightroom process; sqlite3 edits from other processes are logged and rejected.
Proposed partial credit
60% label accuracy (scaled); 30% SKU keyword consistent; 10% no extra labels.
R06.02.01.04-T09 Find near-duplicate exports in a 600-image library
Original instruction
digiKam library fixtures/agency/ holds 600 images; 22 are near-duplicates (resized, re-cropped ≤ 5% or re-compressed copies of other files). Find them using the similarity search or any method, tag every lower-resolution copy 'Dupe' and keep the highest-resolution original untagged.
- Platforms
lin· Linuxmac· macOSwin· Windows- Applications
- digiKam
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clickvis· Visual judgmentcode· Code & commands- Work product
WP09· Files & folders- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
digiKam DB (digikam4.db) tags: set tagged 'Dupe' vs 22 GT duplicates (F1); for each GT group, the untagged member is the largest pixel count. Files must not be deleted or moved.
Proposed partial credit
50% dupe recall; 25% precision; 15% correct original kept; 10% no files removed.
R06.02.01.04-T10 Organize an Apple Photos library with smart albums
Original instruction
On a Mac, Apple Photos library fixtures/Family.photoslibrary holds 420 synthetic family photos. Create smart album 'Beach 2025' (keyword 'beach', date in 2025), add keyword 'beach' to the 37 beach photos from July 2025 that currently lack it, and favorite the 10 listed in input/favs.txt.
- Platforms
mac· macOS- Applications
- Apple Photos
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsvis· Visual judgment- Work product
WP09· Files & folders- Conditions
personal· Personal context- Proposed difficulty
- 3 / 5
Proposed verifier
Read Photos.sqlite (via osxphotos): smart album rule exact; 37 GT images keyworded 'beach' with no extra beach keywords; favorites = the 10 listed. Smart album resolves to the GT set.
Proposed partial credit
25% smart album rule; 45% keywording accuracy; 20% favorites; 10% no collateral edits.
R06.02.01.04-T11 Geotag a hike from a GPX track with a camera clock offset
Original instruction
Lightroom Classic folder 'Dolomites' has 140 photos without GPS and a track input/hike.gpx. The camera clock was set to UTC+1 while the trip was in UTC+2 and also ran 4 min 20 s slow. In the Map module, auto-tag photos from the track with the correct offset.
- Platforms
mac· macOSwin· Windows- Applications
- Lightroom Classic
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsgeom· Precise geometry- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
lrcat GPS for each photo vs GT positions interpolated with the true offset: median error ≤ 30 m, ≥ 95% within 100 m; capture times may remain unchanged. Photos outside the track time span must stay untagged.
Proposed partial credit
30% offset identified; 50% position accuracy; 20% out-of-span photos untagged.
R06.02.01.04-T12 Cull and species-tag a 300-frame bird shoot in digiKam
Original instruction
digiKam album fixtures/wetland/ has 300 bird photos. Rate 1 star every frame with motion blur or missed focus on the bird, 3–5 stars the rest by quality, and assign species tags from input/field_list.csv (12 species) using the reference sheet input/species_ref.pdf.
- Platforms
lin· Linuxmac· macOSwin· Windows- Applications
- digiKam
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clickvis· Visual judgmentnav· Pan/zoom/scroll- Work product
WP09· Files & folders- Conditions
long· Long-horizontutorial· Follow docs/tutorial- Proposed difficulty
- 5 / 5
Proposed verifier
digikam4.db: 1-star set vs GT technical rejects (F1 ≥ 0.85); species tags per image vs GT labels (accuracy ≥ 90%); no image with > 1 species unless GT has multiple. Species set restricted to the field list. exiftool/exiv2 CLIs are not installed on the VM and digikam4.db may only be written by the digiKam process; sqlite3 edits are logged and rejected.
Proposed partial credit
35% technical cull F1; 45% species accuracy; 20% ratings complete for all 300.
R06.02.01.04-T13 Caption 60 match photos with player names by visible jersey
Original instruction
Photo Mechanic contact sheet fixtures/match/ has 60 frames. Caption each with the template '{Name} (#{num}) of {Team} during the first half' for every player whose number is clearly visible, using code replacements from input/roster.txt; frames with no readable number get 'Action during the first half'.
- Platforms
mac· macOSwin· Windows- Applications
- Photo Mechanic
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
type· Text & formsvis· Visual judgmentnav· Pan/zoom/scroll- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro app- Proposed difficulty
- 4 / 5
Proposed verifier
IPTC Caption-Abstract per file vs GT visible-number lists: per-frame exact name set match; precision and recall over all player mentions ≥ 0.9 for full credit; template wording exact. exiftool/exiv2 are not installed on the VM and writes to fixtures/match/ are logged by process, so captions must be written by Photo Mechanic.
Proposed partial credit
60% player mentions F1; 25% template wording; 15% fallback captions correct.
R06.02.01.04-T14 Synchronize capture times of a second camera from a clock photo
Original instruction
Lightroom Classic catalog fixtures/twocam.lrcat has images from camera A (correct time) and camera B (unknown offset). Frame B_0001 shows a wall clock also captured as A_0003. Fix camera B capture times with Edit Capture Time so both cameras interleave correctly, then create collection 'Merged' sorted by capture time.
- Platforms
mac· macOSwin· Windows- Applications
- Lightroom Classic
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsvis· Visual judgment- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
lrcat captureTime for all B images shifted by the GT offset ± 2 s; A images unchanged; 'Merged' collection contains all images. Interleaving order matches GT event order for 20 key moments.
Proposed partial credit
40% correct offset; 20% A untouched; 25% interleaving order; 15% collection created.
R06.02.01.04-T15 Pick a 40-image story edit from a 900-frame wedding day
Original instruction
Lightroom Classic catalog fixtures/fullday.lrcat (900 frames) needs an album edit of exactly 40 images in collection 'Album_40' following input/story_brief.md: required beats (getting ready, vows, rings, first kiss, family formal, first dance, exit), no near-duplicates, no technical rejects, chronological order via custom sort.
- Platforms
mac· macOSwin· Windows- Applications
- Lightroom Classic
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clickdrag· Drag & dropvis· Visual judgmentnav· Pan/zoom/scroll- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro applong· Long-horizon- Proposed difficulty
- 5 / 5
Proposed verifier
lrcat: 'Album_40' has 40 images; each GT beat covered by ≥ 1 image from that beat's GT set; no two from the same near-duplicate cluster; none from GT technical-reject set; custom order monotonic in capture time. VLM rubric not used. Lightroom's Lua plug-ins are disabled and the .lrcat may only be written by the Lightroom process; sqlite3 edits from other processes are logged and rejected.
Proposed partial credit
20% count = 40 in chronological order; 40% beat coverage (7 beats); 20% no duplicates; 20% no technical rejects.
R06.02.01.04-T16 Batch-rename and copyright-stamp a folder in Bridge
Original instruction
In Adobe Bridge, rename the 200 files in fixtures/studio_0310/ to Studio_0310_{seq3}.{ext} preserving capture order, keep the original filename in XMP, and append copyright '© 2026 Lumen Studio' plus usage terms 'Editorial use only' to all files.
- Platforms
mac· macOSwin· Windows- Applications
- Adobe Bridge
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro app- Proposed difficulty
- 2 / 5
Proposed verifier
200 files named per pattern in DateTimeOriginal order; XMP xmpMM:PreservedFileName equals old name; dc:rights and xmpRights:UsageTerms exact on all files; sidecars renamed with raws.
Proposed partial credit
40% names and order; 20% preserved filenames; 30% rights fields; 10% sidecars consistent.
R06.02.01.04-T17 Control: apply the T02 IPTC fields with exiftool
Original instruction
Control pair of T02 (CLI half). In a terminal, write the same four IPTC/XMP fields as T02 (creator, copyright, city Lyon, hierarchical keyword Event|Gala) to the 118 B_*.CR3 sidecars in fixtures/Event_0914/ with exiftool, leaving A_* files untouched.
- Platforms
lin· Linuxmac· macOSwin· Windows- Applications
- exiftool
- Interfaces
term· Terminal- GUI need · task setting
CL· CLI-sufficient- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
code· Code & commandstype· Text & forms- Work product
WP09· Files & folders- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
Read XMP sidecars: all B_* have the four fields exactly; no A_* sidecar modified (hash unchanged). Pairs with T02 to measure the GUI-catalog route against the file route.
Proposed partial credit
60% B files correct; 30% A untouched; 10% hierarchical keyword format.
R06.02.01.04-T18 Choose the best variant per room in a real-estate shoot
Original instruction
Lightroom Classic folder 'Elm_St' has 75 photos covering 16 rooms (3–6 variants each). For each room pick the one with straight verticals, no photographer/flash reflection and best window exposure; green-label it and add it to publish collection 'MLS_Upload' in room order from input/room_order.txt.
- Platforms
mac· macOSwin· Windows- Applications
- Lightroom Classic
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clickdrag· Drag & dropvis· Visual judgment- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro app- Proposed difficulty
- 4 / 5
Proposed verifier
GT acceptable keepers per room (1–2 each, defined by vertical tilt ≤ 1°, no reflection, window clipping ≤ 2%). lrcat: exactly 16 green labels, one per room, all acceptable; publish collection order matches room order. Lightroom's Lua plug-ins are disabled and the .lrcat may only be written by the Lightroom process; sqlite3 edits from other processes are logged and rejected.
Proposed partial credit
60% acceptable keeper per room (scaled); 20% one per room; 20% collection and order.
R06.02.01.04-T19 Flag images that need model releases
Original instruction
Lightroom Classic catalog fixtures/street_fest.lrcat holds 220 synthetic street-festival photos. Add keyword 'NeedsRelease' to every image where a person's face is identifiable (frontal or 3/4, ≥ 80 px face height) and 'NoRelease' to the rest; build smart collection 'Commercial_OK' = NoRelease.
- Platforms
mac· macOSwin· Windows- Applications
- Lightroom Classic
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clickkey· Shortcutsvis· Visual judgment- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
lrcat keywords vs GT face annotations (identifiable per the stated rule): accuracy ≥ 95% for full credit, every image has exactly one of the two keywords; smart collection rule resolves to NoRelease set. Lightroom's Lua plug-ins are disabled and the .lrcat may only be written by the Lightroom process; sqlite3 edits from other processes are logged and rejected.
Proposed partial credit
60% classification accuracy; 20% every image labeled once; 20% smart collection.
R06.02.01.04-T20 Merge three Capture One catalogs and clean the keyword tree
Original instruction
Merge fixtures/cat_2023, cat_2024, cat_2025 Capture One catalogs into out/Archive.cocatalog. Relink the 2024 folder that moved to /Volumes/Archive/2024, merge case and spelling variants of keywords per input/keyword_map.csv into one hierarchy, and remove empty keywords.
- Platforms
mac· macOSwin· Windows- Applications
- Capture One
- Interfaces
desk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clickdrag· Drag & droptype· Text & forms- Work product
WP09· Files & folders- Conditions
licensed· Licensed pro applong· Long-horizon- Proposed difficulty
- 4 / 5
Proposed verifier
Catalog DB: image count = sum of three (no duplicates); 0 offline images; keyword list equals the mapped canonical set; each image's keywords mapped correctly (≥ 99%); no empty keywords.
Proposed partial credit
25% merged count; 25% relinked offline folder; 35% keyword consolidation; 15% empty keywords removed.
Mapped research references
No benchmark reference is assigned to this class in the current mapping.