pixi-vn-ink-migration

Exact captured content · path skills/migration/SKILL.md · sha256 94e96722cf74fbd3… · revision 18a671aa83db02fe201d417cb7e6815b0b503c6d

Download the exact captured file

---
name: pixi-vn-ink-migration
description: Use when upgrading an existing @drincs/pixi-vn-ink project to a newer version, or when a hashtag command that used to work silently stops firing after an upgrade. Covers every breaking change between versions with before/after code.
---

# Pixi'VN ink migration guide

Official docs: [pixi-vn.com/faq/migration](https://pixi-vn.com/faq/migration). That page also covers the
separate `@drincs/pixi-vn` and `nqtr` packages (its `## pixi-vn` and `## nqtr` sections) — this skill
only covers the `## pixi-vn-ink` section, since that's what this skill set documents.

## When to use this skill

Use this skill whenever a task is "upgrade this project's `@drincs/pixi-vn-ink` from version X to the
latest", or a developer reports that ink hashtag commands (`# show`, `# play sound`, ...) that used to
work now silently do nothing after a dependency bump. Check the currently installed version first
(`package.json` dependency, or the `version` field returned by the Vite dev-server's
`GET /__pixi-vn-ink/info` endpoint at runtime — see **pixi-vn-ink**), then walk forward
through only the version sections below that fall between the installed version and the target — most
of these changes don't apply unless a project is crossing that specific boundary.

## v1.0.x → v1.1.0 — base hashtag commands are no longer automatic

Before this release, importing `@drincs/pixi-vn-ink` registered every built-in
[hashtag command](../hashtag-commands/SKILL.md) (`# show`, `# play sound`, `# load`, `# request input`,
...) as a side effect. As of v1.1.0, **nothing is registered until you call it explicitly**:

```ts title="content/ink/hashtag-commands.ts"
import { addBaseHashtagCommands } from "@drincs/pixi-vn-ink"; // [!code ++]

addBaseHashtagCommands(); // [!code ++]
```

Call it once, near the start of the app, before any ink content is parsed (every official template
already does this). Symptom if this step is missed after upgrading: every built-in `#` command in
existing `.ink` files silently does nothing at runtime, and the Vite dev server logs each one as an
**unknown hashtag command** (see **pixi-vn-ink**'s debugging section) — that log output
is the fastest way to confirm this is the cause.

`addBaseHashtagCommands` also gained optional configuration in this same generation (`bundleIds`/
`assetAliasIds` for strict `# load`/`# lazyload` validation, and `sections` to opt out of a whole
built-in group) — see **pixi-vn-ink-hashtag-commands** and **pixi-vn-ink-assets** for current usage;
passing no options at all preserves the pre-v1.1.0 behavior of registering every built-in command.

## Related skills

- **pixi-vn-ink** — current installation, the Vite plugin, and the dev-server
  debugging workflow (logs + `GET /__pixi-vn-ink/*` endpoints) referenced above.
- **pixi-vn-ink-hashtag-commands** — current `addBaseHashtagCommands`/`HashtagCommands` API.
- **pixi-vn-ink-assets** — current `bundleIds`/`assetAliasIds` validation option.