|
| 1 | +# Repository Guidelines |
| 2 | + |
| 3 | +## Project Structure & Modules |
| 4 | +- Source: `src/` (ESM TypeScript). Key areas: `api/` (SDK surface), `core/` (internals), `cli/`, `platform/`, `setup/`, `target/`. |
| 5 | +- Build scripts: `build/` (tsx/ts scripts used by npm scripts). |
| 6 | +- Tests: `src/**/*.test.*`, `test/`, and integration in `test-sdk/`. |
| 7 | +- Artifacts: local builds write to `~/.kit` (CI uses `./.kit`). |
| 8 | + |
| 9 | +## Build, Test, and Dev |
| 10 | +- Install: `pnpm install` (requires pnpm; Node 22.17.1 via Volta; see `package.json`). |
| 11 | +- Build: `pnpm build` or `pnpm build-kit` — compiles and prepares the SDK to `~/.kit`. |
| 12 | +- Verify types: `pnpm verify` — TypeScript no‑emit check (also runs on pre‑commit). |
| 13 | +- Tests (AVA): |
| 14 | + - All: `pnpm test` |
| 15 | + - Core/API subsets: `pnpm test:core`, `pnpm test:api`, `pnpm test:sdk` |
| 16 | + - Watch/debug: `pnpm ava:watch`, `pnpm ava:debug` |
| 17 | +- Coverage: `pnpm coverage` (c8 reports text + HTML). |
| 18 | + |
| 19 | +## Coding Style & Naming |
| 20 | +- Language: TypeScript + ESM; prefer `import`/`export`. |
| 21 | +- Formatting: `.prettierrc.json` (no semicolons, printWidth 60, arrowParens avoid). Use your editor’s Prettier. |
| 22 | +- Filenames: camelCase, kebab-case, or PascalCase (see `biome.json`). |
| 23 | +- Indentation: 2 spaces preferred; avoid mixed tabs/spaces. |
| 24 | +- Public API lives in `src/api/`; avoid leaking internals from `core/`. |
| 25 | + |
| 26 | +## Testing Guidelines |
| 27 | +- Framework: AVA (`test/ava.config.mjs`). Place unit tests alongside code as `*.test.ts` or in `test/`/`test-sdk/` for broader flows. |
| 28 | +- Run locally with `pnpm test`; generate coverage with `pnpm coverage`. |
| 29 | +- Tests should be deterministic; mock filesystem/network where feasible. |
| 30 | + |
| 31 | +## Commits & Pull Requests |
| 32 | +- Conventional Commits via Commitizen: run `pnpm commit`. Example: `feat(api): add kitRun options`. |
| 33 | +- Pre-commit runs `pnpm verify`; ensure it passes locally. |
| 34 | +- PRs: include a clear description, linked issues, test updates, and any relevant `README.md` or `API.md` notes. CI runs AVA on Windows/macOS/Linux. |
| 35 | +- Releases use semantic‑release on branches `main`, `next`, `beta`, `alpha`. |
| 36 | + |
| 37 | +## Security & Configuration |
| 38 | +- Env: `.env` supported via `dotenv`/`dotenv-flow`; avoid committing secrets. |
| 39 | +- Local linking to Kit App: see `README.md` workspace instructions. Ensure `pnpm` is enabled (`corepack enable pnpm` or Volta). |
0 commit comments