Skip to content

Latest commit

 

History

History
70 lines (50 loc) · 2.93 KB

File metadata and controls

70 lines (50 loc) · 2.93 KB

flash-list

High-performance replacement for React Native's FlatList, built on recycling principles. Used by thousands of React Native apps for smooth scrolling with large datasets.

Source Layout

  • src/ — library source code (TypeScript)
  • fixture/react-native/ — React Native test/demo app
  • dist/ — compiled output (NOT auto-rebuilt on branch switch)

Key Constraint

estimatedItemSize does NOT exist as a prop on FlashList. Do not use it, suggest it, or add it.

Build & Test

yarn build          # compile TypeScript to dist/
yarn test --forceExit
yarn type-check
yarn lint

Important: dist/ is NOT rebuilt on branch switch. Always run yarn build after checking out a different branch.

Node Version

Node 22.18.0

Commit & PR Conventions

  • Use conventional commits: fix(scope): description, feat(scope): description
  • Scope examples: layout, hooks, scroll, sticky-headers, recycling, viewability
  • Do NOT include any AI attribution (no Co-Authored-By AI lines, no "Generated by" or "Assisted by" text)
  • PR titles should be under 70 characters and match the commit format
  • Link issues with Fixes #<number> in the commit/PR body

Available Skills

Skills are reusable workflows in .claude/skills/. Use them when relevant:

Skill When to use
fix-github-issue Fixing a bug end-to-end: reproduce, diagnose, fix, verify on simulator, PR
raise-pr Creating a PR with proper conventional commit format and no AI attribution
review-and-test Reviewing a PR or branch: unit tests, type-check, lint, device testing, RTL/LTR
triage-issue Classifying an issue (P0/P1/P2), finding duplicates, applying labels
agent-device Interacting with iOS simulator or Android emulator (snapshot-based coordinates)
upgrade-react-native Upgrading the fixture app's React Native version

Self-Learning

When you discover something important during a session — a pitfall, a non-obvious behavior, a debugging technique, or a pattern that would save time in the future — update the relevant skill file or this file so the knowledge persists.

What to capture:

  • New pitfalls or edge cases discovered while fixing bugs
  • Debugging techniques that worked (or didn't)
  • Corrections to existing instructions that turned out to be wrong
  • Non-obvious behaviors of FlashList, React Native, or the build system

Where to put it:

  • Bug/fix patterns → fix-github-issue skill (Common Pitfalls section)
  • Testing edge cases → review-and-test skill (Edge Cases section)
  • Device interaction quirks → agent-device skill
  • Project-wide facts → this file (CLAUDE.md)

How:

  • Include the update in the same PR as the fix (not a separate PR)
  • Keep entries concise — one line per pitfall, with enough context to be useful
  • On CI, only add critical learnings (things that would cause repeated failures). Minor improvements should wait for interactive sessions.