К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

extension-to-functions-codebase — скилл для Claude Code

Переносит Firebase Extension в локальную кодовую базу Cloud Functions или в отдельный npm-пакет. Помогает перевести триггеры с V1 на V2 и настроить декларативный доступ к IAM и API.

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

Что делает extension-to-functions-codebase

Скилл разбирает манифест extension.yaml и переносит логику расширения в functions/src/ либо оформляет её как npm-пакет. Параметры превращаются в типизированные геттеры вроде defineString и defineSecret из firebase-functions/params. Доступы к сервисам GCP описываются прямо в коде через requiresRole и requiresAPI. Ручные команды gcloud исключаются.

Инструмент переводит обработчики первого поколения на Cloud Functions V2: меняет события Firestore на onDocumentWritten, очереди на onTaskDispatched, а HTTP на onRequest. Для старых сигнатур применяется адаптер деструктуризации. Это исключает ручную правку обработчиков. События жизненного цикла переводятся в хуки afterFirstDeploy и afterRedeploy.

В коде нельзя вызывать .value() параметров на верхнем уровне модулей. Инициализацию клиентов скилл выносит строго внутрь onInit() или ленивых геттеров. Если нужно сохранить модель расходов V1 без конкурентности до 80 запросов, скилл выставляет параметр cpu: "gcf_gen1".

Какие задачи решает

  • Перенести Firebase Extension в локальную кодовую базу functions/src/
  • Собрать независимый npm-пакет на базе расширения Firebase под Node.js 22
  • Обновить триггеры Cloud Functions с первого поколения на второе
  • Заменить ручную настройку IAM и Google API на декларативные вызовы requiresRole и requiresAPI

Примеры запросов агенту

  • Перенеси установленное расширение Firebase в кодовую базу Cloud Functions V2
  • Сконвертируй исходники расширения в переиспользуемый npm-пакет с поддержкой Node 22
  • Обнови триггеры расширения на Cloud Functions V2 и настрой хуки afterFirstDeploy

Как установить extension-to-functions-codebase

1Через Skills CLI (Vercel)

npx skills add firebase/agent-skills --skill extension-to-functions-codebase -a claude-code

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

~/.claude/skills/extension-to-functions-codebase/SKILL.md

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

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

Весь набор →
firebase-hosting-basics Google LLC Разворачивает статические сайты и SPA на Firebase Hosting CDN с SSL, preview-каналами и кастомными доменами. Claude Code CX Codex Cursor +1 169 800установок firebase-app-hosting-basics Google LLC Скилл помогает разворачивать и управлять SSR-приложениями на Next.js и Angular через Firebase App Hosting. Нужен для конфигурации, секретов и деплоя. Claude Code CX Codex Cursor +1 169 200установок firebase-data-connect Google LLC Скилл помогает проектировать схемы PostgreSQL, писать GraphQL-запросы и генерировать типизированные SDK для Firebase SQL Connect. Полезен при работе с реляционными базами в Firebase. Claude Code CX Codex Cursor +1 168 300установок firebase-security-rules-auditor Google LLC Проверяет правила безопасности Firebase на утечки, обход ролей и ошибки валидации. Нужен для аудита Firestore и Cloud Storage. Claude Code CX Codex Cursor +1 138 200установок firebase-ai-logic-basics Google LLC Подключает модели Gemini напрямую в клиенты Android, iOS, Web и Flutter через Firebase AI Logic. Помогает настроить вызовы API, стриминг и мультимодальные входы. Claude Code CX Codex Cursor +1 135 300установок firebase-firestore Google LLC Скилл помогает настраивать Cloud Firestore, проектировать данные и писать запросы для SDK. Пригодится при создании базы или подключении Firestore к приложению. Claude Code CX Codex Cursor +1 134 900установок firebase-crashlytics Google LLC Скилл для подключения Firebase Crashlytics к агентам в Claude Code, Cursor и других платформах. Собирает данные о падениях приложений на Android и iOS, помогает отследить ошибки через MCP-сервер Firebase CLI. Claude Code CX Codex Cursor +1 131 200установок xcode-project-setup Google LLC Скилл добавляет Swift Packages и связывает файлы в проектах Xcode. Пригодится для настройки зависимостей iOS, включая Firebase и Alamofire. Claude Code CX Codex Cursor +1 130 300установок

