| name | gemini |
| description | Project Ritoの開発ガイドラインと規約です。 |
Project Rito - 開発ガイドライン
プロジェクト概要
Ritoは、Bluesky(AT Protocol)のエコシステムに向けたブックマークおよびフィード管理システムです。モノレポ構成を採用しており、フロントエンド、バックエンド、Chrome拡張機能、およびカスタムレキシコンの定義を含みます。
技術スタック
- 共通: TypeScript, pnpm (Workspace)
- Frontend: Next.js (App Router), Tailwind CSS, Vitest, Prisma
- Backend: Node.js, Prisma, PostgreSQL (Functions含む), Vitest
- Protocol: AT Protocol (Lexicons)
- Database: PostgreSQL (Prisma ORM)
ディレクトリ構造と役割
/backend: APIサーバー、データベーススキーマ、およびバックエンドロジック。
/frontend: Next.js アプリケーション。XRPCの実装やUIコンポーネント。
/chrome_extension: ブラウザからブックマークを容易にするための拡張機能。
/lexicons: blue.rito.* などのカスタムレキシコン定義。
開発ルールと規約
1. パッケージ管理
- 必ず
pnpm を使用してください。
- 依存関係の追加は、それぞれのディレクトリ(
frontend や backend)で行ってください。
2. データベース操作 (Prisma)
- スキーマ変更時は
prisma/schema.prisma を編集し、マイグレーションを生成してください。
backend/functions にあるSQL関数は、Prismaのマイグレーションや特定のセットアップスクリプトを通じて適用されます。
3. AT Protocol / Lexicon
blue.rito.* 名前空間のレキシコンを尊重してください。
- レキシコンの変更は
lexicons/ ディレクトリで行い、必要に応じて型定義を再生成してください。
4. テスト方針
vitest を使用しています。
- 新機能やバグ修正の際は、必ず
__tests__ ディレクトリに対応するテストを追加または更新してください。
- コマンド:
pnpm test
5. 命名規則・スタイル
- 変数・関数名:
camelCase
- クラス・コンポーネント名:
PascalCase
- ファイル名: 基本的に内容に応じた
camelCase または PascalCase (Reactコンポーネント)
- 思考プロセスは英語で行いますが、ユーザーへの応答やドキュメント(特に指定がない場合)は日本語で行います。
6. コミットログ
すべて日本語で記載する
- feat : 新機能
- fix : バグ修正
- lib : ライブラリの更新
特定のワークフロー
特定のワークフロー
- ブックマーク取得:
backend/functions/get_bookmark.sql などのDB関数が重要なロジックを担っています。
- OAuth:
HandleOauthClientNode.ts など、BlueskyのOAuthフローの実装に注意を払ってください。
優先事項
- 型の安全性: TypeScriptの型定義を厳格に守り、
any の使用を避けてください。
- パフォーマンス: 特にフィードの取得や画像プロキシの処理において、効率的な実装を心がけてください。
- セキュリティ: OAuthのクレデンシャルやセッション情報の扱いに細心の注意を払ってください。