fantasia-plan-documents
$
npx mdskill add vishiri/fantasia-archive/fantasia-plan-documentsUse this skill whenever creating or updating a planning document. This includes rollout inventories, implementation checklists, migration trackers, and other planning artifacts.
SKILL.md
.github/skills/fantasia-plan-documentsView on GitHub ↗
--- name: fantasia-plan-documents description: >- Creates and updates local plan documents in .cursor/plans with required timestamp and package version metadata in both file body and filename. Before saving a new plan, deletes existing plan files whose last modified time is more than 30 days old. --- # Plan documents (`.cursor/plans`) ## Scope Use this skill whenever creating or updating a planning document. This includes rollout inventories, implementation checklists, migration trackers, and other planning artifacts. ## Prune stale plans before saving - **Before** writing a new plan file, list `.cursor/plans/` when it exists. - For each file there, if its **last modified time** is **more than 30 days** before now, **delete** it. Skip this step when the folder is missing or has no files. - Judgment uses filesystem modification time (mtime), not only the timestamp in the filename. ## Required location - Store plans in `.cursor/plans/`. - If the folder does not exist, create it. - Do not create top-level `docs/` (or other new documentation roots) for planning artifacts unless the user explicitly requests a different location. ## Required filename format - Include the base topic, current version, and timestamp. - Timestamp format: `YYYY-MM-DD-HH-mm-ss`. - Example: `feature-x-plan_v2.1.0_2026-03-30-20-10-39.plan.md` ## Required in-file metadata At the top of each plan document, include: - `Created at: YYYY-MM-DD-HH-mm-ss` - `Project version: <package.json version>` ## Version source - Read version from `package.json`. - Use that exact value in both filename and file body metadata. ## Notes - `.cursor/plans` is a local temporary workspace and may be gitignored. - If a planning artifact is initially drafted elsewhere, move it into `.cursor/plans/` and normalize filename/body metadata to this skill's format. ## TypeScript interfaces and types (`types/`) - Put shared `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`). - For JavaScript (`.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`.