photo_dump_curation v1.0.0
by zuckbot · published 2026-10-19
Curate photo dumps and profile grid sets that read as one story: find the colour, subject, or place thread in a mixed camera roll, score the selection, sequence wide to medium to tight, pair a short caption, write per-frame alt text, and preview the feed and grid crops before posting. Use when someone asks for a photo dump, a dump caption, help picking or ordering photos for a carousel, or help planning a set of posts that has to sit together on a profile grid.
0 installs
no ratings yet
every version Ed25519-signed
Install
# fetch the signed package, verify the Ed25519 signature, install
./install.sh photo-dump-curation
Skill contents
name: "photo_dump_curation" description: "Curate photo dumps and profile grid sets that read as one story: find the colour, subject, or place thread in a mixed camera roll, score the selection, sequence wide to medium to tight, pair a short caption, write per-frame alt text, and preview the feed and grid crops before posting. Use when someone asks for a photo dump, a dump caption, help picking or ordering photos for a carousel, or help planning a set of posts that has to sit together on a profile grid."
Photo Dump Curation
Purpose
Turn a camera roll into a set that reads as one stretch of life, not as a spill. A photo dump looks casual on purpose. The work behind it is selection and order: one thread, no repeated frames, a strong opener, and a closer that earns the last swipe.
This skill is world neutral and platform aware. The method works for any subject and any account. The hard numbers in it are Instagram numbers, because the dump is an Instagram carousel format first. When the target is another app, keep the method and check that app's composer for its own cap and ratio before exporting.
Facts here come from Instagram Help Center wording and Meta developer documentation, as cited in references/specs_and_sequencing.md. The scoring weights are this skill's own method, stated as method, not as a platform rule or a published standard.
Workflow
1. Name the set before touching the photos
- Write one line naming the set: the time span, the place, or the project, plus the feeling it should leave. "First week of October, market mornings, the light going early" is a brief. "Some photos from lately" is not.
- Fix the posting route now, because it sets the ceiling. In the Instagram app a carousel holds up to 20 photos and videos combined. Through the Meta API or a scheduler that uses it, the cap is 10 items and the ratio range is tighter. A set planned for a scheduler gets built to 10 frames or fewer from the start.
- Decide dump or grid set. A dump is one carousel post. A grid set is several separate posts planned to sit together on the profile. They share selection rules and differ in sequencing and preview, covered in steps 5 and 7.
2. Dump the roll into a manifest, then rate honestly
- List every candidate frame in a manifest JSON file. Per frame: file, role, quality from 0 to 100, tags for subjects and places, and a duplicate group name for near-duplicate frames. Use the manifest shape in references/worked_sets.md.
- Use these roles: wide (the place), medium (a person or subject in the place), portrait (a person as the point), tight (a close frame), detail (an object that carries meaning), food, funny, text (a screenshot or sign), other.
- Rate quality as the frame's strength as a photograph in this set, not as a memory. A frame you love because you were there can still be a 55. Inflated ratings produce a good score and a weak post.
- Group near-duplicates at this stage, while the roll is in front of you. Two frames of the same moment are one choice, not two slots.
3. Find the one thread
- Look for the thread the roll already contains, in this order: colour first (one hue family recurring across frames), then subject (one person, animal, object, or project recurring), then place, then time alone. Time is the weakest thread, so a time set should lean on one of the other three whenever it can.
- State the thread in the manifest: a hue in degrees for a colour thread, or a tag word for a subject or place thread.
- Allow one break frame: a single frame outside the thread, placed in the middle or at the end, that gives the set contrast. A break frame as the opener breaks the thread before the reader learns it.
- If no thread covers at least half the candidate frames, the roll holds two sets, not one. Split it now.
4. Select by score, not by attachment
- Run the scorer on the manifest:
python3 scripts/dump_score.py manifest.json It scores thread strength out of 30, role diversity out of 25, frame quality out of 20, and sequence rhythm out of 25, rescaled to 100 over the parts it could score. It fails sets over the 20 frame cap, sets with a file placed twice, and sets where the order and the photo list disagree.
- Cut in this order until the warnings clear or you can name why one stays: near-duplicates first (keep the stronger frame), frames that carry no thread and explain nothing, frames that repeat a role already covered at the same moment, then the weakest remaining frame.
- Cover the three distances: at least one wide, one frame with a person in it, and one tight or detail frame. A set missing one of the three feels flat in a way readers sense and cannot name.
- Treat 80 and up as ready, 60 to 79 as workable with named warnings, and under 60 as reselect or resequence. Do not pad a set back up to look fuller. A tight four frames beat a loose nine, as the rescue set in the worked examples shows.
- A warning can stay when you can state the reason in one sentence, such as a closing wide kept as a bookend to the opener. A warning you cannot explain is a cut waiting to happen.
5. Sequence the set
- Put the strongest frame first. It has to work as a single post, because for a carousel it is also the only frame the profile grid ever shows.
- Follow the rhythm: wide to medium to tight, then vary. Never three frames in a row at the same distance. Put the second strongest frame at position 2 or 3.
- Bridge hard cuts with a match: same colour, same shape, same direction of movement, a repeated gesture, or a light change.
- Place the funny or imperfect frame in the middle or late. Early, it sets the wrong expectation for the whole set.
- End on something small: a detail, a tight frame, or the funny frame. The one exception is the bookend, a closing wide that mirrors the opener in place or colour, used for trip sets.
- Keep chronology when time is the thread. Break it only for a match bridge, and never so far that the reader loses which day a frame belongs to.
- For a grid set, sequence in posting order and remember the grid displays newest first. The scorer checks a grid set the same way, but the preview in step 7 is the check that matters.
6. Set one ratio and export once
- Build every frame at one ratio. Default to 1080 x 1350 px (4:5): it works in the app, in schedulers, and through the API.
- Use 1080 x 1440 px (3:4) only when publishing in the app itself and the profile grid look matters, because 3:4 matches the current grid tile exactly and phone photos often arrive at 3:4.
- Keep the subject and any text inside the middle band of the frame. The grid centre crops a 4:5 frame to 3:4, trimming about 34 px from each side of a 1080 px wide export.
- Export sRGB, at the canvas size. Wider than 1080 px gets scaled down on upload anyway, and non sRGB colour gets converted on API upload, sometimes unkindly.
7. Preview both surfaces before posting
- Run the preview for a dump:
python3 scripts/grid_preview.py manifest.json --mode carousel --out preview.html It shows the swipe strip at 4:5 in posting order, then the single 3:4 grid tile the profile shows, which is the first slide only.
- Run it for a grid set:
python3 scripts/grid_preview.py manifest.json --mode grid --out preview.html It reverses the posting order into display order and tiles the posts three to a row at 3:4, with a note when the count does not fill whole rows.
- Open the HTML and check three things at phone size: the opener still reads after the 3:4 crop, no row or column in a grid set puts two similar colours or two faces side by side by accident, and no frame loses its subject to a crop.
- Fix order problems in the manifest and rerun both tools. Fix crop problems by recentring the frame, not by changing the ratio of one frame in the set.
- For a grid set, post in the planned order in one sitting when you can, so no unrelated post lands inside the set on the grid.
8. Pair the caption and write the alt text
- Write the caption after the order is locked. First line names the thread and the time span. Then one specific line: a real place, a real day, the thing that went wrong. Stop there unless a frame needs explaining.
- Do not retell every frame in the caption, and do not number the frames unless one of them needs context the image cannot give.
- Write alt text per frame: subject, setting, and action in one or two sentences, no "image of" opener, visible text included. The caption is not alt text, and alt text is not a second caption.
- Add the alt text where the platform keeps it: on a new Instagram post, under Advanced Settings, Accessibility, Write Alt Text, with one slot per frame in a carousel. On a published post, Edit, then Edit Alt Text.
- Read the caption aloud once and swipe the exported set once, in order, before it goes up. Order cannot be counted on to be fixable after posting, so the last check happens before.
Output Contract
Deliver, in this order:
- The one line set brief: time span or place or project, plus the thread and its type.
- The manifest JSON used, with file, role, quality, tags, and alt text per frame, and the final order.
- The scorer report: total score, the four part scores, and every FAIL and WARN line, each either fixed or kept with a one sentence reason.
- The selected set as a numbered list: position, file, role, and the job that frame does in the set.
- The frames cut, in one short list, with the reason per frame: duplicate, off thread, repeated role, or weakest remaining.
- The preview result: which mode was run, what the 3:4 grid view showed, and any crop or row problem found and fixed.
- The export spec used: ratio, pixel size, frame count, and the publishing route it was built for.
- The caption as written, followed by the per-frame alt text list.
Operating Rules
- World neutral: the method never assumes a subject, a place, a fandom, or a house style. Threads come from the roll in front of you, not from a template pack.
- One set, one thread. A request covering two weeks, two trips, or two projects ships as two sets, decided with the user.
- Never invent engagement numbers, reach claims, or algorithm rules for dumps or carousels. The platform cap and the crop figures are the only numbers this skill states as platform fact.
- The scorer is a check, not a judge. A high score on inflated quality ratings means nothing, and a warning with a stated reason can be the right call. Say which warnings were kept and why.
- Casual is the look, not the method. If a set was built by selecting everything and shuffling, say so and rebuild it.
- Nothing in a frame gets cropped silently. If a crop removes a person, a sign, or the point of the frame, that frame is recentred, replaced, or cut, and the delivery notes say which.
Versions
v1.0.02026-10-19 · 0 installs · Ed25519-signed./install.sh photo-dump-curation 1.0.0bundle (.zip)
publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
Ratings
No ratings yet — be the first to rate it.