mcpField
P
powersync

powersync

github.com/powersync-jaデータ・データベース211.3k 回インストール5 日前に更新
リポジトリ

powersync について

PowerSync Skillsは、プロジェクトのPowerSync導入と同期設定の維持を案内するスキルです。エージェントにCLIの使用を促し、運用担当者とデプロイ方式やバックエンドを確認したうえで、タスク別の資料と安全ルールに沿って作業します。

主な機能

  1. 01プロジェクト導入と移行のガイド
  2. 02CLIによるPowerSync操作
  3. 03クラウドとセルフホスト構成への対応
  4. 04タスク別SDK・設定リファレンス
  5. 05デプロイとデータ処理の安全ルール

活用シーン

  1. 01アプリへのPowerSync導入
  2. 02データ同期の設定やデバッグ
  3. 03Electric Cloudからの移行
  4. 04セルフホストやTerraform構成の計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/powersync-ja/agent-skills --skill powersync

インストール後、Claude Code で/powersyncを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

AGENTS.md
CLAUDE.md
references/
attachments.md
custom-backend.md
migration-from-electric.md
onboarding-custom.md
onboarding-supabase.md
powersync-cli.md
powersync-debug.md
powersync-overview.md
powersync-service.md
raw-tables.md
sqlite-extensions.md
supabase-auth.md
sync-config.md
terraform.md
references/sdks/
powersync-dart.md
powersync-dotnet.md
powersync-js-node.md
powersync-js-orm.md
powersync-js-react-native.md
powersync-js-react.md
powersync-js-tanstack.md
powersync-js-vue.md
powersync-js.md
powersync-kotlin.md
powersync-rust.md
powersync-swift.md
scripts/
trim.mjs

詳細

PowerSync Skills

試行錯誤せずにプロジェクトを PowerSync にオンボーディングし、その後も健全な状態を維持するには、このスキルを使用します。まずガイド付きワークフローとして扱い、次にリファレンスライブラリとして活用してください。

エージェント:作業を始める前に AGENTS.md を読んでください。 必須のコンプライアンスルールとオンボーディング手順が記載されています。以下のクイックルールは確認用であり、これに代わるものではありません。powersync login は PowerSync Cloud 専用です(PAT)。セルフホスト環境では使用しません。

用語

  • オペレーター — このエージェントに指示を出す人(その依頼をあなたが実行します)。
  • ユーザー — オペレーターの PowerSync アプリのエンドユーザー(JWT のサブジェクト、同期ストリームが行を絞り込む対象、disconnectAndClear() を呼び出す人)。

文の意味が曖昧な場合は、オペレーターを指すものとして解釈してください。用語の完全な一覧は AGENTS.md にあります。

クイックルール

  • CLI を最優先します。 すべての操作に PowerSync CLI を使用してください。設定ファイルを手書きしないでください。references/powersync-cli.md を参照してください。
  • 決めつけずに確認します。 オペレーターに、Cloud とセルフホストのどちらを使うか、またバックエンド(Supabase、Postgres、MongoDB、Azure DocumentDB、MySQL、MSSQL)のどれを使うか確認してください。Supabase をデフォルトにしないでください。
  • フロントエンドより先にバックエンドを整えます。 アプリのコードを書く前に、同期設定をデプロイしてサービスを検証してください。
  • 新規プロジェクトでは Sync Streams を使用します。 Sync Rules はレガシーです。
  • 認証情報は .env に保存し、コードにハードコードしないでください。 URL とキーが判明したら .env に記録し、設定(!env)とアプリのコードから読み込んでください。
  • 既存プロジェクトでのデフォルトの変更範囲は sync-config のみです。 この会話でオペレーターがサービス/インフラの変更を明示的に許可していない限り、service.yaml や cli.yaml を編集しないでください。
  • 変更を伴うコマンド(deploy、destroy、stop、link --create、pull instance)を実行する前に、対象インスタンスを確認してください。オペレーターが許可していないインスタンスにはデプロイしないでください。明示的に承認されていない限り、本番環境は対象外として扱ってください。
  • プロジェクトのメモリを活用します。 ハーネスが対応している場合は、CLI の呼び出し方法、sync-config のパス、許可されたインスタンス ID と環境(dev/staging/prod)、許可された変更範囲を保存してください。作業する前に、保存された値が実情と一致しているか確認してください。AGENTS.md の「Continuous Use & Guardrails」を参照してください。

リポジトリでの初回使用時:ファイルの整理を提案する(エージェント向け)

このコピーには、PowerSync のすべてのプラットフォーム向けのリファレンスファイルが含まれています。このリポジトリで初めてこのスキルを使用する際は、このファイルと同じ場所にある .trim-state.json を確認してください。ファイルがあれば、オペレーターはすでに判断済みです。このセクションはスキップしてください。

