Claude-code-plugins-plus anima-cost-tuning
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/anima-pack/skills/anima-cost-tuning" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-anima-cost-tuning && rm -rf "$T"
manifest:
plugins/saas-packs/anima-pack/skills/anima-cost-tuning/SKILL.mdsource content
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.