|
| 1 | +# Repository Guidelines |
| 2 | + |
| 3 | +## Project Structure & Module Organization |
| 4 | +- packages: Docusaurus plugins (e.g., `packages/docusaurus-plugin-sentry`) with `src/index.ts` and built `dist/`. |
| 5 | +- packages/tsconfig: Shared TS configs. |
| 6 | +- apps: Reserved for examples (currently empty). |
| 7 | +- config: Tooling configs (commitlint, lint-staged). |
| 8 | +- .changeset: Versioning and release metadata. |
| 9 | + |
| 10 | +## Build, Test, and Development Commands |
| 11 | +- `pnpm build`: Build all packages via Turbo (`dist/**`). |
| 12 | +- `pnpm dev`: Watch builds across packages. |
| 13 | +- `pnpm --filter <pkg> build`: Build a single package (e.g., `@gracefullight/docusaurus-plugin-sentry`). |
| 14 | +- `pnpm format`: Format code with Biome. |
| 15 | +- `pnpm lint`: Lint and auto-fix with Biome. |
| 16 | +- `pnpm publish-packages`: Build + version + publish with Changesets. |
| 17 | +- Requirements: Node `22`, pnpm `10`. |
| 18 | + |
| 19 | +## Coding Style & Naming Conventions |
| 20 | +- Indentation: 2 spaces; line width 80; LF endings; JS quotes: double (Biome enforced). |
| 21 | +- Filenames: kebab-case (e.g., `index.ts`, `my-plugin.ts`). |
| 22 | +- Imports: auto-organized; unused code disallowed by Biome. |
| 23 | +- TypeScript: strict; shared config in `packages/tsconfig`; package output is CJS with `.d.ts`. |
| 24 | + |
| 25 | +## Testing Guidelines |
| 26 | +- No active test suite in this repo. If adding tests, colocate as `*.test.ts` next to sources. Avoid `test/` folders (excluded from workspace). |
| 27 | +- Aim for small, deterministic unit tests around plugin hooks. |
| 28 | + |
| 29 | +## Commit & Pull Request Guidelines |
| 30 | +- Commits: Conventional Commits (e.g., `feat:`, `fix:`, `docs:`). Hooks enforce `commitlint` and Biome via Husky/lint-staged. Devmoji is available; emoji use is optional. |
| 31 | +- PRs: One focused change per PR. Include a summary, screenshots if UI-related (e.g., example app), and link related issues. Update `.changeset` with an appropriate bump for affected packages. |
| 32 | +- Naming: Prefer scopes per package (e.g., `@gracefullight/docusaurus-plugin-<name>`). |
| 33 | + |
| 34 | +## Security & Configuration Tips |
| 35 | +- Plugins often inject third-party scripts. Validate IDs/keys via Docusaurus config and avoid committing secrets. |
| 36 | +- Keep external script options minimal and documented in each package `README.md`. |
0 commit comments