Похожие

basin cloudflare Скилл для построения и отладки аналитических workflows в Cloudflare Basin. Помогает потокировать данные в R2 Iceberg-таблицы, управлять каталогами и выполнять распределённые SQL-запросы. Claude Code CX Codex Cursor +1 20 000установок eas-hosting expo Скилл для развёртывания Expo-приложений и API-маршрутов на управляемый сервис EAS Hosting (Cloudflare Workers). Экспортирует веб-бандл, запускает eas deploy для продакшена и превью PR, управляет переменными окружения и домены. Claude Code CX Codex Cursor +1 19 000установок architecture-diagram Cocoon-AI Генерирует диаграммы архитектуры систем, облачной инфраструктуры, микросервисов и сетевой топологии в виде самодостаточных HTML-файлов с тёмной темой. Claude Code CX Codex Cursor +1 2 100установок architecture-diagram Cocoon AI ([email protected]), ported by Hermes Agent Рисует SVG-диаграммы архитектуры систем и облачной инфраструктуры в виде HTML-файла с тёмной темой. Не требует API-ключей и внешних зависимостей — только браузер. Claude Code CX Codex Cursor +1 491установок omni-providers cheaper-inference Управляет подключениями к 375 AI-провайдерам через REST API: добавляет ключи, тестирует соединения, синхронизирует модели. Claude Code CX Codex Cursor +1 1 100установок omni-sync-cloud cheaper-inference Синхронизирует конфигурацию OmniRoute, подключения к провайдерам и настройки с облачным хранилищем. Управляет аутентификацией cloud worker и удалёнными бэкапами. Claude Code CX Codex Cursor +1 958установок workers-best-practices cloudflare Скилл настраивает ИИ на проверку продакшен-кода Cloudflare Workers по актуальным правилам рантайма, типам Wrangler и антипаттернам. Claude Code CX Codex Cursor +1 124 900установок cloudflare-email-service cloudflare Скилл для работы с Cloudflare Email Sending и Email Routing: помогает настроить отправку и приём писем в Workers. Claude Code CX Codex Cursor +1 101 400установок

Вопросы о extension-to-functions-codebase

Как установить extension-to-functions-codebase в Claude Code?

Выполните в терминале команду npx skills add firebase/agent-skills --skill extension-to-functions-codebase -a claude-code.

Что делает скилл extension-to-functions-codebase?

Он переносит расширения Firebase в локальный проект Cloud Functions или npm-пакет с переходом на триггеры V2 и сохранением тестов Jest.

Как скилл предотвращает ошибки при чтении параметров окружения?

Скилл запрещает вызов .value() в глобальной области видимости модулей и переносит инициализацию SDK внутрь хука onInit() или ленивых геттеров.

Исходный текст

SKILL.md · Apache-2.0
---
name: extension-to-functions-codebase
description: Skill for converting an installed Firebase Extension (or extension source) into a standalone Cloud Functions for Firebase codebase or publishable npm package, including V1 to V2 trigger upgrades, lifecycle hooks, and declarative security
metadata:
  author: Google LLC
  category: Serverless
---

# Extension to Functions Codebase & npm Package Migration

## Overview

Migrates a Firebase Extension into either:

1. **A local Cloud Functions codebase** (`functions/src/` for app integration).
1. **A publishable npm package** (reusable open-source package exporting V2
   functions).

Leverages native Cloud Functions features (declarative IAM, Parameterized
Config, SDK Lifecycle Hooks) and modernizes 1st Gen triggers to 2nd Gen using
the Destructuring Compatibility Shim.

______________________________________________________________________

## Target Migration Workflows

