#526 by GitHub stars
maxrave-dev/kotlin-footguns
Battle-tested agent skills mapping the footguns of Kotlin, Compose Multiplatform and the desktop JVM — mined from a production music app, not from documentation.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/compose-screens-footguns/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
dfcbe3208170 → 2c391bc9c9f8
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → dfcbe3208170
No earlier version was observed for comparison.
skills/compose-visuals-footguns/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
dfcbe3208170 → 2c391bc9c9f8
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → dfcbe3208170
No earlier version was observed for comparison.
skills/data-layer-footguns/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
dfcbe3208170 → 2c391bc9c9f8
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → dfcbe3208170
No earlier version was observed for comparison.
skills/desktop-and-build-footguns/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
dfcbe3208170 → 2c391bc9c9f8
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → dfcbe3208170
No earlier version was observed for comparison.
skills/engineering-method-footguns/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
dfcbe3208170 → 2c391bc9c9f8
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → dfcbe3208170
No earlier version was observed for comparison.
skills/footgun-scan/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
dfcbe3208170 → 2c391bc9c9f8
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → dfcbe3208170
No earlier version was observed for comparison.
skills/kmp-architecture-footguns/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
dfcbe3208170 → 2c391bc9c9f8
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → dfcbe3208170
No earlier version was observed for comparison.
skills/media-playback-footguns/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
dfcbe3208170 → 2c391bc9c9f8
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → dfcbe3208170
No earlier version was observed for comparison.
skills/remote-api-footguns/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
dfcbe3208170 → 2c391bc9c9f8
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → dfcbe3208170
No earlier version was observed for comparison.
skills/state-and-background-footguns/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
dfcbe3208170 → 2c391bc9c9f8
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → dfcbe3208170
No earlier version was observed for comparison.
skills/webview-footguns/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
dfcbe3208170 → 2c391bc9c9f8
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → dfcbe3208170
No earlier version was observed for comparison.
Verified commit 2c391bc9c9f873580aa855d7a7b1c3a2ed9e68ae
git clone --filter=blob:none --no-checkout https://github.com/maxrave-dev/kotlin-footguns.git .hotskills/maxrave-dev-kotlin-footguns && git -C .hotskills/maxrave-dev-kotlin-footguns checkout --detach 2c391bc9c9f873580aa855d7a7b1c3a2ed9e68ae
# Copy each selected skill directory from .hotskills/maxrave-dev-kotlin-footguns into .claude/skills/<skill-name>/Heat
8.2- Star growth, last 7 daysAhead of 99% of tracked repositories
- Star growth, last 24 hoursAhead of 99% of tracked repositories
- Rank movement, last 7 daysAhead of 97% of tracked repositories
- Commits, last 30 daysAhead of 70% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- compose-screens-footguns
skills/compose-screens-footguns - compose-visuals-footguns
skills/compose-visuals-footguns - data-layer-footguns
skills/data-layer-footguns - desktop-and-build-footguns
skills/desktop-and-build-footguns - engineering-method-footguns
skills/engineering-method-footguns - footgun-scan
skills/footgun-scan - kmp-architecture-footguns
skills/kmp-architecture-footguns - media-playback-footguns
skills/media-playback-footguns - remote-api-footguns
skills/remote-api-footguns - state-and-background-footguns
skills/state-and-background-footguns - webview-footguns
skills/webview-footguns
How it works
compose-screens-footguns
When your agent uses it
Compose screen and interaction traps: navigation, adaptive layout, window insets, pagers, toolbars, sheets, list drag and selection, sliders, text fields, settings UI, one-shot effects. Use when layout, gestures or navigation misbehave.
What it loads into context
Frontmatter
62 tokensAlways available to the agent
SKILL.md
4,631 tokensWhen the skill is activated
Reference documents
56,863 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Screens, navigation and adaptive layout
- Components and interaction
Files
../../.claude-plugin/marketplace.jsonasset738 bytes../../.claude-plugin/plugin.jsonasset854 bytesSKILL.mdcore22,165 bytesSKILL.mdcore22,165 bytesSKILL.mdcore22,165 bytesreferences/collapsing-parallax-toolbar.mddoc8,637 bytesreferences/commit-a-text-field-on-an-explicit-action.mddoc8,293 bytesreferences/control-range-must-cover-stored-values.mddoc6,308 bytesreferences/custom-modal-sheet-family.mddoc7,280 bytesreferences/custom-thin-media-slider.mddoc8,513 bytesreferences/desktop-mini-player-window.mddoc7,975 bytesreferences/edit-a-shape-as-a-shape.mddoc7,320 bytesreferences/empty-state-must-keep-its-navigation.mddoc7,215 bytesreferences/event-not-state-edge-for-one-shot-effects.mddoc7,726 bytesreferences/expandable-and-linkified-text.mddoc7,080 bytesreferences/floating-overlay-reserves-its-own-strip.mddoc9,275 bytesreferences/fullscreen-video-gesture-overlay.mddoc7,815 bytesreferences/hidden-setting-does-not-clear-the-stored-value.mddoc6,444 bytesreferences/layered-video-backdrop-pager.mddoc8,772 bytesreferences/lazy-item-grouping-beats-arrangement-gap.mddoc8,349 bytesreferences/lazy-list-drag-reorder.mddoc8,159 bytesreferences/lazy-scroll-helper-kit.mddoc7,051 bytesreferences/nav-tab-registration-drift.mddoc8,809 bytesreferences/nowplaying-pager-no-feedback-loop.mddoc7,650 bytesreferences/progress-indicator-as-scrubber.mddoc6,186 bytesreferences/responsive-gate-size-not-platform.mddoc9,197 bytesreferences/scoped-composable-shadows-the-top-level-one.mddoc5,404 bytesreferences/screen-shell-content-split.mddoc7,322 bytesreferences/selection-mode-state-holder.mddoc8,175 bytesreferences/self-hiding-child-cannot-hide-its-slot.mddoc5,287 bytesreferences/settings-value-round-tripped-through-its-label.mddoc6,351 bytesreferences/stacked-bars-double-consume-window-insets.mddoc8,863 bytesreferences/story-reel-auto-pager.mddoc8,749 bytesreferences/swipe-action-list-row.mddoc7,854 bytesreferences/type-safe-nav-graph-organization.mddoc7,757 bytesreferences/variant-layout-math-stays-in-the-variant.mddoc5,932 bytesreferences/weight-fill-false-to-center-a-cluster.mddoc8,804 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubcompose-visuals-footguns
When your agent uses it
Compose look-and-feel traps: theme and colour tokens, artwork palettes, gradients and scrims, shimmer, glass and particle effects, animation, image loading, charts and stats displays (percent changes, shares, buckets). Use when a visual bands, pops, freezes or misleads.
What it loads into context
Frontmatter
70 tokensAlways available to the agent
SKILL.md
5,350 tokensWhen the skill is activated
Reference documents
66,736 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Theming, colour, gradients and scrims
- Effects, animation and images
- Charts and statistics displays
Files
SKILL.mdcore25,807 bytesSKILL.mdcore25,807 bytesSKILL.mdcore25,807 bytesSKILL.mdcore25,807 bytesSKILL.mdcore25,807 bytesSKILL.mdcore25,807 bytesreferences/ambient-tone-layer-behind-flat-pages.mddoc8,391 bytesreferences/angled-gradient-modifier.mddoc8,480 bytesreferences/animated-gradient-border-ring.mddoc8,095 bytesreferences/artwork-palette-theming.mddoc6,752 bytesreferences/artwork-seeded-dynamic-scheme.mddoc6,339 bytesreferences/chrome-drawn-outside-the-theme-scope.mddoc8,716 bytesreferences/compose-capture-to-share-image.mddoc9,017 bytesreferences/crossfade-container-sizes-to-the-visible-child.mddoc7,523 bytesreferences/delta-absent-not-infinite.mddoc6,684 bytesreferences/deterministic-title-placeholder-painter.mddoc7,843 bytesreferences/dont-pre-animate-a-self-animating-property.mddoc5,873 bytesreferences/dont-slice-one-circle-between-unrelated-measures.mddoc6,831 bytesreferences/draw-outside-bounds-particle-modifier.mddoc8,839 bytesreferences/equal-buckets-or-no-buckets.mddoc6,230 bytesreferences/fit-icon-glyphs-to-the-live-area.mddoc6,554 bytesreferences/flat-twin-shares-geometry-not-material.mddoc8,604 bytesreferences/force-dark-immersive-subtree.mddoc8,217 bytesreferences/gate-optional-effect-at-the-shared-primitive.mddoc9,090 bytesreferences/hoist-the-flag-not-the-animation.mddoc4,699 bytesreferences/image-fallback-url-retry-in-composition.mddoc7,805 bytesreferences/liquid-glass-backdrop.mddoc9,907 bytesreferences/material-symbols-icon-system.mddoc8,168 bytesreferences/mosaic-arrangements-must-be-hole-free.mddoc8,144 bytesreferences/overflow-tilted-browse-card.mddoc7,534 bytesreferences/palette-state-parks-on-loading.mddoc6,623 bytesreferences/partial-chart-must-say-so.mddoc6,878 bytesreferences/self-normalised-axes-need-a-second-shape.mddoc8,871 bytesreferences/semantic-color-tokens-compositionlocal.mddoc7,689 bytesreferences/shell-background-is-not-scheme-background.mddoc9,161 bytesreferences/shimmer-skeleton-loaders.mddoc7,017 bytesreferences/slide-transition-defaults-to-half-a-height.mddoc7,730 bytesreferences/smooth-scrim-gradient.mddoc7,019 bytesreferences/text-brush-shimmer-sweep.mddoc8,491 bytesreferences/touch-indication-bounds-and-alpha.mddoc8,527 bytesreferences/transparent-chip-selection-signals.mddoc8,614 bytesreferences/word-timed-karaoke-lyrics.mddoc9,637 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubdata-layer-footguns
When your agent uses it
Room/SQLite, DataStore and repository traps: migrations, NOT IN with NULLs, LIKE escaping, delete order, local-time bucketing, imports, caching, paging. Use before writing a query or migration, or when data comes back wrong.
What it loads into context
Frontmatter
60 tokensAlways available to the agent
SKILL.md
3,549 tokensWhen the skill is activated
Reference documents
42,764 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Databases and SQL
- Repositories, caching and paging
Files
SKILL.mdcore17,005 bytesSKILL.mdcore17,005 bytesSKILL.mdcore17,005 bytesreferences/bucket-local-time-in-code-not-in-sql.mddoc6,895 bytesreferences/bulk-json-import-progress.mddoc7,343 bytesreferences/cache-then-network.mddoc6,299 bytesreferences/cascading-delete-ordering.mddoc6,624 bytesreferences/clean-satellite-at-transition.mddoc5,050 bytesreferences/continuation-token-pagination-contract.mddoc7,356 bytesreferences/datastore-kmp-manager.mddoc7,911 bytesreferences/encoded-continuation-tokens-local-sort.mddoc8,593 bytesreferences/first-ever-not-first-in-window.mddoc6,884 bytesreferences/generic-paged-db-accumulator.mddoc6,451 bytesreferences/import-format-contract-design.mddoc8,704 bytesreferences/inclusive-period-boundaries-and-offset-reset.mddoc7,638 bytesreferences/like-wildcard-escaping-ids.mddoc5,486 bytesreferences/local-listening-analytics.mddoc8,323 bytesreferences/mirror-local-state-to-a-remote-account.mddoc8,322 bytesreferences/order-preserving-section-mapping.mddoc5,615 bytesreferences/remote-index-cached-as-rows-with-validator.mddoc7,498 bytesreferences/repository-flow-conventions.mddoc7,234 bytesreferences/room-kmp-setup.mddoc7,732 bytesreferences/room-migrations-at-scale.mddoc8,980 bytesreferences/room-rawquery-readonly-vacuum.mddoc5,092 bytesreferences/search-over-a-paged-list-queries-the-source.mddoc7,604 bytesreferences/sql-not-in-nullable-trap.mddoc5,023 bytesreferences/stored-timestamp-is-a-local-wall-clock.mddoc8,179 bytesreferences/ttl-keyed-json-cache-lenient-decode.mddoc6,543 bytesreferences/unbounded-for-shares-capped-for-lists.mddoc6,746 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubdesktop-and-build-footguns
When your agent uses it
Desktop JVM and build traps: JNA natives, bundling, memory, packaging, code signing, R8, deep links, Gradle and CI releases. Use when a desktop build fails packaged, signed, on another OS or arch, or in CI.
What it loads into context
Frontmatter
63 tokensAlways available to the agent
SKILL.md
3,155 tokensWhen the skill is activated
Reference documents
39,492 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Native code on the desktop JVM
- Packaging, signing, CI and build
Files
SKILL.mdcore15,395 bytesSKILL.mdcore15,395 bytesSKILL.mdcore15,395 bytesSKILL.mdcore15,395 bytesSKILL.mdcore15,395 bytesSKILL.mdcore15,395 bytesreferences/arm64-native-gap-audit.mddoc7,299 bytesreferences/buildkonfig-secrets-flavors.mddoc6,716 bytesreferences/bundled-native-soname-conflict.mddoc7,851 bytesreferences/ci-flaky-timing-luck.mddoc6,062 bytesreferences/compose-desktop-video-no-swingpanel.mddoc8,403 bytesreferences/config-fails-open-verify-artifact.mddoc8,196 bytesreferences/conveyor-desktop-packaging.mddoc8,005 bytesreferences/desktop-deep-link-plumbing.mddoc7,259 bytesreferences/desktop-system-media-integration.mddoc7,008 bytesreferences/embed-media-engine-desktop.mddoc8,850 bytesreferences/github-actions-multiplatform-release.mddoc6,521 bytesreferences/gradle-config-resolved-too-early.mddoc6,922 bytesreferences/jna-native-binding-traps.mddoc8,525 bytesreferences/jvm-desktop-memory-footprint.mddoc6,724 bytesreferences/macos-codesign-sidecar-strip.mddoc5,300 bytesreferences/macos-lsenvironment-path-pin.mddoc5,273 bytesreferences/merge-split-av-streams-desktop.mddoc8,021 bytesreferences/native-artifact-for-embedding.mddoc7,860 bytesreferences/r8-proguard-desktop-survival.mddoc7,887 bytesreferences/reproducible-native-bundling-two-tasks.mddoc6,498 bytesreferences/transitive-version-pinning.mddoc7,878 bytesreferences/upstream-lib-bug-workaround-template.mddoc6,530 bytesreferences/windows-msix-offline-installer.mddoc6,293 bytesreferences/windows-vm-detection-post-wmic.mddoc5,698 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubengineering-method-footguns
When your agent uses it
Debugging-method traps: run the discriminating experiment first, read build logs bottom-up, treat an empty actual as unwritten, audit shared handles before removing a feature, read commit history critically. Use when a fix is not converging.
What it loads into context
Frontmatter
58 tokensAlways available to the agent
SKILL.md
1,257 tokensWhen the skill is activated
Reference documents
14,880 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Engineering method
Files
SKILL.mdcore6,073 bytesSKILL.mdcore6,073 bytesSKILL.mdcore6,073 bytesSKILL.mdcore6,073 bytesreferences/a-stated-rule-needs-annotated-exceptions.mddoc5,390 bytesreferences/changelog-as-war-story.mddoc8,214 bytesreferences/commit-archaeology-red-flags.mddoc7,571 bytesreferences/noop-actual-not-platform-limit.mddoc7,606 bytesreferences/read-build-logs-bottom-up.mddoc6,932 bytesreferences/removing-a-feature-audit-shared-handles.mddoc5,034 bytesreferences/run-discriminating-experiment-first.mddoc6,883 bytesreferences/writing-agent-skill-house-style.mddoc6,967 bytesreferences/xml-to-compose-sequencing.mddoc8,038 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubfootgun-scan
When your agent uses it
Scan a Kotlin or Compose Multiplatform diff for known footgun shapes and open the matching trap to confirm each hit. Use before committing, when reviewing a Kotlin change, or to audit a codebase.
What it loads into context
Frontmatter
51 tokensAlways available to the agent
SKILL.md
506 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Run it
- Triage every hit
- When the scanner cannot run
Scripts executed separately
scripts/scan.py
Files
SKILL.mdcore2,070 bytesSKILL.mdcore2,070 bytesscripts/scan.pyruns29,108 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubkmp-architecture-footguns
When your agent uses it
Kotlin Multiplatform structure and language traps: module splits, expect/actual, Koin and ViewModel scoping, layers, version catalogs, erased overloads, Char and string-resource formatting limits. Use when shaping modules or DI, when a format specifier renders verbatim, or code misbehaves on one platform.
What it loads into context
Frontmatter
78 tokensAlways available to the agent
SKILL.md
3,618 tokensWhen the skill is activated
Reference documents
46,515 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Module structure, dependency injection and architecture
- Kotlin and multiplatform language traps and utilities
Files
SKILL.mdcore17,714 bytesSKILL.mdcore17,714 bytesSKILL.mdcore17,714 bytesSKILL.mdcore17,714 bytesreferences/bitmask-event-wrapper.mddoc8,592 bytesreferences/clean-arch-kmp-readiness.mddoc8,389 bytesreferences/combining-chars-break-char-literals.mddoc8,987 bytesreferences/empty-sentinel-instance.mddoc7,271 bytesreferences/expect-actual-composable-capability.mddoc8,444 bytesreferences/foss-vs-proprietary-module-pairs.mddoc7,570 bytesreferences/hilt-to-koin-migration.mddoc8,691 bytesreferences/identity-compare-immutable-setting.mddoc6,813 bytesreferences/jvmname-disambiguate-erased-overloads.mddoc6,471 bytesreferences/kmp-git-submodule-module-mapping.mddoc6,708 bytesreferences/kmp-gradle-settings-catalog.mddoc7,407 bytesreferences/kmp-html-entity-decoder.mddoc8,746 bytesreferences/kmp-module-split-for-packaging.mddoc7,960 bytesreferences/koin-viewmodel-scoping-traps.mddoc9,158 bytesreferences/kotlinx-datetime-helper-kit.mddoc8,773 bytesreferences/levenshtein-fuzzy-match-pure-kmp.mddoc7,569 bytesreferences/marker-interface-nested-enum-polymorphism.mddoc6,883 bytesreferences/model-entity-mapping-extension-layer.mddoc5,861 bytesreferences/no-use-case-layer-decision.mddoc8,156 bytesreferences/repository-resource-flow-pattern.mddoc7,926 bytesreferences/restricted-marker-is-not-an-opt-in.mddoc8,524 bytesreferences/script-aware-romanization-pipeline.mddoc10,883 bytesreferences/small-collection-utilities.mddoc7,344 bytesreferences/string-resource-format-limits.mddoc6,684 bytesreferences/two-vendors-one-package-kmp-api-skew.mddoc7,727 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubmedia-playback-footguns
When your agent uses it
Media player traps on Media3/ExoPlayer and desktop engines: crossfade, audio focus, fades, loudness, DSP, queues and shuffle, position restore, service lifecycle, group listening. Use when playback state, queue or audio levels go wrong.
What it loads into context
Frontmatter
63 tokensAlways available to the agent
SKILL.md
3,841 tokensWhen the skill is activated
Reference documents
54,695 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Players, crossfade and engine lifecycle
- Audio processing: focus, fades, loudness and DSP
- Queues, shuffle and position
- Shared listening sessions
Files
SKILL.mdcore18,480 bytesSKILL.mdcore18,480 bytesSKILL.mdcore18,480 bytesSKILL.mdcore18,480 bytesSKILL.mdcore18,480 bytesreferences/audio-fade-separate-gain-line.mddoc6,802 bytesreferences/audio-focus-multiplayer.mddoc6,099 bytesreferences/beatmatched-automix.mddoc7,427 bytesreferences/crossfade-dual-player.mddoc7,311 bytesreferences/crossfade-exclusion-heuristics.mddoc6,410 bytesreferences/custom-shuffle-order.mddoc6,704 bytesreferences/derive-seek-from-progress-flow.mddoc7,820 bytesreferences/dual-source-queue-sync.mddoc6,313 bytesreferences/endless-queue-management.mddoc5,780 bytesreferences/fgs-state-ended-trap.mddoc7,283 bytesreferences/filter-chain-two-owners-one-writer.mddoc6,734 bytesreferences/follower-item-built-from-shared-payload.mddoc7,271 bytesreferences/follower-transport-stays-local.mddoc7,180 bytesreferences/forwarding-player-hot-swap.mddoc8,067 bytesreferences/guard-on-every-trigger-path.mddoc5,274 bytesreferences/intent-flag-not-observed-state.mddoc8,191 bytesreferences/joiner-catches-up-by-asking.mddoc7,160 bytesreferences/media3-custom-audio-processor.mddoc7,481 bytesreferences/one-setting-two-backends.mddoc7,610 bytesreferences/optional-engine-feature-degrade-in-tiers.mddoc7,329 bytesreferences/per-track-loudness-normalization.mddoc7,820 bytesreferences/play-intent-decided-before-load.mddoc7,074 bytesreferences/playback-position-persist-restore.mddoc8,353 bytesreferences/polymorphic-load-media-entry-point.mddoc6,475 bytesreferences/position-based-group-sync.mddoc7,329 bytesreferences/queue-index-vs-shuffle-space.mddoc7,360 bytesreferences/queue-rebuild-state-machine.mddoc5,947 bytesreferences/readiness-barrier-needs-every-answer.mddoc7,543 bytesreferences/realtime-biquad-dsp.mddoc8,082 bytesreferences/runtime-override-not-preference-write.mddoc7,252 bytesreferences/sampled-supplier-vs-per-handle-reapply.mddoc6,393 bytesreferences/server-default-overrides-client-intent.mddoc7,599 bytesreferences/sync-room-bridge-echo-guard.mddoc8,136 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubremote-api-footguns
When your agent uses it
Remote API traps in Kotlin Multiplatform: Ktor clients, defensive parsing, Resource envelopes, OK responses that dropped your data, auth callbacks, retry backoff, downloads, websockets, clock sync. Use when calls succeed but data never lands.
What it loads into context
Frontmatter
60 tokensAlways available to the agent
SKILL.md
2,136 tokensWhen the skill is activated
Reference documents
30,713 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Clients, parsing and response handling
- Auth, retries and account state
- Realtime sessions and wire protocols
Files
SKILL.mdcore10,385 bytesSKILL.mdcore10,385 bytesSKILL.mdcore10,385 bytesSKILL.mdcore10,385 bytesSKILL.mdcore10,385 bytesSKILL.mdcore10,385 bytesreferences/api-ok-but-ignored.mddoc6,317 bytesreferences/borrowed-wire-protocol-discipline.mddoc7,010 bytesreferences/curl-logger-ktor-plugin.mddoc7,897 bytesreferences/enum-normalize-over-legacy-data.mddoc8,537 bytesreferences/ktor-kmp-client-architecture.mddoc8,530 bytesreferences/login-state-fans-out-to-settings.mddoc7,289 bytesreferences/monotonic-clock-offset-sync.mddoc7,782 bytesreferences/nested-flag-settings-auto-disable.mddoc7,793 bytesreferences/oauth-callback-not-through-nav.mddoc6,533 bytesreferences/parallel-chunked-download.mddoc8,383 bytesreferences/protobuf-without-codegen-kmp.mddoc7,302 bytesreferences/publish-a-snapshot-on-taking-the-role.mddoc7,804 bytesreferences/response-to-domain-flow.mddoc9,830 bytesreferences/retry-needs-backoff-and-cap.mddoc8,667 bytesreferences/structural-defensive-parsing.mddoc9,520 bytesreferences/unknown-not-a-valid-score.mddoc8,512 bytesreferences/websocket-session-handshake-lifecycle.mddoc7,910 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubstate-and-background-footguns
When your agent uses it
Reactive state and background-work traps: StateFlow conflation, flatMapLatest, job lifecycles, ViewModel bases, WorkManager, backups, crash reporting, logging, Glance widgets. Use when state lags or flips, or work runs twice or never.
What it loads into context
Frontmatter
65 tokensAlways available to the agent
SKILL.md
3,204 tokensWhen the skill is activated
Reference documents
36,832 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Reactive state: Flow, StateFlow and ViewModel
- Background work, services and platform runtime
Files
SKILL.mdcore15,504 bytesSKILL.mdcore15,504 bytesSKILL.mdcore15,504 bytesSKILL.mdcore15,504 bytesreferences/app-backup-to-zip-mediastore.mddoc7,145 bytesreferences/combine-two-flags-to-gate.mddoc6,165 bytesreferences/compose-desktop-runtime-hardening.mddoc7,834 bytesreferences/compose-multiplatform-viewmodel-base.mddoc8,551 bytesreferences/datastore-driven-workmanager.mddoc6,287 bytesreferences/derive-the-flag-dont-store-and-correct-it.mddoc6,612 bytesreferences/desktop-single-instance-before-di.mddoc6,785 bytesreferences/distinct-by-key-reset-cancel-per-item.mddoc6,821 bytesreferences/dual-mode-persist-blocking-or-async.mddoc6,405 bytesreferences/flatmaplatest-resubscribe-composite-key.mddoc8,492 bytesreferences/glance-layout-vocabulary.mddoc8,189 bytesreferences/glance-widget-over-existing-state.mddoc8,900 bytesreferences/kmp-logger-facade.mddoc5,916 bytesreferences/named-job-lifecycle-discipline.mddoc6,824 bytesreferences/on-demand-dictionary-asset.mddoc7,640 bytesreferences/one-snapshot-per-period-not-many-flows.mddoc6,075 bytesreferences/pending-state-makes-waiting-legible.mddoc7,459 bytesreferences/periodic-worker-dedup.mddoc5,893 bytesreferences/preset-identity-read-back-from-value.mddoc6,342 bytesreferences/readonly-stateflow-cold-to-hot.mddoc6,144 bytesreferences/remoteviews-bitmap-budget.mddoc8,047 bytesreferences/stateflow-conflation-inverts-state.mddoc6,114 bytesreferences/swappable-crash-reporting-and-dialog.mddoc7,718 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubwebview-footguns
When your agent uses it
WebView traps across device classes: startup that freezes low-RAM phones, a killed renderer that takes the app with it, devices with no usable provider, AndroidView lifecycle and cookies. Use when a web screen freezes, vanishes or crashes only on some devices.
What it loads into context
Frontmatter
63 tokensAlways available to the agent
SKILL.md
892 tokensWhen the skill is activated
Reference documents
5,744 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Low-RAM phones: startup and renderer death
- Hosting a WebView in Compose
Files
SKILL.mdcore4,118 bytesSKILL.mdcore4,118 bytesreferences/webview-in-androidview-lifecycle.mddoc8,066 bytesreferences/webview-renderer-gone-takes-the-app.mddoc7,230 bytesreferences/webview-startup-off-the-main-thread.mddoc9,125 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubSkills included
- compose-screens-footguns
- compose-visuals-footguns
- data-layer-footguns
- desktop-and-build-footguns
- engineering-method-footguns
- footgun-scan
- kmp-architecture-footguns
- media-playback-footguns
- remote-api-footguns
- state-and-background-footguns
- webview-footguns
Repository facts
- License
- GPL-3.0
- Created
- Aug 20, 2026
- Last pushed
- Oct 29, 2026
- Forks
- 9
- Open issues
- 1
- Project activity
- Active
Rank over the last 12 weeks
Now #526 · best #526 · up 164 in 30 days
- #557 on Nov 1
- #555 on Nov 2
- #544 on Nov 3
- #542 on Nov 4
- #532 on Nov 5
- #526 since Nov 6
59 earlier periods
- #908 on Aug 16
- #880 on Aug 29
- #884 on Aug 30
- #931 on Aug 31
- #933 on Sep 2
- #898 on Sep 4
- #937 on Sep 7
- #947 on Sep 8
- #930 on Sep 9
- #924 on Sep 10
- #887 on Sep 11
- #883 on Sep 12
- #880 on Sep 13
- #913 on Sep 14
- #896 on Sep 15
- #903 on Sep 16
- #900 on Sep 17
- #878 on Sep 18
- #852 on Sep 19
- #856 on Sep 20
- #862 on Sep 21
- #870 on Sep 22
- #846 on Sep 23
- #800 on Sep 24
- #757 on Sep 25
- #756 on Sep 26
- #765 on Sep 27
- #779 on Sep 28
- #796 on Sep 29
- #770 on Sep 30
- #698 on Oct 1
- #708 on Oct 2
- #677 on Oct 3
- #704 on Oct 4
- #701 on Oct 5
- #693 on Oct 6
- #690 on Oct 7
- #707 on Oct 8
- #669 on Oct 9
- #651 on Oct 10
- #633 on Oct 11
- #632 on Oct 12
- #623 on Oct 13
- #615 on Oct 14
- #598 on Oct 15
- #586 on Oct 16
- #566 on Oct 17
- #564 on Oct 18
- #576 on Oct 19
- #577 on Oct 20
- #574 on Oct 21
- #557 on Oct 22
- #545 on Oct 23
- #535 on Oct 24
- #590 on Oct 25
- #576 on Oct 28
- #572 on Oct 29
- #566 on Oct 30
- #563 on Oct 31
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 34 notes
skills/compose-screens-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/compose-screens-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/compose-visuals-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/compose-visuals-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/compose-visuals-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/compose-visuals-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/compose-visuals-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/data-layer-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/data-layer-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/desktop-and-build-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/desktop-and-build-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/desktop-and-build-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/desktop-and-build-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/desktop-and-build-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/engineering-method-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/engineering-method-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/engineering-method-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/footgun-scan/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kmp-architecture-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/kmp-architecture-footguns/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 2 dangerous shell commandsin 2 files: data-layer-footguns/references/room-migrations-at-scale.md:134 desktop-and-build-footguns/references/macos-lsenvironment-path-pin.md:79
- 34 network referencesin 7 files: remote-api-footguns/references/curl-logger-ktor-plugin.md:1 .claude-plugin/plugin.json:5 data-layer-footguns/references/remote-index-cached-as-rows-with-validator.md:105 and 4 more
- No hidden or obfuscated text
- No instruction overrides
- 1 executable scriptin 1 file: footgun-scan/scripts/scan.py:1
- 3 references to secretsin 1 file: desktop-and-build-footguns/references/buildkonfig-secrets-flavors.md:40
- No requests to vote in Hot
Show all 40 signals by file
.claude-plugin/marketplace.json
.claude-plugin/plugin.json
- Network accessline 5
"author": { "name": "maxrave-dev", "url": "https://github.com/maxrave-dev" - Network accessline 6
"name": "maxrave-dev", "url": "https://github.com/maxrave-dev" }, - Network accessline 7
"url": "https://github.com/maxrave-dev" - Network accessline 8
}, "homepage": "https://github.com/maxrave-dev/kotlin-footguns", "repository": "https://github.com/maxrave-dev/kotlin-footguns", - Network accessline 9
"homepage": "https://github.com/maxrave-dev/kotlin-footguns", - Network accessline 10
"repository": "https://github.com/maxrave-dev/kotlin-footguns",
skills/compose-visuals-footguns/references/material-symbols-icon-system.md
- Network accessline 41
curl -sfL --compressed \ - Network accessline 42
"https://fonts.gstatic.com/render/v1/Material+Symbols+Rounded/24dp/<symbol_name>.kt?var=opsz,wght,FILL,GRAD,ROND@24,400,1,0,50" \ - Network accessline 108
**The response is gzip-encoded even when the request asks for identity.** Use `curl --compressed`, or
skills/data-layer-footguns/references/remote-index-cached-as-rows-with-validator.md
- Network accessline 105
curl -sIL "$INDEX_URL" | grep -iE 'content-length|etag|last-modified' # uncompressed: the true size - Network accessline 109
# `-L` on the measuring call is load-bearing: without it a redirecting index URL prints `302 0`, # which reads exactly like a pass, because a redirect body is empty too. etag=$(curl -sIL --compressed "$INDEX_URL" | grep -i '^etag:' | cut -d - Network accessline 110
# which reads exactly like a pass, because a redirect body is empty too. etag=$(curl -sIL --compressed "$INDEX_URL" | grep -i '^etag:' | cut -d' ' -f2- | tr -d '\r') curl -sL --compressed -o /dev/null -w '%{http_code} %{size_download}\n' -H - Network accessline 111
etag=$(curl -sIL --compressed "$INDEX_URL" | grep -i '^etag:' | cut -d' ' -f2- | tr -d '\r') - Network accessline 112
curl -sL --compressed -o /dev/null -w '%{http_code} %{size_download}\n' -H "If-None-Match: $etag" "$INDEX_URL" - Network accessline 113
curl -sL --compressed -o /dev/null -w '%{http_code} %{size_download}\n' -H 'If-None-Match: "x"' "$INDEX_URL"
skills/data-layer-footguns/references/room-migrations-at-scale.md
- Dangerous shell operationline 134
DB=/path/to/scratchpad/room-migrations-scratch.db; rm -f "$DB"
skills/desktop-and-build-footguns/references/buildkonfig-secrets-flavors.md
skills/desktop-and-build-footguns/references/macos-lsenvironment-path-pin.md
- Dangerous shell operationline 79
grep -rn "ProcessBuilder\|Runtime.getRuntime().exec\|exec(" \
skills/footgun-scan/scripts/scan.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/remote-api-footguns/SKILL.md
- Network accessline 24
- [`ktor-kmp-client-architecture`](references/ktor-kmp-client-architecture.md) — A multiplatform HTTP stack where one expect/actual hands back the engine and each integration builds its own client from it — an instrumented client for API ca - Network accessline 25
- [`curl-logger-ktor-plugin`](references/curl-logger-ktor-plugin.md) — A client plugin that logs every outgoing request as one paste-ready curl command — POSIX single-quoting so a body full of quotes, dollars or newlines survives the shell,
skills/remote-api-footguns/references/curl-logger-ktor-plugin.md
- Network accessline 1
--- name: curl-logger-ktor-plugin description: A client plugin that logs every outgoing request as one paste-ready curl command — POSIX single-quoting so a body full of quotes, dollars or newlines survives the shell, the whole command in a - Network accessline 2
name: curl-logger-ktor-plugin description: A client plugin that logs every outgoing request as one paste-ready curl command — POSIX single-quoting so a body full of quotes, dollars or newlines survives the shell, the whole command in a sing - Network accessline 3
description: A client plugin that logs every outgoing request as one paste-ready curl command — POSIX single-quoting so a body full of quotes, dollars or newlines survives the shell, the whole command in a single log call, a redaction list, - Network accessline 17
/** Header names (case-insensitive) shown as `<redacted>`. Empty by default. */ var redactHeaders: Set<String> = emptySet() /** Drop `Accept-Encoding` and append `--compressed` so curl decodes the response itself. */ - Network accessline 18
var redactHeaders: Set<String> = emptySet() /** Drop `Accept-Encoding` and append `--compressed` so curl decodes the response itself. */ var handleCompression: Boolean = true - Network accessline 19
/** Drop `Accept-Encoding` and append `--compressed` so curl decodes the response itself. */ - Network accessline 46
val parts = mutableListOf<String>() parts += "curl -X ${request.method.value}" - Network accessline 47
parts += "curl -X ${request.method.value}" - Network accessline 50
request.headers.entries().forEach { (name, values) -> val lower = name.lowercase() if (lower == contentLengthName) return@forEach // let curl recompute it - Network accessline 51
val lower = name.lowercase() if (lower == contentLengthName) return@forEach // let curl recompute it if (handleCompression && lower == acceptEncodingName) return@forEach - Network accessline 52
if (lower == contentLengthName) return@forEach // let curl recompute it - Network accessline 106
**Drop the content-length header, and mean it.** curl computes its own from `--data-raw`, so a
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 31 facts
- Network access in code of documentationcompose-visuals-footguns/references/material-symbols-icon-system.md:41Low confidence
- Network access in code of documentationcompose-visuals-footguns/references/material-symbols-icon-system.md:42Low confidence
- Network access in prose of documentationcompose-visuals-footguns/references/material-symbols-icon-system.md:108Low confidence
- Network access in code of documentationdata-layer-footguns/references/remote-index-cached-as-rows-with-validator.md:105Low confidence
- Network access in code of documentationdata-layer-footguns/references/remote-index-cached-as-rows-with-validator.md:109Low confidence
- Network access in code of documentationdata-layer-footguns/references/remote-index-cached-as-rows-with-validator.md:110Low confidence
- Network access in code of documentationdata-layer-footguns/references/remote-index-cached-as-rows-with-validator.md:111Low confidence
- Network access in code of documentationdata-layer-footguns/references/remote-index-cached-as-rows-with-validator.md:112Low confidence
- Network access in code of documentationdata-layer-footguns/references/remote-index-cached-as-rows-with-validator.md:113Low confidence
- Dangerous shell operation in code of documentationdata-layer-footguns/references/room-migrations-at-scale.md:134Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuedesktop-and-build-footguns/references/buildkonfig-secrets-flavors.md:40Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuedesktop-and-build-footguns/references/buildkonfig-secrets-flavors.md:63Low confidence
- Access to secrets in code of documentationdesktop-and-build-footguns/references/buildkonfig-secrets-flavors.md:129Low confidence
- Dangerous shell operation in code of documentationdesktop-and-build-footguns/references/macos-lsenvironment-path-pin.md:79Low confidence
- Executable script in code of a file that runsfootgun-scan/scripts/scan.py:1High confidence
- Network access in prose of the SKILL.mdremote-api-footguns/SKILL.md:24Low confidence
- Network access in prose of the SKILL.mdremote-api-footguns/SKILL.md:25Low confidence
- Network access in prose of documentationremote-api-footguns/references/curl-logger-ktor-plugin.md:1Low confidence
- Network access in prose of documentationremote-api-footguns/references/curl-logger-ktor-plugin.md:2Low confidence
- Network access in prose of documentationremote-api-footguns/references/curl-logger-ktor-plugin.md:3Low confidence
- Network access in code of documentationremote-api-footguns/references/curl-logger-ktor-plugin.md:17Low confidence
- Network access in code of documentationremote-api-footguns/references/curl-logger-ktor-plugin.md:18Low confidence
- Network access in code of documentationremote-api-footguns/references/curl-logger-ktor-plugin.md:19Low confidence
- Network access in code of documentationremote-api-footguns/references/curl-logger-ktor-plugin.md:46Low confidence
- Network access in code of documentationremote-api-footguns/references/curl-logger-ktor-plugin.md:47Low confidence
- Network access in code of documentationremote-api-footguns/references/curl-logger-ktor-plugin.md:50Low confidence
- Network access in code of documentationremote-api-footguns/references/curl-logger-ktor-plugin.md:51Low confidence
- Network access in code of documentationremote-api-footguns/references/curl-logger-ktor-plugin.md:52Low confidence
- Network access in prose of documentationremote-api-footguns/references/curl-logger-ktor-plugin.md:106Low confidence
- Network access in code of documentationstate-and-background-footguns/references/periodic-worker-dedup.md:15Low confidence
- Network access in code of documentationstate-and-background-footguns/references/periodic-worker-dedup.md:16Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/compose-screens-footguns/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/compose-screens-footguns/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/compose-screens-footguns/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/compose-screens-footguns/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/compose-screens-footguns/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/maxrave-dev-kotlin-footguns/)