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
106 changes: 0 additions & 106 deletions .claude/agents/playwright-test-generator.md

This file was deleted.

72 changes: 0 additions & 72 deletions .claude/agents/playwright-test-healer.md

This file was deleted.

56 changes: 0 additions & 56 deletions .claude/agents/playwright-test-planner.md

This file was deleted.

34 changes: 33 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,39 @@ gt m
```

## Dependency Management

### pnpm Workspace
- Use pnpm for all npm-related commands. We're using a pnpm workspace.

### RivetKit Package Resolutions
The root `/package.json` contains `resolutions` that map RivetKit packages to their local workspace versions:

```json
{
"resolutions": {
"rivetkit": "workspace:*",
"@rivetkit/react": "workspace:*",
"@rivetkit/workflow-engine": "workspace:*",
// ... other @rivetkit/* packages
}
}
```

When adding RivetKit dependencies to examples in `/examples/`, use `*` as the version. The root resolutions will automatically resolve these to the local workspace packages:

```json
{
"dependencies": {
"rivetkit": "*",
"@rivetkit/react": "*"
}
}
```

If you need to add a new `@rivetkit/*` package that isn't already in the root resolutions, add it to the `resolutions` object in `/package.json` with `"workspace:*"` as the value. Internal packages like `@rivetkit/workflow-engine` should be re-exported from `rivetkit` subpaths (e.g., `rivetkit/workflow`) rather than added as direct dependencies.

### Rust Dependencies

## Documentation

- If you need to look at the documentation for a package, visit `https://docs.rs/{package-name}`. For example, serde docs live at https://docs.rs/serde/
Expand Down Expand Up @@ -168,7 +199,7 @@ Key points:
- For example: `fn foo() -> Result<i64> { /* ... */ }`
- Do not glob import (`::*`) from anyhow. Instead, import individual types and traits

**Dependency Management**
**Rust Dependency Management**
- When adding a dependency, check for a workspace dependency in Cargo.toml
- If available, use the workspace dependency (e.g., `anyhow.workspace = true`)
- If you need to add a dependency and can't find it in the Cargo.toml of the workspace, add it to the workspace dependencies in Cargo.toml (`[workspace.dependencies]`) and then add it to the package you need with `{dependency}.workspace = true`
Expand Down Expand Up @@ -220,6 +251,7 @@ Data structures often include:
## Testing Guidelines
- When running tests, always pipe the test to a file in /tmp/ then grep it in a second step. You can grep test logs multiple times to search for different log lines.
- For RivetKit TypeScript tests, run from `rivetkit-typescript/packages/rivetkit` and use `pnpm test <filter>` with `-t` to narrow to specific suites. For example: `pnpm test driver-file-system -t ".*Actor KV.*"`.
- For frontend testing, use the `agent-browser` skill to interact with and test web UIs in examples. This allows automated browser-based testing of frontend applications.

## Optimizations

Expand Down
Loading
Loading