Skill.md検索
2258件の Skill.mdから、あなたに最適なものを見つけましょう
LLMの出力を型安全に構造化できる
by sage-base
BAML定義ファイル(.baml)を作成して、LLMからの出力を自動的にPythonの型に変換できます。Pydanticモデルとの互換性があるため、既存のコードへの組み込みも簡単です。 プロンプトとデータ構造を.bamlファイルに一元管理できるため、複数の場所で同じ定義を保つ手間がなくなります。 LLMの出力をパースする際に必要なトークン数が従来の方法より5~15%削減でき、API呼び出しのコストを下げられます。 LLMの構造化出力を確実に成功させることで、パース失敗による再試行や手動修正の手間を減らせます。 Factory Patternを使ったハイブリッドな実装方法を採用できるため、柔軟な拡張が可能になります。 LLM(大規模言語モデル)を使ったアプリケーションを開発しており、出力結果を確実に構造化したい開発者 プロンプトとデータスキーマを一つの場所で管理したい人 トークン効率やAPI呼び出しコストを気にしながら開発を進めている人 Sagebaseプロジェクトに参加しており、BAML統合の正しい実装方法を知りたい人 BAML(Boundary ML)はLLMの構造化出力を型安全に扱うドメイン特化言語(DSL)です。baml_src/ディレクトリに.bamlファイルを配置し、クラス定義と関数定義を記述します。クラス定義ではフィールドに@descriptionで説明を付けルール化し、関数定義では使用するLLMクライアント(例:Gemini2Flash)とプロンプトをヒアドキュメント形式で指定します。生成されたコードはbaml_client/に自動出力され、async_client.pyとsync_client.pyから利用可能です。Pydantic実装は削除されており、環境変数による切り替えはできません。新実装追加時はチェックリストに従い、既存パターン(例:minutes_divider.baml、politician_matching.baml)を参考に実装します。
一時ファイルを整理・安全に管理できるようにする
by sage-base
ファイル配置ルールを自動適用: 一時ファイルはtmp/、重要な記録は_docs/に自動振り分け。プロジェクトルートが散らからず、整理された状態を保証。両ディレクトリはGitignore対象で、誤ってコミットされることはありません。 ファイル名を自動生成: 処理内容を表す意味のある名前にタイムスタンプやUUIDを付与し、tmp/minutes_processing_20240115_143022.jsonのような一意で管理しやすいファイル名を自動作成。上書き事故を防止。 パスをコード内に変数化: ハードコードされたパスを排除し、pathlib.Pathで相対パスを管理。環境が変わってもスクリプトが動作し、メンテナンスが容易に。 処理後の自動クリーンアップ: try-finally構文で、処理成功時も失敗時も確実に不要ファイルを削除。ディスク容量の浪費を防止。 長期保存ファイルの自動仕分け: 重要な調査結果や意思決定の記録は_docs/へ自動移行。プロジェクトの歴史が蓄積され、参考資料として機能。 データ処理スクリプトを書くエンジニア: 議事録処理、PDF解析、WebスクレイピングなどでPython等で中間ファイルを扱う人。 AIエージェント・自動化フローの開発者: 複数の処理ステップを組み合わせ、各ステップで中間ファイルが生成される場合、その整理・クリーンアップルールが必要。 プロジェクト管理を重視するチーム: 一時ファイルの散乱を防ぎ、重要な決定履歴を体系的に記録したい組織。 メンテナンス性を意識するデータサイエンティスト: 処理スクリプトの再利用性や他者による理解を重視し、ファイルパス管理を統一したい人。 一時ファイルと中間ファイルを適切に管理するルールを提供します。tmp/ディレクトリはGitignore対象の一時領域で、処理完了後に削除可能。_docs/は重要な調査結果や意思決定を記録し、プロジェクト知識として蓄積。ファイル命名規則は(1)処理内容がわかる名前(スネークケース小文字)、(2)タイムスタンプまたはUUID付与で一意性確保、(3)適切な拡張子(.json、.csv等)。使用時はpathlib.Pathで相対パスを変数に格納し、ハードコーディングは避ける。Path("tmp/minutes_processing_result.json")のように作成し、必ず親ディレクトリを作成(mkdir(parents=True, exist_ok=True))。クリーンアップはtry-finally構文で、エラー時でもファイル削除を実行。既存ファイル上書き防止とログ出力も重要です。
Polibaseの開発ルールと品質基準を守る
by sage-base
Pre-commit Hooksのチェック(Ruff、Pyright、Prettier など)を確実に実行し、コード品質を統一できます。 CI/CDでテストをスキップする場合、対応するIssueを自動作成して理由を記録・追跡できます。 一時ファイルを tmp/ に集約し、誤コミットを防ぎながらリポジトリをクリーンに保てます。 技術判断・実装の目的・削除理由を _docs/ に記録し、チーム全体で知識を蓄積できます。 Polibaseプロジェクトに参画する開発者 チーム全体でコード品質と規約を統一したい人 開発過程の判断・試行錯誤を記録・共有したい人 CI/CD失敗やPre-commit Hooks問題を根本解決したい人 Pre-commit Hooks遵守が最重要:git commit --no-verify 絶対禁止、失敗時はコード修正で対応、必要時は設定ファイル(pyproject.toml等)で適切に除外。CI/CD で continue-on-error: true でテストをスキップする場合は必ず対応 Issue 作成し理由・修正方法・関連 PR/Issue をリンク。一時ファイル・計画書・分析結果は tmp/ に配置(.gitignore 対象)。技術判断は _docs/thinking/、実装機能は _docs/features/、削除は _docs/deleted/ に YYYY-MM-DD_説明.md 形式で直後に記録。
Polibase のデータ処理パイプラインを正確に実行
by sage-base
Polibase の 6 つの設計原則(政党 Web サイトからの政治家情報取得、議事録からの話者抽出、LLM による政治家マッチング、議員団管理、段階的メンバー抽出、Streamlit UI による入力)を理解し、正しい処理順序で実行できます。 標準フロー(PDF 議事録→Minutes Divider→Conversations 抽出→Speaker Extraction→Politician Matching)と Web Scraping フロー(GCS 統合)の 2 つのパイプラインを使い分けられます。 議事録の分割、話者情報の抽出、政治家との高精度マッチング(ルールベース+LLM ハイブリッド)を段階的に実行でき、各ステップの出力形式・入力形式を正確に把握できます。 全角/半角文字混在などの日本語政治データ特有の課題に対応した処理が可能です。 既存の政治家データを定期的に更新し、最新の役職・選挙区情報を常に反映できます。 Polibase 開発者・メンテナー:複数の処理パイプラインの依存関係と実行順序を理解したい 日本の政治データを扱うシステム構築者:議事録処理や政治家情報の自動抽出を実装したい Web スクレイピング・自動化エンジニア:政党 Web サイトからの定期的なデータ取得を実装したい データベース設計者:複雑な政治家マッチング・議員団管理の E-R モデルを理解したい 6 つの設計原則:(1)政治家情報は政党公式 Web サイトから定期取得、(2)話者と発言は議事録から構造化抽出、(3)話者-政治家マッチングは LLM 活用、(4)議員団(Parliamentary Groups)は投票ブロックと役職付きメンバーシップを表現、(5)会議メンバーは members_introduction_url から段階的に抽出し信頼度スコア付き、(6)データ入力は Streamlit UI から管理。標準フロー:PDF→Minutes Divider(src/minutes_divide_processor/、LangGraph+Gemini)→Conversations テーブル→Speaker Extraction(src/extract_speakers_from_minutes.py)→Speakers テーブル→Politician Matching(ルール+LLM)→リンク済み Speakers。Web Scraping フロー:政党 Web サイト→Web Scraper(--upload-to-gcs フラグで GCS 保存)→GCS Storage→Meetings テーブル(gcs_pdf_uri, gcs_text_uri 保存)→Minutes Divider(--meeting-id で GCS から直接取得)→標準フロー合流。
本番コード品質を守るロギング運用
by sage-base
デバッグ用のprint文混入を防止し、適切なlogger使用を徹底できます。ログレベル(DEBUG/INFO/WARNING/ERROR)を正しく使い分けることで、開発環境と本番環境での可視性を効率化します。 機密情報の誤出力防止、ログローテーション対応、エラー追跡(Sentry等)との連携により、本番環境でのトラブル対応が迅速になります。 ログメッセージの品質基準を設定し、チーム内で一貫したログ文化を構築・維持できます。 バックエンド・API開発者:print文の誤出力を防ぎ、本番ログの品質を保ちたい人 DevOps・サイト信頼性エンジニア:ログ監視・エラー追跡を効率化したい人 プロジェクトマネージャー:チーム全体のロギング基準を統一・定着させたい人 目的:Sagebaseプロジェクトにおけるロギング一貫性と品質確保、DEBUG用print文混入防止、適切なlogger使用促進。 アクティベート場面:ログ出力追加・修正時、デバッグ用コード記述時、新モジュール作成時(logger初期化)、print文追加時、エラーハンドリング実装時。 核となるルール: 1. 本番コードでのprint文は絶対禁止(ログ管理一貫性の崩壊、本番環境問題、デバッグ困難化) 2. ログレベル使い分け:DEBUG(開発時内部状態)、INFO(正常処理進捗・重要イベント)、WARNING(予期せぬ状況で処理継続可)、ERROR(処理失敗だがアプリ継続可) 3. logger初期化時は__name__使用:各モジュール固有のloggerを取得 4. チェックリスト:追加前に__name__定義確認、message明確性、機密情報非含有、重複出力なし等を確認。
データベース変更をAlembicで安全に管理できる
by sage-base
Alembicを使用したデータベーススキーマ変更を構造的に管理し、upgrade/downgradeロジックを自動チェック。 マイグレーション作成時に冪等性(べきとうせい)やロールバック対応の実装漏れを早期に検出。 スキーマ変更時のデータ保全フローを提示し、重要なフロー情報(conversations、speakersなど)の誤削除を防止。 ダンプ/リストア機能でDockerボリューム削除後も過去データから選別的に復旧可能に。 シードファイルとマイグレーションの実行順序による「0行更新」問題を自動検出・修正提案。 チーム開発でデータベース設計の変更が必要になった開発者やマネージャー 本番環境のデータを失わずに開発環境でスキーマをテストしたい人 マイグレーション履歴を正確に追跡し、いつでもロールバック可能な状態を保ちたい人 スキーマ変更によるダウンタイムを最小化したい運用チーム Alembicを使用したデータベースマイグレーション作成時に自動アクティベート。マイグレーションファイル作成、スキーマ変更、テーブル/カラム/インデックス追加時にjust migrate-new "name"で新規作成、just migrateで適用、just migrate-rollbackで1段階戻す。必須チェックリストとして、upgrade()・downgrade()の実装、冪等性確保(IF NOT EXISTS/IF EXISTS使用)、テスト実施、ロールバックテスト、シードファイル更新を確認。シード生成後にカラム削除するとDBリセット失敗の原因に。スキーマ変更時にDockerボリューム削除(just clean)が必要な場合、事前にjust exec uv run sagebase dump-databaseでJSONダンプを取得し、再起動後just exec uv run sagebase restore-dump --truncateでフロー情報をリストア。ダンプ/リストアコマンドで全テーブルまたは指定テーブルのみ操作可能。
Polibaseの厳密なテスト標準に従ったテスト作成
by sage-base
モックを使った外部サービス呼び出しなしのテスト作成が自動で支援されます。本物のAPI呼び出しを防ぎ、テスト失敗時のコスト削減ができます TDD(テスト駆動開発)のRed-Green-Refactorサイクルに従ったテスト優先の開発を実践できます。実装前にテストを書くことで、設計品質が向上します async/awaitパターンとpytest-asyncioを正しく使ったテストが作成できます。CI環境での失敗を事前に防げます リポジトリ実装のテストで全publicメソッドをカバーでき、新規メソッドだけでなく既存メソッドのテスト漏れを防止できます テストの独立性が確保され、各テストが他のテストに影響されません。テスト結果が安定して再現可能になります Polibaseプロジェクトの開発者で、品質の高いテストを書きたい人 テストコードを書く際に何度もCIで失敗してしまう人 TDDの実践方法を学びたい開発者 テスト漏れやモック設定のミスを減らしたい人 このスキルはPolibaseのテスト標準に従ったテスト作成を支援します。Red-Green-Refactorサイクルに基づくTDD(テスト駆動開発)を推奨し、実装前に失敗するテストを書くことで設計品質を確保します。外部サービスへの直接呼び出し(Google Gemini APIなど)は禁止で、AsyncMockを使った完全なモック化を強制します。pytest-asyncioを使用してasync/awaitパターンに対応し、CI環境での失敗を防ぎます。各テストは独立して実行可能で、他のテストに依存しません。リポジトリ実装テストでは全publicメソッドのテストカバレッジを要求し、既存メソッドのテスト漏れを許しません。テストの独立性・モック化・非同期対応・完全カバレッジが、このスキル適用時の必須要件です。
不要なGitブランチを安全に削除
by sage-base
マージ済みブランチを自動判定して削除:すでに完了したブランチを安全に整理できます。 古いブランチを一覧で表示:30日以上更新されていないブランチを自動検出し、どれが削除対象かを視覚的に確認できます。 削除前に確認して実行:削除するブランチを一覧で確認してから実行するので、誤削除の心配がありません。 リモートで削除済みのローカルブランチを整理:リモートリポジトリでは削除されているのにローカルに残っているブランチを自動検出できます。 開発の主要ブランチを自動保護:mainやmasterなどの重要なブランチは削除対象から除外して保護します。 ソフトウェア開発者:ローカルブランチが増えすぎて整理したい開発者 プロジェクトマネージャー:チームの開発環境をクリーンに保ちたい人 Git初心者:ブランチ削除が怖くて手動で整理している人 DevOps担当者:複数プロジェクトのリポジトリをメンテナンスしている人