diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz new file mode 100644 index 0000000..adff1c9 Binary files /dev/null and b/.yarn/install-state.gz differ diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 0000000..3186f3f --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..9483f2b --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,26 @@ +# Repository Guidelines + +## Project Structure & Module Organization +`src/` contains the Vue 3 application. Entry wiring lives in `src/main.ts`, routes in `src/router.ts`, shared state in `src/store.ts`, page-level views in `src/pages/`, reusable UI in `src/components/`, and typing logic plus data files in `src/utils/`. Global Less styles live in `src/styles/` and `src/app.less`. Static assets and PWA icons are under `public/`; screenshots used in documentation are in `screenshots/`. One-off data scripts live in `scripts/`. + +## Build, Test, and Development Commands +Use Yarn for consistency because the repo includes `yarn.lock`. + +- `yarn dev` starts the Vite dev server. +- `yarn build` runs `vue-tsc --noEmit` and then creates the production bundle. +- `yarn preview` serves the built app locally for a final check. +- `yarn lint` runs ESLint on `.ts` and `.vue` files in `src/`. +- `yarn fix` applies auto-fixable lint changes. +- `yarn test` starts Vitest. + +## Coding Style & Naming Conventions +Write TypeScript and Vue SFCs with 2-space indentation, double quotes, and trailing commas where the existing code uses them. Keep page components in `src/pages/` with PascalCase names such as `RandomMode.vue`; shared components follow the same pattern. Utility modules use lowercase filenames such as `summary.ts` and JSON config files stay in `src/utils/`. Prefer small, focused modules over large mixed-purpose files. + +## Testing Guidelines +Vitest is the test runner. Place tests near the feature they cover, following the existing pattern `src/utils/test/*.test.ts`. Name files `*.test.ts` and keep descriptions specific to the behavior under test. Run `yarn test` before opening a PR; add coverage for changes to typing rules, summary logic, or config parsing. + +## Commit & Pull Request Guidelines +Recent history mixes short `fix:` commits with direct update messages. Prefer concise, imperative subjects, ideally with a scope prefix such as `fix:`, `feat:`, or `docs:`. Keep each commit focused. Pull requests should explain the user-visible change, note any config or data-file edits such as `src/utils/spconfig.json`, link related issues, and include screenshots for UI changes. The Husky pre-commit hook runs `yarn lint`, so fix lint failures before pushing. + +## Configuration Notes +When adding a new shuangpin scheme, update `src/utils/spconfig.json` and document the source in the PR. Avoid committing generated files unless they are required runtime assets. diff --git a/src/App.vue b/src/App.vue index 43f47ad..a4ed451 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,56 +1,91 @@