.cursor/skills/fantasia-changelog-en-us/SKILL.md
Maintains the English in-app changelog at i18n/en-US/documents/changeLog.md in strict sync with package.json version, without any automatic version bumping. Changelog text must be user- or release-relevant only—never internal QA (lint/build/test runs, “all gates passed”). Use after substantive app, UX, or user-facing docs changes, or when the user asks for release notes.
npx skillsauth add vishiri/fantasia-archive fantasia-changelog-en-usInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
changeLog.md + package.json)documents.changeLog.version (e.g. 2.1.0)..cursor/plans/ files, especially those matching the current package version in filename or metadata.After substantive work that users or operators should know about, for example:
feat / user-visible behavior, UI, Electron flows, i18n copyfix / bugs, regressions, crashestest / tooling only if it changes how users or contributors run the app or the repo (e.g. new required command, broken/renamed script). Routine chore / refactor / style usually omit unless the user asksSkip trivial-only edits (typo in a comment, pure format) unless the user wants everything logged.
changeLog.mdThe English changelog is shown in the app to end users. Do not add bullets that only record internal verification or maintainer QA, for example:
yarn testbatch:verify, yarn lint:eslint, yarn lint:typescript, yarn lint:stylelint, yarn test:unit, yarn quasar:build:electron, yarn test:components, yarn test:e2e, yarn testbatch:ensure:nochange, yarn testbatch:ensure:change, yarn test:storybook:smoke, or yarn test:storybook:visual / :updateThose steps may be required before you edit the changelog (see repo rules), but they are not changelog content. Put verification detail in commit messages or PR descriptions instead.
When you do document a dependency refresh, describe what was refreshed (ranges, notable packages), not the full test matrix you ran afterward.
Before editing changeLog.md for new work, keep this order (testing-terminal-isolation.mdc):
yarn testbatch:verify (run yarn lint:eslint, yarn lint:typescript, yarn lint:stylelint, yarn test:unit, or yarn test:coverage:verify / per-slice yarn test:coverage:* scripts individually only while debugging a failure). Layered Vitest coverage rules: vitest-tests.mdc. Follow-up commit that touches only i18n/*/documents/changeLog.md: you may skip re-running yarn testbatch:verify if it already passed after the substantive edits and the working tree is otherwise unchanged; if uncertain, run the gate anyway.src/components/**, verify Storybook updates are complete (_tests/*.stories.ts, relevant mocks/placeholders) and Storybook starts cleanly (yarn storybook:run). Layout/page Storybook previews do not require Docs/autodocs (storybook-stories.mdc). Skip when you are only adjusting documents/changeLog.md files after prior verified work, as in step 1.package.json.version (pkg)..cursor/plans/ for plan documents with matching version context:
v{pkg} or {pkg}Project version: {pkg}version from package.json (fresh file read, no cached value) → call it pkg.## X.Y.Z (semver) below the file title, e.g. ## 2.1.0 - Tooling and AI-assisted development → 2.1.0.package.json exactly unless the user explicitly requests a manual version change.## {pkg} - Short title (imperative or product tone; user may supply title).pkgAppend bullets under the right ### subsection only if that category has real items to add (see Section headings below). Do not bump version.
pkg (semver)## {pkg} - Short title with bullets; keep older sections below.pkgpackage.json as source of truth. Fix changelog headings/content to align with pkg, and do not change package.json unless the user explicitly requests it.###)### New features, ### Known issues, ### Bugfixes & Optimizations, or other titles consistent with the file).### block for this release.- prefix, imperative or past tense consistent with existing entries.### heading only when you are adding one or more bullets under it.changeLog.md (required)changeLog.md is loaded as a vue-i18n message string, not plain static text. The compiler treats { … } as message placeholders (interpolation). Anything inside a pair of braces is parsed as placeholder syntax; invalid tokens (for example a colon in something meant to look like an object property) produce runtime errors such as Message compilation error: Invalid token in placeholder when the changelog opens.
{...} groups in changelog prose unless they are valid vue-i18n placeholder syntax you intend to use (you almost never should in this file).locator.hover({ force: true }) (breaks compilation). Good: describe the call in words (locator.hover with the force option enabled) or omit the snippet.vue, css, scss, sass) without curly-brace grouping.| is also special in message format; use the vue-i18n documented escape when you need a literal pipe in locale copy (see existing Program settings tooltip notes in the codebase).docs: for changelog-only edits).types/)interface / type declarations in repository-root types/ (import with app/types/...). Prefer one domain-oriented module per feature area with brief JSDoc on exports (see types/I_appMenusDataList.ts). Do not add colocated <filename>.types.ts under src/, src-electron/, or .storybook-workspace/. Ambient augmentations for third-party modules also live under types/ and are loaded with a side-effect import from the owning boot file or src/stores/index.ts (see types/piniaModuleAugmentation.ts)..js), TypeScript (.ts), Vue (.vue), and JSON (.json, .jsonc, .json5) files, enforce expanded multi-line object literals via ESLint (object-curly-newline + object-property-newline) and keep files auto-fixable with eslint --fix.development
Splits working tree changes into logical Git commits with conventional messages (feat, fix, test, chore, refactor, style, docs). Proposes commits one at a time and waits for explicit user approval before each git commit. Use when the user asks to commit, split commits, stage by topic, or use conventional / semantic commit messages.
development
Aligns AI suggestions with Fantasia Archive as a worldbuilding database manager: projects, documents, and in-app concepts. Use when designing UX, data models, menus, or copy that should match the product purpose.
development
Runs and extends Fantasia Archive tests: Vitest unit tests vs Playwright component and E2E tests, including rebuild-before-Playwright rules and file naming. Use when writing tests, debugging CI, or when the user mentions Vitest, Playwright, component tests, or e2e.
development
Designs SQLite usage in Fantasia Archive’s Electron main process: file locations under userData, native better-sqlite3 module constraints, and migrations. Use when editing electron-main database code, schema, or persistence paths.