# Table Features

Add or debug Table v9 features: registration, row-model slots, prerequisites, sorting...

- Repository: https://github.com/TanStack/table (28539 stars)
- Category: Testing
- License: MIT
- Last updated: 2026-10-21
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add TanStack/table --skill table-features -g -a claude-code -y`
Codex: `npx skills add TanStack/table --skill table-features -g -a codex -y`
Cursor: `npx skills add TanStack/table --skill table-features -g -a cursor -y`
Gemini CLI: `npx skills add TanStack/table --skill table-features -g -a gemini-cli -y`

## Description

Add or debug Table v9 features: registration, row-model slots, prerequisites, sorting, filtering, pagination, selection, spanning, and column layout. Read only task-relevant feature references.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Feature architecture

Read [core](../core/SKILL.md) first for the headless model and stable inputs.

## Register the behavior the table uses

<!-- skill-snippet:check -->

```ts
import {
  createSortedRowModel,
  rowSortingFeature,
  sortFn_alphanumeric,
  tableFeatures,
} from '@tanstack/table-core'

export const features = tableFeatures({
  rowSortingFeature,
  sortedRowModel: createSortedRowModel(),
  sortFns: { alphanumeric: sortFn_alphanumeric },
})
```

Pass the stable `features` object to the installed adapter constructor. The concrete registry determines optional APIs, options, state slices, and their types. The core row model is automatic; a custom core model uses `coreRowModel`.

## Registration rules

- Register each prerequisite feature before its dependent slot in the same `tableFeatures` call. A processing factory alone cannot install that feature's APIs or state.
- Row-model factories use `create*RowModel()` feature slots. Their names and prerequisites are in the feature reference. They take no function-registry arguments.
- `filterFns`, `sortFns`, and `aggregationFns` are feature slots, not table options. They require `columnFilteringFeature`, `rowSortingFeature`, and `rowAggregationFeature`, respectively.
- Import individual built-ins such as `sortFn_alphanumeric` and register their conventional keys. Those keys become typed string names; `'auto'` can resolve only registered functions. Pass a function directly when a column needs no named registry entry. Full registry exports bundle every built-in.
- `columnResizingFeature` requires `columnSizingFeature`; `globalFilteringFeature` requires `columnFilteringFeature`. Check installed `FeatureSlotPrereqs` for other dependencies.
- Use explicit features for normal construction. `stockFeatures` is a deliberate all-features convenience or temporary migration aid, with the corresponding bundle cost.

The rest: https://github.com/TanStack/table/blob/HEAD/packages/table-core/skills/table-features/SKILL.md
