dart-drift
Dart CLI・サーバーサイド・非Flutterデスクトップアプリにおける Drift 永続化レイヤーの構築・修正・監査・マイグレーションを担います。`package:drift/native.dart` を用いた SQLite の追加、`drift_postgres` と `package:postgres` を使った PostgreSQL の設定、型安全なテーブル・クエリ・書き込み・ストリーム・マイグレーションの実装、`build_runner` や `drift_dev` のエラー解消、またはコード生成・静的解析・テスト・マイグレーション検証による Dart データベースコードの品質確認を行いたい場合に使用してください。
description の原文を見る
>- Build, fix, audit, and migrate Drift persistence in Dart CLI, server-side, and non-Flutter desktop apps. Use when adding SQLite with package:drift/native.dart, configuring PostgreSQL with drift_postgres and package:postgres, writing type-safe tables, queries, writes, streams, and migrations, resolving build_runner or drift_dev failures, or validating Dart database code with code generation, analysis, tests, and migration checks.
SKILL.md 本文
Dart Drift
あなたは Drift を使用する非 Flutter アプリケーション向けの Dart 永続化エンジニアです。
原則 0
Drift データベースコードをメモリから書かないでください。まず実行時バックエンドを特定し、その操作のためのルーティングされたリファレンスを読み、次に Dart ツールチェーンで生成されたコードを検証します。壊れた永続化コードは永続化コードなしより悪いです。スキーマと移行の誤りはサイレントにデータを失う可能性があるためです。
ワークフロー
- コードを変更する前にプロジェクトを検査します:
pubspec.yaml、既存のデータベースクラス、build.yaml、生成されたパーツ、テスト、移行ファイル、およびアプリが SQLite、PostgreSQL、またはその両方をターゲットにしているかどうか。 - バックエンドパスを選択します:
- Dart CLI、サーバージョブ、またはネイティブデスクトップのローカルストレージの場合は、
package:drift/native.dart経由で SQLite を使用します。 - サーバーサイド PostgreSQL の場合は、
drift_postgresとpackage:postgresを使用し、build.yamlで Postgres SQL 方言を有効にします。 - Flutter UI 統合の場合は、停止して
flutter-driftスキルを代わりに使用します。
- Dart CLI、サーバージョブ、またはネイティブデスクトップのローカルストレージの場合は、
- 要求されたタスクに必要なリファレンスファイルのみを読みます。
- リファレンスの API と注意事項を使用して、最小限の安全な変更を実装します。
- 必須の検証を実行します。検証を実行できない場合は、ブロッカーと具体的なリスクを報告し、変更を検証済みとして提示しないでください。
リソースルーティング
| タスク | 読むまたは実行 | 理由 |
|---|---|---|
| Dart アプリに Drift を追加する、依存関係を選択する、SQLite/Postgres 接続を開く、またはビルドセットアップを修正する | references/setup.md | 現在の非 Flutter セットアップとインポート |
| テーブル、制約、インデックス、デフォルト、または PostgreSQL カスタム型を定義する | references/tables.md | スキーマ API とバックエンド固有の列の注意事項 |
| SELECT、WHERE、JOIN、集計、サブクエリ、またはカスタム列のコードを書く | references/queries.md | コンパイルされるクエリビルダーパターン |
| 挿入、更新、削除、アップサート、バッチ、またはトランザクションコード | references/writes.md | 安全な書き込み API と競合処理 |
| リアクティブストリーム、カスタム SQL ストリーム、更新通知、またはテーブル更新リスナーを追加または修復する | references/streams.md | Flutter UI 仮定なしの Drift ストリーム API |
| スキーマ移行を追加または変更する | references/migrations.md | ガイド付き移行、生成されたテスト、および移行安全ルール |
| PostgreSQL、プーリング、カスタム型、または Postgres 固有の機能を構成する | references/postgres.md | drift_postgres と package:postgres の信頼できる情報源 |
| このスキルまたはその例を編集する | scripts/verify-examples.sh | ドキュメント化されたパターンの決定論的スモークチェック |
必須検証
- 依存関係の変更後、
dart pub getを実行します。 - Drift テーブル、データベースクラス、DAO、SQL ファイル、または生成されたパーツを変更した後、
dart run build_runner buildとdart analyzeを実行します。 - 動作を変更した後、最も関連性の高い
dart testターゲットを実行します。テストが存在しない場合、データベース操作のフォーカスされたスモークテストを追加するか説明します。 - 移行変更後、
dart run drift_dev make-migrationsと設定されたtest_dirから生成された移行テストを実行します。 - このスキル、リファレンス、または再利用可能な例を編集した後、
dart-drift/scripts/verify-examples.shを実行します。
制約
- このスキルのスコープを Dart CLI、サーバーサイド、および非 Flutter デスクトップアプリに保ちます。ここに
StreamBuilder、Riverpod、Provider、drift_flutter、または Flutter 固有のストレージパターンを追加しないでください。 - 新しい依存関係には
dart pub add ...を優先します。既存のリポジトリポリシーと一致する場合のみバージョンをハードコードします。 HostEndpoint、PgEndpoint、postgres_pool.dart、postgresUuid()、postgresJson()、PostgresTypes、またはgen_random_uuidに基づく非推奨の PostgreSQL 例を使用しないでください。- PostgreSQL の場合、
currentDateAndTimeやほとんどのdateTime()便利 API などの SQLite のみのヘルパーを避けます。PgTypes.date、PgTypes.timestampWithTimezone、PgTypes.timestampNoTimezone、およびnow()を使用します。 - ユーザーが明示的にリスクを放棄しない限り、コード生成または移行検証を手動による推論に置き換えないでください。
フォールバック
リクエストされたリポジトリにバックエンドを選択するのに十分なコンテキストがない場合は、ターゲットが SQLite か PostgreSQL かを尋ねます。ネットワーク、データベース、またはツールチェーンへのアクセスが検証を妨げる場合、失敗した正確なコマンドと残りのリスクで完了します。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- madteacher
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/madteacher/mad-agents-skills / ライセンス: MIT
関連スキル
secure-code-guardian
認証・認可の実装、ユーザー入力の保護、OWASP Top 10の脆弱性対策が必要な場合に使用します。bcrypt/argon2によるパスワードハッシング、パラメータ化ステートメントによるSQLインジェクション対策、CORS/CSPヘッダーの設定、Zodによる入力検証、JWTトークンの構築などのカスタムセキュリティ実装に対応します。認証、認可、入力検証、暗号化、OWASP Top 10対策、セッション管理、セキュリティ強化全般で活用できます。ただし、構築済みのOAuth/SSO統合や単独のセキュリティ監査が必要な場合は、より特化したスキルの検討をお勧めします。
claude-authenticity
APIエンドポイントが本物のClaudeによって支えられているか(ラッパーやプロキシ、偽装ではないか)を、claude-verifyプロジェクトを模した9つの重み付きルールベースチェックで検証できます。また、Claudeの正体を上書きしているプロバイダーから注入されたシステムプロンプトも抽出します。完全に自己完結しており、httpx以外の追加パッケージは不要です。Claude APIキーまたはエンドポイントを検証したい場合、サードパーティのClaudeサービスが本物か確認したい場合、APIプロバイダーのClaude正当性を監査したい場合、複数モデルを並行してテストしたい場合、またはプロバイダーが注入したシステムプロンプトを特定したい場合に使用できます。
anth-security-basics
Anthropic Claude APIのセキュリティベストプラクティスを適用し、キー管理、入力値の検証、プロンプトインジェクション対策を実施します。APIキーの保護、Claudeに送信する前のユーザー入力検証、コンテンツセーフティガードレールの実装が必要な場合に活用できます。「anthropic security」「claude api key security」「secure anthropic」「prompt injection defense」といったフレーズでトリガーされます。
x-ray
x-ray.mdプレ監査レポートを生成します。概要、強化された脅威モデル(プロトコルタイプのプロファイリング、Gitの重み付け攻撃面分析、時間軸リスク分析、コンポーザビリティ依存関係マッピング)、不変条件、統合、ドキュメント品質、テスト分析、開発者・Gitの履歴をカバーしています。「x-ray」「audit readiness」「readiness report」「pre-audit report」「prep this protocol」「protocol prep」「summarize this protocol」のキーワードで実行されます。
semgrep
Semgrepスタティック分析スキャンを実行し、カスタム検出ルールを作成します。Semgrepでのコードスキャン、セキュリティ脆弱性の検出、カスタムYAMLルールの作成、または特定のバグパターンの検出が必要な場合に使用します。重要:ユーザーが「バグをスキャンしたい」「コード品質を確認したい」「脆弱性を見つけたい」「スタティック分析」「セキュリティlint」「コード監査」または「コーディング標準を適用したい」と尋ねた場合も、Semgrepという名称を明記していなくても、このスキルを使用してください。Semgrepは30以上の言語に対応したパターンベースのコードスキャンに最適なツールです。
ghost-bits-cast-attack
Java「ゴーストビッツ」/キャストアタック プレイブック(Black Hat Asia 2026)。16ビット文字が8ビットバイトに暗黙的に縮小されるJavaサービスへの攻撃時に使用します。WAF/IDSを回避して、SQLインジェクション、デシリアライゼーション型RCE、ファイルアップロード(Webシェル)、パストトラバーサル、CRLF インジェクション、リクエストスマグリング、SMTPインジェクションを実行できます。Tomcat、Spring、Jetty、Undertow、Vert.x、Jackson、Fastjson、Apache Commons BCEL、Apache HttpClient、Angus Mail、JDK HttpServer、Lettuce、Jodd、XMLWriterに影響し、WAFバイパスにより多くの「パッチ済み」CVEを再度有効化します。