Communitygithub.com

AutoDL 同期スキル

このスキルに含まれるスクリプトを使用して、AutoDL上のプロジェクトとローカルファイルを安全かつ効率的に同期します。

AutoDL 同期スキル とは?

AutoDL Syncスキルは、開発者がAutoDLインスタンス上のコードやデータをローカル環境と簡単に同期できるようにするツールです。このスキルは、プロジェクトのルートディレクトリをGitリポジトリのルートや `.autodl-sync` ファイルを使って自動的に特定し、手動でパスを指定する必要をなくします。設定はプロジェクトルートの `.autodl-sync` ファイルで行い、リモートSSHホスト、ベースディレクトリ、アップロード/ダウンロード時の除外ルール、削除や上書きの動作などを定義できます。主な機能として、コードのアップロード(`push-code.sh`)と結果のダウンロード(`pull-results.sh`)があり、それぞれGitの追跡リストや明示的な除外設定を尊重します。また、SSH認証には専用のローカル秘密鍵を使用し、セットアップ用の `setup-key.sh` スクリプトも提供されています。このスキルは、Claude CodeやCursor、CodexなどのAIエージェントと連携し、ワークフローの中で自動的に同期を実行することを想定して設計されています。セキュリティ面では、秘密鍵の露出防止や誤った削除操作の防止など、厳格な安全ルールが組み込まれています。

対応~Claude Code~Codex CLI~Cursor
npx skills add 1zqqx/skill-autodl-auto-sync

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

AutoDL 同期

このスキルにバンドルされているスクリプトを使用して、プロジェクトを同期します。

これらのスクリプトが要求された操作を実行できる場合は、手動で scp や rsync コマンドを構築しないでください。

プロジェクトの検出

同期スクリプトは動的にプロジェクトルートを決定します。

Git リポジトリのルートを優先します。カレントディレクトリが Git リポジトリ内にない場合、上方向に .autodl-sync を探します。

ローカルプロジェクトパスをハードコードしないでください。

プロジェクト設定

プロジェクト固有の同期設定は以下に保存されます:

<project-root>/.autodl-sync

設定では以下を定義できます:

  • リモート SSH ホスト
  • リモートベースディレクトリ
  • リモートプロジェクト名
  • 明示的なリモートディレクトリ
  • Git 対応または明示的なアップロード除外
  • 追加のアップロード除外
  • 選択的または全プロジェクトの結果ダウンロード
  • プル除外、最大ファイルサイズ、削除および上書き動作
  • rsync の動作

同期設定は、提供されたスクリプトを通じて読み取り、設定ロジックを複製しないでください。

コードのアップロード

ユーザーが次のように要求した場合:

  • コードを同期
  • コードをアップロード
  • 現在のソースコードをデプロイ
  • AutoDL のコピーを更新

次のコマンドを実行します:

scripts/push-code.sh <project-root>

プロジェクトルートがすでにカレントワーキングディレクトリである場合、引数は省略できます。

アップロードフィルターは常に必須の安全除外を適用します。auto モードでは、リポジトリのルートに .gitignore がある場合、Git の追跡ファイルと無視されないファイルリストを使用します。それ以外の場合は設定された除外を使用します。プロジェクトの EXCLUDES_APPEND エントリはすべてのモードで適用されます。

SYNC_DELETE=true は、解決されたアップロードモードが excludes の場合にのみサポートされます。Git ファイルリストモードでは、リモート上の古いファイルを安全に特定できないため、完全な削除ミラーを暗示するのではなく、失敗する必要があります。

結果のダウンロード

ユーザーが次のように要求した場合:

  • トレーニング結果をプル
  • チェックポイントをダウンロード
  • ログを取得
  • 予測を取得
  • 実験出力を同期

次のコマンドを実行します:

scripts/pull-results.sh <project-root>

PULL_DIRS エントリは REMOTE_DIR からの相対パスです。空の配列は何もプルしません。PULL_ALL=true はリモートプロジェクト全体を明示的にプルし、空でない PULL_DIRS と組み合わせてはいけません。プル除外、最大ファイルサイズ、ローカル削除、上書き保護はアップロードフィルタリングとは独立しています。

コーディングワークフロー

プロジェクトの指示がコード変更後の同期を明示的に要求する場合:

  1. 要求されたソースコードの修正を完了します。
  2. 適切なローカル検証またはテストを実行します。
  3. 検証が成功した場合、push-code.sh を実行します。
  4. 同期が成功したかどうかを報告します。

ユーザーが明示的にリモート実行を要求しない限り、自動的にリモートトレーニングを開始しないでください。

SSH 認証

AutoDL 認証では、プロジェクトの .autodl-sync で設定された専用のローカル SSH キーを使用します。

秘密鍵はローカルマシン上に残す必要があります。

新しい AutoDL インスタンスに対して公開鍵認証がまだ設定されていない場合、次のコマンドを実行します:

scripts/setup-key.sh <project-root>

この操作は、公開鍵をインストールするために、AutoDL アカウントのパスワードを1回だけ対話的に要求することがあります。

セットアップが成功した後は、プッシュおよびプル操作で公開鍵認証を使用する必要があります。

SSH 秘密鍵を決して表示、読み取り、アップロード、コピー、露出しないでください。

安全性

SSH 秘密鍵を決して検査、表示、コピー、または変更しないでください。

SSH 接続設定はプロジェクトの .autodl-sync から読み取られ、ssh および rsync に明示的に渡されます。スクリプトは ~/.ssh/config のエントリを必要としません。

認証情報や秘密をアップロードしないでください。

プロジェクトの .autodl-sync で定義された除外と同期動作を尊重してください。

プロジェクト設定が明示的に要求しない限り、アップロードまたはプルの削除を有効にしないでください。各同期後、スクリプトのファイル操作サマリーをユーザーに報告してください。

関連スキル