search-dataflow

Model end-to-end search data flow from user input to UI.

49|3|Updated Nov 7, 2025
One-click install
npx skills add https://github.com/mrndstvndv/Search --skill search-dataflow
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: search-dataflow
Source: https://github.com/mrndstvndv/Search/tree/main/.opencode/skill/search-dataflow
Command: npx skills add https://github.com/mrndstvndv/Search --skill search-dataflow

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This guide demonstrates how to model and reason about the complete data flow of a search UI, from user input to live results, including debouncing, alias resolution, provider coordination, aggregation, and ranking.

Core Features & Use Cases

  • Query flow orchestration from input to UI with debounce and alias checks
  • Multi-provider dispatch, aggregation, and reactive state updates using modern Kotlin state constructs
  • Persistent settings using SharedPreferences to remember user preferences across sessions

Quick Start

Provide a sample search query in the UI and observe how input debounces, aliases are resolved, providers are dispatched, results are aggregated and ranked, and the UI updates.

Frequently Asked Questions about search-dataflow

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I orchestrate end-to-end search data flow in Kotlin from user input to UI updates?

You orchestrate search data flow by modeling query creation, applying debounce, resolving aliases, dispatching to providers, aggregating results, and ranking them for reactive state-driven UI updates. This approach uses Kotlin state management constructs like StateFlow and SharedFlow.

What is the best way to manage multiple search providers and aggregate results asynchronously in Kotlin?

Managing multiple search providers involves dispatching asynchronous queries to each provider and aggregating the responses. The data flow architecture handles provider coordination and aggregates results before applying ranking and triggering reactive state updates.

How does debounce work with StateFlow and SharedFlow when handling varying search query loads?

Debounce works with StateFlow and SharedFlow by delaying query processing during rapid input changes. This filters out intermediate keystrokes, ensuring the search architecture only dispatches asynchronous provider queries when user input stabilizes under varying load conditions.

Can I use SharedPreferences to persist search settings and user preferences across app sessions?

Yes, you can use SharedPreferences to persist search settings and remember user preferences across sessions. The search data flow architecture integrates this persistence mechanism alongside reactive state management to maintain configuration continuity.

Does this search data flow architecture support reactive UI updates with mutableStateOf and mutableStateListOf?

Yes, the search data flow architecture supports reactive UI updates using mutableStateOf and mutableStateListOf. These Kotlin state management patterns drive live results rendering after query aggregation, alias resolution, and ranking complete.

When should I not use a centralized search data flow for alias resolution and provider dispatch?

You should not use a centralized search data flow if your application only queries a single static data source without needing alias resolution, debounce, or multi-provider aggregation. The architecture targets interactive search experiences combining multiple asynchronous providers.