media-kit — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited media-kit (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Build a complete speaker media kit from scratch — bios, headshots, and a ready-to-publish page that event organizers can use directly.
Interview the user. Batch 2-3 questions per round. Don't proceed until you have enough to write bios.
Write all four variants and present them together for review. Each variant builds on the previous.
For speaker grids, name badges, social bios.
Pattern: [Title], [Company]. [Core positioning statement].
Example: CTO & Founder, Digital Rain Technologies. Enterprise architecture background (Informatica, Dun & Bradstreet), now building systems that reason — across culture, operations, and enterprise governance.
For event programs, conference apps.
Pattern: [Full name] is the [title] of [company]. [Background]. [Current work]. [Notable affiliation]. [Education].
For panel introductions, press releases.
Pattern: [Full name] is the [title] of [company], where [current work — expanded]. [Background with company names and scope].
Second paragraph: [Current projects with one-line descriptions]. [Affiliation]. [Education].
For detailed press kits, conference bios.
Pattern: First paragraph from medium bio. Then one paragraph per notable project with concrete details. Close with affiliation and education.
Present all four bios. Ask user to review for:
Iterate until approved.
This is where most people get stuck. Walk through each step.
| Asset | Dimensions | Format | Use Case |
|---|---|---|---|
| Headshot (square) | 800x800 | PNG | Avatars, thumbnails, small speaker grids |
| Headshot (wide) | 1170x1170 | PNG | Speaker grids, social media, event programs |
| Portrait | ~1200x1800 | JPEG | Event banners, press, print materials |
| All above + transparent | Same | PNG | Composite graphics, stage screens |
The difference between "square" and "wide" is zoom level, not aspect ratio:
Ask the user:
Use sips (macOS) for resizing and cropping:
# Resize to target dimensions (preserving aspect ratio)
sips --resampleWidth 800 input.png --out headshot_square.png
# Crop to exact square (centers the crop)
sips --cropToHeightWidth 800 800 headshot_square.png
# For wide variant (more context around face)
sips --resampleWidth 1170 input.png --out headshot_wide.png
sips --cropToHeightWidth 1170 1170 headshot_wide.pngIf the source image needs manual framing guidance, tell the user:
Photos from phones often have EXIF rotation metadata that displays correctly in Preview but not on the web. Fix with sips:
# Check current rotation
sips --getProperty orientation input.jpg
# Rotate to straighten (supports any degree value, not just 90/180/270)
# e.g. 4 degrees to fix a slight tilt
sips --rotate 4 input.jpg --out input_rotated.jpgWhite corner artifacts: Small-degree rotations (like straightening a tilted photo by 4 degrees) fill the canvas corners with white triangles. Crop inward to remove them:
# Check dimensions after rotation
sips --getProperty pixelWidth --getProperty pixelHeight input_rotated.jpg
# Crop inward to remove white corners
# A 4-degree rotation on a 1410x2006 image needs ~100px trimmed per side
# 1410x2006 → crop to 1210x1806
sips --cropToHeightWidth 1806 1210 input_rotated.jpg --out input_fixed.jpgThe amount to crop depends on the rotation angle — larger angles need more trimming. Verify by reading the image file. White corners are easy to miss on white backgrounds but show up immediately on event slides, banners, and transparent composites.
Install rembg if not available:
which rembg || pip install rembgGenerate transparent variants:
rembg i headshot_square.png headshot_square_transparent.png
rembg i headshot_wide.png headshot_wide_transparent.png
rembg i portrait.jpg portrait_transparent.pngrembg uses the U2-Net model locally — no upload to external services. First run downloads the model (~170MB).
If rembg is not available and user can't install it:
For each generated image:
sips --getProperty pixelWidth --getProperty pixelHeight [file]Present a summary table of all generated assets with dimensions and file sizes.
Ask the user what framework they're using:
Generate:
app/media-kit/page.tsx — full media kit page with copy buttonsapp/media-kit/CopyButton.tsx — client component for copying biosThe page should include:
Generate a single media-kit.html with inline styles and vanilla JS copy buttons.
Generate media-kit.md with all bios, photo table, and links. No page generation.
media-kit.md — plain text version for email/docs/LLMsUse a personal identifier (e.g. GitHub handle) in both the zip filename and the top-level folder inside the zip so recipients can distinguish it from other media kits:
[handle]-media-kit.zip (e.g. augchan42-media-kit.zip)[handle]-media-kit/ (e.g. augchan42-media-kit/)Never use a generic name like media-kit.zip — organizers juggle kits from many speakers.
# Organize assets under the named folder, then zip it
zip -r [handle]-media-kit.zip [handle]-media-kit/The folder should contain:
[handle]-media-kit/
├── media-kit.md
├── headshots/
│ ├── [name]_headshot_square.png
│ ├── [name]_headshot_square_transparent.png
│ ├── [name]_headshot_wide.png
│ └── [name]_headshot_wide_transparent.png
└── portraits/
├── [name]_portrait.jpeg
└── [name]_portrait_transparent.pngReport final zip size.
Before finishing, verify:
| Mistake | Fix |
|---|---|
| Using exact year counts ("12 years at...") | Use "background at [Company]" — years create update debt |
| Only providing one headshot size | Organizers need square (avatars) AND wide (speaker grids) |
| No transparent background versions | Event designers need these for composite graphics and stage screens |
| Abbreviations in bios ("HK", "SF") | Spell out — organizers copy these verbatim |
| Bios that start with background, not current work | Lead with what you're doing now |
| No plain text version | Many organizers work in email/docs, not your website |
| Inconsistent facts across bio lengths | Write shortest first, then expand — never contradict |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.