Claude-code-plugins klingai-prod-checklist
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/klingai-pack/skills/klingai-prod-checklist" ~/.claude/skills/jeremylongshore-claude-code-plugins-klingai-prod-checklist && rm -rf "$T"
manifest:
plugins/saas-packs/klingai-pack/skills/klingai-prod-checklist/SKILL.mdsource content
Kling AI Production Checklist
Overview
Checklist covering authentication, error handling, cost controls, monitoring, security, and content policy before deploying Kling AI video generation to production.
Authentication
- AK/SK stored in secrets manager (not
in repo).env - JWT auto-refresh with 5-min buffer before 30-min expiry
- Separate API keys per environment (dev/staging/prod)
- Key rotation schedule (quarterly minimum)
-
format verifiedAuthorization: Bearer <token>
Error Handling
- HTTP 400/401/402/403/429/5xx all handled
- Exponential backoff with jitter for 429/5xx retries
- Max retry limit set (3-5, not infinite)
-
logstask_status: "failed"task_status_msg - 30s timeout on all HTTP calls
-
sent as stringduration
not integer"5"5
Cost Controls
- Daily credit budget enforced in code
- Alert at 80% daily budget consumption
-
mode used for non-final rendersstandard - Max poll attempts cap (no infinite loops)
- Credit estimate before batch submission
# Pre-batch credit check credits_needed = len(prompts) * 10 # 10 credits per 5s standard if credits_needed > DAILY_BUDGET: raise RuntimeError(f"Batch needs {credits_needed}, budget is {DAILY_BUDGET}")
Task Management
- All task_ids logged with timestamp
- Stuck task detection (>10 min in processing)
-
used instead of polling in productioncallback_url - Failed tasks queued for retry
- Video URLs downloaded promptly (Kling CDN URLs expire)
Content Safety
- Prompts validated before API submission
- User-generated prompts sanitized
- Default negative prompt includes safety terms
- Content moderation on user-facing apps
- Policy violation errors handled gracefully
Security
- API keys never logged (redacted in debug output)
- Video URLs treated as temporary (store on own CDN)
- Webhook endpoints HTTPS-only
- Rate limiting on your API layer
- No sensitive data in prompt strings
Monitoring
- API latency tracked per endpoint
- Success/failure rate dashboard
- Credit consumption metrics
- Alert on >5% failure rate
- Structured JSON logs for all API calls
Performance
- Connection pooling via
requests.Session() - Concurrent tasks within API tier limit
- Video downloads async/background
- Generated videos CDN-cached
# Connection pooling session = requests.Session() adapter = requests.adapters.HTTPAdapter(pool_connections=5, pool_maxsize=10) session.mount("https://", adapter)
Pre-Launch Smoke Test
from kling_client import KlingClient c = KlingClient() result = c.text_to_video("test: blue sky with clouds", duration=5, mode="standard") assert result["videos"][0]["url"], "No video URL" print("READY FOR PRODUCTION")