# Quota Management

Google Stitch free tier quota tracking and conservation strategies.

## Limits

| Pool | Credits/Day | Reset |
|------|-------------|-------|
| Daily Credits (generate, variants) | 400 | Midnight UTC |
| Redesign Credits (edit_screens) | 15 | Midnight UTC |

Each generation = 1 credit. Each variant = 1 credit. Each edit = 1 redesign credit (separate pool).

## Local Tracking

Stitch SDK has no programmatic quota check endpoint. MyKit tracks locally:

**File:** `~/.my-kit/.stitch-quota.json`

```json
{
  "date": "2026-03-23",
  "count": 42,
  "limit": 400
}
```

**Auto-reset:** When `date` != today (UTC), count resets to 0.

**Override limit:** `export STITCH_QUOTA_LIMIT="300"` (if Google increases limits).

## Warning Thresholds

| Remaining | Action |
|-----------|--------|
| > 20% | Normal operation |
| < 20% | `[!] Low quota` warning printed |
| 0 | `[X] Exhausted` — exit code 2, suggest fallback |

## Conservation Tips

1. **Use variants instead of regenerating** — 3 variants = 3 credits vs regenerating 3 times = 3 credits, but variants are more purposeful
2. **Use `screen.edit()` to refine** — Editing costs 1 credit but preserves context
3. **Export early** — Don't regenerate just to see the design again; export HTML/image once
4. **Batch planning** — Plan all designs for the day, generate in one session
5. **Review prompts** — Better prompts = fewer regenerations

## Fallback Workflow

When quota is exhausted:

1. `stitch-quota.ts check` returns exit code 2
2. Skill prints: "Daily quota exhausted. Use mk:ui-ux-pro-max as fallback."
3. Activate `mk:ui-ux-pro-max` with the same design prompt
4. `ui-ux-pro-max` generates text-based design spec (no external API needed)
5. Proceed with implementation using text-based spec

## Drift Warning

Local tracking can drift if user generates designs outside MyKit (via Stitch web UI or other tools). If you hit `RATE_LIMITED` error despite local tracker showing credits available:

1. Run `npx tsx stitch-quota.ts reset`
2. Set count to match actual usage (or leave at 0 if unknown)
3. Stitch API itself enforces the real limit — local tracker is advisory only
