Back to TypeScript

TypeScript Review for Metabase

typescriptmetabasefrontendlintingaccessibility
β˜… 4.9 (128)⭐ 47.7kπŸ“„ NOASSERTIONπŸ•’ 2026-06-16Source β†—

Install this skill

npx skills add metabase/metabase

Works across Claude Code, Cursor, Codex, Copilot & Antigravity

What this skill does

  • β€’Enforces 'no-any' policy via LSP-based verification
  • β€’Validates accessibility (A11y) including focus traps and labels
  • β€’Identifies missing user-facing event tracking in new flows
  • β€’Detects unoptimized dependencies affecting bundle size
  • β€’Ensures compliance with frontend/CLAUDE.md standards

When to use it

  • βœ“Before submitting a pull request for new frontend features
  • βœ“When reviewing changes in a colleague's PR to catch hidden defects
  • βœ“During refactors of existing Metabase UI components
  • βœ“When adding new analytical interactions to the dashboard

When not to use it

  • βœ•For backend Clojure logic or database schema migrations
  • βœ•For general-purpose code not related to the Metabase frontend
  • βœ•When you need an architectural design review rather than a standards check

How to invoke it

Example prompts that trigger this skill:

  • β€œReview the changes in the current branch against Metabase standards.”
  • β€œRun typescript-review on this PR to check for 'any' types and accessibility.”
  • β€œCheck these commits for compliance with the frontend development guide.”
  • β€œExamine the performance and bundle impact of my recent UI changes.”
  • β€œPerform a standards-based review of the diff in the current directory.”

Example workflow

  1. Open the terminal in the Metabase repository root.
  2. Stage the changes you wish to review.
  3. Trigger the typescript-review skill to analyze the diff.
  4. Review the prioritized output, starting with 'any' type violations.
  5. Apply fixes for identified accessibility or performance warnings.
  6. Re-run the skill to verify all critical findings are resolved.

Prerequisites

  • –TypeScript/JavaScript development environment
  • –Metabase repository access

Pitfalls & limitations

  • !Prioritizes linting/standards over deep architectural logic
  • !May flag valid performance optimizations if they resemble anti-patterns
  • !Cannot detect missing tracking events if the naming conventions are ambiguous

FAQ

Why is the 'no-any' rule prioritized over everything else?
Metabase maintains a strict type-safety policy. Implicit or explicit 'any' types undermine the static analysis and reliability of the codebase, making them the highest-priority blocker for all contributions.
Does this skill replace standard ESLint?
It complements standard linting. While ESLint catches basic syntax issues, this skill enforces project-specific patterns, security practices, and business-logic requirements like tracking event consistency.
How does it handle accessibility checks?
It scans for missing labels, non-semantic click handlers, and incorrect focus management. It essentially acts as a supplemental pair of eyes to flag common A11y oversights.

How it compares

Unlike a generic code-review prompt, this skill is pre-configured with Metabase-specific documentation paths and strict enforcement priorities, preventing inconsistent feedback.

Source & trust

⭐ 48k starsπŸ“„ NOASSERTIONπŸ•’ Updated 2026-06-16πŸ›‘ runs-shell

From the source: β€œ# TypeScript/JavaScript Code Review Skill @./../_shared/typescript-commands.md @./../_shared/react-redux-patterns.md ## Main Focus **Primary standard: the [`typescript-write`](../typescript-write/SKILL.md) skill.** Load it first β€” it defines the authoring rules this review enforces, alongside `front…”

View the full SKILL.md source

# TypeScript/JavaScript Code Review Skill

@./../_shared/typescript-commands.md
@./../_shared/react-redux-patterns.md

## Main Focus

**Primary standard: the [`typescript-write`](../typescript-write/SKILL.md) skill.** Load it first β€” it defines the authoring rules this review enforces, alongside `frontend/CLAUDE.md` and `docs/developers-guide/frontend.md`.

Adherence to `typescript-write` is the **highest-priority** review dimension: rank any violation of its provisions above all other findings. Treat its **no-`any` hard rule** (no explicit *or* implicit `any` in new code) as **blocking**, and verify it with the LSP rather than by eye.

