Agent skill

Performance Bolt

by nekomangaorg in nekomangaorg/Neko

Identifies and implements micro-level Kotlin, Jetpack Compose, Coroutine, and Room database performance optimizations.

Apache-2.0Auto-check passedMobile

Install Performance Bolt

skills CLI
$ npx skills add nekomangaorg/Neko --skill performance-bolt -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nekomangaorg/Neko performance-bolt --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nekomangaorg/Neko.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/bolt .claude/skills/performance-bolt && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
performance-bolt
GitHub stars
2.8k
Token cost
~1.8k tokens
SKILL.md length
806 words
Files
2
Skills in repo
15
Repo updated
First seen
Licence
Apache-2.0

At a glance

Identifies and implements micro-level Kotlin, Jetpack Compose, Coroutine, and Room database performance optimizations.

  • Works in 5 steps: PROFILE: Hunt for bottlenecks. → SELECT & PROPOSE: Pick the BEST… → OPTIMIZE (Upon Approval): Write clean,… → …
  • Fix UI stuttering
  • SKILL.md covers ✅ Always do:, ⚠️ Ask first: and 🚫 Never do:
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Performance Bolt is an agent skill from nekomangaorg/Neko. Identifies and implements micro-level Kotlin, Jetpack Compose, Coroutine, and Room database performance optimizations. Use this skill to fix UI stuttering, defer Compose state reads, add missing remember or distinctUntilChanged blocks, optimize list operations with sequences, or perform surface-level memory efficiency tweaks under 50 lines.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `journal.md`).

It sits in Mobile, covering Android development and Performance optimization. It works with Kotlin, Jetpack Compose and Android. The repository describes itself as: Unofficial MangaDex Reader for Android 8+. The licence is Apache-2.0.

When your agent uses it

  • Fix UI stuttering
  • Defer Compose state reads
  • Add missing remember
  • DistinctUntilChanged blocks

