You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: Generate release notes for app stores (Android Play Store, iOS App Store, macOS App Store, Linux Flatpak). Use when the user asks for changelogs, release notes, or store descriptions based on git history.
4
+
---
5
+
6
+
# Store Changelog Generator
7
+
8
+
Generate release notes for App stores based on git history since a specified tag.
9
+
10
+
## Instructions
11
+
12
+
1.**Get the tag name**:
13
+
- If the user provides a tag name (e.g., `1.0.0` or `v1.0.0`), use it
14
+
- If not provided, automatically get the latest tag using: `git describe --tags --abbrev=0`
15
+
- Inform the user which tag is being used
16
+
17
+
2.**Analyze git history**: Run `git log <tag>..HEAD --pretty=format:"%h %s%n%b" --no-merges` to get all commits since the tag, including both commit messages and descriptions.
18
+
19
+
3.**Identify changes**: Categorize commits into:
20
+
- New features
21
+
- Improvements
22
+
- Bug fixes
23
+
24
+
4.**Generate platform-specific release notes** following the formats below.
25
+
26
+
## Output Formats
27
+
28
+
### Android (Play Store)
29
+
- Maximum 500 characters
30
+
- Bullet point format
31
+
- Focus on top 3-4 most impactful changes
32
+
- Example:
33
+
```
34
+
• New reader mode for distraction-free reading
35
+
• Improved sync reliability with FreshRSS
36
+
• Fixed crash when opening large feeds
37
+
```
38
+
39
+
### iOS (App Store)
40
+
- User-friendly narrative format
41
+
- Highlight iOS-specific improvements (scrolling, touch interactions, mobile layout)
42
+
- Group by: New Features, Improvements, Bug Fixes
43
+
- Example:
44
+
```
45
+
New Features:
46
+
• Reader mode now provides a clean, distraction-free reading experience.
47
+
48
+
Improvements:
49
+
• Smoother scrolling and faster feed loading on all devices.
50
+
51
+
Bug Fixes:
52
+
• Fixed an issue where the app could crash when opening feeds with many articles.
This file provides guidance to agents when working with code in this repository.
4
-
5
3
## Project Overview
6
4
7
-
FeedFlow is a cross-platform RSS reader built with Kotlin Multiplatform, Compose Multiplatform and SwiftUI. It targets Android, iOS, macOS, Windows, and Linux. The app uses SwiftUI for iOS-specific UI components and Compose for all other platforms.
5
+
FeedFlow is a multi-platform RSS reader built with Kotlin Multiplatform, Compose Multiplatform and SwiftUI.
6
+
It targets Android, iOS, macOS, Windows, and Linux.
7
+
The app uses SwiftUI for iOS-specific UI components and Compose for all other platforms.
8
+
All the business logic is shared via Kotlin Multiplatform.
8
9
9
-
## Architecture
10
+
## Project Structure & Module Organization
10
11
11
12
### Module Structure
12
13
-**core/**: Core domain models and utilities shared across all platforms
13
14
-**shared/**: Main business logic, repositories, view models, and data layer
14
-
-**sharedUI/**: Compose UI components shared across platforms
15
+
-**sharedUI/**: Compose UI components shared across Android and Desktop
- Example: `git commit -m "Add foundation for unified article parsing system"`
70
76
71
77
### iOS Development
72
-
The iOS app uses Xcode and requires iOS-specific setup:
73
-
- Open `iosApp/FeedFlow.xcodeproj` in Xcode
74
-
- Build and run from Xcode
75
-
76
78
- ALWAYS build with xcodebuild with -quiet flag when building for iOS. If the command returns errors you may run xcodebuild again without the -quiet flag.
77
-
78
-
## Code Structure Notes
79
-
80
-
### Shared Logic
81
-
- ViewModels in `shared/src/commonMain/kotlin/.../presentation/`
82
-
- Repositories in `shared/src/commonMain/kotlin/.../domain/`
83
-
- Platform-specific implementations use `expect`/`actual` pattern
84
-
85
-
### Platform-Specific Code
86
-
- Android: `shared/src/androidMain/kotlin/`
87
-
- iOS: `shared/src/iosMain/kotlin/`
88
-
- Desktop: `shared/src/jvmMain/kotlin/`
89
-
90
-
### Database
91
-
- SQLDelight schema in `database/src/commonMain/sqldelight/`
92
-
- Database drivers are platform-specific
93
-
94
-
### Dependency Injection
95
-
- Koin modules in `shared/src/commonMain/kotlin/.../di/`
96
-
- Platform-specific modules in respective platform folders
97
-
98
-
## Testing
99
-
- Common tests in `shared/src/commonTest/kotlin/`
100
-
- Platform-specific tests in respective test folders
101
-
- Uses Kotlin Test framework with JUnit on JVM platforms
102
-
103
-
## Internationalization
104
-
- String resources in `i18n/src/commonMain/resources/locale/values-[language]/`
105
-
- Refresh
106
-
- Uses Lyricist for multiplatform string handling
107
-
- Translation management via Weblate
79
+
- IMPORTANT: The project now supports iOS 26 SDK (June 2025) while maintaining iOS 18 as the minimum deployment target. Use #available checks when adopting iOS 26+ APIs.
80
+
- Break different types up into different Swift files rather than placing multiple structs, classes, or enums into a single file.
81
+
- Never use `ObservableObject`; always prefer `@Observable` classes instead.
82
+
- Never use `Task.sleep(nanoseconds:)`; always use `Task.sleep(for:)` instead.
83
+
- Avoid `AnyView` unless it is absolutely required.
84
+
- Avoid force unwraps and force `try` unless it is unrecoverable.
85
+
86
+
### Internationalization
87
+
- String resources are located in `i18n/src/commonMain/resources/locale/values-[language]/`
108
88
- Run .scripts/refresh-translations.sh after adding a new translation, to re-generate the kotlin code
89
+
- NEVER add hardcoded strings in the code. Always use the i18n resources.
90
+
- NEVER try to translate other languages by yourself. Add only the English strings. The translations will be handled by professionals later.
109
91
110
-
## Key Features to Understand
111
-
-**Feed Sync**: Supports Dropbox, FreshRSS, and iCloud synchronization
112
-
-**Reader Mode**: HTML content extraction and formatting
113
-
-**OPML Import/Export**: Standard RSS subscription format support
114
-
-**Widgets**: Android App Widget and iOS Widget support
0 commit comments