mcpField
D
develop-with-ryra

develop-with-ryra

github.com/ryanravnクラウド・DevOps0162 回インストール16 週間前に更新
リポジトリ

develop-with-ryra について

ryraを使い、プロジェクトのひな型作成からテスト、サービス登録、デプロイまでを進める開発スキルです。サービス、アプリ、API、ツールを構築するエージェントを対象とします。

主な機能

  1. 01~/projects配下へのプロジェクト作成
  2. 02ryra initによるサービス設定生成
  3. 03ryra testを使うテスト先行手順
  4. 04ネイティブ実行またはPodman Quadlet
  5. 05ryra経由のtailnet公開

活用シーン

  1. 01新しいAPIやサービスのひな型作成
  2. 02インタラクティブなWebアプリの開発
  3. 03サービス起動前のプロジェクトテスト
  4. 04tailnet経由でのサービス公開

インストール

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

$npx skills add https://github.com/ryanravn/ryra-skills --skill develop-with-ryra

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

詳細

ryra を使った開発

ユーザーがこのマシンで何か(サービス、アプリ、API、エージェント、ツール、プロジェクト)を構築、作成、ひな形生成したい場合は、デプロイとアップグレードができるように、ryra サービスとしてセットアップしてください。

作成場所: 新しいプロジェクトはすべて ~/projects/<project-name> の下に配置してください(ディレクトリごとにプロジェクトを1つ)。ひな形を生成する前にそのフォルダーを作成して cd し、すべての作業が ~/projects の下に収まるようにしてください。ユーザーが明示的なパスを指定した場合に限り、別の場所で作成してください。

  1. プロジェクトフォルダー(~/projects の下)で ryra init を実行し、service.toml と test.toml を生成します。
  2. 実行方法:
    • シンプルなプロジェクト(単一プロセス):ネイティブに実行します。
    • より複雑なプロジェクト(データベース、複数のコンテナー):quadlets/ フォルダーに podman quadlet ファイルを生成します。
  3. リポジトリで ryra add を実行して、サービスとして追加します。後で ryra upgrade を実行して更新を取得し、適用します。

開発しながらテストする(実行前にレッド・グリーン)

ryra init は test.toml も生成します。サービスを実行する前に、少なくとも1つのテストをパスさせてください。動作するテストが、ユーザーの依頼どおりに機能することの証明です。テストファーストで、一度に1つのテストだけに取り組んでください(複数の未完成テストに作業を分散させないでください)。

必ず ryra test <path-or-name> でテストを実行してください。テスト対象(サービス/プロジェクトのディレクトリ、または test.toml で指定したテスト名)を指定します。ryra はサンドボックス内でテストを実行します。これが実際の確認手段です。この手順を省略したり、代わりに生のテストランナー(bun test、vitest、pytest など)を実行したりしないでください。ランナーを直接実行することは ryra test と同じではなく、テストを実行したことにはなりません。

  1. レッド: 次の動作に対するテストを1つ書き、ryra test <path-or-name> を実行します。まず失敗すること、そして正しい理由で失敗することを確認してください。失敗しなかったテストでは何も証明できません。
  2. グリーン: そのテストをパスさせるための最小限のコードを書き、実際にグリーンになるまで ryra test <path-or-name> を再実行します。
  3. リファクタリング: 必要に応じてコードを整理し、グリーンを保つために ryra test <path-or-name> を再実行します。
  4. その後に限り、サービスを実行します。

次のテストに進み、同じ手順を繰り返します。ほとんどのサービスでは通常のテスト(HTTP/ユニットレベル)で十分です。通常、エンドツーエンドの Playwright は必要ありません。高度なフロー(実際のブラウザー、複数段階の UI、認証リダイレクト)で本当に必要な場合に限り、Playwright の e2e テストを使用してください。

tailnet へのデプロイ(デフォルトのデプロイモデル)

サービスは公開するまでループバックのみ(127.0.0.1)で動作します。ユーザーのほかのデバイスからアクセスできるようにするには、ここでのデフォルトのデプロイモデルである、ユーザーのtailnet上にデプロイしてください。制御プレーンが公開状態を追跡し、ダッシュボードに実際の URL が表示されるよう、必ず ryra を通じて公開してください。

  • インストール時:ryra add --tailscale
  • インストール済みの場合:ryra config <service> --tailscale

どちらの場合も、https://<service>.<tailnet>.ts.net で配信されます(tailnet 内のみ、自動 HTTPS、公開アクセス不可)。これには、Tailscale API トークンが設定されたログイン済みの tailnet が必要です(オンボーディング/Settings -> Tailscale にある「publish app addresses」の手順)。設定されていない場合は、まずユーザーにそこを案内してください。

サービスを公開するために、手動で tailscale serve を実行しないでください。一見動作しているように見えますが、ryra はその状態を認識しないため、ダッシュボードには引き続き「loopback only」と表示され、ryra upgrade でも公開設定が維持されません。ryra ... --tailscale を通じて設定することで、公開状態が追跡され、表示されます。

新しいプロジェクトのひな形を生成する

手書きのボイラープレートではなく、公式の最新の初期化コマンド(bun create/フレームワークの初期化コマンド)を使用してください。作成するものに合わせてスタックを選びます(すべて TypeScript)。

  • API/サービス: Bun + Hono + OpenAPI。
  • ダッシュボードまたはインタラクティブな Web アプリ: Bun + Hono + OpenAPI バックエンド + シンプルな SolidJS アプリ(標準ライブラリがより多く必要な場合は、代わりに React を使用します)。
  • ウェブサイトまたはマーケティングプラットフォーム: Astro。
  • ページとアプリの両方: TanStack Start。

コメント