fantasia-dev-setup
Sets up and runs Fantasia Archive locally using Yarn, Node.js 22.22 or newer, and Quasar Electron mode. Use when installing dependencies, choosing dev vs production build commands, or when the user mentions environment setup, CLI, or first run.
Best use case
fantasia-dev-setup is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Sets up and runs Fantasia Archive locally using Yarn, Node.js 22.22 or newer, and Quasar Electron mode. Use when installing dependencies, choosing dev vs production build commands, or when the user mentions environment setup, CLI, or first run.
Teams using fantasia-dev-setup should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/fantasia-dev-setup/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How fantasia-dev-setup Compares
| Feature / Agent | fantasia-dev-setup | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Sets up and runs Fantasia Archive locally using Yarn, Node.js 22.22 or newer, and Quasar Electron mode. Use when installing dependencies, choosing dev vs production build commands, or when the user mentions environment setup, CLI, or first run.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
# Fantasia Archive — dev setup ## Toolchain - **Package manager**: Yarn 1.x (README: use Yarn 1.22.19; avoid npm-only workflows for day-to-day work). - **Node.js**: **22.22.0 or newer** (`package.json` `engines.node` is `>=22.22.0`; Quasar `@quasar/app-vite` v2 aligns with this). Use `nvm` / `fnm` to pin (e.g. `nvm use 22.22`). - **Quasar CLI** (recommended): `yarn global add @quasar/cli` — ensure the global Yarn bin is on `PATH`. - **CI (push/PR)**: [`.github/workflows/verify.yml`](../../../.github/workflows/verify.yml) runs **`yarn testbatch:verify`** only (installs **`.storybook-workspace`** for ESLint). **Storybook** VRT (`yarn test:storybook:visual*`) is **not** run in **GitHub Actions** — use **`yarn testbatch:ensure:nochange`** or the individual scripts locally. ## Install ```bash yarn ``` ## Run (development) Hot reload and Electron debugging: ```bash quasar dev -m electron ``` (`package.json` also exposes `yarn quasar:dev:electron`.) ## Troubleshooting ### `Electron failed to install correctly` (missing `node_modules/electron/dist`) The `electron` package downloads its binary in a **postinstall** step. **`npm install --ignore-scripts`** (or any install that skips lifecycle scripts) leaves `path.txt` / `dist/` missing and Quasar will crash when spawning Electron. **Fix:** remove the broken folder and reinstall **with scripts enabled** (close running Electron/Quasar first if Windows reports `EBUSY`): ```bash rm -rf node_modules/electron # PowerShell: Remove-Item -Recurse -Force node_modules/electron yarn install # or: node node_modules/electron/install.js ``` ### DevTools `Autofill.enable` / `Autofill.setAddresses` in the terminal Bundled DevTools call Chrome CDP domains that Electron does not implement; Chromium logs harmless failures to stderr. The app filters those specific lines in the Electron **main** process so the dev terminal stays readable (they can still appear inside the DevTools console itself). ## Production build Required for packaged app behavior and **before Playwright** component/e2e runs: ```bash quasar build -m electron ``` (`yarn quasar:build:electron` maps to `quasar build -m electron --publish never`.) ## Quick reference | Goal | Command | |------|---------| | **Quality gate** (lint + `tsc` + style + unit tests, one terminal) | `yarn testbatch:verify` | | **Full project gate** (verify + Electron build + Playwright component + E2E + Storybook smoke + VRT compare) | `yarn testbatch:ensure:nochange` | | **Full project gate — refresh Storybook VRT baselines** (same through smoke, then snapshot update) | `yarn testbatch:ensure:change` | | ESLint | `yarn lint:eslint` | | TypeScript (`tsc`, no emit) | `yarn lint:typescript` | | Stylelint (Vue + SCSS) | `yarn lint:stylelint` | | Unit tests | `yarn test:unit` | | Component tests (Playwright) | `yarn test:components` (after production build) | | E2E tests (Playwright) | `yarn test:e2e` (after production build) | **Storybook** nested package: run **`yarn`** at the repo root, then **`yarn --cwd .storybook-workspace install`** so **`yarn storybook:run`** / **`yarn storybook:build`** / **`yarn test:storybook:visual*`** (Playwright VRT) resolve their dependencies. See [eslint-typescript.mdc](../../rules/eslint-typescript.mdc) for ESLint vs TSLint, `tsconfig` / `tsc`, and Vitest env typing. See [fantasia-testing](../fantasia-testing/SKILL.md) for test details. **Yarn 1.x** reserves `yarn check` for dependency verification — use **`yarn testbatch:verify`** for the lint/types/style/unit gate ([testing-terminal-isolation.mdc](../../rules/testing-terminal-isolation.mdc)).
Related Skills
fantasia-worldbuilding-domain
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.
fantasia-testing
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.
fantasia-sqlite-main
Designs SQLite usage in Fantasia Archive’s Electron main process: file locations under userData, native sqlite3 module constraints, and migrations. Use when editing electron-main database code, schema, or persistence paths.
fantasia-release-build
Produces production Electron builds for Fantasia Archive with electron- builder and Quasar. Use when changing build scripts, packaging, or publish flags, or when the user asks how to ship the desktop app.
fantasia-quasar-vue
Builds Vue 3 + Quasar UI for Fantasia Archive: layouts, pages, router, Pinia, and boot files. Use when editing .vue files, Quasar components, routes, or stores under src/.
fantasia-plan-documents
Creates and updates local plan documents in .cursor/plans with required timestamp and package version metadata in both file body and filename.
fantasia-markdown-dialogs
Implements or edits markdown-backed dialogs using Quasar QMarkdown and i18n- sourced document strings. Use when changing DialogMarkdownDocument, help docs, or changelog/license content shown in-app.
fantasia-i18n
Manages vue-i18n messages and locale structure for Fantasia Archive. Use when adding or changing user-facing strings, locale files under src/i18n, or markdown-backed documents wired into i18n.
fantasia-electron-preload
Extends or fixes renderer-facing Electron APIs exposed through the preload script and contextBridge. Use when adding IPC-like surface area, typing window.faContentBridgeAPIs, or editing files under src-electron/ contentBridgeAPIs.
fantasia-electron-main
Works on Fantasia Archive Electron main process: app lifecycle, window management, platform tweaks, and native integrations. Use when editing electron-main.ts, src-electron/mainScripts/, or main-side tests.
fantasia-changelog-en-us
Maintains the English in-app changelog at src/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.
git-conventional-commits
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.