maxrave-dev/kotlin-footguns

235 skills2.6K total installsGithubGithubGitHub

state-and-background-footguns

57

compose-screens-footguns

56

desktop-and-build-footguns

56

media-playback-footguns

56

compose-visuals-footguns

56

data-layer-footguns

55

footgun-scan

55

remote-api-footguns

55

engineering-method-footguns

54

kmp-architecture-footguns

52

webview-footguns

28

windows-msix-offline-installer

11

queue-index-vs-shuffle-space

10

shimmer-skeleton-loaders

10

swappable-crash-reporting-and-dialog

9

follower-transport-stays-local

9

runtime-override-not-preference-write

9

image-fallback-url-retry-in-composition

9

glance-layout-vocabulary

9

curl-logger-ktor-plugin

9

jna-native-binding-traps

9

fgs-state-ended-trap

9

crossfade-dual-player

9

api-ok-but-ignored

9

ci-flaky-timing-luck

9

empty-sentinel-instance

9

swipe-action-list-row

9

endless-queue-management

9

story-reel-auto-pager

9

changelog-as-war-story

9

audio-focus-multiplayer

9

sql-not-in-nullable-trap

9

datastore-kmp-manager

9

one-setting-two-backends

9

custom-shuffle-order

9

hilt-to-koin-migration

9

kmp-html-entity-decoder

9

response-to-domain-flow

9

custom-thin-media-slider

9

clean-arch-kmp-readiness

9

lazy-scroll-helper-kit

9

liquid-glass-backdrop

9

edit-a-shape-as-a-shape

9

lazy-list-drag-reorder

9

text-brush-shimmer-sweep

9

arm64-native-gap-audit

9

dual-source-queue-sync

9

periodic-worker-dedup

9

macos-lsenvironment-path-pin

9

settings-value-round-tripped-through-its-label

9

ktor-kmp-client-architecture

9

stateflow-conflation-inverts-state

9

flatmaplatest-resubscribe-composite-key

9

remote-index-cached-as-rows-with-validator

9

beatmatched-automix

9

kotlinx-datetime-helper-kit

9

lazy-item-grouping-beats-arrangement-gap

9

mirror-local-state-to-a-remote-account

9

jvm-desktop-memory-footprint

9

angled-gradient-modifier

9

cache-then-network

9

type-safe-nav-graph-organization

9

search-over-a-paged-list-queries-the-source

9

koin-viewmodel-scoping-traps

9

ambient-tone-layer-behind-flat-pages

9

compose-desktop-video-no-swingpanel

9

generic-paged-db-accumulator

9

readiness-barrier-needs-every-answer

9

local-listening-analytics

9

media3-custom-audio-processor

9

realtime-biquad-dsp

9

smooth-scrim-gradient

9

kmp-logger-facade

9

intent-flag-not-observed-state

9

xml-to-compose-sequencing

9

a-stated-rule-needs-annotated-exceptions

9

enum-normalize-over-legacy-data

9

import-format-contract-design

9

polymorphic-load-media-entry-point

9

equal-buckets-or-no-buckets

9

selection-mode-state-holder

9

touch-indication-bounds-and-alpha

9

nowplaying-pager-no-feedback-loop

9

conveyor-desktop-packaging

9

order-preserving-section-mapping

9

small-collection-utilities

9

queue-rebuild-state-machine

9

bulk-json-import-progress

9

hidden-setting-does-not-clear-the-stored-value

9

crossfade-container-sizes-to-the-visible-child

9

macos-codesign-sidecar-strip

9

progress-indicator-as-scrubber

9

removing-a-feature-audit-shared-handles

9

optional-engine-feature-degrade-in-tiers

9

app-backup-to-zip-mediastore

9

screen-shell-content-split

9

r8-proguard-desktop-survival

9

monotonic-clock-offset-sync

9

jvmname-disambiguate-erased-overloads

9

native-artifact-for-embedding

9

model-entity-mapping-extension-layer

9

oauth-callback-not-through-nav

9

bundled-native-soname-conflict

9

dont-slice-one-circle-between-unrelated-measures

9

no-use-case-layer-decision

9

palette-state-parks-on-loading

9

pending-state-makes-waiting-legible

9

clean-satellite-at-transition

9

force-dark-immersive-subtree

9

custom-modal-sheet-family

9

encoded-continuation-tokens-local-sort

9

room-rawquery-readonly-vacuum

9

follower-item-built-from-shared-payload

9

expandable-and-linkified-text

9

gate-optional-effect-at-the-shared-primitive

9

marker-interface-nested-enum-polymorphism

9

nested-flag-settings-auto-disable

9

room-migrations-at-scale

9

compose-multiplatform-viewmodel-base

9

continuation-token-pagination-contract

9

read-build-logs-bottom-up

9

