Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Execute Adobe production deployment checklist covering credential management, API health checks, rate limit configuration, and rollback procedures for Firefly Services, PDF Services, and I/O Events integrations. Trigger with phrases like "adobe production", "deploy adobe", "adobe go-live", "adobe launch checklist".
.claude/skills/jeremylongshore-adobe-prod-checklist/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -16% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -20% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-13 | ✗→✓ | ▲ Improved | -21% | 0% |
Complete checklist for deploying Adobe API integrations to production, covering credential security, health monitoring, graceful degradation, and rollback procedures.
ADOBE_CLIENT_ID and ADOBE_CLIENT_SECRET stored in secret manager (not env files)npm test)p8_ prefix patterns)401, 403, 429, 500, 503Retry-After header supporttypescript// api/health.ts export async function adobeHealthCheck() { const start = Date.now(); try { // Test token generation (validates credentials are still valid) const token = await getAccessToken(); return { status: 'healthy', latencyMs: Date.now() - start, tokenValid: !!token, }; } catch (error: any) { return { status: 'unhealthy', latencyMs: Date.now() - start, error: error.message, }; } }
bash# 1. Pre-flight checks curl -sf https://staging.example.com/health | jq '.services.adobe' curl -s https://status.adobe.com | head -5 # 2. Verify production credentials work curl -s -o /dev/null -w "%{http_code}" -X POST \ 'https://ims-na1.adobelogin.com/ims/token/v3' \ -d "client_id=${ADOBE_CLIENT_ID}&client_secret=${ADOBE_CLIENT_SECRET}&grant_type=client_credentials&scope=${ADOBE_SCOPES}" # Expected: 200 # 3. Deploy canary (10%) kubectl set image deployment/app app=image:new-version kubectl rollout pause deployment/app # 4. Monitor for 10 minutes — check error rates # Watch for 401 (credential issues), 429 (rate limits), 500 (server errors) # 5. If healthy, complete rollout kubectl rollout resume deployment/app kubectl rollout status deployment/app
healthy for Adobeadobe-incident-runbook accessiblebash# Immediate rollback kubectl rollout undo deployment/app kubectl rollout status deployment/app # Verify old version is healthy curl -sf https://production.example.com/health | jq '.services.adobe'
| Alert | Condition | Severity | |-------|-----------|----------| | Adobe Auth Failure | Any 401 errors | P1 — credential issue | | Adobe Rate Limited | 429 errors > 5/min | P2 — reduce throughput | | Adobe API Down | 503 errors > 10/min | P2 — enable fallback | | Adobe High Latency | p99 > 10s | P3 — investigate | | PDF Quota Low | < 50 transactions remaining | P3 — upgrade or throttle |
| Issue | Cause | Solution | |-------|-------|----------| | 401 after deploy | Wrong credentials for environment | Verify secret manager path | | 429 spike | Traffic increase from new feature | Add rate limiting queue | | Health check flapping | Token caching not working | Check cache TTL logic | | Webhook delivery stopped | Challenge response broken | Test webhook registration |
Following this guide produces the Adobe integration outcome for its topic—configuration, validation evidence, operational recovery, or a documented migration result. Record command output and relevant identifiers so a failed step is traceable.
Start with the smallest applicable command or code example already provided in this guide, using a non-production Adobe environment and credentials. Confirm the documented response or validation result before applying the pattern to production.
For version upgrades, see adobe-upgrade-migration.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-07 | fail→fail | 19,302 | 13,899 | -28% | 1 | 1 | 0% | 3,362 | 3,830 | +14% | 0 | 0 | — |
case-01 | fail→pass | 47,745 | 45,342 | -5% | 1 | 1 | 0% | 2,917 | 4,255 | +46% | 0 | 0 | — |
case-02 | fail→pass | 23,122 | 11,747 | -49% | 1 | 1 | 0% | 4,110 | 3,449 | -16% | 0 | 0 | — |
case-03 | fail→fail | 38,656 | 26,873 | -30% | 1 | 1 | 0% | 6,116 | 5,985 | -2% | 0 | 0 | — |
case-04 | pass→pass | 15,145 | 14,584 | -4% | 1 | 1 | 0% | 2,418 | 2,475 | +2% | 0 | 0 | — |
case-05 | pass→pass | 16,059 | 12,130 | -24% | 1 | 1 | 0% | 2,657 | 3,477 | +31% | 0 | 0 | — |
case-06 | fail→pass | 11,701 | 2,234 | -81% | 1 | 1 | 0% | 2,061 | 1,643 | -20% | 0 | 0 | — |
case-08 | pass→pass | 6,354 | 5,096 | -20% | 1 | 1 | 0% | 1,047 | 2,282 | +118% | 0 | 0 | — |
case-09 | fail→pass | 13,042 | 4,463 | -66% | 1 | 1 | 0% | 2,125 | 2,040 | -4% | 0 | 0 | — |
case-10 | pass→pass | 11,554 | 32,616 | +182% | 1 | 1 | 0% | 1,885 | 1,682 | -11% | 0 | 0 | — |
case-11 | pass→pass | 9,292 | 1,922 | -79% | 1 | 1 | 0% | 1,371 | 1,605 | +17% | 0 | 0 | — |
case-12 | fail→fail | 12,097 | 1,894 | -84% | 1 | 1 | 0% | 1,964 | 1,559 | -21% | 0 | 0 | — |
case-13 | fail→pass | 13,492 | 2,021 | -85% | 1 | 1 | 0% | 2,039 | 1,606 | -21% | 0 | 0 | — |
case-14 | fail→pass | 9,218 | 6,196 | -33% | 1 | 1 | 0% | 1,408 | 2,301 | +63% | 0 | 0 | — |
case-15 | fail→pass | 18,094 | 13,913 | -23% | 1 | 1 | 0% | 2,794 | 3,817 | +37% | 0 | 0 | — |
case-16 | pass→pass | 15,256 | 10,953 | -28% | 1 | 1 | 0% | 2,626 | 3,070 | +17% | 0 | 0 | — |
case-17 | pass→pass | 19,145 | 17,834 | -7% | 1 | 1 | 0% | 2,860 | 4,159 | +45% | 0 | 0 | — |
case-18 | pass→pass | 8,279 | 3,135 | -62% | 1 | 1 | 0% | 1,311 | 1,631 | +24% | 0 | 0 | — |
case-19 | fail→pass | 13,752 | 1,691 | -88% | 1 | 1 | 0% | 2,141 | 1,511 | -29% | 0 | 0 | — |
case-20 | pass→pass | 17,214 | 10,778 | -37% | 1 | 1 | 0% | 2,781 | 3,235 | +16% | 0 | 0 | — |
case-21 | pass→pass | 7,087 | 8,811 | +24% | 1 | 1 | 0% | 1,234 | 2,885 | +134% | 0 | 0 | — |
case-22 | fail→pass | 14,880 | 20,015 | +35% | 1 | 1 | 0% | 2,559 | 4,891 | +91% | 0 | 0 | — |
case-23 | pass→pass | 14,421 | 10,868 | -25% | 1 | 1 | 0% | 2,476 | 3,331 | +35% | 0 | 0 | — |
case-24 | pass→pass | 19,685 | 18,919 | -4% | 1 | 1 | 0% | 3,390 | 4,849 | +43% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted. The headline lift of +38 percentage points is the difference between those two pass rates over the 24 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/13/2026 | +41% |
Other measured skills in the registry, with their headline benchmark lift.