Back to Body Journal
SOURCE / PINNED RELEASE

Made of little things.

Body Journal

Release
e8049f8da4e2…
Author-recorded commit
61c04bf0e8aa…
License
LICENSE
Author’s source reference
nostr://npub182jczunncwe0jn6frpqwq3e0qjws7yqqnc3auccqv9nte2dnd63scjm4rf/wss%3A%2F%2Fgit.napplet.soy%2F/n-6c4554844c7

Archive hash verified: 4369d778da046a8b…. The source-to-build association is the author’s claim; it has not been independently rebuilt.

.claude/skills/napplet-icon/SKILL.md
---
name: napplet-icon
description: Use when designing, generating, or refining a napplet app icon, favicon, or app identity mark. Turns the app's purpose and visual references into a design direction, generates or edits actual icon artwork, checks legibility at small sizes, and delivers an asset ready for optional NIP-5D integration. Also supports design-only briefs and prompts when requested.
---

# Design and generate a napplet icon

Own the icon from concept through finished artwork. Use this independently for an existing app or alongside `napplet-design` for a new one. Use `napplet-ui` for interface layout and controls; an app icon does not require redesigning the app.

## 1. Establish the direction

Read the app's purpose, existing design notes, palette, and icon assets. Inspect supplied visual references before describing or editing them. Reuse known context; ask only when a missing detail would materially change the result. If the user gives no style preference, choose a direction that fits the app and briefly state it before generating. Do not require approval of a design board unless the user asks for that process.

Write a compact brief:

- **Identity:** app name, one job, and the feeling the icon should convey.
- **Concept:** one recognizable subject or metaphor, with a distinctive silhouette or negative-space detail tied to that job.
- **Treatment:** shape language, material or illustration style, palette, and solid or transparent background.
- **Constraints:** reference features to preserve, requested text, target sizes, and anything the user excludes.

Prefer a clear focal shape over a miniature interface or a collection of feature symbols. Avoid small lettering and fine detail that disappear at launcher size; honor an explicit monogram or text request. Match an existing brand when provided. Offer distinct concepts when the user wants exploration; otherwise select one and proceed.

A square 1024 px master is a useful default when the tool supports it. Plan enough clear space for the mark to survive rounded and circular display masks. These are design recommendations, not NIP-5D requirements.

## 2. Generate the artwork

Use the available image-generation tool and its instructions. If an `imagegen` skill is installed, follow its tool-specific workflow. Prefer the host's built-in tool when available; use a separate API or CLI only when requested. For an existing icon, inspect it first and use the image-editing workflow with that reference, stating precisely what should change and what should remain.

Translate the brief into a focused prompt. Include only relevant fields:

```text
Deliverable: one standalone app icon for [name and job]
Concept: [subject, silhouette, distinctive feature]
Style: [shape language, material, rendering treatment]
Composition: [focal shape, scale, negative space, crop clearance]
Palette and background: [colors; solid or true transparency]
Small-size behavior: [features that must remain recognizable]
Preserve / change: [reference constraints, for edits]
Exclude: [specific unwanted details]
```

Ask for the icon itself, without a phone mockup, surrounding interface, or presentation board. Generate separate files for requested alternatives. When transparency is requested, enable the tool's transparent-background option and preserve alpha; a drawn checkerboard is not transparency. Record actual output paths returned by the tool instead of assuming where files were saved.

For a design-only or prompt-only request, stop at that deliverable. If image generation is unavailable, provide the brief and ready-to-use prompt, state that no image was generated, and identify the missing capability. Do not call a placeholder a finished icon.

## 3. Inspect and refine

View the generated result. Check a preview at 16, 32, and 64 px as well as the master size, using available image-viewing tools or a scaled preview. Check transparent artwork against both light and dark backgrounds and under rounded/circular masks when relevant. A large attractive render is not enough evidence of small-size legibility.

Look for a recognizable silhouette, clear separation between foreground and background, preserved negative space, even visual weight, and unclipped edges. Check requested text for accuracy and inspect transparent edges for halos or an opaque backdrop. Verify actual dimensions, format, and alpha with available file inspection tools; do not infer them from the prompt or extension.

If a check fails, make a targeted edit such as widening a gap, simplifying interior detail, increasing contrast, or removing a halo. Preserve the chosen identity while refining. Reinspect the changed result. Report any unavailable visual or file checks rather than claiming they passed.

## 4. Deliver and integrate

Save the selected asset in the project's existing asset convention, outside the build output directory; for a standalone request, save it in the requested output location. Keep a master when exporting a smaller version. Default to PNG for a generated raster icon unless the user or project calls for another supported format. Preserve existing assets unless replacing them is part of the request. Return the actual file, its path, dimensions, format, and a short design rationale.

For soyLI integration, follow docs/napplet-manifest.md: set icon.file in napplet.json to the final local PNG, JPEG or WebP. The publisher hashes and uploads the exact icon bytes separately from the executable. Do not add newer plugin options to the pinned build. Screenshots and clips use the separate preview settings in napplet.json, not the icon field. Optional media never becomes a playback requirement. The selected standalone NIP-5D pin and documented source/presentation extensions remain authoritative for this release.

For delivery, show the selected icon and identify the checks performed. Distinguish a finished asset from verified app integration and publication; report only what actually ran.

## soyLI manifest metadata

Before publication or changing capabilities/discovery, read docs/napplet-manifest.md. Save metadata in napplet.json; the publisher creates the signed event. Advertise only implemented intents and optional integrations, and verify their absent-domain fallbacks.