Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .roo/rules-architect/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Project Architecture Rules (Non-Obvious Only)

- Webview and extension communicate ONLY through `src/core/webview/webviewMessageHandler.ts` patterns
- React hooks required in webview - external state libraries break VSCode webview isolation
- Monorepo has circular dependency on types package (intentional design)
- `safeWriteJson()` mandatory for JSON writes - uses atomic writes with file locking
- Database operations require specific directory: must `cd packages/evals` before running migrations
7 changes: 7 additions & 0 deletions .roo/rules-ask/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Project Documentation Rules (Non-Obvious Only)

- `src/` contains VSCode extension code, NOT general source (counterintuitive naming)
- `webview-ui/` is React UI in VSCode webview with severe restrictions (no localStorage, limited APIs)
- Two separate i18n systems: `locales/` for extension, `webview-ui/src/i18n/` for UI
- Monorepo workspace roots are `"src"` and `"webview-ui"` (not standard `packages/` structure)
- Extension bundled with custom `esbuild.mjs`, webview uses Vite
8 changes: 8 additions & 0 deletions .roo/rules-code/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Project Coding Rules (Non-Obvious Only)

- Always use `safeWriteJson()` from `src/utils/safeWriteJson.ts` instead of `JSON.stringify` for file writes (prevents corruption)
- Extension code in `src/` directory, NOT in `apps/` (counterintuitive structure)
- Webview UI in `webview-ui/` runs with restricted APIs - no localStorage, limited browser features
- IPC patterns MUST follow `src/core/webview/webviewMessageHandler.ts` structure
- Tests must be in `__tests__` folders or `.spec.ts` files (vitest won't find them otherwise)
- VSCode API mocked differently: `src/__mocks__/vscode.js` vs `webview-ui/src/__mocks__/vscode.ts`
7 changes: 7 additions & 0 deletions .roo/rules-debug/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Project Debug Rules (Non-Obvious Only)

- Extension logs only visible in "Extension Host" output channel, NOT Debug Console
- Webview dev tools accessed via Command Palette > "Developer: Open Webview Developer Tools" (not F12)
- Database migrations MUST run from `packages/evals/` directory: `cd packages/evals && pnpm db:migrate`
- IPC messages fail silently if not wrapped in try/catch in webview message handlers
- Two separate mock systems: `src/__mocks__/vscode.js` for extension, `webview-ui/src/__mocks__/vscode.ts` for UI
24 changes: 0 additions & 24 deletions .roo/rules/rules.md

This file was deleted.

37 changes: 37 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# AGENTS.md

This file provides guidance to agents when working with code in this repository.

## Critical Non-Obvious Rules

- **MUST** use `safeWriteJson()` from `src/utils/safeWriteJson.ts` for ALL JSON file writes (prevents corruption via atomic writes with locking)
- Test files exempt from safeWriteJson rule

## Project Structure (Non-Standard)

- `src/` contains VSCode extension code (NOT general source - counterintuitive naming)
- `webview-ui/` is the React UI that runs in VSCode webview (separate from extension)
- Two separate i18n systems: root `locales/` for extension, `webview-ui/src/i18n/` for UI
- Monorepo uses pnpm workspaces with unusual paths: `"src"` and `"webview-ui"` as workspace roots

## Testing Specifics

- Tests MUST be in `__tests__` folders or `.spec.ts` files (vitest configured this way)
- VSCode module mocked at `src/__mocks__/vscode.js` and `webview-ui/src/__mocks__/vscode.ts`
- Run single test: `pnpm test -- path/to/test.spec.ts`

## Build Commands (Directory-Sensitive)

- Database operations MUST run from `packages/evals/` directory: `cd packages/evals && pnpm db:migrate`
- Extension bundling uses custom `esbuild.mjs` script, not standard vite/webpack

## Webview Restrictions

- Webview has NO localStorage, limited browser APIs
- IPC communication through specific patterns in `src/core/webview/webviewMessageHandler.ts`
- State management requires React hooks only (external state libraries break isolation)

## Code Style (Non-Standard)

- Tabs not spaces (4-width), no semicolons, bracket same line
- Line width 120 chars (not default 80)
Loading