Agent Skills: Hex Performance Tuning

|

UncategorizedID: jeremylongshore/claude-code-plugins-plus-skills/hex-performance-tuning

Install this agent skill to your local

pnpm dlx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/tree/HEAD/plugins/saas-packs/hex-pack/skills/hex-performance-tuning

Skill Files

Browse the full folder contents for hex-performance-tuning.

Download Skill

Loading file tree…

plugins/saas-packs/hex-pack/skills/hex-performance-tuning/SKILL.md

Skill Metadata

Name
hex-performance-tuning
Description
|

Hex Performance Tuning

Latency Benchmarks

| Operation | Typical Duration | |-----------|-----------------| | ListProjects | 200-500ms | | RunProject (trigger) | 500ms-2s | | Project execution | 10s-30min (depends on queries) | | GetRunStatus (poll) | 100-300ms |

Instructions

Cache Project Lists

import { LRUCache } from 'lru-cache';
const projectCache = new LRUCache<string, any>({ max: 50, ttl: 300000 }); // 5 min

async function getCachedProjects(client: HexClient) {
  const cached = projectCache.get('projects');
  if (cached) return cached;
  const projects = await client.listProjects();
  projectCache.set('projects', projects);
  return projects;
}

Parallel Independent Runs

// Run independent projects in parallel (respecting rate limits)
async function parallelRuns(client: HexClient, configs: Array<{ id: string; params: any }>) {
  return Promise.allSettled(
    configs.map(c => runWithRetry(client, c.id, c.params))
  );
}

Optimize Poll Interval

// Adaptive polling: start fast, slow down
async function adaptivePoll(client: HexClient, projectId: string, runId: string) {
  let interval = 2000; // Start at 2s
  while (true) {
    const status = await client.getRunStatus(projectId, runId);
    if (['COMPLETED', 'ERRORED', 'KILLED'].includes(status.status)) return status;
    await new Promise(r => setTimeout(r, interval));
    interval = Math.min(interval * 1.5, 30000); // Max 30s
  }
}

Resources