Skip to content
Agentmart
Submit a tool

sheetfit

Strictly normalize an AI-generated animation sprite sheet so every grid cell is the SAME size and center-anchored, output as one engine-ready sheet.

Skill by gmlxo76

IndexedApache-2.0★ 1
Write a review

Chalk Labs

Need help deploying sheetfit?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

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/gmlxo76-sheetfit

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.

We use your email only for this newsletter. Privacy

About

Strictly normalize an AI-generated animation sprite sheet so every grid cell is the SAME size and center-anchored, output as one engine-ready sheet. Auto-runs after any sprite-sheet/animation-sheet generation.

Use cases: spreadsheets

No 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

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/sheetfit

Tools it pre-approves 1

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Bash(node:*)

What's inside

Skill name
sheetfit
Description
Strictly normalize an AI-generated animation sprite sheet so every grid cell is the SAME size and center-anchored, output as one engine-ready sheet. Auto-runs after any sprite-sheet/animation-sheet generation.
License
Apache-2.0
Allowed tools
Bash(node:*)
Instructions
83 lines in SKILL.md · view on GitHub

Before installing

  • Pre-approves some shell commands

Agent Skills spec issues

  • name: missing
  • files: referenced but missing: scripts/sheetfit.py

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Sheetfit — Animation Sprite Sheet Normalizer (Codex Image)

AI image generators draw each frame of a sprite sheet independently, so frames end
up at slightly different positions and sizes. If you slice such a sheet on a fixed
grid, the animation **jumps/jitters**. `sheetfit` is the **mandatory strict gate** that
fixes this: it verifies every cell shares the same content size + center anchor,
and if not, normalizes (size + position) and recomposes the frames into **one
corrected sheet** — then strictly re-verifies.

Output is a single **engine-ready sheet** (NOT per-cell files), so in Unity you set
**Sprite Mode = Multiple → Slice → Grid by Cell Count (cols × rows)** and every row
(one animation) plays registered with no jump.

## When to use — ALWAYS for sprite/animation sheets

**This is not optional.** Run `sheetfit` on the result of ANY sprite-sheet or
animation-sheet generation, every time, before the sheet is considered done:
- right after `/codex-image:generate` or `/codex-image:style-gen` produces a sheet
  whose content is a grid of animation frames,
- on every sprite-sheet / animation-sheet item produced by `/codex-image:asset-pipeline`.

If `sheetfit` reports `status: "rework"`, the sheet is NOT acceptable — **regenerate
the source sheet** (label-free, transparent gutters between every cell, strict even
grid, same character scale per cell) and run `sheetfit` again. Repeat until
`status` is `"fixed"` or `"pass"`.

## Source sheet requirements (so the gate can pass)

- **No text/labels inside the image** (labels break grid division).
- **Transparent gutters** between every row and column; content never touches a cell edge.
- **Strict even grid**, same character scale and baseline in every cell.
- Transparent background (chroma-keyed).

## Arguments

```
/codex-image:sheetfit <sheet.png> <grid spec>
```

- `<sheet.png>`: the generated sheet (quote if path has spaces).
- `<grid spec>`: free-form; the agent parses cols × rows. `"4x9"` → cols=4, rows=9.
- Optional: `--anchor bottom|center` (default `bottom` — feet planted, best for
  ground creatures), `--pad N` (transparent padding inside each cell, default 4),
  `--output <path>`, `--check` (verify only, write nothing).

## Run it

```bash
node "${CLAUDE_PLUGIN_ROOT}/scripts/codex-image.mjs" sheetfit "<sheet.png>" --grid <CxR> [--anchor bottom|center] [--pad 4] [--output <path>]
```

How it works: detects the TRUE frame grid via transparent GUTTERS (robust to uneven
AI spacing — NOT a naive even split), tightly trims each frame, sizes every cell to
the max frame extent + padding, re-anchors each frame consistently, and recomposes
into one corrected sheet. STRICT: it requires exactly `cols` column bands and `rows`
row bands with uniform column widths; labels, touching frames, or an uneven grid make
detection fail → `status: "rework"`. By default the fixed sheet is written next to the
input as `<name>_fixed.png` with a `<name>_fixed.sheet.json` sidecar.

## Result contract

The dispatcher prints one machine-readable line:

```
SHEETFIT {"status":"pass|fixed|rework","input":"...","output":"...","grid":"4x9","cellWidth":N,"cellHeight":M,...}
```

- `pass` — source was already uniform/aligned (exit 0). Use `output` as-is.
- `fixed` — normalized + recomposed into `output` (exit 0). Use `output`. Slice in
  Unity with Grid by Cell Count = grid, or Grid by Cell Size = `cellWidth × cellHeight`.
- `rework` — could not be made uniform (exit 1). **Do NOT ship it.** Regenerate the
  source sheet per the requirements above and re-run. This is the strict, adversarial
  behavior: when in doubt, fail and rework.

## Notes

- Implemented by `scripts/sheetfit.py` (Pillow + numpy).
- `--check` only verifies and reports (writes nothing) — exit 1 if not normalizable.
- Bottom-center anchor keeps the character grounded across frames; for frames that
  change shape a lot (e.g. an attack lunge) the top may move while the base stays
  fixed — usually what you want. Use `--anchor center` for symmetric content.

From gmlxo76/codex-image-in-cc, Apache-2.0.

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Jun 3, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from gmlxo76

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get sheetfit running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying sheetfit?

CallGet help
Cite this page

sheetfit skill. Agent Mart. https://agentmart.dev/skills/gmlxo76-sheetfit (last updated 2026-10-24)