{
  "$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json",
  "skills": [
    {
      "name": "napplet-build",
      "type": "skill-md",
      "description": "Use when implementing a napplet from a napplet-design spec - scaffold with `napplet create` + `napplet init`, keep the boilerplate substrate, edit only project surfaces (vite.config requires, index.html, src/main.ts, src/styles.css), strip the starter masthead and website layout per napplet-ui, call shell capabilities SDK-first (napplet-sdk), produce the single-file artifact, validate with pnpm verify + conformance, and preview through Paja. Pairs with napplet-ui, napplet-sdk, napplet-interop, napplet-test.",
      "url": "/.well-known/agent-skills/napplet-build/SKILL.md",
      "digest": "sha256:ead25e7162339e19f79a6d372bb81b518543c679b3f7cc7fd3ce6af480e2f096"
    },
    {
      "name": "napplet-design",
      "type": "skill-md",
      "description": "Use FIRST when planning a napplet (sandboxed Nostr iframe applet), before any code - turns an idea into a short build spec - the sandbox authority contract, which shipped NAP domains own each feature (OUTBOX-first, relay as escape hatch), hard requires vs optional fallbacks, the form-factor plan (compact applet, any size from widget to full screen, declared minimum only if the UI truly breaks), theme, and data flow. Output is consumed by napplet-build.",
      "url": "/.well-known/agent-skills/napplet-design/SKILL.md",
      "digest": "sha256:ca185de09784511ccf55cb273862d515d23b63226d5ac7a99bff2dbc1809abac"
    },
    {
      "name": "napplet-icon",
      "type": "skill-md",
      "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.",
      "url": "/.well-known/agent-skills/napplet-icon/SKILL.md",
      "digest": "sha256:e21d35ae5912e7041099dbcd0b25e649fdc55a5b1c321bc97adf1646ce9ff851"
    },
    {
      "name": "napplet-interop",
      "type": "skill-md",
      "description": "Use only when a napplet talks to other napplets - NAP-INC topics (inc.emit / inc.on), NAP-INTENT dispatch (intent.invoke / intent.open), archetype manifest metadata, and the stable queryless convention identity rule (napplet:<archetype>/<intent>). Covers the emit-only query shorthand, payload validation, and what must stay exact-match. Skip for napplets that never emit, subscribe, or dispatch.",
      "url": "/.well-known/agent-skills/napplet-interop/SKILL.md",
      "digest": "sha256:900bc7ee34014c77752eba2ee0bdf805be81039060aae79d549e6d9e71226da2"
    },
    {
      "name": "napplet-make",
      "type": "skill-md",
      "description": "Use when a user asks to create, build, implement, prototype, or port a complete napplet (sandboxed Nostr iframe applet) in one prompt. Entry point that triages the project state and toolchain, then routes through napplet-port-napp (nostrapps NAPPs) or napplet-port (other migrations), napplet-design, napplet-ui, napplet-build (+ napplet-sdk / napplet-interop as needed), and napplet-test, and ends with an evidence report. Keeps social reads and publishes OUTBOX-first and treats NAP-RELAY as an explicit escape hatch only.",
      "url": "/.well-known/agent-skills/napplet-make/SKILL.md",
      "digest": "sha256:61157bbc484561d3903503f76c83029280a28e514e5cef960d49b522e0264b56"
    },
    {
      "name": "napplet-migrate",
      "type": "skill-md",
      "description": "Migrate legacy NIP-5D manifest events or deployment projects to the current artifact-hash schema, review CLI format choices, and explain event-pointer and shell identity compatibility.",
      "url": "/.well-known/agent-skills/napplet-migrate/SKILL.md",
      "digest": "sha256:04119ee5b07104acadfed89abea11818c00032adf48db70c4e549988c97013d1"
    },
    {
      "name": "napplet-port",
      "type": "skill-md",
      "description": "Use when converting an existing Nostr web app, client, or widget into a napplet - inventory the app-owned relay, signing, storage, network, media, shortcut, and routing layers, map each feature to the shipped NAP boundary (OUTBOX-first, relay as escape hatch), split monoliths into focused applets, strip the website chrome, and hand a clean inventory to napplet-design / napplet-build. Run before napplet-design when the starting point is existing code.",
      "url": "/.well-known/agent-skills/napplet-port/SKILL.md",
      "digest": "sha256:652733dc77c9685567ddbf81c4486cc2fb55806cf33143652a769463e3cb4f54"
    },
    {
      "name": "napplet-port-napp",
      "type": "archive",
      "description": "Port an eskema/nostrapps NAPP (metadata.json, window.napp, window.nostrdb and launcher NIP-07 bridge) into a working NIP-5D + NAP napplet in one request. Covers bridge semantics, action delivery, UI-kit replacement, store-to-outbox migration, assets, permissions, metadata and behavior parity through build and runtime verification.",
      "url": "/.well-known/agent-skills/napplet-port-napp.tar.gz",
      "digest": "sha256:939027a8245f584f8e9b6dac40947089832b46df67ad674456762239bb27cd74"
    },
    {
      "name": "napplet-sdk",
      "type": "skill-md",
      "description": "Reference for calling shell capabilities from napplet code through @napplet/sdk - the current package-implemented NAP domains, OUTBOX-first reads and publishes, the social NAPs (common, lists, count, dm), relay as an explicit escape hatch, scoped storage, read-only identity, resource byte fetching, config, theme, keys, and the optional-domain availability pattern. Load the section you need while implementing; napplet-build owns the project workflow.",
      "url": "/.well-known/agent-skills/napplet-sdk/SKILL.md",
      "digest": "sha256:d7795dd74263e37eef420514c723899b18a293c5d9752f15c844b101b5ebf6e8"
    },
    {
      "name": "napplet-test",
      "type": "skill-md",
      "description": "Use to verify a napplet before publishing - build, run protocol conformance with napplet-conformance (real Chromium, reference shell), interpret failures, audit the OUTBOX-first boundaries and forbidden browser-authority surfaces, confirm the single-file artifact, run the applet UI checks (no title header, four frame sizes, both themes, minimum notice), scenario smoke tests, Paja preview, and CI wiring. Run after napplet-build, before shipping.",
      "url": "/.well-known/agent-skills/napplet-test/SKILL.md",
      "digest": "sha256:5993822e224befeb0d411899b6201cb1e77a4bd1b8ae15802919515601658bfc"
    },
    {
      "name": "napplet-ui",
      "type": "skill-md",
      "description": "Use whenever you write or change napplet markup, CSS, or layout - the applet visual contract. Napplets are software applets framed by a runtime, not web pages - no title header or tagline, compact tool-like density by default, a layout that stays good at ANY size from a tiny widget tile to a full-screen pane (resized live), an explicit minimum-size notice only when the UI genuinely breaks below a size, and NAP-THEME applied to the whole surface. Load before napplet-build touches index.html or styles.",
      "url": "/.well-known/agent-skills/napplet-ui/SKILL.md",
      "digest": "sha256:5474937d451eb62b1f6163de2d5fa0058201332d577ddbc7cc15b195bb74be9d"
    }
  ]
}