sync-room-bridge-echo-guard

9

foss-vs-proprietary-module-pairs

9

desktop-mini-player-window

9

responsive-gate-size-not-platform

9

empty-state-must-keep-its-navigation

9

semantic-color-tokens-compositionlocal

9

embed-media-engine-desktop

9

string-resource-format-limits

9

derive-the-flag-dont-store-and-correct-it

9

two-vendors-one-package-kmp-api-skew

9

compose-desktop-runtime-hardening

9

word-timed-karaoke-lyrics

9

remoteviews-bitmap-budget

9

compose-capture-to-share-image

9

self-normalised-axes-need-a-second-shape

9

flat-twin-shares-geometry-not-material

9

protobuf-without-codegen-kmp

9

floating-overlay-reserves-its-own-strip

9

variant-layout-math-stays-in-the-variant

9

datastore-driven-workmanager

9

forwarding-player-hot-swap

9

websocket-session-handshake-lifecycle

9

expect-actual-composable-capability

9

collapsing-parallax-toolbar

9

repository-resource-flow-pattern

9

retry-needs-backoff-and-cap

9

artwork-seeded-dynamic-scheme

9

animated-gradient-border-ring

9

stacked-bars-double-consume-window-insets

9

dual-mode-persist-blocking-or-async

9

delta-absent-not-infinite

9

github-actions-multiplatform-release

9

fullscreen-video-gesture-overlay

9

hoist-the-flag-not-the-animation

9

one-snapshot-per-period-not-many-flows

9

transitive-version-pinning

9

layered-video-backdrop-pager

9

named-job-lifecycle-discipline

9

desktop-system-media-integration

9

transparent-chip-selection-signals

9

unknown-not-a-valid-score

9

deterministic-title-placeholder-painter

9

position-based-group-sync

9

draw-outside-bounds-particle-modifier

9

glance-widget-over-existing-state

9

kmp-gradle-settings-catalog

9

partial-chart-must-say-so

9

inclusive-period-boundaries-and-offset-reset

9

borrowed-wire-protocol-discipline

9

joiner-catches-up-by-asking

9

derive-seek-from-progress-flow

9

audio-fade-separate-gain-line

9

merge-split-av-streams-desktop

9

first-ever-not-first-in-window

9

on-demand-dictionary-asset

9

guard-on-every-trigger-path

9

levenshtein-fuzzy-match-pure-kmp

9

cascading-delete-ordering

9

desktop-single-instance-before-di

9

noop-actual-not-platform-limit

9

combining-chars-break-char-literals

9

identity-compare-immutable-setting

9

slide-transition-defaults-to-half-a-height

9

preset-identity-read-back-from-value

9

artwork-palette-theming

9

windows-vm-detection-post-wmic

9

overflow-tilted-browse-card

9

script-aware-romanization-pipeline

9

reproducible-native-bundling-two-tasks

9

login-state-fans-out-to-settings

9

upstream-lib-bug-workaround-template

9

event-not-state-edge-for-one-shot-effects

9

writing-agent-skill-house-style

9

run-discriminating-experiment-first

9

mosaic-arrangements-must-be-hole-free

9

publish-a-snapshot-on-taking-the-role

9

server-default-overrides-client-intent

9

buildkonfig-secrets-flavors

9

commit-archaeology-red-flags

9

stored-timestamp-is-a-local-wall-clock

9

crossfade-exclusion-heuristics

9

structural-defensive-parsing

9

scoped-composable-shadows-the-top-level-one

9

nav-tab-registration-drift

9

bitmask-event-wrapper

9

chrome-drawn-outside-the-theme-scope

9

shell-background-is-not-scheme-background

9

playback-position-persist-restore

9

commit-a-text-field-on-an-explicit-action

9

kmp-git-submodule-module-mapping

9

sampled-supplier-vs-per-handle-reapply

9

self-hiding-child-cannot-hide-its-slot

9

parallel-chunked-download

9

like-wildcard-escaping-ids

9

per-track-loudness-normalization

9

desktop-deep-link-plumbing

9

ttl-keyed-json-cache-lenient-decode

9

filter-chain-two-owners-one-writer

9

distinct-by-key-reset-cancel-per-item

9

restricted-marker-is-not-an-opt-in

9

material-symbols-icon-system

9

combine-two-flags-to-gate

9

bucket-local-time-in-code-not-in-sql

9

room-kmp-setup

9

unbounded-for-shares-capped-for-lists

9

control-range-must-cover-stored-values

9

weight-fill-false-to-center-a-cluster

9

kmp-module-split-for-packaging

9

repository-flow-conventions

9

config-fails-open-verify-artifact

9

play-intent-decided-before-load

9

gradle-config-resolved-too-early

9

readonly-stateflow-cold-to-hot

9

dont-pre-animate-a-self-animating-property

9