Files
openhuman/AGENTS.md
T
Steven Enamakel bd5daa063e docs: add AGENTS.md for repository guidelines and project structure
- Introduced AGENTS.md to outline project structure, build commands, coding style, testing guidelines, and commit/pull request practices.
- Included detailed sections on module organization and naming conventions to enhance developer onboarding and consistency.
2026-03-19 22:15:45 -07:00

42 lines
2.5 KiB
Markdown

# Repository Guidelines
## Project Structure & Module Organization
- `src/`: React + TypeScript frontend (pages, components, hooks, store, services, lib).
- `src-tauri/`: Rust backend and Tauri desktop integration.
- `test/`: Vitest config and E2E/WebDriverIO setup (`test/e2e`, `test/wdio.conf.ts`).
- `skills/`: Skill runtime/build artifacts and manifests.
- `scripts/`: build/test automation (E2E helpers, tool generation).
- `docs/`: architecture and product documentation.
- `public/` and `src/assets/`: static assets.
## Build, Test, and Development Commands
- `yarn dev`: run Vite web dev server.
- `yarn dev:app` (or `yarn tauri:dev`): run desktop app with Tauri + TDLib bootstrap.
- `yarn build`: type-check and build web bundle.
- `yarn build:app`: build app bundle plus skills/tools generation.
- `yarn compile`: TypeScript check only (`tsc --noEmit`).
- `yarn test` / `yarn test:coverage`: run unit tests and coverage.
- `yarn test:rust`: run Rust tests in `src-tauri`.
- `yarn test:e2e`: run E2E suite (login/auth/payment/telegram/notion/gmail).
- `yarn lint` / `yarn lint:fix`, `yarn format:check` / `yarn format`: quality and formatting checks.
## Coding Style & Naming Conventions
- TypeScript-first; keep all app code under `src/`.
- Prettier is authoritative: 2 spaces, semicolons, single quotes, max width 100.
- Imports are auto-sorted via `@trivago/prettier-plugin-sort-imports`.
- ESLint (flat config) enforces React hooks rules, no duplicate imports, `prefer-const`, and TS-aware unused var checks.
- Naming: React components `PascalCase.tsx`; hooks `useX.ts`; slices/services/helpers `camelCase.ts`; tests `*.test.ts(x)`.
## Testing Guidelines
- Framework: Vitest + Testing Library (`jsdom`), with MSW utilities in `src/test/`.
- Unit tests live beside code (`__tests__`) or as `*.test.ts(x)` in `src/`.
- Coverage thresholds (global minimum): lines 15%, statements 15%, functions 15%, branches 12%.
- Run `yarn test:coverage` before opening non-trivial PRs.
## Commit & Pull Request Guidelines
- Prefer concise conventional-style subjects: `feat:`, `fix:`, `refactor:`, `docs:`, `chore:`.
- Keep commits scoped and descriptive (e.g., `fix: handle socket reconnect on auth expiry`).
- If contributing upstream, branch from `develop` and open PRs against `develop`.
- PRs should include: purpose, key changes, test evidence (commands run), linked issue (`Fixes #123`), and screenshots/videos for UI changes.
- Hooks exist but are lightweight; run lint, format, compile, and relevant tests manually before push.