pwa-development · jwynia — скилл для Claude Code: PWA, service worker, офлайн
Скилл для React и Svelte: помогает добавить service worker, офлайн-режим и установку приложения. Пригодится, когда PWA нужен, а не прикручен в конце.
npx skills add jwynia/agent-skills --skill pwa-development -a claude-codeЧто делает pwa-development
Скилл ведёт агента по шести состояниям: от полного отсутствия PWA до продакшена. На каждом шаге он подсказывает, что делать — сгенерировать manifest.json, добавить <link rel="manifest"> в head, собрать минимальный service worker. Дальше разбираются кэш, обновления, офлайн-данные и особенности iOS.
Внутри четыре скрипта: manifest-generator.ts, sw-scaffolder.ts, cache-strategy-advisor.ts и pwa-audit.ts. Плюс справочники по стратегиям кэширования, паттернам фреймворков и поведению iOS. Стратегии разложены по таблице: cache first для статики, network first для API, stale while revalidate для полустатики, network only для авторизации.
Скилл не для бэкенда и не для проектов, где офлайн-архитектуру ещё предстоит проектировать. Автор прямо предупреждает: PWA ломается, когда офлайн-поведение добавляют в последний момент. Это повод сначала решить, какие данные обязаны быть доступны без сети.
Какие задачи решает
- сгенерировать
manifest.jsonдля установки приложения - написать service worker с офлайн-фолбэком
- разобраться, почему кэш отдаёт устаревший контент
- починить обновление версии у пользователей
- учесть особенности PWA на iOS
Примеры запросов агенту
- Сделай из этого React-приложения PWA с офлайн-режимом
- Добавь service worker и настрой кэширование статики
- Пользователи застряли на старой версии — почини обновление
Как установить pwa-development
1Через Skills CLI (Vercel)
npx skills add jwynia/agent-skills --skill pwa-development -a claude-code2Вручную: положить файлы
~/.claude/skills/pwa-development/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/pwa-development/
1Через Skills CLI (Vercel)
npx skills add jwynia/agent-skills --skill pwa-development -a codex2Вручную: положить файлы
.agents/skills/pwa-development/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add jwynia/agent-skills --skill pwa-development -a cursor2Вручную: положить файлы
.cursor/skills/pwa-development/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install jwynia/agent-skills pwa-development2Вручную: положить файлы
.github/skills/pwa-development/SKILL.md1Через Skills CLI (Vercel)
npx skills add jwynia/agent-skills --skill pwa-development -a gemini-cli2Командой платформы
gemini skills install https://github.com/jwynia/agent-skills --path skills/tech/frontend/pwa/pwa-developmentВручную: положить файлы
.devin/skills/pwa-development/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add jwynia/agent-skills --skill pwa-development -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о pwa-development
Как установить pwa-development в Claude?
Выполните npx skills add jwynia/agent-skills --skill pwa-development -a claude-code. Скилл окажется в ~/.claude/skills/pwa-development/SKILL.md.
Что делает pwa-development?
Помогает агенту добавить в React или Svelte приложение service worker, манифест, стратегии кэширования и офлайн-поддержку.
С какими фреймворками работает скилл?
С React, Svelte и SvelteKit, Vite и Next.js. Для каждого есть свой пакет: vite-plugin-pwa, @vite-pwa/sveltekit, next-pwa.
Исходный текст
SKILL.md · MIT
--- name: pwa-development description: "Implement Progressive Web App features for React and Svelte projects. This skill should be used when the user asks to 'make a PWA', 'add offline support', 'create a service worker', 'fix caching issues', or wants installable web apps. Keywords: PWA, service worker, offline, manifest, caching, installable, Workbox, vite-pwa." license: MIT compatibility: Works with React, Svelte/SvelteKit, Vite, Next.js. metadata: author: jwynia version: "1.0" type: utility mode: assistive domain: development --- # PWA Development Implement Progressive Web App features including service workers, caching strategies, offline support, and installation prompts for React and Svelte applications. ## When to Use This Skill Use this skill when: - Adding PWA capabilities to a web app - Implementing offline support - Creating service worker caching strategies - Debugging PWA installation issues - Handling iOS-specific PWA quirks Do NOT use this skill when: - Building backend APIs - Working on requirements/design (use those skills first) - Need complex offline-first architecture (design first) ## Core Principle **PWAs fail when offline behavior is an afterthought.** A PWA is not "add service worker to existing app." It's a fundamental architectural decision about data flow, caching, and connectivity failure. ## Diagnostic States ### P0: No PWA Setup **Symptoms:** No manifest.json, no service worker, online-only **Interventions:** - Run `scripts/manifest-generator.ts` to create manifest - Add `<link rel="manifest">` to HTML head - Generate minimal SW with `scripts/sw-scaffolder.ts` ### P1: Basic Manifest Only **Symptoms:** Manifest exists but SW missing, breaks offline **Key Questions:** - What content MUST be available offline? - What should always be fresh (network-first)? **Interventions:** - Use `scripts/cache-strategy-advisor.ts` - Implement app shell pattern - Add offline fallback page ### P2: Caching Issues **Symptoms:** Stale content, unexpected caching behavior **Interventions:** - Audit with `scripts/pwa-audit.ts` - Map resources to strategies using `data/caching-strategies.json` - Add cache expiration and cleanup ### P3: Update Problems **Symptoms:** Users stuck on old versions, multiple refreshes needed **Interventions:** - Implement skipWaiting/clients.claim appropriately - Add update notification UI (`assets/update-prompt.tsx`) - Handle "waiting" state properly ### P4: Offline Data Gaps **Symptoms:** User actions lost offline, no sync indicator **Interventions:** - Implement IndexedDB for offline storage - Add Background Sync API - Create sync status UI ### P5: iOS Issues **Symptoms:** Works on Android, breaks on iOS **Interventions:** - Review `data/ios-quirks.json` - Add apple-mobile-web-app meta tags - Handle storage eviction gracefully ### P6: Production Ready **Indicators:** Lighthouse PWA 100, works offline, updates cleanly ## Caching Strategies | Strategy | Use For | Behavior | |----------|---------|----------| | Cache First | Static assets, fonts | Serve from cache, update in background | | Network First | API data, user content | Try network, fall back to cache | | Stale While Revalidate | Semi-static content | Serve stale, update cache for next time | | Network Only | Auth, real-time data | Always network, no caching | ## Available Scripts | Script | Purpose | |--------|---------| | `manifest-generator.ts` | Generate manifest.json | | `sw-scaffolder.ts` | Generate service worker | | `cache-strategy-advisor.ts` | Recommend caching strategies | | `pwa-audit.ts` | Validate PWA configuration | ## Anti-Patterns ### The Everything Cache Precaching every asset - massive initial download. **Fix:** Precache only critical app shell. Runtime cache content. ### The Immortal Cache Never expiring caches - stale content forever. **Fix:** Cache versioning, delete old on activate, set max age. ### The Silent Update Forcing updates without notification. **Fix:** Notify user, let them choose when to refresh. ### The iOS Afterthought Building for Chrome, testing iOS last. **Fix:** Test iOS early. Accept iOS limitations. ## Framework Quick Reference ### React + Vite ```bash npm i -D vite-plugin-pwa ``` ### SvelteKit ```bash npm i -D @vite-pwa/sveltekit ``` ### Next.js ```bash npm i next-pwa ``` See `data/framework-patterns.json` for configuration. ## Debugging Checklist 1. **DevTools > Application > Manifest** - Valid? 2. **DevTools > Application > Service Workers** - Registered? 3. **DevTools > Application > Cache Storage** - What's cached? 4. **DevTools > Network > Offline** - Works offline? 5. **Lighthouse > PWA** - Score and failures? 6. **iOS Safari** - Test on actual device ## Related Skills - **requirements-analysis** - Determine offline requirements - **system-design** - PWA architecture decisions - **react-pwa** - React-specific PWA implementation
© jwynia · MIT · jwynia/agent-skills
Похожие скиллы
Всё по теме «Фронтенд и UI» →Сначала — pwa-development от других авторов.