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-migrate/SKILL.md
---
name: napplet-migrate
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.
---

# Migrate napplet events

Read the living [NIP-5D](https://github.com/nostr-protocol/nips/pull/2303) Manifest and Identity sections before changing events. This skill is non-normative workflow guidance. Domain operations remain defined by the [NAP track](https://github.com/napplet/naps); do not infer new operations from manifest metadata.

Identify whether the user wants a project rebuild, an event conversion preview, or publication. Preserve the signed source and existing deployment files. CLI 0.7.0, vite-plugin 0.15.0 and conformance 0.18.0 introduce current defaults; package versions are independent.

For a project, upgrade the writer and provide a meaningful description in the plugin or ordinary HTML description metadata. CLI-owned deployment metadata can override it. In soyLI, edit napplet.json and preview with `soyli publish --dry-run --json`. Inspect the final artifact hash, plain-text content, required/optional domains and intent advertisements.

For a published legacy napplet, use `soyli migrate <napplet-link-or-naddr> --dry-run --json` and inspect the verified source and unsigned preview. The installed soyLI migration command does not accept a local event JSON file. Preserve the signed original; do not sign or upload without publication authorization.

Never reuse a legacy aggregate as the artifact hash. Current x comes from the final artifact bytes; legacy conversion extracts the signed /index.html path hash. Keep intent identities queryless and put advertised parameter names in separate i-tag elements. Treat descriptions as text. Unknown extensions need their own specification; do not fabricate mappings for ambiguous tags.

soyLI publishes the selected standalone manifest format and has no legacy-output switch. Older artifacts remain readable. Do not change format to hide a conformance failure.

Flag downstream work: artifact identity changes can affect shell ACL/storage keys; snapshots need new event pointers; publishing under another author changes addresses; catalog filters must follow the current tags. Do not silently transfer permissions or saved data. See the [migration guide](https://napplet.run/docs/guide/event-migration) for the package workflow and limitations.

## 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.