This document provides guidance for AI agents working on the Open Data Hub (ODH) Dashboard monorepo.
ODH Dashboard is a monorepo containing the main dashboard application and multiple feature packages. It provides the web UI for Red Hat OpenShift AI (RHOAI) and Open Data Hub.
odh-dashboard/
├── frontend/ # Main dashboard frontend application
│ └── src/
│ └── __mocks__/ # Shared mock data (@odh-dashboard/internal/__mocks__)
├── backend/ # Main dashboard backend (Node.js/Express)
│ └── src/
├── packages/ # Feature packages
│ ├── cypress/ # Cypress test framework and shared tests
│ ├── gen-ai/ # Gen AI / LLM features (has BFF)
│ ├── maas/ # Mod Arch starter (has BFF)
│ ├── model-registry/ # Model Registry UI (has BFF)
│ ├── model-serving/ # Model Serving UI
│ └── ... # Other packages
├── .github/ # GitHub workflows and templates
├── .tekton/ # Tekton CI/CD pipelines
└── docs/ # Documentation
- Node.js: >= 22.0.0
- npm: >= 10.0.0
- Go: >= 1.24 (for packages with BFF)
| Technology | Purpose |
|---|---|
| React 18 | Frontend framework |
| TypeScript | Type safety |
| PatternFly v6 | Primary UI component library (RHOAI/ODH) |
| Material UI | Secondary UI library (Kubeflow mode) |
| Webpack | Build tooling with Module Federation |
| Cypress | E2E and component testing |
| Jest | Unit testing |
| Turbo | Monorepo task runner |
# Install dependencies
npm install
# Start development server (main dashboard)
npm run dev
# Build all packages
npm run build
# Run tests
npm run test
# Lint all packages
npm run lint
npm run lint:fix
# Type checking
npm run type-checkSome packages have their own AGENTS.md with package-specific guidance. Check the package directory for its own AGENTS.md file.
Before performing certain tasks, read and follow the corresponding specialized rules.
Rules live in .claude/rules/. Read the relevant rule file before starting the task.
| Rule | File | Trigger |
|---|---|---|
| Architecture | architecture.md |
When making structural changes, adding packages, or modifying package boundaries |
| BFF Go | bff-go.md |
When working on Go BFF code in packages/*/bff/ |
| Contract Tests | contract-tests.md |
When working on contract tests or BFF API validation |
| Conventions | conventions.md |
When writing or reviewing TypeScript, React, or backend code |
| CSS & PatternFly | css-patternfly.md |
When writing or modifying styles, SCSS, or PatternFly components |
| Cypress E2E Tests | cypress-e2e.md |
When creating or modifying E2E tests, Robot Framework migrations |
| Cypress Mock Tests | cypress-mock.md |
When creating or modifying mock/component tests |
| Jira Creation | jira-creation.md |
When asked to create Jira issues, tickets, bugs, stories, tasks, or epics |
| Modular Architecture | modular-architecture.md |
When working on the plugin/extension system or package integration |
| Module Federation | module-federation.md |
When configuring Module Federation, webpack remotes, or shared dependencies |
| Module Onboarding | module-onboarding.md |
When creating a new package/module in the monorepo |
| React | react.md |
When writing React components, hooks, or pages |
| Security | security.md |
When working on auth, secrets, input validation, or K8s API interactions |
| Testing Standards | testing-standards.md |
When working across multiple test types or choosing a testing strategy |
| Unit Tests | unit-tests.md |
When creating or modifying Jest unit tests for utilities, hooks, or components |
Skills provide multi-step workflows. They live in .claude/skills/. Read the relevant skill file before starting the task.
| Skill | Directory | Use when |
|---|---|---|
| Dev Workflow | skills/dev-workflow/ |
Implementing a feature, fix, or refactor — runs lint, type-check, tests, and optional browser verification |
| Model Registry Sync Status | skills/model-registry-sync-status/ |
Checking whether the local model-registry upstream copy is up to date |
| Model Registry Upstream Sync | skills/model-registry-upstream-sync/ |
Syncing upstream changes from kubeflow/model-registry and opening a PR |
Important: Always read the relevant rule or skill file before starting the task to ensure you follow the project's conventions and patterns.