

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1234567# Apache Superset Development Standards for Cursor IDE89Apache Superset is a data visualization platform with Flask/Python backend and React/TypeScript frontend.1011## ⚠️ CRITICAL: Ongoing Refactors (What NOT to Do)1213**These migrations are actively happening - avoid deprecated patterns:**1415### Frontend Modernization16- **NO `any` types** - Use proper TypeScript types17- **NO JavaScript files** - Convert to TypeScript (.ts/.tsx)18- **NO Enzyme** - Use React Testing Library/Jest (Enzyme fully removed)19- **Use @superset-ui/core** - Don't import Ant Design directly2021### Testing Strategy Migration22- **Prefer unit tests** over integration tests23- **Prefer integration tests** over Cypress end-to-end tests24- **Cypress is last resort** - Actively moving away from Cypress25- **Use Jest + React Testing Library** for component testing2627### Backend Type Safety28- **Add type hints** - All new Python code needs proper typing29- **MyPy compliance** - Run `pre-commit run mypy` to validate30- **SQLAlchemy typing** - Use proper model annotations3132## Code Standards3334### TypeScript Frontend35- **NO `any` types** - Use proper TypeScript36- **Functional components** with hooks37- **@superset-ui/core** for UI components (not direct antd)38- **Jest** for testing (NO Enzyme)39- **Redux** for global state, hooks for local4041### Python Backend42- **Type hints required** for all new code43- **MyPy compliant** - run `pre-commit run mypy`44- **SQLAlchemy models** with proper typing45- **pytest** for testing4647### Apache License Headers48- **New files require ASF license headers** - When creating new code files, include the standard Apache Software Foundation license header49- **LLM instruction files are excluded** - Files like LLMS.md, CLAUDE.md, etc. are in `.rat-excludes` to avoid header token overhead5051## Key Directory Structure5253```54superset/55├── superset/ # Python backend (Flask, SQLAlchemy)56│ ├── views/api/ # REST API endpoints57│ ├── models/ # Database models58│ └── connectors/ # Database connections59├── superset-frontend/src/ # React TypeScript frontend60│ ├── components/ # Reusable components61│ ├── explore/ # Chart builder62│ ├── dashboard/ # Dashboard interface63│ └── SqlLab/ # SQL editor64├── superset-frontend/packages/65│ └── superset-ui-core/ # UI component library (USE THIS)66├── tests/ # Python/integration tests67├── docs/ # Documentation (UPDATE FOR CHANGES)68└── UPDATING.md # Breaking changes log69```7071## Architecture Patterns7273### Dataset-Centric Approach74Charts built from enriched datasets containing:75- Dimension columns with labels/descriptions76- Predefined metrics as SQL expressions77- Self-service analytics within defined contexts7879### Security & Features80- **RBAC**: Role-based access via Flask-AppBuilder81- **Feature flags**: Control feature rollouts82- **Row-level security**: SQL-based data access control8384## Test Utilities8586### Python Test Helpers87- **`SupersetTestCase`** - Base class in `tests/integration_tests/base_tests.py`88- **`@with_config`** - Config mocking decorator89- **`@with_feature_flags`** - Feature flag testing90- **`login_as()`, `login_as_admin()`** - Authentication helpers91- **`create_dashboard()`, `create_slice()`** - Data setup utilities9293### TypeScript Test Helpers94- **`superset-frontend/spec/helpers/testing-library.tsx`** - Custom render() with providers95- **`createWrapper()`** - Redux/Router/Theme wrapper96- **`selectOption()`** - Select component helper97- **React Testing Library** - NO Enzyme (removed)9899## Pre-commit Validation100101**Use pre-commit hooks for quality validation:**102103```bash104# Install hooks105pre-commit install106107# Quick validation (faster than --all-files)108pre-commit run # Staged files only109pre-commit run mypy # Python type checking110pre-commit run format # Code formatting111pre-commit run eslint # Frontend linting112```113114## Development Guidelines115116- **Documentation**: Update docs/ for any user-facing changes117- **Breaking Changes**: Add to UPDATING.md118- **Docstrings**: Required for new functions/classes119- **Follow existing patterns**: Mimic code style, use existing libraries and utilities120- **Type Safety**: This codebase is actively modernizing toward full TypeScript and type safety121- **Always run `pre-commit run`** to validate changes before committing122123---124125**Note**: This codebase is actively modernizing toward full TypeScript and type safety. Always run `pre-commit run` to validate changes. Follow the ongoing refactors section to avoid deprecated patterns.126
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| apache/supersetsuperset/mcp_service/CLAUDE.md · 74k | CLAUDE.md | buildteststylearch+7 | 64/100 | 13 days ago | |
| apache/supersetAGENTS.md · 74k | AGENTS.md | setuptestlint-formatstyle+9 | 89/100 | today |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 46 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 14 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 46 | Cursor rules | teststyletesting-strategysecurity+3 | 97/100 | 14 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 14 days ago | |
| skillrecordings/egghead-next.cursor/rules/project-update-user-rules.mdc · 1.4k | Cursor rules | buildtestlint-formatstyle+7 | 96/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/apache-superset-cursor-rules-dev-standard)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.