Audits Hone for performance issues. Use when optimizing database queries, analyzing Rust async code, reviewing React rendering, or investigating slow operations.
transactions(account_id), transactions(date), subscriptions(merchant)// BAD - N+1 query pattern
for account in accounts {
let txns = get_transactions_for_account(account.id)?; // Query per account!
}
// GOOD - Single query with JOIN or IN clause
let txns = get_all_transactions_for_accounts(&account_ids)?;
std::thread::sleep in async handlersspawn_blocking for heavy queries// BAD - blocks the async runtime
async fn handler() {
std::thread::sleep(Duration::from_secs(1)); // Blocks!
}
// GOOD - use tokio's async sleep
async fn handler() {
tokio::time::sleep(Duration::from_secs(1)).await;
}
.clone() in hot paths when references work&str instead of String for function parameters when possibleVec::with_capacity() when size is knownuseMemo if expensive// BAD - recalculates on every render
const total = transactions.reduce((sum, t) => sum + t.amount, 0);
// GOOD - only recalculates when transactions change
const total = useMemo(
() => transactions.reduce((sum, t) => sum + t.amount, 0),
[transactions]
);
# Check for .clone() usage
rg "\.clone\(\)" crates/
# Check for blocking sleep
rg "std::thread::sleep" crates/
# Check bundle size
cd ui && npm run build && ls -la dist/assets/
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer