What problem does it solve?
Adding or modifying a scrollable list of notes in Amethyst (home, profile, hashtag, bookmarks, notifications, DMs) requires coordinating filters, ViewModels, cache invalidation, and Compose rendering across shared KMP and Android-only code, which is easy to get wrong.
Core Features & Use Cases
- Feed Filter Composition: Guides extending
FeedFilter, AdditiveFeedFilter, or AdditiveComplexFeedFilter with correct feedKey(), feed(), applyFilter(), and limit() implementations.
- ViewModel Selection: Explains when to use
FeedViewModel, ListChangeFeedViewModel, ChatroomFeedViewModel, or MarmotGroupFeedViewModel and how to wire invalidation from Account flows and LocalCacheFlow.
- Platform Boundary Guidance: Clarifies which classes live in shared
commons/ versus Android-only ui/dal/ versus Desktop desktopApp/ code.
- Use Case: When adding a new hashtag feed, follow the step-by-step recipe to write the filter, pick the ViewModel, subscribe to relays, and render with a keyed
LazyColumn.
Quick Start
Ask the assistant to add a new feed screen for a hashtag using the feed-patterns skill and have it generate the filter, ViewModel wiring, and Compose rendering code.