Thanks for contributing.
QuickStack is intentionally narrow: fast capture, low friction, native Android behavior, and minimal scope. Keep changes aligned with that direction.
- prefer small diffs
- avoid scope creep
- keep business logic out of composables
- keep Android integration inside repositories or dedicated feature classes
- update documentation when user-visible behavior changes
- run
./gradlew assembleDebug - run
./gradlew testDebugUnitTest - manually verify the changed flow if it touches tile, notifications, clipboard, or scheduling
Use:
feat: ...for user-visible improvementsfix: ...for bug fixesrefactor: ...for internal cleanup without behavior changedocs: ...for documentation-only changesci: ...for workflow or release pipeline changeschore: ...for small maintenance tasks
Examples:
feat: add settings screen for time actionsfix: restore pinned notification after swiperefactor: split settings UI into components
Prefer:
feat/...fix/...refactor/...docs/...ci/...chore/...
Examples:
feat/settings-screenfix/pinned-notification-swiperefactor/settings-components
Please avoid adding these unless explicitly discussed:
- backend or sync
- auth or accounts
- analytics or ads
- unrelated widget/platform experiments
- turning QuickStack into a generic notes app