- **Target A: Local Functions Codebase** (End-User App Integration)

  - Output: Code under `functions/src/`. Config in `.env`.
  - Deployment: `firebase deploy --only functions`.

- **Target B: Publishable npm Package / Shareable Package**

  - Output: Reusable npm package exporting V2 functions.
  - Configuration: `package.json` specifying `exports` map,
    `engines: { "node": ">=22" }`, and
    `peerDependencies: { "firebase-functions": ">=6.0.0" }`.
  - Usage: Consumers install package and re-export functions in `index.ts`
    (`export * from "<package-name>"`).

______________________________________________________________________

## Core Rules & Constraints

### 1. Declarative IAM & APIs (Zero-Local-Overhead)

Use native SDK declarations instead of manual `gcloud` scripts or console
instructions:

- Use `requiresRole("roles/...")` for required GCP IAM permissions.
- Use `requiresAPI("service.googleapis.com", "Description")` for Google APIs.

### 2. Global Parameter Access Restriction

- **Never call `.value()` at top-level module load scope.**
- Initialize global SDK instances inside `onInit()` or lazy getters:
  ```typescript
  import { defineString } from "firebase-functions/params";
  import { onInit } from "firebase-functions/v2";

  const dataset = defineString("DATASET_ID");
  let client: BigQuery;

  onInit(() => {
    client = new BigQuery({ datasetId: dataset.value() });
  });
  ```

### 3. V2 Concurrency & Cost Parity

V2 enables concurrency (up to 80 requests). To preserve V1 single-concurrency
pricing, set `cpu: "gcf_gen1"`.

______________________________________________________________________

## Step-by-Step Migration Execution

### Step 1: Inventory Extension Resources

1. **`extension.yaml`**:
   - `params` → `defineString`, `defineInt`, `defineBoolean`, `defineSecret`.
   - `apis` → `requiresAPI(...)`.
   - `roles` → `requiresRole(...)`.
   - `lifecycleEvents` → `afterFirstDeploy` & `afterRedeploy`.
   - `resources` → Upgrade 1st Gen triggers to 2nd Gen (`onDocumentWritten`,
     `onTaskDispatched`, `onRequest`).
1. **Files & Scripts**: Preserve devDependencies, test framework (`jest`), and
   test scripts.

### Step 2: Configure `package.json`

- Set `name: "<package-name>"`, `engines: { "node": ">=22" }`.
- Set `peerDependencies`:
  ```json
  "peerDependencies": {
    "firebase-admin": "^11.0.0 || ^12.0.0",
    "firebase-functions": ">=6.0.0"
  }
  ```
- Configure `exports` map targeting ESM/CommonJS and TypeScript declarations
  (`lib/index.js`, `lib/index.d.ts`).

### Step 3: Upgrade Triggers from V1 to V2

- Firestore: Use `onDocumentWritten` from `firebase-functions/v2/firestore`.
- Tasks: Use `onTaskDispatched` from `firebase-functions/v2/tasks`. Remove
  `EXT_INSTANCE_ID` when enqueueing tasks.
- HTTP: Use `onRequest` from `firebase-functions/v2/https`.
- Apply Destructuring Compatibility Shim (`{ change, context }`,
  `{ snapshot, context }`) where legacy 1st Gen handlers expect
  `(change, context)`.

### Step 4: Convert Lifecycle Events

Map extension lifecycle events to SDK lifecycle hooks in `src/index.ts`:

- `onInstall` → `afterFirstDeploy({ task: { function: "initTask" } })`
- `onUpdate` / `onConfigure` →
  `afterRedeploy({ task: { function: "setupTask" } })`

### Step 5: Package README & Export Instructions

Generate `README.md` containing:

1. Installation instructions (`npm install`).
1. Re-export snippet (`export * from "<package-name>"`).
1. Parameterized Configuration `.env` reference table.
1. What Changed (Extension vs Package) comparison table.

_Reminder: NEVER execute `npm publish`._

© Google LLC · Apache-2.0 · firebase/agent-skills

Смотрите также

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

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