Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Production readiness checklist for Anima design-to-code pipelines. Use when deploying automated design-to-code services, preparing CI/CD Figma-to-code automation, or validating output quality before production. Trigger: "anima production", "anima go-live", "anima prod checklist".
.claude/skills/jeremylongshore-anima-prod-checklist/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 10% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 50% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -10% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 16% | 0% |
Decide whether a React/HTML design-to-code pipeline is safe to launch by checking source authorization, backend isolation, output quality, review, observability, and rollback evidence.
go/no-go decision and own the rollback path.
allowlisted design registry, and a reproducible generated-code fixture.
visual/accessibility review, and no secrets in artifacts or logs.
only its redacted result.
component, then verify downstream code-quality and visual gates.
security, credential, output, or fallback control is a no-go condition.
ANIMA_TOKEN stored in the backend secret manager (never in source)FigmaRestApi signals and bounded wait; Anima quotas come from the account contracttypescriptasync function checkAnimaReadiness(): Promise<void> { const checks: { name: string; pass: boolean; detail: string }[] = []; const sdkVersion = process.env.APPROVED_ANIMA_VERSION; checks.push({ name: 'Managed bindings', pass: Boolean(process.env.ANIMA_TOKEN && process.env.FIGMA_TOKEN && sdkVersion), detail: sdkVersion ? `SDK ${sdkVersion}` : 'Pinned SDK version missing', }); // Verify Figma access try { const res = await fetch('https://api.figma.com/v1/me', { headers: { 'X-Figma-Token': process.env.FIGMA_TOKEN! }, }); checks.push({ name: 'Figma Access', pass: res.ok, detail: res.ok ? 'Authenticated' : `HTTP ${res.status}` }); } catch (e: any) { checks.push({ name: 'Figma Access', pass: false, detail: e?.name || 'Request failed' }); } for (const c of checks) console.log(`[${c.pass ? 'PASS' : 'FAIL'}] ${c.name}: ${c.detail}`); } checkAnimaReadiness();
| Check | Risk if Skipped | Priority | |-------|----------------|----------| | API key rotation | Expired keys break entire pipeline | P1 | | Figma token expiry | Silent sync failure, stale designs | P1 | | Figma or generation rate limits | Unbounded retries or dropped updates | P2 | | Component render validation | Broken UI shipped to production | P2 | | Design token mapping | Visual inconsistencies across app | P3 |
Use Read and Grep to inspect the existing integration and generated diff before changing anything. Use Write or Edit only inside the approved generated-code, test, or configuration paths. Use the declared Bash commands only for the explicit install, validation, or diagnostic steps in this workflow; never print tokens, source designs, generated source, or private website captures.
For a production rehearsal, generate one allowlisted staging component using the production-shaped secret binding, run the readiness script, and send the result through lint, type checking, visual review, and the release approval workflow. Record the Figma version, generated artifact digest, deploy revision, and rollback owner. If token safety fails, a quality gate is red, or the design source cannot be traced, declare a no-go, disable generation, and correct the failed control before rerunning the full checklist.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 15,912 | 13,514 | -15% | 1 | 1 | 0% | 3,701 | 4,083 | +10% | 0 | 0 | — |
case-02 | fail→pass | 15,509 | 13,647 | -12% | 1 | 1 | 0% | 2,626 | 3,950 | +50% | 0 | 0 | — |
case-03 | fail→fail | 17,049 | 17,071 | +0% | 1 | 1 | 0% | 2,934 | 4,333 | +48% | 0 | 0 | — |
case-04 | pass→pass | 10,543 | 9,788 | -7% | 1 | 1 | 0% | 1,795 | 2,718 | +51% | 0 | 0 | — |
case-05 | fail→pass | 8,758 | 1,605 | -82% | 1 | 1 | 0% | 1,454 | 1,311 | -10% | 0 | 0 | — |
case-06 | fail→pass | 24,816 | 2,744 | -89% | 1 | 1 | 0% | 1,112 | 1,507 | +36% | 0 | 0 | — |
case-07 | fail→pass | 6,159 | 1,653 | -73% | 1 | 1 | 0% | 1,081 | 1,250 | +16% | 0 | 0 | — |
case-08 | pass→pass | 3,659 | 3,373 | -8% | 1 | 1 | 0% | 703 | 1,536 | +118% | 0 | 0 | — |
case-09 | pass→pass | 6,948 | 1,782 | -74% | 1 | 1 | 0% | 1,246 | 1,380 | +11% | 0 | 0 | — |
case-10 | pass→pass | 11,289 | 8,865 | -21% | 1 | 1 | 0% | 1,927 | 2,495 | +29% | 0 | 0 | — |
case-11 | pass→pass | 10,768 | 7,453 | -31% | 1 | 1 | 0% | 1,872 | 2,235 | +19% | 0 | 0 | — |
case-12 | pass→pass | 15,944 | 16,184 | +2% | 1 | 1 | 0% | 3,028 | 4,186 | +38% | 0 | 0 | — |
case-13 | pass→pass | 9,197 | 6,296 | -32% | 1 | 1 | 0% | 1,637 | 2,169 | +32% | 0 | 0 | — |
case-14 | pass→fail | 15,679 | 12,007 | -23% | 1 | 1 | 0% | 2,688 | 3,132 | +17% | 0 | 0 | — |
case-15 | pass→pass | 7,036 | 4,834 | -31% | 1 | 1 | 0% | 1,193 | 1,851 | +55% | 0 | 0 | — |
case-16 | pass→pass | 15,444 | 11,942 | -23% | 1 | 1 | 0% | 2,730 | 3,360 | +23% | 0 | 0 | — |
case-17 | pass→pass | 10,860 | 1,870 | -83% | 1 | 1 | 0% | 1,807 | 1,396 | -23% | 0 | 0 | — |
case-18 | fail→pass | 7,941 | 1,661 | -79% | 1 | 1 | 0% | 1,239 | 1,317 | +6% | 0 | 0 | — |
case-19 | pass→pass | 13,217 | 12,699 | -4% | 1 | 1 | 0% | 2,398 | 3,411 | +42% | 0 | 0 | — |
case-20 | pass→pass | 12,535 | 11,962 | -5% | 1 | 1 | 0% | 2,335 | 3,276 | +40% | 0 | 0 | — |
case-21 | pass→pass | 13,104 | 13,608 | +4% | 1 | 1 | 0% | 2,935 | 4,327 | +47% | 0 | 0 | — |
case-22 | pass→pass | 9,568 | 6,142 | -36% | 1 | 1 | 0% | 1,925 | 2,373 | +23% | 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. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +23 percentage points is the difference between those two pass rates over the 21 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
The publisher has shipped newer versions since this run, so these numbers describe v1, not the version currently listed.
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.
Other measured skills in the registry, with their headline benchmark lift.