By omar-hanafy
Integrate, diagnose, and optimize the scroll_spy Flutter package for tracking visible items, autoplay, reading position, and impression analytics, including migration from visibility_detector and performance tuning to fix rebuild storms and flickering.
Use when replacing the visibility_detector package with scroll_spy in a Flutter app, when migrating VisibilityDetector, VisibilityInfo, or VisibilityDetectorController code, or when a VisibilityDetector-based feed additionally needs a single stable primary item, per-item focus metrics, or scroll-performance improvements.
Use when scroll_spy misbehaves in a Flutter app and the cause is unknown: primaryId stays null, focusedIds stays empty, listeners or builders never fire, focus ignores jumpTo or programmatic scrolls, the highlighted item is offset under a pinned header or app bar, state resets on setState, nested scrollables interfere, or a widget test reads null focus state.
Use when adding the scroll_spy Flutter package to a screen or feature: autoplay video feeds, current-item tracking, reading-position or TOC highlighting, impression analytics, carousels or PageViews, photo grids, prefetching around the focused item, or wiring ScrollSpyScope, ScrollSpyItem, and ScrollSpyController for the first time, including widget tests for that integration. Not for scrolling work unrelated to focus or visibility tracking (saving/restoring scroll offsets, scroll physics, scroll-to-index).
Use when upgrading a Flutter project from scroll_spy 0.1.x or 0.2.x to 1.x, when a build breaks after a scroll_spy upgrade with unresolved names such as ScrollSpyRegistry, ScrollSpyGeometry, ScrollSpySelection, ScrollSpyDiff, or commitFrame, or when estimating how much work the 0.x to 1.x upgrade needs.
Use when a Flutter screen whose code uses scroll_spy (ScrollSpyScope, ScrollSpyItem, ScrollSpyController) shows jank, dropped frames, high CPU, or rebuild storms, or when choosing between ScrollSpyItem, ScrollSpyItemLite, focus builders, listeners, and snapshot listening in large scroll_spy feeds. Not for general Flutter list or image scrolling performance where scroll_spy is not involved.
Based on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Viewport focus detection and stable primary item selection for Flutter scrollables, built for video autoplay feeds, analytics, reading position, carousels, and prefetching.
Want your AI agent to handle the integration? Install the official ScrollSpy Assistant plugin for Claude Code or OpenAI Codex. It teaches your agent exactly how to integrate, tune, and migrate this package.
Product guide · Real video feed demo · API docs
scroll_spy is the layer between raw Flutter widget visibility and a product
decision. It reports every visible and focused item, then applies an explicit
policy and stability rules to select one primaryId. A video engine can pause
the previous ID and play the next without two half-visible cards fighting over
audio.
Every scrolling feed eventually needs to know:
scroll_spy computes all of this for you, every scroll, with a configurable pipeline and zero manual geometry math:
scroll event
|
v
Measure each registered item's rect in viewport coordinates
|
v
Region does the item intersect the focus line/zone? -> isFocused + metrics
|
v
Policy rank focused items, pick one winner -> primary candidate
|
v
Stability hysteresis + min-duration to prevent flicker -> primaryId
|
v
Controller ValueListenables: primaryId / focusedIds / snapshot / per-item
visibleFraction, distanceToAnchorPx,
focusProgress (0..1 center-closeness, great for scale/parallax effects),
and focusOverlapFraction.Choose by the decision your screen needs:
npx claudepluginhub omar-hanafy/scroll_spy --plugin scroll-spyPackage-specific Claude Code skills and a read-only bridge reviewer for flutter_monaco.
Package-specific skills for the flutter_helper_utils Flutter package: exact BuildContext/theme/navigation APIs, color parsing and accessibility helpers, adaptive breakpoint UI, TypedListView/TypedSliverList widgets, the v8-to-v9 breaking migration, and version upgrades.
Package-specific skills for the dart_helper_utils Dart package: exact utility APIs (strings, maps, collections, dates, intl formatting), async timing tools (Debouncer, throttle, stream transformers), the v5-to-v6 breaking migration, and version upgrades.
Compile and verify large SVG sets as deterministic Flutter IconData fonts through a bundled GlyphPact MCP server and project integration skill.
Package-specific skills for the bug_handler Flutter error-reporting toolkit: setup, guard-driven error handling, custom reporters/providers, privacy tuning, delivery diagnosis, legacy-API migration, and error-handling audits.
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
This skill should be used when users need to generate ideas, explore creative solutions, or systematically brainstorm approaches to problems. Use when users request help with ideation, content planning, product features, marketing campaigns, strategic planning, creative writing, or any task requiring structured idea generation. The skill provides 30+ research-validated prompt patterns across 14 categories with exact templates, success metrics, and domain-specific applications.
Develop, test, build, and deploy Godot 4.x games with Claude Code. Includes GdUnit4 testing, web/desktop exports, CI/CD pipelines, and deployment to Vercel/GitHub Pages/itch.io.
A growing collection of Claude-compatible academic workflow bundles. Covers scientific figures, manuscript writing and polishing, reviewer assessment, citation retrieval, data availability, paper reading, literature search, response letters, paper-to-PPTX conversion, and evidence-grounded Chinese invention patent drafting. Rules are organized as reusable skill folders with explicit workflows and quality checks.
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.
Consult multiple AI coding agents (Gemini, OpenAI, Grok, Perplexity, plus codex, antigravity, and grok CLIs when installed) to get diverse perspectives on coding problems