Agent Skills: Anima Cost Tuning

|

UncategorizedID: jeremylongshore/claude-code-plugins-plus-skills/anima-cost-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/anima-pack/skills/anima-cost-tuning

Skill Files

Browse the full folder contents for anima-cost-tuning.

Download Skill

Loading file tree…

plugins/saas-packs/anima-pack/skills/anima-cost-tuning/SKILL.md

Skill Metadata

Name
anima-cost-tuning
Description
|

Anima Cost Tuning

Pricing Context

Anima uses partner-based pricing (not self-service). API access is currently granted to partners with custom agreements. Costs are typically per-generation or per-seat.

Cost Optimization Strategies

| Strategy | Savings | Implementation | |----------|---------|---------------| | Generation cache | 60-80% | Cache results; only regenerate on design change | | Incremental generation | 40-60% | Detect changed components; skip unchanged | | Batch scheduling | 20-30% | Generate during off-peak; avoid real-time | | Output reuse | 30-50% | Generate once, customize programmatically |

Instructions

Step 1: Usage Tracker

// src/cost/usage-tracker.ts
interface GenerationRecord {
  timestamp: string;
  fileKey: string;
  nodeId: string;
  cached: boolean;
  durationMs: number;
}

class AnimaUsageTracker {
  private records: GenerationRecord[] = [];

  record(entry: GenerationRecord): void { this.records.push(entry); }

  getReport(): { total: number; cached: number; savings: string } {
    const total = this.records.length;
    const cached = this.records.filter(r => r.cached).length;
    return {
      total,
      cached,
      savings: total > 0 ? `${((cached / total) * 100).toFixed(0)}% saved by caching` : 'No data',
    };
  }
}

Step 2: Smart Generation Policy

// Only generate when:
// 1. Figma file version changed (check via Figma API)
// 2. Cache is expired (>1 hour for active dev, >24h for CI)
// 3. Settings changed (new framework/styling)
// 4. Force flag passed (manual override)

async function shouldGenerate(
  fileKey: string,
  nodeId: string,
  cache: any,
): Promise<boolean> {
  // Check cache first
  const cached = cache.get(fileKey, nodeId);
  if (cached && Date.now() - new Date(cached.generatedAt).getTime() < 3600000) {
    console.log('Using cached generation (< 1 hour old)');
    return false;
  }
  return true;
}

Output

  • Usage tracking with cache hit rate reporting
  • Smart generation policy reducing unnecessary API calls
  • Cost savings through caching and incremental updates

Resources

Next Steps

For architecture design, see anima-reference-architecture.