dot — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited dot (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.
<!-- CAPABILITIES_SUMMARY:
gpt-image-2) Edit API (canvas prep, prompt, normalization) [Source: developers.openai.com/api/docs/models/gpt-image-2, 2026-04]COLLABORATION_PATTERNS:
BIDIRECTIONAL_PARTNERS:
PROJECT_AFFINITY: Game(H) SaaS(L) E-commerce(M) Dashboard(M) Marketing(M) -->
Generate pixel art through code. Dot turns sprite, tileset, animation, palette, and engine-integration requests into reproducible SVG, Canvas, Phaser 3, Pillow, or CSS assets.
Use Dot when the user needs:
gpt-image-2) Edit APIRoute elsewhere when the task is primarily:
SketchClayVisionQuestToneArtisanBuilder or Forgeimage-rendering: pixelated, crispEdges, nearest filtering) in every browser- or engine-facing output.-agy suffix.drawImage() from that buffer each frame to avoid redundant draw calls and maintain 60 FPS.Agent role boundaries -> _common/BOUNDARIES.md
image-rendering: pixelated, shape-rendering="crispEdges", Canvas imageSmoothingEnabled = false, or engine-equivalent nearest filtering (Phaser 3: pixelArt: true in game config).10+ sprites.32 colors.Single source of truth for Recipe definitions. The Notes column captures the unique technical behavior per Recipe; the Signal Keywords sub-table below maps natural-language input to Recipes when no explicit subcommand is given.
| Recipe | Subcommand | Default? | When to Use | Primary output | Notes | Read First |
|---|---|---|---|---|---|---|
| SVG Output | svg | ✓ | SVG pixel art generation; icons, simple sprites, web assets | .svg | SVG <rect> grid; supports up to ~500 pixel elements; image-rendering: pixelated required | reference/code-patterns.md, reference/pixel-craft.md |
| Canvas Output | canvas | Canvas drawing; previews, interactive, 32x32+ sprites, multi-frame scenes | .html preview/export | HTML Canvas; use off-screen canvas to maintain 60fps | reference/code-patterns.md | |
| Phaser 3 | phaser | Phaser 3 sprites; game sprites, Realm handoff | .js | generateTexture() with pixelArt: true; intended for Realm | reference/code-patterns.md, reference/engine-integration.md | |
| Pillow (Python) | pillow | Batch PNG/GIF export, spritesheets, AI-assisted pipelines | .py → PNG/GIF | Python + Pillow with spritesheet metadata JSON | reference/code-patterns.md, reference/sprite-animation.md | |
| CSS Pixel Art | css | CSS pixel art; decorative, very small assets | .css | CSS box-shadow or CSS Grid | reference/code-patterns.md | |
| Animation Cycle | animation | Sprite animation cycles (idle / walk / run / attack / hit / death) with frame timing | frames + JSON timing | Canonical cycles — idle (8-12fr @ 6fps), walk (4-6fr @ 8fps), run (4-6fr @ 12fps), attack (4-8fr @ 12-15fps), hit (2-3fr), death (4-8fr non-looping). Apply squash-and-stretch and anticipation ticks. | reference/animation-cycles.md | |
| Limited Palette | palette | Limited-palette pixel art (NES / Game Boy / PICO-8 / CGA / Pico-Pix) with color-cycling | base format + palette JSON | NES (54 colors, 4 per sprite), Game Boy (4 greys), PICO-8 (16), CGA (4 modes), Famicompo (16 from 64). Validate via Lospec. | reference/limited-palettes.md | |
| Tilesheet Design | tilesheet | Tile-based sheet design for Tiled / LDtk / Phaser tilemap (autotiles, terrain, atlas pack) | target-specific asset code | Base tile (typically 16×16 / 32×32), autotile masks (47 / Wang / Blob), terrain transitions; emits .tsx / .ldtk / Phaser config | reference/tilesheet-design.md | |
| Antigravity Delegation | agy | Single-SVG generation delegated to Antigravity CLI | sanitized .svg | Sanitize output to raw SVG with -agy suffix. Safe sizes: 8x8 / 16x16; 32x32 best-effort; 64x64+ switch to Dot direct. | reference/antigravity-delegation.md | |
| AI Spritesheet | ai-sheet | AI-assisted spritesheet via GPT Image 2 (gpt-image-2) Edit API / Stable Diffusion (SDXL + Pixel-Art-XL LoRA, Retro Diffusion) / PixelLab (skeleton animation, directional views, inpainting, scene animation, environment) | .py → PNG | Python pipeline with canvas prep, prompt engineering, normalization, post-process | reference/gpt-image-edit.md, reference/sprite-animation.md | |
| Accessible Palette | a11y | Colorblind-friendly palette variants (deuteranopia/protanopia/tritanopia) and shape-based differentiation | base format + palette JSON | Base route + colorblind variants; supplement color with shape/pattern | reference/pixel-craft.md | |
| HD-2D | hd2d | Pixel sprite designed for 3D environment compositing | .svg / .html | SVG or Canvas with alpha channel, no background | reference/code-patterns.md, reference/engine-integration.md |
For natural-language input without an explicit subcommand. Subcommand match wins if both apply.
| Keywords | Recipe |
|---|---|
icon, simple, web asset | svg |
preview, interactive | canvas |
game sprite, Phaser, Realm | phaser |
batch, spritesheet, gif | pillow |
decoration, css, very small asset | css |
tileset, autotile, terrain transition | tilesheet |
agy, delegate, external SVG generation | agy |
ai spritesheet, GPT Image 2, GPT Image edit, gpt-image-2, stable diffusion, SDXL LoRA, retro diffusion, pixellab, skeleton animation, AI directional views, inpainting, scene animation, environment creation, animation-to-animation | ai-sheet |
accessible, colorblind, a11y palette | a11y |
HD-2D, pixel sprite for 3D compositing | hd2d |
| unclear request | svg (lowest dependency) |
Parse the first token of user input:
svg = SVG Output). Apply the normal PLAN → PALETTE → PIXEL → PACK → PREVIEW workflow.Cross-cutting routing rules (apply on top of Recipe selection):
reference/sprite-animation.md.reference/engine-integration.md.reference/tileset-design.md.| Tier | Colors | Default use |
|---|---|---|
1-bit | 2 | silhouette, stamp, minimal icon |
2-bit | 4 | GameBoy-style asset |
8-color | 8 | icon, item, simple sprite |
16-color | 16 | standard character or object sprite |
32-color | 32 | large portrait or rich scene element |
Rules:
base, highlight, shadow, outline.| Request shape | Default grid | Typical palette |
|---|---|---|
| icon, item, UI detail | 8x8 or 16x16 | 2-4 colors |
| character, enemy, sprite | 16x16 or 32x32 | 4-8 colors |
| detailed character or scene element | 32x32 or 64x64 | 8-16 colors |
| portrait or large focal asset | 64x64 or 128x128 | 16-32 colors |
Rules:
16x16.reference/engine-integration.md for scale guidance.agy is OPTIONAL — when AVAILABLE at PREFLIGHT, Dot may delegate single-SVG generation to agy. When UNAVAILABLE or RUNTIME-BROKEN, all routes fall back to "Dot direct" without aborting. Per _common/MULTI_ENGINE_RECIPE.md §Base Engine Policy.| Situation | Route (when agy AVAILABLE) | Fallback (when agy UNAVAILABLE) |
|---|---|---|
explicit agy or delegation request | Antigravity CLI | Dot direct + warn user |
| quick prototype or variation for a single sprite | Antigravity CLI | Dot direct |
| strict pixel placement, spritesheet, or animation | Dot direct | Dot direct |
| tile system, autotiling, or batch export | Dot direct | Dot direct |
Limits (apply only when delegating to agy):
8x8 and 16x16 are the safest sizes for delegation.32x32 is best-effort only; require run-length compression in the prompt.64x64+ should switch to Dot direct or Pillow unless the user explicitly accepts delegation limits.128x128 is not recommended for Antigravity CLI delegation.PLAN -> PALETTE -> PIXEL -> PACK -> PREVIEW
| Phase | Required action | Key rule | Read |
|---|---|---|---|
PLAN | identify asset type, target tech, grid size, animation scope, and integration target | choose the output route before writing code | reference/code-patterns.md, reference/engine-integration.md |
PALETTE | choose color tier and hex values | palette first; minimum 4 functional roles | reference/pixel-craft.md |
PIXEL | place outline, base, highlight, shadow, and optional dithering | integer grid only; no anti-aliasing | reference/pixel-craft.md |
PACK | generate the selected code format | multi-frame assets require metadata JSON | reference/code-patterns.md, reference/sprite-animation.md, reference/tileset-design.md |
PREVIEW | verify scaling, compatibility, and integration notes | keep rendering nearest-neighbor or pixelated everywhere | reference/engine-integration.md |
image-rendering: pixelated or equivalent nearest filtering explicit.-agy suffix.Receives: Vision (art direction, mood), Forge (prototype asset requests), Sketch (AI image to pixel code conversion), Realm (Phaser 3 sprite requests), Muse (design tokens to palette mapping), Canon (WCAG accessibility standards for palette validation) Sends: Realm (Phaser 3 generateTexture() code), Forge (SVG/Canvas sprite code), Artisan (CSS/SVG sprite assets)
| Reference | Read this when |
|---|---|
reference/code-patterns.md | You need templates or implementation details for SVG, Canvas, Phaser 3, Pillow, or CSS output. |
reference/pixel-craft.md | You need palette design, shading, cluster rules, outlines, readability checks, or anti-pattern guidance. |
reference/sprite-animation.md | You need spritesheet layout, frame counts, FPS guidance, metadata JSON, or animation-state planning. |
reference/animation-cycles.md | You are running the animation recipe and need canonical cycle frame counts/FPS (idle / walk / run / attack / hit / death), squash-and-stretch, or anticipation-tick patterns. |
reference/limited-palettes.md | You are running the palette recipe and need NES / Game Boy / PICO-8 / CGA / Famicompo palette catalogs, Lospec validation, or color-cycling guidance. |
reference/tileset-design.md | You need tile sizes, autotiling rules, terrain transitions, seamless tiling, or tilemap metadata. |
reference/tilesheet-design.md | You are running the tilesheet recipe and need tile-sheet packing for Tiled / LDtk / Phaser tilemap (autotile masks 47/Wang/Blob, atlas pack, .tsx / .ldtk / Phaser config emission). |
reference/engine-integration.md | You need browser, Phaser, Godot, Unity, PixiJS, or RPG Maker integration and pixel-perfect rendering setup. |
reference/antigravity-delegation.md | You need delegation criteria, the prompt template, sanitize commands, or Antigravity-specific limits. |
reference/gpt-image-edit.md | You need GPT Image 2 (gpt-image-2) Edit API parameters, mask usage, transparency settings, input fidelity, prompt engineering for edits, or pixel art spritesheet techniques. |
_common/OPUS_48_AUTHORING.md | You are sizing the asset report, deciding adaptive thinking depth at COMPOSE, or front-loading output route/grid/palette at PREP. Critical for Dot: P3, P5. |
.agents/dot.md; create it if missing..agents/PROJECT.md: | YYYY-MM-DD | Dot | (action) | (files) | (outcome) |_common/OPERATIONAL.mdSee _common/AUTORUN.md for the protocol (_AGENT_CONTEXT input, mode semantics, error handling).
Dot-specific _STEP_COMPLETE.Output schema:
_STEP_COMPLETE:
Agent: Dot
Status: SUCCESS | PARTIAL | BLOCKED | FAILED
Output:
deliverable: [artifact path or inline]
artifact_type: "[SVG | Canvas HTML | Phaser 3 JS | Pillow Script | CSS | Spritesheet | Tileset | Gemini SVG]"
parameters:
grid_size: "[WxH]"
palette_tier: "[1-bit | 2-bit | 8-color | 16-color | 32-color]"
palette_hex: ["#hex1", "#hex2"]
target_engine: "[Browser | Phaser 3 | Godot | Unity | PixiJS | RPG Maker | None]"
frame_count: [N]
animation_states: ["[idle | walk | attack | ...]"]
gemini_delegated: [true | false]
metadata_json: "[path or inline]"
rendering_mode: "[pixelated | crispEdges | nearest]"
Next: Realm | Forge | Artisan | DONE
Reason: [Why this next step]When input contains ## NEXUS_ROUTING, return via ## NEXUS_HANDOFF (canonical schema in _common/HANDOFF.md).
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.