Files
ComfyUI_frontend/CLAUDE.md
Arjan Singh b5d3cfdd9a chore: claude repo setup and claude.md updates (#5248)
* chore: add setup_repo command for claude code

* docs: update CLAUDE.md with monorepo guidance

* chore: ignore CLAUDE.local.md

* ci: add .nvmrc

enforce v22, the current lts release

* chore: node 24 it is!

* fix .claude/commands/setup_repo.md

Co-authored-by: Alexander Brown <drjkl@comfy.org>

* fix: .claude/commands/setup_repo.md

Co-authored-by: Alexander Brown <drjkl@comfy.org>

* fix: update CLAUDE.md

Co-authored-by: Alexander Brown <drjkl@comfy.org>

---------

Co-authored-by: Alexander Brown <drjkl@comfy.org>
2025-08-28 16:21:03 -07:00

2.9 KiB

ComfyUI Frontend Project Guidelines

Repository Setup

For first-time setup, use the Claude command:

/setup_repo

This bootstraps the monorepo with dependencies, builds, tests, and dev server verification.

Prerequisites: Node.js >= 24, Git repository, available ports (5173, 6006)

Quick Commands

  • pnpm: See all available commands
  • pnpm dev: Start development server (port 5173, via nx)
  • pnpm typecheck: Type checking
  • pnpm build: Build for production (via nx)
  • pnpm lint: Linting (via nx)
  • pnpm format: Prettier formatting
  • pnpm test:component: Run component tests with browser environment
  • pnpm test:unit: Run all unit tests
  • pnpm test:browser: Run E2E tests via Playwright
  • pnpm test:unit -- tests-ui/tests/example.test.ts: Run single test file
  • pnpm storybook: Start Storybook development server (port 6006)
  • pnpm knip: Detect unused code and dependencies

Monorepo Architecture

The project now uses Nx for build orchestration and task management:

  • Task Orchestration: Commands like dev, build, lint, and test:browser run via Nx
  • Caching: Nx provides intelligent caching for faster rebuilds
  • Configuration: Managed through nx.json with plugins for ESLint, Storybook, Vite, and Playwright
  • Dependencies: Nx handles dependency graph analysis and parallel execution

Key Nx features:

  • Build target caching and incremental builds
  • Parallel task execution across the monorepo
  • Plugin-based architecture for different tools

Development Workflow

  1. First-time setup: Run /setup_repo Claude command
  2. Make code changes
  3. Run tests (see subdirectory CLAUDE.md files)
  4. Run typecheck, lint, format
  5. Check README updates
  6. Consider docs.comfy.org updates

Git Conventions

  • Use [prefix] format: [feat], [bugfix], [docs]
  • Add "Fixes #n" to PR descriptions
  • Never mention Claude/AI in commits

External Resources

Project Philosophy

  • Clean, stable public APIs
  • Domain-driven design
  • Thousands of users and extensions
  • Prioritize clean interfaces that restrict extension access

Repository Navigation

  • Check README files in key folders (tests-ui, browser_tests, composables, etc.)
  • Prefer running single tests for performance
  • Use --help for unfamiliar CLI tools

GitHub Integration

When referencing Comfy-Org repos:

  1. Check for local copy
  2. Use GitHub API for branches/PRs/metadata
  3. Curl GitHub website if needed

Common Pitfalls

  • NEVER use any type - use proper TypeScript types
  • NEVER use as any type assertions - fix the underlying type issue
  • NEVER use --no-verify flag when committing
  • NEVER delete or disable tests to make them pass
  • NEVER circumvent quality checks