mcpField
P
project-sync

project-sync

github.com/a-green-hand-jack生産性50 回インストール
リポジトリ

project-sync について

project-syncは、コードリポジトリやワークツリーの新しい実験結果を、論文のdaily_experiments.texに記録する手動ワークフローです。追加前に内容を提示して確認し、プロジェクトにメモリがある場合は更新します。

主な機能

  1. 01コードと論文のリポジトリを特定
  2. 02実験の詳細を収集して確認
  3. 03LaTeXエントリーをプレビュー
  4. 04ログの先頭にエントリーを追加
  5. 05論文の変更を任意でコミット
  6. 06メモリがあればプロジェクト情報を更新

活用シーン

  1. 01新しい実験を論文ログに記録
  2. 02論文向け結果の追加前に指標を確認
  3. 03記録した結果をプロジェクトの証拠や作業に関連付け

インストール

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

$npx skills add https://github.com/a-green-hand-jack/ml-research-skills --skill project-sync

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

詳細

プロジェクト同期ワークフロー

コードリポジトリまたはコードワークツリーに新しい実験結果があり、それを論文の daily_experiments.tex に記録する場合は、このワークフローを使用します。

これは手動で実行する、人がトリガーするワークフローです。結果を論文に記録するチェックポイントを作成したいときに実行してください。

記録した結果によってエビデンス、主張、リスク、アクション、または論文のステータスを更新する場合は、このスキルと research-project-memory を併用してください。


ステップ 1 — プロジェクトの場所を特定する

// turbo プロジェクト構造を自動検出します。次を実行してください。

# Find the git root of the current repo
git rev-parse --show-toplevel 2>/dev/null

# Check if we're in code/ or paper/ and find sibling
ls "$(git rev-parse --show-toplevel)/../"

次を特定してください。

  • $CODE_ROOT - コードリポジトリのルート、またはアクティブなコードワークツリーのルート
  • $PAPER_ROOT - 論文リポジトリのルート
  • $PROJECT_ROOT - プロジェクト管理ルート(存在する場合)

project-init プロジェクトでは、paper/ と code/ はプロジェクト管理ルート配下のコンポーネントリポジトリで、コードワークツリーは通常 code-worktrees/ の下にあります。論文リポジトリを推定できない場合は、ユーザーに次のように尋ねてください。

「論文リポジトリはどこにありますか?パスを指定してください。」


ステップ 2 — 新しい結果を収集する

1 つのメッセージでユーザーに尋ねてください。

  1. 日付:これらの実験の日付はいつですか?(デフォルト:今日の日付、YYYY-MM-DD)
  2. 短いタイトル:この実験バッチの簡潔なラベル(例:「CIFAR-10 でのベースライン」「アブレーション:アテンション層を削除」)
  3. 設定:どの手法のバリアント/設定/データセットを使用しましたか?
  4. 結果:主な数値は何ですか?(指標、精度、損失などを貼り付けてください)
  5. 所見:結果から何が分かりますか?何がうまくいき、何がうまくいきませんでしたか?
  6. 次の予定:次に計画している追加実験は何ですか?

必要に応じて、既存の結果ファイルがないか確認することもできます。

# Stable code-side evidence
find "$CODE_ROOT/docs/results" "$CODE_ROOT/docs/reports" "$CODE_ROOT/docs/runs" -maxdepth 2 -type f 2>/dev/null | sort | tail -20

# Raw or ignored outputs, if present
find "$CODE_ROOT/outputs" "$CODE_ROOT/logs" "$CODE_ROOT/checkpoints" -maxdepth 2 -type f 2>/dev/null | sort | tail -20

関連する結果の要約やレポートがある場合は読み込み、ユーザーが確認できるよう回答の下書きを用意してください。生ログは補足資料として扱い、ユーザーが数値を確認しない限り、論文に掲載するエビデンスとして扱わないでください。


ステップ 3 — エントリをプレビューする

ユーザーが確認できるよう、LaTeX エントリを作成して表示してください。

\subsection*{<DATE> — <SHORT TITLE>}
\textbf{Setup:} <setup>\\
\textbf{Result:} <results>\\
\textbf{Observation:} <observation>\\
\textbf{Next:} <next>

次のように尋ねてください。「これは正しい内容ですか?論文に追加しますか?」

確認を待ってください。


ステップ 4 — daily_experiments.tex に挿入する

// turbo $PAPER_ROOT/sections/daily_experiments.tex の現在の内容を読み込みます。

新しいエントリを先頭(コメントヘッダーの下)に挿入し、ログが新しい順に並ぶようにします。

挿入後、ファイルの更新された先頭部分をユーザーに表示し、問題がないことを確認してください。


ステップ 5 — 論文リポジトリにコミットする(任意)

次のように尋ねてください。「要把这条实验记录提交到 paper repo 的 Git 吗?(Y/n)」

はいの場合:

git -C "$PAPER_ROOT" add sections/daily_experiments.tex
git -C "$PAPER_ROOT" commit -m "exp: add <DATE> — <SHORT TITLE>"

いいえの場合は、ファイルは保存されており、後からコミットできることをユーザーに伝えてください。


ステップ 6 — 確認する

次を報告してください。

Experiment logged:
  Date:   <DATE>
  Title:  <SHORT TITLE>
  File:   <PAPER_ROOT>/sections/daily_experiments.tex

To view all logged experiments:
  cat <PAPER_ROOT>/sections/daily_experiments.tex

ステップ 7 — プロジェクトメモリーがある場合は更新する

親プロジェクトに memory/ がある場合は、次を更新してください。

  • memory/evidence-board.md:記録した結果を EVD-### として追加するか、既存の EXP-### にリンクする
  • memory/provenance-board.md:ソースパス、確認ステータス、日次ログ/論文掲載エビデンスの使用先パスを記録する
  • memory/claim-board.md:影響を受ける主張を supported、weakened、provisional、または evidence-needed に移動する
  • memory/risk-board.md:結果によって明らかになったリスクを追加するか、解消済みのリスクを閉じる
  • memory/action-board.md:ログエントリに記載された次の実験/レポート/執筆アクションを追加する
  • memory/handoff-board.md:同期した結果を論文で使用する必要がある場合は、paper-evidence-board、paper-result-asset-builder、または experiment-story-writer への引き継ぎを作成する
  • memory/phase-dashboard.md:この同期によってプロジェクトの準備状況が変わる場合は、アクティブなエビデンスまたは執筆のゲートを更新する
  • paper/.agent/paper-status.md:sections/daily_experiments.tex に結果が追加されたことを記録する
  • code/.agent/ または <code-worktree>/.agent/worktree-status.md:結果が論文掲載用のエビデンスに昇格したことを記録する

日次実験ログをエビデンスとして扱うのは、数値がソースにリンクされているか、ユーザーが確認した場合に限ります。それ以外の場合は、確実性を user-stated または needs-verification として記録してください。

コメント