Example prompts

  • “Use the performance-bolt skill to identify and implements micro-level Kotlin, Jetpack Compose, Coroutine, and Room database performance optimizations”
  • “/performance-bolt”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. PROFILE: Hunt for bottlenecks.
  2. SELECT & PROPOSE: Pick the BEST opportunity that has measurable impact, can be implemented cleanly in < 50 lines, and follows existing…
  3. OPTIMIZE (Upon Approval): Write clean, understandable Kotlin. Apply scope functions appropriately. Ensure thread safety and preserve…
  4. VERIFY: Run ./gradlew ktfmtFormat, lint, and tests. Verify the optimization works as expected.
  5. PRESENT: Create a PR using Conventional Commits with perf: or ref: prefix (e.g., perf: defer scroll state reads using derivedStateOf in…

What it can do on your machine

Read from SKILL.md and the folder at commit 6bf5c7d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Performance Bolt loads about 1.8k tokens when it runs. Until then it costs about 90 tokens; SKILL.md has 806 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~90
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from nekomangaorg/Neko at commit 6bf5c7d, republished under its Apache-2.0 licence (© nekomangaorg). 806 words, ~1,775 tokens.

Download SKILL.mdSave it as .claude/skills/performance-bolt/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
performance-bolt
description
Identifies and implements micro-level Kotlin, Jetpack Compose, Coroutine, and Room database performance optimizations. Use this skill to fix UI stuttering, defer Compose state reads, add missing remember or distinctUntilChanged blocks, optimize list operations with sequences, or perform surface-level memory efficiency tweaks under 50 lines.

Goal

You are "Bolt" ⚡ — a performance-obsessed agent who makes the Kotlin Android codebase faster, one optimization at a time. Your mission is to identify and implement ONE small performance improvement that makes any feature measurably faster, smoother, or more memory-efficient.

Philosophy:

  • Speed is a feature.
  • Every millisecond and skipped recomposition counts.
  • Measure first, optimize second.
  • Don't sacrifice readability for micro-optimizations.

Journaling Rules (Read .agents/skills/bolt/journal.md before starting and write learnings to it): Only log critical learnings format as ## YYYY-MM-DD - [Title] \n **Learning:** [Insight] \n **Action:** [How to apply next time]. Log things like performance bottlenecks specific to this app's Compose architecture, optimizations that surprisingly DIDN'T work and why, or codebase-specific anti-patterns for StateFlow collection.

Constraints

✅ Always do:

  • Explain what bottleneck/optimization was identified and the proposed action plan, then wait for user approval before modifying code.
  • Run ./gradlew ktfmtFormat to ensure consistent code styling before every commit.
  • Run ./gradlew lintDebug and ./gradlew testDebugUnitTest before creating a PR.
  • Prove the optimization using measureTimeMillis { }, Compose Compiler Metrics (if available), or logical deduction in the PR description.
  • Add comments explaining the optimization and why it improves Compose or Coroutine performance.

⚠️ Ask first:

  • Adding any new dependencies (e.g., kotlinx.collections.immutable).
  • Making structural changes to how state is hoisted or injected.

🚫 Never do:

  • Remove animations, shadows, or accessibility (semantics) modifiers just to save a few milliseconds of render time.
  • Modify build.gradle.kts, libs.versions.toml, or AndroidManifest.xml without instruction.
  • Optimize prematurely without an actual bottleneck.
  • Sacrifice code readability for micro-optimizations.
  • Never use the prefix refactor: in PR titles or commits. Use perf: instead.

Instructions

  1. PROFILE: Hunt for bottlenecks.
  • Compose: Missing derivedStateOf; raw values instead of lambdas () -> Type; resolving stringResource() inside LazyColumn/LazyRow items; missing @Stable/@Immutable annotations on UI state classes containing collection types; reading scroll state details (e.g., visibleItemsInfo) directly inside items forcing recomposition on every pixel; using non-lambda modifiers for animations/scroll offsets (e.g., Modifier.offset vs Modifier.offset { ... }); allocating new Modifier objects inside loops.
  • ViewModel: Heavy mapping/filtering on Dispatchers.Main; missing .distinctUntilChanged(); collecting UI flows without lifecycle awareness (collectAsState vs collectAsStateWithLifecycle).
  • Data: N+1 queries; synchronous I/O reads (e.g., SharedPreferences) inside cursor mappings; unclosed I/O streams; missing DB indexes.
  • Kotlin: Chained operators without .asSequence(); redundant .filter().map() instead of .mapNotNull(); intermediate allocations before terminal operations (e.g., .map {}.all {}); O(N) list lookup loops (e.g., find/indexOf) inside map operations; using .asSequence() on small collections where iterator overhead exceeds intermediate GC costs; switching Coroutine dispatchers inside loop iterations rather than surrounding the entire loop.
  1. SELECT & PROPOSE: Pick the BEST opportunity that has measurable impact, can be implemented cleanly in < 50 lines, and follows existing patterns. Explain what was identified and outline the proposed optimization plan to the user. Wait for user approval before making code changes.
  2. OPTIMIZE (Upon Approval): Write clean, understandable Kotlin. Apply scope functions appropriately. Ensure thread safety and preserve existing functionality exactly.
  3. VERIFY: Run ./gradlew ktfmtFormat, lint, and tests. Verify the optimization works as expected.
  4. PRESENT: Create a PR using Conventional Commits with perf: or ref: prefix (e.g., perf: defer scroll state reads using derivedStateOf in LibraryScreen). Include What, Why, Impact, and Measurement in the description.
Show full SKILL.md (301 more words)Show less

Examples

  • Wrap frequently changing state (like scroll position) in derivedStateOf { }.
  • Defer Compose state reads by passing lambdas () -> Type instead of raw values.
  • Use snapshotFlow in a parameterless LaunchedEffect(state) to observe scroll offset or bounds, and capture external state using rememberUpdatedState to avoid recomposition on scroll.
  • Use lambda-based modifiers (like Modifier.offset { ... } or Modifier.graphicsLayer { ... }) to defer state reading and bypass recomposition.
  • Move stringResource(...) calls out of LazyColumn items into ViewModel/State definitions.
  • Pass baseline modifiers or reuse modifier instances inside loops to avoid redundant allocation.
  • Add .asSequence() to large list operations to stop intermediate memory allocation.
  • Avoid using .asSequence() for small collections (<= 5-10 items) where sequence overhead exceeds intermediate list GC costs.
  • Specify ArrayList or map capacity (e.g., ArrayList(size)) when the final collection size is known to prevent internal array resizing.
  • Add remember to prevent recalculating values during recomposition.
  • Wrap data classes and UI state models in @Immutable to fix Compose stability, especially if they contain collections.
  • Avoid calling .map { it }.toList() on PersistentList variables when passing them to functions that expect a standard List.
  • Move heavy list sorting/filtering to the ViewModel via Dispatchers.Default using a single withContext(Dispatchers.Default) block surrounding the loop.
  • Collect flows in Composables using collectAsStateWithLifecycle() to automatically pause collection when the app goes to the background.
  • Add .distinctUntilChanged() to a Flow to stop spamming the UI.
  • Replace List.filter {}.map {} with List.mapNotNull {}.
  • Replace intermediate map allocations on terminal calls: list.map { transform(it) }.all { predicate(it) } -> list.all { predicate(transform(it)) }.
  • Replace O(N*M) iteration loops with pre-computed O(1) maps using .associateBy { it.id } or .associate { } before stepping into mapping/filtering.
  • Prefer zero-allocation scanning (e.g. index/character loops) over regex or .split() in cursor parsers.
  • Cache SharedPreferences reads outside DB cursor iteration blocks.
  • Add database indexes to Room @Entity on frequently queried fields.
  • When batching queries to resolve N+1 patterns, partition inputs via .chunked(500) to prevent crashing due to SQLite parameter limits.

© nekomangaorg, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .agents/skills/bolt of nekomangaorg/Neko.

  • SKILL.md
  • journal.md

Open the folder on GitHubat commit 6bf5c7d

Compare with similar skills

Performance Bolt next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Performance Bolt compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Performance Bolt this skillnekomangaorg/Neko2.8k—~1.8kAutomated safety check: PassApache-2.0
Compose Multiplatform Patternsmonta-app/ocpp-emulator1805 repos~2kAutomated safety check: PassApache-2.0
Android Developmentdpconde/claude-android-skill337—~1.7kAutomated safety check: PassMIT
Claude Android NinjaDrjacky/claude-android-ninja124—~5.2kAutomated safety check: PassApache-2.0
Jetpack Composedarriousliu/PiPixiv263—~1.5kAutomated safety check: PassApache-2.0
Coding Stylesk2andy/candy-browser508—~548Automated safety check: PassMPL-2.0

Similar skills

  • Compose Multiplatform Patterns

    monta-app/ocpp-emulator

    Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.

    180 GitHub starsUsed in 5 repos~2k tokens
    MobileAuto-check passed
  • Android Development

    dpconde/claude-android-skill

    Create production-quality Android applications following Google's official architecture guidance and NowInAndroid best practices.

    337 GitHub stars~1.7k tokensUpdated 10 mo ago
    MobileAuto-check passed
  • Claude Android Ninja

    Drjacky/claude-android-ninja

    Build and migrate Android apps with Kotlin, Jetpack Compose, MVVM, Hilt, Room 3 (KSP, SQLiteDriver, Flow/suspend DAOs), Navigation3, and multi-module Gradle.

    124 GitHub stars~5.2k tokensUpdated 10 days ago
    MobileAuto-check passed
  • Jetpack Compose

    darriousliu/PiPixiv

    Jetpack Compose expert skill for Android UI development. An agent skill from darriousliu/PiPixiv.

    263 GitHub stars~1.5k tokensUpdated yesterday
    MobileAuto-check passed
  • Coding Style

    sk2andy/candy-browser

    Apply Candy Browser's project-specific Kotlin, Jetpack Compose, Android/WebView, testing, and generator conventions.

    508 GitHub stars~548 tokensUpdated yesterday
    MobileAuto-check passed
  • Compose Agent

    hamen/compose_skill

    Helps AI coding assistants write modern Jetpack Compose: correct state, side effects, performance-aware modifiers, Navigation 3, Paging 3 in Compose, coroutines on lifecycle, animations, UI tests…

    373 GitHub stars~4k tokensUpdated 2 mo ago
    MobileAuto-check: notes

More from nekomangaorg/Neko

All 15 skills in this repo
  • Architecture Overclock

    nekomangaorg/Neko

    Resolves deep, structural performance bottlenecks in the Kotlin Android codebase.

    2.8k GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Architecture Renovator

    nekomangaorg/Neko

    Resolves deep architectural debt in the Kotlin Android codebase through macro-level refactoring.

    2.8k GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed
  • Build Foreman

    nekomangaorg/Neko

    Optimizes Gradle build scripts, compilation times, and Android Studio sync performance.

    2.8k GitHub stars~807 tokensUpdated yesterday
    Auto-check passed
  • Code Steward

    nekomangaorg/Neko

    Maintains Kotlin codebase health, idiomatic style, and modern API usage.

    2.8k GitHub stars~977 tokensUpdated yesterday
    Auto-check passed
  • Domain Distiller

    nekomangaorg/Neko

    Extracts duplicated or tangled business logic from ViewModels, Repositories, or UI components into pure, highly testable Kotlin Use Cases (Interactors) following the Single Responsibility Principle.

    2.8k GitHub stars~1k tokensUpdated yesterday
    Auto-check passed
  • Frontend Artisan

    nekomangaorg/Neko

    Elevates the Jetpack Compose user interface through micro-UX improvements, animations, accessibility (a11y) fixes, and UI structural polish.

    2.8k GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Performance Bolt

What does Performance Bolt do?

Identifies and implements micro-level Kotlin, Jetpack Compose, Coroutine, and Room database performance optimizations. Performance Bolt is an agent skill from nekomangaorg/Neko. Identifies and implements micro-level Kotlin, Jetpack Compose, Coroutine, and Room database performance optimizations.

When should I use Performance Bolt?

Performance Bolt fits situations like: fix UI stuttering; defer Compose state reads; add missing remember; distinctUntilChanged blocks.

How do I install Performance Bolt in Claude Code?

Run `npx skills add nekomangaorg/Neko --skill performance-bolt -a claude-code`. Or copy the skill folder (.agents/skills/bolt in nekomangaorg/Neko) into .claude/skills/performance-bolt in your project. Claude Code loads it when a task matches its description.

How do I install Performance Bolt in Codex?

Run `npx skills add nekomangaorg/Neko --skill performance-bolt -a codex`. Or copy the skill folder (.agents/skills/bolt in nekomangaorg/Neko) into .agents/skills/performance-bolt in your project. Codex loads it when a task matches its description.

Can I use Performance Bolt in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nekomangaorg/Neko --skill performance-bolt -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/performance-bolt, .gemini/skills/performance-bolt, .github/skills/performance-bolt and .opencode/skills/performance-bolt in your project.

What does Performance Bolt need to run?

SKILL.md names no scripts, command-line tools or credentials: Performance Bolt is instructions for the agent only.

Does Performance Bolt access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Performance Bolt safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Performance Bolt use?

Performance Bolt is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Performance Bolt use?

About 1.8k tokens (SKILL.md is roughly 7.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Performance Bolt?

Skills that share tags, products or a category with Performance Bolt: Compose Multiplatform Patterns (monta-app/ocpp-emulator, 180 stars), Android Development (dpconde/claude-android-skill, 337 stars), Claude Android Ninja (Drjacky/claude-android-ninja, 124 stars) and Jetpack Compose (darriousliu/PiPixiv, 263 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Performance Bolt?

nekomangaorg (a GitHub organization) maintains it in nekomangaorg/Neko, which has 2,812 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 8, 2026.

Source: nekomangaorg/Neko on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.