>_ skills

the /naba Claude Code skill and its lifecycle

naba ships a single Claude Code skill that wraps the whole CLI as one slash command with subcommands: /naba <subcommand>. The skill files are embedded in the binary at compile time, so installing them is offline and always version-matched — there is no marketplace plugin and no separate installer script.

Subcommands

Invoke as /naba <subcommand> [args]; run /naba help to print the dispatch table.

Subcommand Purpose
/naba generate Generate an image from a text prompt
/naba edit Edit an existing image with text instructions
/naba restore Restore or enhance an existing image
/naba icon Generate app icons (optionally multi-size)
/naba pattern Generate seamless patterns and textures
/naba diagram Generate technical diagram images
/naba story Generate a sequential image series
/naba storyboard Composite: story sequence + per-frame edits
/naba batch Composite: orchestrate multiple naba calls (icon suites, asset pipelines)
/naba brand-kit Composite: icon + pattern + hero image set

The seven inline subcommands run a single naba CLI call directly; the three composites (storyboard, batch, brand-kit) dispatch a subagent that runs the multi-call loop and returns a compact summary.

Implicit triggering

You rarely type /naba. The skill's description tells Claude Code to trigger it automatically whenever your request matches an image task — even in plain language. Any of these fire the right subcommand without a slash command:

  • "make me an image of a red apple on white" → generate
  • "remove the background from logo.png" → edit
  • "sharpen and denoise this old photo" → restore
  • "I need an app icon for a rocket ship at 256 and 512" → icon
  • "give me a seamless circuit-board texture" → pattern
  • "draw a flowchart of the auth flow" → diagram
  • "show a 4-frame story of a sailboat's voyage" → story

The skill skips requests for editable diagram source (d2/mermaid text) — naba diagram produces a rendered image, not editable source. Explicit /naba <subcommand> invocation always works too, and is the reliable trigger when you want a specific subcommand.

Surfaces: claude vs agents

The same embedded skill tree can install to two surfaces:

Surface Flag Destination
claude (default) --surface claude <root>/.claude/skills — the Claude Code skill directory
agents --surface agents <root>/.agents/skills — the generic agents surface

The claude surface is the default; use --surface agents for harnesses that read the generic .agents/skills location.

Scopes: user vs project

Scope chooses the <root> the surface installs under:

Scope Flag Root
user (default) --scope user $HOME (e.g. ~/.claude/skills)
project --scope project the git root (else the current directory)

For a fully explicit destination, --target DIR overrides scope/surface entirely.

Lifecycle

naba skills install                  # default: user scope -> ~/.claude/skills
naba skills install --dry-run        # show what would be written, change nothing
naba skills install --scope project  # install into <git-root>/.claude/skills
naba skills install --surface agents # install into ~/.agents/skills (agents surface)
naba skills install --target DIR     # install into an explicit directory
naba skills upgrade                  # rewrite from the embedded tree, pruning stale files
naba skills remove                   # remove the naba skill again
naba skills status                   # report up-to-date / complete / unmodified
naba skills preflight --json         # fast, offline skill-gate (see below)

Every verb accepts --json for a machine-readable {status, data} envelope, plus the shared --scope, --surface, --target, and --dry-run flags.

Run naba skills upgrade after any naba upgrade (a self update already does this unless you pass --binary-only) so the installed skill always matches the binary.

Integrity marker

On install/upgrade naba writes a hidden integrity marker into the deployed SKILL.md (<!-- naba-skills: v=<version> tree=<sha256> -->); status and naba doctor use it to confirm the install is current, complete, and unmodified. The repository source skills/naba/SKILL.md stays marker-free.

Preflight

naba skills preflight --json is a fast, offline gate the /naba skill runs at trigger time (naba doctor is the full, network-touching sweep). It reports three axes:

  • auth — the effective provider's key is present (no network call)
  • skills — the installed skill tree matches this binary
  • binary — a tri-state up_to_date | update_available | unknown

Overall status is ok unless auth or skills fails (auth_missing / skills_outdated); the gate exits non-zero on a non-ok status, so it gates cleanly on its exit code.

Prerequisites

The skill shells out to the naba CLI, so the naba binary must be installed and on PATH (see install) and a provider API key set — GEMINI_API_KEY, OPENROUTER_API_KEY, or AWS_BEARER_TOKEN_BEDROCK (see config). naba skills install always writes the skill files; the skill is inert until the binary is on PATH.