Review in this priority order:

1. **Violations of [`typescript-write`](../typescript-write/SKILL.md) provisions** β€” no-`any`, type tightening, type modeling, null/undefined handling, naming, structure, comments. Highest priority; block on the no-`any` rule.
2. Compliance with `frontend/CLAUDE.md`.
3. Readability and maintainability.
4. Appropriate test coverage.

## Blind spots β€” act as the missing reviewer

These rarely surface in team reviews, so this skill should raise them. They are **additive** β€” raise them, but rank them below `typescript-write` violations:

- **Accessibility.** Interactive elements need keyboard support, focus management, and accessible names. Flag missing `aria-label`/`aria-labelledby`, non-semantic click targets, modals without focus trap, icon-only buttons without labels, and form inputs without a linked label.
- **Performance.** Flag areas that scale poorly and aren't memoized; inline object/array literals passed to memoized children; effects that fire on every batch of a progressive load; and new dependencies added to hot paths.
- **Security.** Evaluate potential security issues in new code.
- **Bundle size.** Flag new large dependencies, default imports from icon or util libs, and heavy modules imported at route-load time.
- **Analytics.** User-facing flows should emit tracking events. If a PR adds a new flow (button, modal, navigation) without a tracking event, ask whether one is expected.

Quoted from metabase/metabase for reference β€” see the original for the authoritative, latest version.

πŸ“„ Full skill instructions β€” original source: metabase/metabase
The typescript-review skill acts as a specialized quality gate for the Metabase frontend codebase. It enforces strict adherence to internal styling, TypeScript conventions, and documentation requirements. By prioritizing rules established in the typescript-write skillβ€”most notably the hard ban on 'any' typesβ€”it ensures type safety across new contributions. Beyond static type checks, the skill evaluates accessibility, performance, and security patterns that frequently bypass manual code reviews. It systematically flags non-semantic UI elements, missing tracking events, and inefficient re-renders to maintain the health of the Metabase analytics platform. This tool is essential for developers aiming to merge code that aligns with the specific architectural standards required by the Metabase repository, significantly reducing the feedback cycle during pull request iterations.

How to Use This Skill Unit

Option A: Project-Specific (Recommended)

  1. Click "Download" above
  2. In your project, create the directory: .agent/skills/typescript-review/
  3. Save the file as SKILL.md
  4. The agent will automatically discover the skill based on its description.

Option B: Global Installation (All Agents)

Save the file to these locations to make it available across all projects:

  • Claude Code: ~/.claude/skills/metabase/metabase/typescript-review/SKILL.md
  • Cursor: ~/.cursor/skills/metabase/metabase/typescript-review/SKILL.md
  • Antigravity: ~/.gemini/antigravity/skills/metabase/metabase/typescript-review/SKILL.md

πŸš€ Install with CLI:
npx skills add metabase/metabase

Read the Master Guide: Mastering Agent Skills β†’

Recommended Rules

View more rules β†’

Recommended Workflows

View more workflows β†’

Recommended MCP Servers

View more MCP servers β†’

Take It Further

Maximize your productivity with these powerful resources

πŸ“‹

Define Your Standards

Set up coding standards to ensure this workflow produces consistent, high-quality results.

Browse Rules Library
πŸ“–

Master Workflows

Learn how to create custom workflows, use Turbo Mode, and build your automation library.

Complete Guide

How to use this Skill in Claude Code & Cursor

For Claude Code (CLI)

To use this skill in Claude Code, copy the rule content into your project's custom instructions or follow our Add-Skill CLI guide. This ensures Claude follows your standards during every code generation.

For Cursor & Windsurf

For Cursor or Windsurf, individual skills are best used in the "Rules for AI" section. This specific unit helps the agent avoid typescript issues, leading to cleaner, more efficient code.

Why the skill format matters: the standardized Agent Skills format lets your AI agent load detailed instructions only when they are relevant, keeping your prompt clean while improving results.

Source & attribution

This skill is categorized under TypeScript and is published by metabase, maintained in metabase/metabase.

← Browse All Agent Skills
Sponsored AI assistant. Recommendations may be paid.