id-photo-sheet
Use when the user needs ID/passport/carnet photos (foto carnet, foto de carné, DNI, visa) at an exact mm size (e.g.
Skill by sejas
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/sejas-id-photo-sheet
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, spreadsheets, research
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/id-photo-sheet
What's inside
- Skill name
id-photo-sheet- Description
- Use when the user needs ID/passport/carnet photos (foto carnet, foto de carné, DNI, visa) at an exact mm size (e.g. 23x32, 26x32, 35x45 mm) tiled on photo paper (10x15 cm / A6, 13x18, A4) as a print-ready PDF, from a phone selfie or portrait photo.
- License
- MIT
- Instructions
- 51 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (2)
- SKILL.md
- make_id_sheet.py
SKILL.md (first lines)
# ID Photo Sheet
## Overview
Crop a portrait to exact ID-photo proportions (face-centered, head ~75% of height) and tile copies on a photo-paper-sized PDF with cut guides. Pure PIL, no ImageMagick/reportlab needed.
## Workflow
1. **Check orientation.** iPhone photos often have NO EXIF orientation tag (`sips -g orientation` → `<nil>`) yet the pixels are sideways. Save a small rotated preview and LOOK at it (Read tool) — don't trust metadata:
```bash
python3 -c "from PIL import Image; Image.open('IMG.jpeg').rotate(-90, expand=True).resize((450,600)).save('rot.jpg')"
```
`rotate(-90)` = clockwise. If the face is upside down, try `90` or `180`.
2. **Measure landmarks visually** on the 600px-tall preview: crown (top of hair) Y, chin Y, face center X. Eyeball precision is fine (±10px).
3. **Generate:**
```bash
python3 ~/.claude/skills/id-photo-sheet/make_id_sheet.py IMG.jpeg \
--rotate cw --crown 35 --chin 420 --cx 245 \
--photo-mm 23x32 --paper-mm 100x150 \
-o foto-carnet.pdf --preview-out sheet.jpg
```
Grid auto-fits (23x32 on 10x15 → 3x4 = 12 photos). Script prints verified PDF page size in mm and exits nonzero on mismatch.
4. **Verify visually.** Read the sheet preview JPG: head fills ~3/4 of each photo, small gap above hair, no black bars, grid centered.
5. **Tell the user the print settings** — this is where it fails in practice: print at **100% scale / actual size** (never "fit to page"), borderless, on the exact paper size used for `--paper-mm`.
## Defaults that match Spanish "fotografía de carnet" specs
- `--head-frac 0.75` (spec: face 70–80% of photo height)
- `--top-margin-frac 0.07`
- 600 DPI, 2mm gaps, light-gray cut guides
## Common sizes
| Use | --photo-mm |
|---|---|
| Spain oposiciones/carné variants | 23x32 |
| Spain DNI/passport | 26x32 |
| Schengen visa, most EU | 35x45 |
| US visa | 51x51 |
## Gotchas
- **Out-of-bounds crop → black bars.** If the crown is near the image edge, a zoomed-out crop (`head-frac` < ~0.7) can exceed the source. Script clamps automatically, but re-check the preview and the printed "head fraction" line; the WARNING outside 0.60–0.85 means reshoot or adjust landmarks.
- **PIL PDF page size** comes from `resolution=` in `save()` — pixel size ÷ DPI. Script cross-checks the MediaBox; trust its printed mm values.
- Cream/off-white wall backgrounds usually pass; if the authority demands pure white, warn the user before printing.From sejas/ai-code-skills, MIT.
More from sejas/ai-code-skills
- 0.603score
gpt-image
sejas
Generate and edit images with OpenAI GPT Image 2.5 via fal.ai.
SkillAFreshness: A★ 2Claude Code +9 - 0.507score
design-review
sejas
Designer's-eye QA of a running UI — screenshots it at real breakpoints, then reports spacing, hierarchy, alignment, contrast, state and motion defects ranked…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
brainstorming-names
sejas
Use when the user wants to name or rename something — a product, feature, brand, project, command, or company — or asks to "brainstorm names", "find a better…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
first-time-contributors
sejas
Use when checking whether recently merged PRs in a GitHub repository include first-time contributors — e.g.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
pr-leaderboard
sejas
Use when asked to analyze, rank, or explore merged PRs in a GitHub repo — "who merged what this week", "PR leaderboard", "rank contributors", "top authors"…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
ai-radar
sejas
Use when Antonio wants to catch up on frontier AI — "what's new in AI", "AI radar", "what is karpathy working on", "AI trends", "research digest", "what…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
make-pdf
sejas
Turn a markdown file into a publication-quality PDF — cover page, clickable table of contents with page numbers, running headers, page numbers, curly quotes…
SkillCFreshness: C★ 2Claude Code +9 - 0.503score
og-inspect
sejas
Inspect a URL's Open Graph and Twitter Card metadata and render a styled HTML page showing how the link unfurls on Facebook, X/Twitter, LinkedIn…
SkillCFreshness: C★ 2Claude Code +9 - 0.487score
mac-cleanup
sejas
This skill should be used when the user asks to "clean up my Mac", "free disk space", "my disk is full", "what's taking up space", "reclaim storage", "offload…
SkillCFreshness: C★ 2Claude Code +9 - 0.443score
commit
sejas
Write a commit message and create a git commit.
SkillDFreshness: D★ 2Claude Code +9 - 0.443score
presentation
sejas
Generate a Marp presentation from an intent's spec.
SkillDFreshness: D★ 2Claude Code +9 - 0.436score
explain
sejas
Search the codebase for function source code and explain it like for a junior developer
SkillDFreshness: D★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Aug 7, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/sejas/ai-code-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from sejas
- 0.603score
gpt-image
sejas
Generate and edit images with OpenAI GPT Image 2.5 via fal.ai.
SkillAFreshness: A★ 2Claude Code +9 - 0.507score
first-time-contributors
sejas
Use when checking whether recently merged PRs in a GitHub repository include first-time contributors — e.g.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
ai-radar
sejas
Use when Antonio wants to catch up on frontier AI — "what's new in AI", "AI radar", "what is karpathy working on", "AI trends", "research digest", "what…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
pr-leaderboard
sejas
Use when asked to analyze, rank, or explore merged PRs in a GitHub repo — "who merged what this week", "PR leaderboard", "rank contributors", "top authors"…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
brainstorming-names
sejas
Use when the user wants to name or rename something — a product, feature, brand, project, command, or company — or asks to "brainstorm names", "find a better…
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
make-pdf
sejas
Turn a markdown file into a publication-quality PDF — cover page, clickable table of contents with page numbers, running headers, page numbers, curly quotes…
SkillCFreshness: C★ 2Claude Code +9
Cite this page
id-photo-sheet skill. Agent Mart. https://agentmart.dev/skills/sejas-id-photo-sheet (last updated 2026-10-24)