{"owner":"dagster-io","repo":"dagster","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md"],"skills":{"CLAUDE.md":"# Dagster Development Guide\n\n## Quick References\n\n- **Package Locations**: [.claude/python_packages.md](./.claude/python_packages.md) - Comprehensive list of all Python packages and their filesystem paths. **ALWAYS check this file first when looking for package locations.**\n- **Development Workflow**: [.claude/dev_workflow.md](./.claude/dev_workflow.md) - Documentation of developer workflows in the Dagster OSS repo.\n- **UI Workflow**: [.claude/ui_workflow.md](./.claude/ui_workflow.md) - UI/TypeScript development workflows and verification commands. **ALWAYS check after UI edits.**\n- **Coding Conventions**: [.claude/coding_conventions.md](./.claude/coding_conventions.md) - Type annotations and code style conventions. **ALWAYS check this before writing data structures - use @record instead of @dataclass.**\n- **CRITICAL**: After ANY Python code changes, ALWAYS run `make ruff` - this is mandatory and must never be skipped.\n\n## Environment Setup\n\nSee [docs/docs/about/contributing.md](docs/docs/about/contributing.md) for full setup instructions.\n\n```bash\nmake dev_install  # Full development environment setup\n```\n\n## Essential Commands\n\n```bash\n# Code quality - RUN AFTER EVERY PYTHON EDIT\nmake ruff                    # Format, lint, and autofix code - MANDATORY AFTER ANY CODE CHANGES\nmake pyright                # Type checking (slow first run)\nmake quick_pyright          # Type check only changed files\n\n# Testing\npytest path/to/tests/       # Run specific tests\npytest python_modules/dagster/dagster_tests/  # Run core tests\ntox -e py39-pytest          # Test in isolated environment\n\n# UI Verification (run from js_modules/ when done with edits)\ncd js_modules\njust generate-graphql       # Regenerate GraphQL types (if schema changed; must run before tsgo/lint)\nyarn tsgo                   # TypeScript checking\nyarn lint                   # ESLint checking\nyarn jest                   # Jest tests\nyarn build                  # Verify production build (ui-components changes only)\n\n# Development\nmake rebuild_ui             # Rebuild React UI after changes\njust generate-graphql       # Regenerate GraphQL schema and codegen clients\nmake sanity_check           # Check for non-editable installs\n```\n\n## Development Workflow\n\n- **Python**: Core framework in `python_modules/dagster/`, libraries in `python_modules/libraries/`\n- **UI**: React/TypeScript in `js_modules/`\n- **Docs**: Docusaurus in `docs/`\n- **Testing**: pytest preferred, use tox for environment isolation\n\n## UI Development\n\n```bash\n# Terminal 1: Start GraphQL server\ncd examples/docs_snippets/docs_snippets/intro_tutorial/basics/connecting_ops/\ndagster-webserver -p 3333 -f complex_job.py\n\n# Terminal 2: Start UI development server\ncd js_modules\nmake dev_webapp\n```\n\n## Documentation\n\n```bash\ncd docs\nyarn install && yarn start     # Start docs server\nyarn build-api-docs          # Build API docs after .rst changes\n```\n\n## Code Style\n\n- **See [.claude/coding_conventions.md](./.claude/coding_conventions.md) for all code style and convention guidelines**\n\n## Code Quality Requirements\n\n- **MANDATORY**: After any code changes, ALWAYS run `make ruff` to format, lint, and autofix code\n- **MANDATORY**: If `make ruff` makes any changes, re-run tests to ensure everything still works\n- **MANDATORY**: Address any linting issues before considering a task complete\n- Never skip this step - code quality checks are essential for all contributions\n\n## Package Management\n\n- Always use uv instead of pip\n- **IMPORTANT**: When command line entry_points change in setup.py, you must reinstall the package using `uv pip install -e .` for the changes to take effect\n\n## Code searching\n\n- DO NOT search for Python code (.py files) inside of .tox folders. These are temporary environments and this will only cause confusion.\n- Always search for package dependencies in setup.py files only. This is the current source of truth for dependencies in this repository.\n\n## Make Command Guidelines\n\n- Whenever there is an instruction to run a make command, ALWAYS cd to $DAGSTER_GIT_REPO_DIR, as the Makefile is at the root of the repository\n\n## Environment Variables\n\n- **DAGSTER_GIT_REPO_DIR**: Always defined and points to the repository root directory. Use this for any absolute path references in agent configurations or file operations instead of hardcoding user-specific paths.\n\n## PR Stack Operations\n\n### Finding GitHub Usernames Efficiently\n\n- **Best method**: `gh search commits \"FirstName\" --author=\"Full Name\" --repo=dagster-io/dagster`\n- **Why effective**: Co-authored commits reveal exact GitHub username format\n- **Alternative**: Check recent PRs or issues for the person's contributions\n\n### Stack Operations Always Use GT\n\n- **Key rule**: When someone mentions \"stacking\" or \"stack\", always use `gt` commands first\n- **Reason**: GT is the source of truth for stack metadata and relationships\n- **Primary command**: `gt log` provides comprehensive PR numbers, statuses, and branch relationships\n- **Impact**: Single command reveals entire stack structure vs. manual discovery\n\n### Git Operations\n\n- **NEVER use `git push` directly** - always ask the user before pushing changes to remote\n- Do not automatically do git commit --amend on user's behalf since you lose track of what the agent has done\n"},"files":{"CLAUDE.md":"# Dagster Development Guide\n\n## Quick References\n\n- **Package Locations**: [.claude/python_packages.md](./.claude/python_packages.md) - Comprehensive list of all Python packages and their filesystem paths. **ALWAYS check this file first when looking for package locations.**\n- **Development Workflow**: [.claude/dev_workflow.md](./.claude/dev_workflow.md) - Documentation of developer workflows in the Dagster OSS repo.\n- **UI Workflow**: [.claude/ui_workflow.md](./.claude/ui_workflow.md) - UI/TypeScript development workflows and verification commands. **ALWAYS check after UI edits.**\n- **Coding Conventions**: [.claude/coding_conventions.md](./.claude/coding_conventions.md) - Type annotations and code style conventions. **ALWAYS check this before writing data structures - use @record instead of @dataclass.**\n- **CRITICAL**: After ANY Python code changes, ALWAYS run `make ruff` - this is mandatory and must never be skipped.\n\n## Environment Setup\n\nSee [docs/docs/about/contributing.md](docs/docs/about/contributing.md) for full setup instructions.\n\n```bash\nmake dev_install  # Full development environment setup\n```\n\n## Essential Commands\n\n```bash\n# Code quality - RUN AFTER EVERY PYTHON EDIT\nmake ruff                    # Format, lint, and autofix code - MANDATORY AFTER ANY CODE CHANGES\nmake pyright                # Type checking (slow first run)\nmake quick_pyright          # Type check only changed files\n\n# Testing\npytest path/to/tests/       # Run specific tests\npytest python_modules/dagster/dagster_tests/  # Run core tests\ntox -e py39-pytest          # Test in isolated environment\n\n# UI Verification (run from js_modules/ when done with edits)\ncd js_modules\njust generate-graphql       # Regenerate GraphQL types (if schema changed; must run before tsgo/lint)\nyarn tsgo                   # TypeScript checking\nyarn lint                   # ESLint checking\nyarn jest                   # Jest tests\nyarn build                  # Verify production build (ui-components changes only)\n\n# Development\nmake rebuild_ui             # Rebuild React UI after changes\njust generate-graphql       # Regenerate GraphQL schema and codegen clients\nmake sanity_check           # Check for non-editable installs\n```\n\n## Development Workflow\n\n- **Python**: Core framework in `python_modules/dagster/`, libraries in `python_modules/libraries/`\n- **UI**: React/TypeScript in `js_modules/`\n- **Docs**: Docusaurus in `docs/`\n- **Testing**: pytest preferred, use tox for environment isolation\n\n## UI Development\n\n```bash\n# Terminal 1: Start GraphQL server\ncd examples/docs_snippets/docs_snippets/intro_tutorial/basics/connecting_ops/\ndagster-webserver -p 3333 -f complex_job.py\n\n# Terminal 2: Start UI development server\ncd js_modules\nmake dev_webapp\n```\n\n## Documentation\n\n```bash\ncd docs\nyarn install && yarn start     # Start docs server\nyarn build-api-docs          # Build API docs after .rst changes\n```\n\n## Code Style\n\n- **See [.claude/coding_conventions.md](./.claude/coding_conventions.md) for all code style and convention guidelines**\n\n## Code Quality Requirements\n\n- **MANDATORY**: After any code changes, ALWAYS run `make ruff` to format, lint, and autofix code\n- **MANDATORY**: If `make ruff` makes any changes, re-run tests to ensure everything still works\n- **MANDATORY**: Address any linting issues before considering a task complete\n- Never skip this step - code quality checks are essential for all contributions\n\n## Package Management\n\n- Always use uv instead of pip\n- **IMPORTANT**: When command line entry_points change in setup.py, you must reinstall the package using `uv pip install -e .` for the changes to take effect\n\n## Code searching\n\n- DO NOT search for Python code (.py files) inside of .tox folders. These are temporary environments and this will only cause confusion.\n- Always search for package dependencies in setup.py files only. This is the current source of truth for dependencies in this repository.\n\n## Make Command Guidelines\n\n- Whenever there is an instruction to run a make command, ALWAYS cd to $DAGSTER_GIT_REPO_DIR, as the Makefile is at the root of the repository\n\n## Environment Variables\n\n- **DAGSTER_GIT_REPO_DIR**: Always defined and points to the repository root directory. Use this for any absolute path references in agent configurations or file operations instead of hardcoding user-specific paths.\n\n## PR Stack Operations\n\n### Finding GitHub Usernames Efficiently\n\n- **Best method**: `gh search commits \"FirstName\" --author=\"Full Name\" --repo=dagster-io/dagster`\n- **Why effective**: Co-authored commits reveal exact GitHub username format\n- **Alternative**: Check recent PRs or issues for the person's contributions\n\n### Stack Operations Always Use GT\n\n- **Key rule**: When someone mentions \"stacking\" or \"stack\", always use `gt` commands first\n- **Reason**: GT is the source of truth for stack metadata and relationships\n- **Primary command**: `gt log` provides comprehensive PR numbers, statuses, and branch relationships\n- **Impact**: Single command reveals entire stack structure vs. manual discovery\n\n### Git Operations\n\n- **NEVER use `git push` directly** - always ask the user before pushing changes to remote\n- Do not automatically do git commit --amend on user's behalf since you lose track of what the agent has done\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# Dagster Development Guide\n\n## Quick References\n\n- **Package Locations**: [.claude/python_packages.md](./.claude/python_packages.md) - Comprehensive list of all Python packages and their filesystem paths. **ALWAYS check this file first when looking for package locations.**\n- **Development Workflow**: [.claude/dev_workflow.md](./.claude/dev_workflow.md) - Documentation of developer workflows in the Dagster OSS repo.\n- **UI Workflow**: [.claude/ui_workflow.md](./.claude/ui_workflow.md) - UI/TypeScript development workflows and verification commands. **ALWAYS check after UI edits.**\n- **Coding Conventions**: [.claude/coding_conventions.md](./.claude/coding_conventions.md) - Type annotations and code style conventions. **ALWAYS check this before writing data structures - use @record instead of @dataclass.**\n- **CRITICAL**: After ANY Python code changes, ALWAYS run `make ruff` - this is mandatory and must never be skipped.\n\n## Environment Setup\n\nSee [docs/docs/about/contributing.md](docs/docs/about/contributing.md) for full setup instructions.\n\n```bash\nmake dev_install  # Full development environment setup\n```\n\n## Essential Commands\n\n```bash\n# Code quality - RUN AFTER EVERY PYTHON EDIT\nmake ruff                    # Format, lint, and autofix code - MANDATORY AFTER ANY CODE CHANGES\nmake pyright                # Type checking (slow first run)\nmake quick_pyright          # Type check only changed files\n\n# Testing\npytest path/to/tests/       # Run specific tests\npytest python_modules/dagster/dagster_tests/  # Run core tests\ntox -e py39-pytest          # Test in isolated environment\n\n# UI Verification (run from js_modules/ when done with edits)\ncd js_modules\njust generate-graphql       # Regenerate GraphQL types (if schema changed; must run before tsgo/lint)\nyarn tsgo                   # TypeScript checking\nyarn lint                   # ESLint checking\nyarn jest                   # Jest tests\nyarn build                  # Verify production build (ui-components changes only)\n\n# Development\nmake rebuild_ui             # Rebuild React UI after changes\njust generate-graphql       # Regenerate GraphQL schema and codegen clients\nmake sanity_check           # Check for non-editable installs\n```\n\n## Development Workflow\n\n- **Python**: Core framework in `python_modules/dagster/`, libraries in `python_modules/libraries/`\n- **UI**: React/TypeScript in `js_modules/`\n- **Docs**: Docusaurus in `docs/`\n- **Testing**: pytest preferred, use tox for environment isolation\n\n## UI Development\n\n```bash\n# Terminal 1: Start GraphQL server\ncd examples/docs_snippets/docs_snippets/intro_tutorial/basics/connecting_ops/\ndagster-webserver -p 3333 -f complex_job.py\n\n# Terminal 2: Start UI development server\ncd js_modules\nmake dev_webapp\n```\n\n## Documentation\n\n```bash\ncd docs\nyarn install && yarn start     # Start docs server\nyarn build-api-docs          # Build API docs after .rst changes\n```\n\n## Code Style\n\n- **See [.claude/coding_conventions.md](./.claude/coding_conventions.md) for all code style and convention guidelines**\n\n## Code Quality Requirements\n\n- **MANDATORY**: After any code changes, ALWAYS run `make ruff` to format, lint, and autofix code\n- **MANDATORY**: If `make ruff` makes any changes, re-run tests to ensure everything still works\n- **MANDATORY**: Address any linting issues before considering a task complete\n- Never skip this step - code quality checks are essential for all contributions\n\n## Package Management\n\n- Always use uv instead of pip\n- **IMPORTANT**: When command line entry_points change in setup.py, you must reinstall the package using `uv pip install -e .` for the changes to take effect\n\n## Code searching\n\n- DO NOT search for Python code (.py files) inside of .tox folders. These are temporary environments and this will only cause confusion.\n- Always search for package dependencies in setup.py files only. This is the current source of truth for dependencies in this repository.\n\n## Make Command Guidelines\n\n- Whenever there is an instruction to run a make command, ALWAYS cd to $DAGSTER_GIT_REPO_DIR, as the Makefile is at the root of the repository\n\n## Environment Variables\n\n- **DAGSTER_GIT_REPO_DIR**: Always defined and points to the repository root directory. Use this for any absolute path references in agent configurations or file operations instead of hardcoding user-specific paths.\n\n## PR Stack Operations\n\n### Finding GitHub Usernames Efficiently\n\n- **Best method**: `gh search commits \"FirstName\" --author=\"Full Name\" --repo=dagster-io/dagster`\n- **Why effective**: Co-authored commits reveal exact GitHub username format\n- **Alternative**: Check recent PRs or issues for the person's contributions\n\n### Stack Operations Always Use GT\n\n- **Key rule**: When someone mentions \"stacking\" or \"stack\", always use `gt` commands first\n- **Reason**: GT is the source of truth for stack metadata and relationships\n- **Primary command**: `gt log` provides comprehensive PR numbers, statuses, and branch relationships\n- **Impact**: Single command reveals entire stack structure vs. manual discovery\n\n### Git Operations\n\n- **NEVER use `git push` directly** - always ask the user before pushing changes to remote\n- Do not automatically do git commit --amend on user's behalf since you lose track of what the agent has done\n","category":"root","tokens":1321}]}