maxrave-dev/kotlin-footguns
Skill
Installs
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