ファイルがない場合は、このスキルのディレクトリから node scripts/trim.mjs を実行してください。デフォルトの実行は読み取り専用のレポートです。このリポジトリで使用されている PowerSync プラットフォームを検出し、このコピーでは不要なリファレンスファイルを一覧表示します。現在インストールされているコピーのみを対象とし、ネットワークリクエストは行いません。スキルを再インストールすれば元に戻せます。共有インストールまたはソースインストールのために処理が拒否された場合、あるいは PowerSync の使用がまだ検出されない場合は、このセクションを黙ってスキップしてください。それ以外の場合は、レポートをオペレーターに提示し、このインストール済みコピーからファイルを整理するか確認してください。オペレーターの明示的な承認なしに整理してはいけません。

  • オペレーターが承認した場合:node scripts/trim.mjs --apply を実行します(オペレーターが残したいプラットフォームがある場合は --keep <platforms> を追加します)。
  • オペレーターが拒否した場合:以後もう確認されないよう、node scripts/trim.mjs --decline を実行します。

再インストールまたは npx skills update を実行すると、完全なコピーが復元され、記録された判断は消去されます。更新後に再度提案するのは想定された動作です。

タスクに応じて読み込む内容

タスク最初に読む内容必要に応じて読み込む内容
Supabase + PowerSyncreferences/onboarding-supabase.mdreferences/supabase-auth.md、references/sync-config.md、SDK ファイル
カスタムバックエンド(Supabase 以外)references/onboarding-custom.mdreferences/custom-backend.md、references/sync-config.md、SDK ファイル
新規プロジェクトのセットアップreferences/powersync-cli.md + references/powersync-service.mdreferences/sync-config.md、SDK ファイル
Electric Cloud からの移行references/migration-from-electric.mdreferences/sync-config.md、SDK ファイル
セルフホスト/サービス設定references/powersync-service.md + references/powersync-cli.mdreferences/sync-config.md
Terraform/IaC によるプロビジョニングreferences/terraform.mdreferences/sync-config.md、references/supabase-auth.md(Supabase ソースの場合)
同期設定の作成references/sync-config.md—
同期に関する問題のデバッグreferences/powersync-debug.md—
Raw Tables(上級者向け)references/raw-tables.md—
添付ファイルreferences/attachments.md—
アーキテクチャの概要references/powersync-overview.md—
SQLite 拡張機能(ベクトル検索、FTS5、カスタムトークナイザー)references/sqlite-extensions.md—

SDK リファレンスファイル

JavaScript/TypeScript

JS/TS プロジェクトでは、まず必ず references/sdks/powersync-js.md を読み込み、その後、該当するフレームワークのファイルを読み込んでください。

フレームワークファイル次の場合は早めに読み込む…
React/Next.jsreferences/sdks/powersync-js-react.mdVite + React プロジェクト。このファイルには、パッケージをインストールする前に必要な vite.config.ts の設定(optimizeDeps.exclude、worker.format: 'es')が記載されています
React Native/Exporeferences/sdks/powersync-js-react-native.md
Vue/Nuxtreferences/sdks/powersync-js-vue.md
Node.js/Electronreferences/sdks/powersync-js-node.md
TanStackreferences/sdks/powersync-js-tanstack.md
Drizzle/Kysely ORMreferences/sdks/powersync-js-orm.mdDrizzle または Kysely を使用するプロジェクト
その他の SDK

| プラットフォーム | ファイル | |----------| | Dart/Flutter | references/sdks/powersync-dart.md | | .NET | references/sdks/powersync-dotnet.md | | Kotlin | references/sdks/powersync-kotlin.md | | Swift | references/sdks/powersync-swift.md | | Rust | references/sdks/powersync-rust.md |

指示がなくても適用する重要なルール

  • PowerSync のテーブルスキーマで id 列を定義しないでください。自動的に作成されます。
  • ブール値には column.integer を、ISO 日付文字列には column.text を使用してください。
  • connect() は呼び出し後に完了を待たずに戻ります。準備完了を確認する必要がある場合は waitForFirstSync() を使用してください。
  • セッションごとに .connect() を一度だけ呼び出してください。ウィンドウのフォーカスイベント、トークンの更新、ネットワークの変更時に再度呼び出さないでください。重複して呼び出すと、追加の同期接続が開かれます。
  • transaction.complete() は必須です。呼び出さないとアップロードキューが永久に停止します。
  • ユーザーのサインアウト時は、デバイスに残ってもよいデータに応じて選択してください。同じユーザーが戻る予定で、データを保持しても問題ない場合は disconnect() を使用すると、次のセッションで再ダウンロードせずに再開できます。表示される行を非表示にする必要がある一方で、PowerSync の内部コピーは保持してよい場合は、disconnectAndClear(soft: true) を使用してください。同期された行は削除されますが、内部コピーは保持されるため、ほとんどの場合、同じユーザーとして再接続すると全データを再ダウンロードせずに済みます。同期済みデータを一切残してはならない場合は、デフォルトの disconnectAndClear() を使用してください。あるユーザーのデータを別のユーザーのために保持してはなりません。
  • uploadData からの 4xx レスポンスはアップロードキューを永久にブロックします。検証エラーには 2xx を返してください。

コメント