К основному содержанию
скилл CX Codex

pwa-development · jwynia — скилл для Claude Code: PWA, service worker, офлайн

Скилл для React и Svelte: помогает добавить service worker, офлайн-режим и установку приложения. Пригодится, когда PWA нужен, а не прикручен в конце.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add jwynia/agent-skills --skill pwa-development -a claude-code
Открыть на GitHub

Что делает 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-code

2Вручную: положить файлы

~/.claude/skills/pwa-development/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/pwa-development/

По шагам, с командами для каждой платформы: Как установить скилл в 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 от других авторов.

pwa-development alinaqi Скилл для сборки Progressive Web App: манифест, service worker, стратегии кэширования и офлайн-режим. Пригодится, когда приложение должно ставиться на телефон и открываться без сети. CX Codex +1 4 100установок pwa-expert curiositech Помогает сделать веб-приложение устанавливаемым и работающим офлайн: манифест, Service Worker, стратегии кеширования, свой экран установки. CX Codex +1 544установок progressive-web-app aj-geddes Помогает собрать прогрессивное веб-приложение: манифест, service worker, работа без сети и установка на телефон. CX Codex +1 522установок web-development TencentCloudBase Скилл для реализации, отладки и сборки веб-фронтенда, когда направление продукта уже определено. React, Vue, Vite, маршрутизация, проверка в браузере. CX Codex +1 1 800установок web-performance-optimization secondsky Скилл для оптимизации загрузки веб-приложений: разбивка бандла, ленивая загрузка, кэширование и мониторинг Core Web Vitals. CX Codex +1 557установок bun-sveltekit secondsky Подсказывает агенту, как собирать и запускать SvelteKit на Bun: SSR, адаптер, bun:sqlite и работа с файлами. CX Codex +1 499установок mapbox-web-integration-patterns mapbox Официальные паттерны встраивания Mapbox GL JS в React, Vue, Svelte, Angular и на чистом JavaScript. Пригодится, когда карта течёт по памяти или не инициализируется в нужном хуке. CX Codex +1 2 600установок

Из того же набора77

drafting Диагностирует, почему черновик не пишется, и вытаскивает текст на страницу. Полезен, когда план готов, а дело стоит. CX Codex +1 445установок story-zoom Скилл следит за тем, чтобы правка на одном уровне рукописи не разошлась с остальными: питч, структура, сцены, сущности, текст. CX Codex +1 444установок belief-systems Помогает придумать религию для вымышленного мира: пантеон, обряды, институты и то, как вера двигает персонажей. CX Codex +1 439установок reverse-outliner Разбирает готовую книгу на сцены и собирает структурный план: видно, как устроен текст и какие приёмы держат читателя. CX Codex +1 439установок chapter-drafter Оркестратор скиллов: пишет сцены главы по готовому плану и сам правит их, пока текст не пройдёт пять редакторских проверок. CX Codex +1 434установок language-evolution Помогает строить языковые семьи и диалекты для вымышленных миров: от праязыка до звуковых сдвигов и контактных зон. Пригодится писателям и worldbuilder'ам. CX Codex +1 428установок book-marketing Скилл для диагностики маркетинговых текстов о книге и генерации блиurbов, описаний, теглайнов и питчей под конкретную площадку. CX Codex +1 426установок world-fates Скилл следит за давлением судьбы на сильных персонажей и предлагает их падение или смерть, чтобы мир не застывал. CX Codex +1 422установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой