contribute
Set up a Superset open-source contribution, from forking and cloning superset-sh/superset through local dev setup and the repo's rules to a merge-ready PR. Use when the user wants to contribute to Superset, fix a Superset bug themselves, add a feature to Superset, or prepare a PR against superset-sh/superset.
git clone --depth 1 https://github.com/superset-sh/superset /tmp/contribute && cp -r /tmp/contribute/plugins/superset/skills/contribute ~/.claude/skills/contributeSKILL.md
# Contribute to Superset Take the user from "I want to fix/build X in Superset" to a merge-ready PR that follows the repo's rules. If the checked-out repo has `CONTRIBUTING.md`, `DEVELOPMENT.md`, or `AGENTS.md`, those files are authoritative; read them and prefer them over this summary. ## 1. Scope first - Bug fixes, docs, small improvements: straight to a PR, no issue needed - New features or larger changes: open an issue first at https://github.com/superset-sh/superset/issues/new/choose to agree on the approach before building - Questions: Superset Discord, not an issue ## 2. Set up 1. `gh auth status`, then fork and clone: `gh repo fork superset-sh/superset --clone` (or add a fork remote to an existing clone) 2. Best experience: add the clone as a project in the Superset app and create a workspace per change, so contributions develop inside managed worktrees 3. In the new workspace/worktree, run `./.superset/setup.local.sh` once (configures per-workspace ports, app identity, local services, and a seeded dev account; no external credentials needed), then `bun run dev` 4. Bun only, never npm/yarn/pnpm. Read the root `AGENTS.md` and follow it. ## 3. Make it merge-ready - Branch from `main`; one change per PR, so unrelated finds become a second PR - Before pushing: `bun run lint:fix`, then verify `bun run lint` exits clean (CI fails on warnings too), `bun run typecheck`, `bun run test` - PR title must be a conventional commit (`feat(desktop): ...`, `fix(web): ...`); PRs are squash-merged with the title as the commit subject - Include proof it works: screenshots or recordings for anything user-visible, before/after for fixes. The dev desktop app exposes CDP for clean captures; see "Capturing screenshots via CDP" in CONTRIBUTING.md - Check "Allow edits from maintainers" and link the issue for non-trivial changes ## 4. Open it `gh pr create` against `superset-sh/superset` `main`, fill in the PR template honestly (what you ran, what you clicked, what's covered by tests), and report the PR URL back to the user.
Canonical three-section structure for Linear and Superset tickets in this repo. Use when creating, drafting, or grooming a ticket.
Validates project structure against co-location and architecture patterns defined in AGENTS.md
Create workspaces, spawn agents, schedule automations, and manage Superset projects/tasks/hosts via the `superset` CLI. Use to orchestrate coding agents across devices from the terminal.
Verify UI behavior end-to-end by driving the running desktop app over the Chrome DevTools Protocol. Use when asked to verify, reproduce, or confirm a UI change, bug, or regression in the real app rather than in tests.
Create a database migration with Drizzle on a fresh Neon branch. Use when changing the packages/db schema or generating migrations.
Walk the user through design or implementation decisions one at a time, or review completed code one change at a time. Use when the user says "walk me through each decision", "let's decide together", "help me work through these choices", "walk me through what you did", or "QA step by step". Present concise context, mutually exclusive options, log each answer, and finish with a summary.
Critique and improve the visual design of an existing UI component with concrete implementation guidance. Use when the user asks to redesign, restyle, reimagine, polish, or improve a component, screen, or interface, especially in React and Tailwind codebases.
Read and update the Superset desktop app's user settings (theme, fonts, terminal, git, notifications, behavior) via the superset CLI, including creating and installing custom themes from JSON. Use when asked to change app settings, switch or create a theme, adjust fonts, or configure desktop preferences without opening the settings UI.