gallery
Skill22 starsChanged 3 months agoMITView on GitHub
Create photo galleries with AI-assisted layout curation. Orchestrates atomic scripts and sub-agents. Use when user wants to create a gallery from photos, mentions "/gallery", or asks about photo layout and sequencing.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- timpulver/openai-image-gentheir own version, first seen Nov 1, 2026
- All-The-Vibes/ATV-PaperBoardtheir own version, first seen Oct 13, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- All-The-Vibes/ATV-PaperBoard★ 1same name
- timpulver/openai-image-gen★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository194 other files it gives its agents.
- 0-templateSkill
- ab-test-analyzerSkill
- academy-guideSkill
- add-to-my-skillsSkill
- adr-authorSkill
- ai-tools-setupSkill
- algorithmic-artSkill
- api-and-interface-designSkill
- api-designerSkill
- api-docs-writerSkill
- apple-store-submitSkill
- aws-cost-optimizerSkill
- bash-script-hardeningSkill
- blog-post-writerSkill
- book-summarizerSkill
- branch-cleanupSkill
- brand-copy-landingSkill
- brand-copySkill
- brand-designSkill
- brand-guidelinesSkill
- browser-testing-with-devtoolsSkill
- canvas-designSkill
- changelog-generatorSkill
- changelog-keeperSkill
- chart-chooserSkill
- ci-cd-and-automationSkill
- ci-fix-loopSkill
- claude-apiSkill
- cloudflare-block-countriesSkill
- coderabbitloopSkill
- code-review-and-qualitySkill
- code-reviewerSkill
- code-simplificationSkill
- codexloopSkill
- comms-notionSkill
- comms-slackSkill
- comms-whatsappSkill
- competitive-analysisSkill
- concept-explainerSkill
- constraint-driven-developmentSkill
- context-engineeringSkill
- context-repoSkill
- cover-letter-writerSkill
- crash-courseSkill
- cron-schedulerSkill
- data-digestSkill
- data-pipeline-architectSkill
- debug-detectiveSkill
- debugging-and-error-recoverySkill
- decision-matrixSkill
- dependabot-triageSkill
- dependency-upgraderSkill
- deprecation-and-migrationSkill
- dev-instantdbSkill
- discernment-nudgeSkill
- doc-coauthoringSkill
- dockerfile-proSkill
- docs-index-keeperSkill
- documentation-and-adrsSkill
- docxSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 6 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 39
Important: All paths are relative to the current project directory.
- Distinctive: line 43
Before starting, identify the gallery's organizational mode:
- Distinctive: line 143
After all batches complete:
- Distinctive: line 154
Before generating, review the merged manifest for overall coherence:
- Distinctive: line 156
Count hero moments: If >4 FullBleeds, demote some to WideImage
- Distinctive: line 158
Verify rhythm: No consecutive high-weight blocks
- Very specific: line 175
If interrupted, check /tmp/gallery-batches/{folder}/ for existing batch files:
- Distinctive: line 181
Only run missing batches, then merge.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Gallery Workflow
Composed skill that creates photo galleries by orchestrating atomic scripts and sub-agents.
Philosophy
This skill applies principles from masters of photo sequencing and curation:
- Keith Smith: Group/Series/Sequence taxonomy; the gallery as a unified experience
- Jörg Colberg: Ruthless editing; visual rhythm; pacing
- John Szarkowski: The Five Characteristics for image assessment
"The individual pages have to give up their independence in order to form a union." (Keith Smith)
For detailed principles, see docs/photo-layout-principles.md.
Usage
/gallery {folder} "{title}" {slug}
Example: /gallery cabo-2025 "CABO 2025" cabo
Important: All paths are relative to the current project directory. The {folder} argument is a path within the project (e.g., ./photos/cabo-2025 or just cabo-2025). Do NOT search the filesystem for folders: assume the user's folder exists in the current working directory.
Gallery Modes
Before starting, identify the gallery's organizational mode:
| Mode | Definition | Implication |
| Series | Chronological journey (default) | Respect timestamp order; adjust only within temporal clusters |
| Group | Thematic collection | Order is flexible; optimize for visual rhythm |
| Sequence | Strict order with meaning | Order is sacred; only adjust layout, not arrangement |
Most travel/event galleries are Series.
Architecture
Atomic Scripts (reusable):
├── init-gallery-manifest.ts Create manifest from EXIF
├── merge-gallery-batches.ts Combine batch files
├── validate-gallery-manifest.ts Fix common errors
└── generate-gallery-files.ts Generate .astro pages
Sub-Agent Skill:
└── review-image-batch AI reviews images → batch-NN.jsonWorkflow
Phase 1: Initialize
bun scripts/init-gallery-manifest.ts {folder} "{title}" {slug}Creates:
src/data/gallery-manifests/{folder}.json(images array, empty blocks)/tmp/gallery-batches/{folder}/(clean directory for batch files)
Phase 2: Batch Review
Spawn sub-agents to review images. Each writes to its own file (parallel-safe).
For batchIndex in 0..ceil(imageCount/8):
Task(
subagent_type: "general-purpose",
description: "Review gallery batch {batchIndex}",
prompt: <see below>
)Sub-agent prompt template:
Review batch {batchIndex} for {folder} gallery.
Read:
- Manifest: src/data/gallery-manifests/{folder}.json
- Layout guide: {plugin_base_dir}/skills/review-image-batch/references/layout-guide.md
(The plugin base directory is provided in the skill invocation header)
Images to review: indices {startImage} to {endImage}
(Calculate: startImage = batchIndex * 8, endImage = min(startImage + 7, totalImages - 1))
Workflow:
1. Read manifest to get image filenames
2. Read layout guide for rules
3. View each image file with Read tool
4. Create layout blocks using your visual judgment
5. Write JSON to: /tmp/gallery-batches/{folder}/batch-{NN}.json
where NN = batchIndex padded to 2 digits (00, 01, 02...)
6. Return TEXT SUMMARY ONLY
Output file format:
{
"batchIndex": {batchIndex},
"startImage": {startImage},
"endImage": {endImage},
"blocks": [
{ "layout": "WideImage", "images": ["DSCF1234.jpeg"], "props": {}, "notes": "..." }
]
}
LAYOUT PHILOSOPHY:
Apply visual judgment, not mechanical rules. A gallery needs rhythm and variety.
Single-image (WideImage, OffsetImage, InsetImage, FullBleed):
- Strong standalones, portraits, quiet moments
Multi-image (TwoUp, ThreeUp):
- Use when juxtaposition creates meaning beyond either image alone
- Apply Lyons's test: Temporal? Spatial? Formal echo? Emotional pairing? Transformation?
- A good TwoUp is BETTER than two mediocre WideImages
- A true sequence (entering→through→emerging) deserves ThreeUp
Spacer: Add breathing room after powerful images
Chapter: Insert at location/theme changesParallel execution: Sub-agents can run in parallel since each writes to its own file.
Phase 3: Merge & Validate
After all batches complete:
bun scripts/merge-gallery-batches.ts {folder}
bun scripts/validate-gallery-manifest.ts src/data/gallery-manifests/{folder}.jsonThis combines all batch files and validates the result.
Phase 4: Global Arc Review (NEW)
Before generating, review the merged manifest for overall coherence:
- Count hero moments: If >4 FullBleeds, demote some to WideImage
- Check multi-image limits: Max 2-3 TwoUp, 1-2 ThreeUp across entire gallery
- Verify rhythm: No consecutive high-weight blocks
- Identify the climax: One clear emotional peak, not many
- Working backwards: Does the final image provide satisfying closure?
Phase 5: Generate
bun scripts/generate-gallery-files.ts {folder}Creates:
src/data/{folder}.ts(data file with chapters)src/pages/photographing/{slug}/index.astro- Additional
.astrofiles for each chapter (if multi-chapter)
Resume Protocol
If interrupted, check /tmp/gallery-batches/{folder}/ for existing batch files:
ls /tmp/gallery-batches/{folder}/Only run missing batches, then merge.
Layout Philosophy
A gallery needs rhythm and variety: loud moments, quiet moments, pairings that create meaning.
| Layout | Purpose |
| WideImage | Strong standalone landscapes |
| OffsetImage | Portraits, quiet moments, breathing room |
| FullBleed | Hero shots, climactic moments |
| InsetImage | Intimate details, visual whispers |
| Spacer | Pacing, section breaks |
| TwoUp | Images that speak to each other |
| ThreeUp | True sequences (entering→through→emerging) |
| SplitLayout | Asymmetric pairs, one frames the other |
| Chapter | Location/theme breaks |
Lyons's Juxtaposition Test
Pair images when juxtaposition creates meaning beyond either image alone:
- Temporal: Same moment, different angles
- Spatial: Same scene, complementary views
- Formal echo: Compositional rhyme (lines, shapes, colors)
- Emotional: Contrast or reinforcement
- Transformation: Together they say something neither says alone
A strong TwoUp is better than two mediocre WideImages.
Output
When complete:
- Gallery URL:
/photographing/{slug}/ - Files:
src/data/gallery-manifests/{folder}.jsonsrc/data/{folder}.tssrc/pages/photographing/{slug}/*.astro
Composability
Each piece is reusable:
# Just extract EXIF
bun scripts/init-gallery-manifest.ts photos "Photos" photos
# Just merge existing batches
bun scripts/merge-gallery-batches.ts photos
# Just regenerate pages from manifest
bun scripts/generate-gallery-files.ts photos
# Validate any manifest
bun scripts/validate-gallery-manifest.ts src/data/gallery-manifests/photos.jsonDoes it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

