mcpField
E
explore-ml-data

explore-ml-data

github.com/probabl-aiデータ・データベース144119 回インストール1 日前に更新
リポジトリ

explore-ml-data について

プロジェクト単位の探索的データ分析を行い、Notebook、HTML レポート、簡潔な分析文書、JOURNAL の索引行を作成するスキルです。後続のモデリングに向けたデータ把握に使えます。

主な機能

  1. 01プロジェクト単位の探索的分析
  2. 02Notebook と HTML レポートの生成
  3. 03レポートを埋め込むデータ概要
  4. 04重複とターゲットの分析

活用シーン

  1. 01モデリング前のデータセット把握
  2. 02ターゲット分布と特徴量の関係確認

インストール

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

$npx skills add https://github.com/probabl-ai/skore-skills --skill explore-ml-data

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
cell_anatomy.md
extra_analyses.md
templates/
data_analysis.md
data_analysis.py
datetime.py
drift.py
family.py
join_coverage.py
materialize.py
target_classification.py
target_multioutput_regression.py
target_regression.py

詳細

ML データの調査

プロジェクト単位の探索的データ分析を1つ実施します。ユーザーが開けるノートブック、HTML レポート、それらを埋め込んだ短い data_analysis.md、および JOURNAL のインデックス行を作成します。

人間向けの文章

詳細:setup-workspace references/human_facing_prose.md。 ノートブックの Markdown、data_analysis.md、JOURNAL の文章、および # コメントでは、スキルのフレームワークや CLI、出力を生成したコマンドではなく、このデータセットについて説明します。質問、回答、最後の説明にも、スキル ID、G-* 名、ラッパー CLI ではなく、同じデータサイエンスの用語を使用します。 `` はサイトマーカーです。作成時のヒントはこのスキル内に置きます。style は ruff のみです。

成果物

パス対象者
raw data (anywhere)ユーザー所有、読み取り専用
data_analysis/data_analysis.py人間向けノートブック — TableReport と ML ギャップのセル
data_analysis/data_analysis_<slug>.html人間向け — TableReport ページ、ファミリーごとに1つ
data_analysis/*.png人間向け — 示唆を示す図。概要確認には使用しない
data_analysis/<slug>.html人間向け — Plotly(またはその他)の HTML。示唆に iframe で埋め込み
data_analysis/data_analysis.md人間と後続のモデリング向け — TableReport の iframe、示唆
scratch/data_analysis/materialize.pyエージェント向け — 唯一の実行対象。gitignore 対象
scratch/data_analysis/<slug>.jsonエージェント向け — ファミリーごとの TableReport.json()。gitignore 対象
scratch/data_analysis/extras.jsonエージェント向け — tables[]、targets、リーク、png と html のパス
JOURNAL § Data understandingインデックス:ステータス、2~4行の概要、リンク

TableReport は、データ型、欠損状況、単変量分布、カーディナリティ、および上位のペアワイズ関連を担当します。追加のセルでは、重複、各ターゲットの分布、特徴量とターゲットの関係、リーク候補を扱います。同一ファミリーのターゲットを特徴量にしないでください。追加のセルで TableReport の内容を重複させないでください。

詳細:references/cell_anatomy.md。追加分析のレシピ: references/extra_analyses.md。

次のステップへの案内

目的→ 次へ
最初の EDA(トリアージまたは自由記述)→ md を作成し、その後、5つの選択肢がある続行ボードへ
続行時の選択→ 事前定義の選択肢、クエリ、自動探索、またはプロットの説明。まだターンを終了しないでください
このステージを終了→ 入力を完了/サイト/git のターン終了/triage-ml-task がインストールされている場合は実行
EDA 完了後に方法論上の懸念がある→ G-DATA-ANALYSIS をスキップする。探索を続ける § 自動探索(懸念が明示されている場合は定型調査をスキップ)
データソースを変更した、または「X もプロットして」→ data_analysis/data_analysis.* を上書きし、JOURNAL を更新

停止条件

  • 最初にセットアップします。 python -m skore_skills status を実行します。 status.setup.pending が空ではなく、 status.skills.setup-ml-project が true の場合は、 setup-ml-project を読み込んで停止します。このスキルは開始しません。 戻ってきたら続行します。このターン中に再度読み込まないでください。 そのスキルがインストールされていない場合は、保留中の項目を1行で示して 停止します。git init、scaffold、env init を勝手に実行しないでください。 status.setup.env または status.setup.workspace が declined の場合は、1行で示して停止します。git または editable が辞退されている場合は再度尋ねず、続行します。手動で PROJECT_ROOT を定義したり、workspace のセットアップが保留中に ルートの JOURNAL.md を書き込んだりしないでください。
  • 生データは読み取り専用です。 ユーザーのファイルをクリーンアップ、書き換え、 再保存してはいけません。列やファイルを削除するようユーザーに指示してはいけません (「drop it」)。リークは Open questions または measure ボードに記録します。クリーンアップは build-ml-pipeline で行います。
  • 成果物は data_analysis/ 配下に置きます。 生データの読み込み元はどこでもかまいません。
  • 質問には必ず背景を添えます。 このスキルで AskUserQuestion を行う前に、 回答によって何が許可されるのか、根拠となる事実(例:ファイル名、 候補の列、提案するファミリーのスラッグ)と、各選択肢の動作を 2~4行で示します。ファイルリンクは補足であり、背景の代わりにはなりません。
  • G-DATA-ANALYSIS の実行/スキップ。 AskUserQuestion を使います。「早く進める」 という希望はスキップの理由になりません。スキップの場合は python -m skore_skills eda stamp --status skipped を実行して停止します。日付を入力してはいけません。 スキップが有効なのは data_analysis/data_analysis.md が存在しない場合 (status.data_analysis が missing または skipped)だけです。 ステータスが present の場合、skipped を書き込まないでください。 作成済みの分析はそのまま残ると伝え、探索を再実行する (data_analysis/data_analysis.* を上書きします)か、現状のままにするかを提示します。 ユーザーが再実行に同意するまで上書きしてはいけません。EDA が完了していても、 名前の挙がった方法論上の懸念がある場合は、このゲートをスキップします。 スキップ時に site build を実行してはいけません。 build-ml-pipeline では、Evaluate の前に未フィットのスナップショットのビルドを 引き続き実行します。
  • data_analysis/data_analysis.py の前に G-TABULAR を確認します。 status.policy.tabular を使います。未設定の場合は choose-python-library (pandas を推奨)を実行してから、そのライブラリに加えて skrub、 matplotlib、seaborn を add-python-package で追加します。 暗黙のデフォルトを設定してはいけません。その skrub のインストール時に Graphviz の修復診断が出ても、この分析を中止しません。診断内容を1行で引用して 続行します。レンダリング可能なグラフが必要なのは、 build-ml-pipeline の未フィットのスナップショットです。G-TABULAR、 ターゲット、またはファミリーについて未回答の質問がある場合は、 質問後に停止します。「pandas を仮定した Deliverable A」であっても、 デフォルトのノートブックを作成してはいけません。ユーザーが選んだ追加項目に 必要な場合を除き、sklearn、skore、pytest をインストールしないでください。
  • ターゲット。 列が明らかな場合は、JOURNAL の Status またはユーザーのプロンプトから 推測します。名前が挙がっている出力列はすべて含めます。それ以外の場合は AskUserQuestion allow_multiple(列名と「no target yet」)を使って 停止します。ノートブックはまだ作成しません。「no target yet」は 他の選択肢と併用できません。特徴量とターゲットの区別やリークを、 常に表示する次のステップとして列挙しないでください。異なる値が多い数値列は 回帰です。ラベルが少ない列、または数値以外のラベルを持つ列は分類です。 列が1つの場合は、そのターゲット用のスニペットを1つだけ使います。 回帰列が2つ以上ある場合は、1つのマルチ出力回帰として扱います。 templates/target_multioutput_regression.py を1回だけ追加します。 分類列が複数ある場合、または分類と回帰が混在する場合は、 skore がレポートできる単一の結合モデルではありません。列ごとにタスクを記録し、 そのスニペットは追加しないでください。「no target yet」または辞退の後は TARGETS=[] とします。TableReport と重複のみを使います。 ポリシーキーを永続化しないでください。
  • 訓練/テスト分割は行いません。 その選択は後ほど modeling-decisions のロックで 決定します。EDA 中に分割しないでください。ファイルがすでに訓練テーブルと テストテーブルに分かれている場合は、概要で両方の名前を挙げ、結合しないでください。 探索で評価方法を決めることはありません。 リークのセルは、すべてのターゲットを含む生データのファミリーに対する定性的な フラグです。それ以外のファミリーでは templates/family.py のみを使います (TableReport と重複のみ)。ターゲットを含まないファミリーには、 リーク、ターゲット、二変量のセルを設けないでください。 結合したモデリングテーブルを永続化しないでください。
  • ノートブックの前にファミリーを確認します。 データファイルが複数ある場合は、 AskUserQuestion でグループ分けを尋ねます(推奨はありません)。 選択肢は、提案したグループ分けを使う/各ファイルを個別にプロファイルする/ 自分でグループ分けを説明する、です。拡張子、名前のパターン、または ヘッダー/スキーマの確認結果からクラスターを提案し、汎用的なスラッグ (family_a)を使います。ファミリーを勝手に作成する場合は、質問でスラッグを 提案するのではなく、回答後に作成します。ファイルが1つの場合は、この質問を省略します。
  • このターンで 使用するシンボルに対して api get を実行します (キャッシュヒットも含みます)。TableReport.json() のキーは変動するため、 .get(...) を使います。
  • data_analysis/data_analysis.py は1つだけ作成します。 確認済みのファミリーごと (またはユーザーが指定した場合はファイルごと)に、TableReport のセルを繰り返します。 再実行するとその場で上書きされます。デフォルトのノートブックには、 これらのテンプレートと、一致するターゲット用スニペットのみを含めます。 追加のヒストグラム、sns.heatmap/関連性行列、ユニーク値の比率 (nunique()/n)、列の辞書、report.json() のセルを追加しないでください。 重複を表示するセルでは、重複数だけを出力します。一意率や nunique()/n は 出力しません。リークはコメントではなくテンプレートの表に記録します。 ターゲットが1つの場合は、templates/target_regression.py/ target_classification.py 内で seaborn の displot を使い (記述統計とターゲットの図を1つ)、ファセット付きの relplot を1つ作成して bivariate_grid.png を出力します。回帰ターゲットが複数ある場合は、 templates/target_multioutput_regression.py を1回だけ使い (target_distributions.png、bivariate_targets.png)ます。 それに加えて単一ターゲット用のスニペットをコピーしたり、 TableReport の隣に別のターゲットヒストグラムを追加したりしないでください。 最後の式は g にします。デフォルトの経路では matplotlib.pyplot を import しないでください。
  • モデルを設計しないでください。 示唆事項は data_analysis.md のみに記載します。
  • data_analysis/ を gitignore に追加しないでください。ユーザーから依頼された場合は、 setup-git を使って特定の生データのパターンを無視します (デフォルトでは何もしません)。

事前確認

- [ ] Setup: pending empty | load setup-ml-project and stop
- [ ] Detect: status.data_analysis present|skipped|missing
- [ ] G-DATA-ANALYSIS: run | skip when the analysis file is absent (skip → JOURNAL only, STOP). present → keep or re-run; never write skipped
- [ ] G-TABULAR + add frame lib + skrub + matplotlib + seaborn
- [ ] Targets: inferred | AskUserQuestion | none
- [ ] Families: one file | AskUserQuestion grouping
- [ ] Load plot-ml-figure if installed; place
      data_analysis/data_analysis.py from the template (edit to
      the live path); do not execute it
- [ ] scratch/data_analysis/materialize.py once → HTML, figures,
      <slug>.json per family, extras.json
- [ ] notebook fill when policy.notebooks is true
- [ ] Author data_analysis.md + JOURNAL
- [ ] Preview `site build` if `policy.site` (skip on G-DATA-ANALYSIS skip)
- [ ] AskUserQuestion five options, including Close (skip if user
      already closed the turn)

チェックを入れてから、対応するステップを実行します。根拠を添えてチェックリストを再出力します。Close の後にのみターンを終了します。

実行前

G-DATA-ANALYSIS、G-TABULAR、対象、およびファミリーの解決後、最初の書き込みの直前に、自然な文を1~3文ですぐに出力します。これはローカル計算であり、確認済みのテーブルファミリー全体をプロファイリングし、該当する重複/ターゲット/二変量/リーケージ分析を実行して、data_analysis/ の HTML/図と scratch/data_analysis/ の JSON 事実情報を書き出すことを伝えます。データの範囲とレポートのパスを明記します。説明として事前確認をそのまま出力してはいけません。

コストは推測ではなく、事実に基づいて説明します。TableReport とリクエストされたプロットの処理量は、テーブルのサイズとファミリーの数に応じて増減します。測定済みの所要時間がすでにわかっている場合を除き、所要時間はこれらの要素によって異なると伝え、分数をでっち上げてはいけません。このプレビューは一度だけ出力し、編集のたびに繰り返してはいけません。新たに選択された追加項目によって作業が実質的に変わる場合にのみ更新します。

自動探索/方法論の検討はLLM によるリサーチであり、モデルのフィッティングやテストではありません。記録済みの EDA に基づいて推論すること、スクラッチのリサーチメモを作成する場合があること、ローカル分析を行う前に測定方法の選択ボードで停止することを伝えます。

必須のゲートが未完了の場合は、実行される可能性のある作業をプレビューしますが、ノートブックへの書き込みや実行は行いません。

手順(実行経路)

  1. まず TARGETS と、列ごとに1つのタスク(classification または regression)を決定します。リストが空の場合、ターゲットはありません。 回帰列が2つ以上ある場合は、マルチ出力回帰です。ファミリーを決定します (上記の停止条件を参照)。適合する場合は templates/data_analysis.py をコピーしてから編集します — 使用しない分岐を貼り付けないでください。最初のファミリーは、 ターゲットが1つ以上ある場合、すべてのターゲットを含むファミリーです。 <pkg>、<LOAD_RAW_DATA>(そのファミリーのシャードをメモリ内で結合したもの。 _source_file は任意)、<slug>(Python の識別子)を置き換えます。 それ以降の各ファミリーには templates/family.py を使います(<OTHER_SLUG>、 <LOAD_OTHER>)。ターゲットが1つの場合は、 templates/target_regression.py または templates/target_classification.py を追加し、最初のファミリーのロードセルで TARGET を設定します。回帰ターゲットが2つ以上ある場合は、 templates/target_multioutput_regression.py を1回追加し、 TARGETS をそのリストに設定します。ターゲットがない場合、分類列が複数ある場合、 または混在している場合は、これらのスニペットを追加せず、 TARGET / TARGETS も割り当てません。ファミリーに日時列がある場合は、 そのファミリーに templates/datetime.py を使います(数値ターゲットが ちょうど1つでない限り、relplot セルを削除します)。列名を共有する 2つのファミリーがある場合は、<OTHER_FRAME> を使って templates/drift.py を追加します。スキーマが互いに異なる場合、 デフォルトの実行ではドリフト分析を行いません。ここでは結合網羅率のセルを 追加しないでください。生成するノートブックに if TARGET、if TASK、 OTHER = None、空の日時ループ、「このセルをスキップ」を含めてはいけません。 図のセルを書き始める前(この最初の書き込みも含む)に、 インストール済みなら plot-ml-figure をロードします。Markdown は この分析について記述します。書き込み後に python -m skore_skills style を実行します。このファイルは実行しないでください。

  2. templates/materialize.py を scratch/data_analysis/materialize.py にコピーします。<pkg>、 <TARGETS>、<TASKS>、<ANALYSIS> ブロックを置き換えます。 <ANALYSIS> ブロックには、人間が読むファイルと同じロード処理、 TableReport.html_snippet() の書き込み、図または HTML の保存を指定します。 <TARGETS> は列名のリストです(ターゲットがない場合は [])。 <TASKS> は classification | regression の並列リストで、 共同スニペットがない列も含めます。ファミリーごとに1回ロードします。 FAMILIES を (slug, raw) としてバインドし、すべてのターゲットを含む pandas フレームに FRAME をバインドします。末尾部分はそのまま残します。 このファイルを1回実行します。 TableReport の HTML、図、<slug>.json、extras.json が書き出されます。 data_analysis/data_analysis.py は実行しないでください。notebook convert も cells run も実行しないでください。<slug>.json と extras.json を読みます。

  3. status.policy.notebooks と status.policy.site を読みます。 notebooks が true の場合は、 python -m skore_skills notebook fill data_analysis/data_analysis.py を実行します。site も true の場合に限り --html を追加します。Fill はファイルを実行しません。必要なのは jupytext と nbformat であり、nbclient、ipywidgets、IPython は不要です。 notebooks が null または false の場合、ポリシーは変更せず、fill も行いません。 実行するのは引き続き materialize.py のみです。

  4. templates/data_analysis.md を元に data_analysis/data_analysis.md を作成します。概要(ファミリーごとに iframe を1つ、 それ以外は記載しない)、モデリングへの示唆(特徴量エンジニアリングの 候補を含める)、未解決の疑問を記述します。レポートと図は埋め込み、 リンクにはしません。![](<name>.png) または HTML iframe (<iframe src="<slug>.html" …>)は、裏付けとなる示唆の横に配置し、 概要には置きません。概要には TableReport のみを記載します。 extras["pngs"] と extras["htmls"] のすべてのパスを埋め込み、 それぞれに、これらの JSON ファイル(またはノートブックの要約表)の数値を 引用する一文を添えます。そのような一文の根拠にならない図は保存しないでください。 主張は両方の JSON ファイルと HTML に基づかせます。列を捏造しないでください。

  5. JOURNAL の § Data understanding 表では、Status セルの設定に python -m skore_skills eda stamp --status done を実行します。日付を手入力しないでください。 短い要約(形状、各ターゲットのバランスまたは偏り、モデリングに影響する所見を1~2点)と、 レポート [data_analysis/data_analysis.md](../data_analysis/data_analysis.md) を記載します。 スキップする場合は eda stamp --status skipped のみを実行します。 スキップ時は fill も git end-turn も実行しないでください。

  6. 継続ボード — ユーザーがすでにターンを終了している場合 (「EDA は完了です」「ターンを終了してください」など)を除き、 policy.site が true で export-ml-site がインストール済みなら、まず python -m skore_skills site build --if-stale を実行します。それ以外の場合は その旨を1行で示してスキップします。site build が mkdocs-material is required のエラーで失敗した場合は、 add-python-package をロードして mkdocs-material をエージェントに追加し、 もう一度だけビルドします。pixi add / uv add は実行しないでください。 そのスキルがない場合、または再試行も失敗した場合は、エラーを1行で示します。 ビルドエラーの名前を示してください。ゲート判定には失敗しません。 ビルドを実行した場合、またはサイトが最新だと報告された場合は、ウェブサイトが 更新されたことを伝え、出力にある file:// の行をそのまま貼り付けます。 data_analysis.md や html/data_analysis.html には言及しないでください。 このプレビューでは notebook fill も git end-turn も実行しないでください。 続いて AskUserQuestion で1つ選択してもらいます。何も推奨または事前選択しません。 最初の md の後は、トリアージによってここに案内された場合も含め、必ず質問します。 このボードでは「extra-analyses」や「standard extra analysis」と言わないでください。

    ラベルサブタイトル
    事前定義された追加オプションを選択該当する項目のみを指定してください:相互作用/pairplot、PCA、仮説検定、サブグループ、時系列、テキストまたは地理、結合キー/カバレッジ(2 つ以上のファミリー)
    探索を拡張するクエリを入力ノートブックに追加する分析(テーブル、検定、またはプロット)を説明してください
    データと問題に関連する自動探索探索中の問題とデータに関連する詳細な調査を行います
    プロットを説明グラフを指定すると、そのためのセルを追加します
    閉じるこの段階を終了します。分析を追加しないでください。

    閉じる → ターン終了(ユーザー向けの終了)。data_analysis.md を書き換えないでください。 残りの 4 つの選択肢は 探索を続ける に進み、同じ選択肢についてこのボードを再度表示しないでください。重複/ターゲット/リークは、「未解決の質問」だけでなく、「モデリングへの影響」に含めてください。

元のプロンプトですでに追加項目(例:PCA)が指定されている場合は、そのセルをステップ 1 に含め、その追加項目について再度質問しないでください。

インポートの失敗 → add-python-package。回避策を使わないでください。

更新(すでに done で、ユーザーが追加のプロットを求めている場合):人が編集するファイルと <ANALYSIS> ブロックを編集し、materialize.py を 1 回実行して、ノートブックがオンになったら入力し、その後ステップ 4~6 に進みます。G-DATA-ANALYSIS を再度質問しないでください。

status.data_analysis が存在する間の方法論に関する懸念(リーク/「これを調査して」):G-DATA-ANALYSIS をスキップし、ノートブックを上書きしないでください。その懸念を指定して 探索を続ける の §「自動探索」に進みます(定型の追加分析アンケートはスキップします)。

図のセルを作成または書き換える前に、インストールされていれば必ず plot-ml-figure を読み込んでください。テンプレートを理由に、プロット作成の担当ワーカーを省略してはいけません。スキルがない場合は、スキップする旨を 1 行で示し、それでもこのツリーに従ってください(統計的なプロットは seaborn、単純なチャートは pandas、最後に matplotlib)。ノートブックのセル内で plt.close を呼び出さないでください。PNG を保存してから、セルの出力として図/グリッドを残してください。

探索を続ける

別個のエクスポート工程や git end-turn はありません。人間が編集するファイルを編集すると <ANALYSIS> も編集され、その後 materialize.py が一度だけ実行され、ノートブックが有効な場合は fill が実行されます。md が書き換えられるまで、サイトを二度目にビルドしないでください。このターン中は、チャット、チェックリスト、ボードのいずれでも「extra-analyses」や「standard extra analysis」と言わないでください。ファイル references/extra_analyses.md はパスとしてのみ名前を挙げてもかまいません。 継続ボードはすでに尋ねてあります。選ばれた項目に対応してください。続けるか終了するかを尋ねず、この選択についてボードを繰り返さないでください。

  1. 事前定義オプション — レシピファイル references/extra_analyses.md(パスのみ。チャットで「extra-analyses」と言わないでください)。独自の allow_multiple ボードを使用します。質問の最終行は正確に次のとおりです。選びたいものをすべて選択してください。 この行の後には何も書かないでください。図のセルを実行する前に、インストールされていれば plot-ml-figure を読み込んでください。

  2. クエリ — ユーザーの分析リクエストを待ちます。セルを追加してください(図がある場合は plot-ml-figure を読み込みます)。定型の調査アンケートではありません。その後、更新手順を実行します。

  3. 自動探索 — インストールされていれば、ステージ data_analysis と、以下の定型アンケートの懸念事項を指定して research-ml-practice を読み込みます。スキルがない場合は、1 行でスキップを伝え、別の site build は行わずに 5 項目のボードを再度提示します。インテークは尋ねないでください。JOURNAL、data_analysis.md(示唆と未解決の質問)、scratch/data_analysis/extras.json をコンテキストとして渡します。ワーカーは検索の前に問題のクラスを抽象化します(データセット固有の正式名称は使いません)。定型の質問:

    JOURNAL にある問題の種類(分野、タスク、制約)と、EDA ですでに確認された構造の種類(データセットの正式名称ではありません)を踏まえると、このような未加工のテーブルに対して、今後も実施する価値のある追加測定は何ですか?

    scratch/research/survey-<slug>.md を読みます。内容をそのままチャットに出さず、チャットで要約します。ツールが実行されなかった場合は、指定された懸念事項(リークの場合は、由来/スコアリング時に利用可能かどうか)について 2 文で述べ、そのうえで measure ボードを提示します。スクラッチファイルを読んだと主張しないでください。未加工の列を削除するよう指示しないでください。すでにノートブックにない、出典が確認できる measure の追加項目のみを対象に、AskUserQuestion を allow_multiple で提示します。どの選択肢も最初から選択済みにしないでください。質問の最終行は正確に次のとおりです。選びたいものをすべて選択してください。 この行でメッセージを終えます。この後にチェックリストを付けないでください。 レシピがある場合は extra_analyses に対応付け、ない場合はカスタムセルを作成します。declare/evaluate/confirm はこのボードに含めず、未解決の質問は調査結果ではなく助言として扱います。調査メモに出典付きで記載されていない限り、未解決の質問をボードに転記しないでください。

    ユーザーが方法論上の懸念(リーク/「これを調査して」)を指定した場合は、定型アンケートを省略します。その懸念を深掘りのために渡し、その後、同じ measure ボードを提示します。ツールが実行されなかった場合は、上記と同様に要約します。未加工の列を削除するよう指示しないでください。

  4. プロットの説明 — インストールされていれば plot-ml-figure を読み込み、セルを追加します。

  5. .py を変更する選択肢の場合:style を適用し、<ANALYSIS> ブロックを一致するように編集して、materialize.py を一度だけ実行します。その後、notebooks が true の場合は notebook fill を実行します(--html を使用するのは site も true の場合のみです)。JSON/PNG/HTML から data_analysis.md を書き換えます(示唆は結果に基づきます)。その後、policy.site が有効なら site build でプレビューし、5 項目のボードを再度提示します(実行経路の手順 6)。分野別のチェックリストを作り出さないでください。

ディスパッチ

triage-ml-task から呼び出されます(explore-the-data のインテント、または data_analysis がない場合にモデリング要求で explore-first を選択)およびユーザーの自由入力から呼び出されます。

呼び出すもの:add-python-package、api get、G-TABULAR 用の choose-python-library /スタック、ユーザーが追加分析の調査または名前付きの方法論に関する懸念を求めている場合にインストール済みなら research-ml-practice、デフォルトのノートブック、追加項目、自由入力、調査の measure を含むすべての図セルの前にインストール済みなら plot-ml-figure、data_analysis.py の後に style。

パッケージが必要ですか? インストール済みなら add-python-package を読み込みます。そうでなければパッケージ名を示して停止します。ここでは env add を使わないでください。

ターンの終了

このブロックは Close の後(またはユーザーがすでにターンを終了している場合)にのみ実行します。Keep exploring ではここに進みません。このブロックで data_analysis.md を書き換えないでください。

ユーザー向けの終了メッセージ

ユーザー向けメッセージは、簡潔な説明とリンクで構成します。Pre-flight でも、Markdown の羅列でも、JOURNAL の表のセルだけでもありません。そのメッセージでは site build、--if-stale、その他のラッパーコマンドを挙げないでください。

  1. まず説明 — この段階の調査結果を 2~6 文で伝えます。モデリング上の示唆/JSON の事実(形状、ターゲット、モデリングに影響するリークや重複)に基づいて記述してください。列を捏造しないでください。data_analysis.md を貼り付けないでください。
  2. こちらを開く — site build を実行した、またはサイトが最新であるとの報告があった場合は、ウェブサイトが更新されたことを伝え、その出力にある file:// の行をそのまま貼り付けます。Markdown ファイルや html/data_analysis.html の名前は挙げないでください。サイトをビルドしていない場合は、更新されたと主張せず、Markdown ファイルの名前も挙げないでください。この段階では Skore ロケーターを含めません。
  3. 正規化されたトークンはその次 — EDA ではなし(G-REPORT-LOCATOR/G-AUDIT-FINDING はありません)。

このスキルが終了処理を担当します。Keep exploring は 1~2 文の要約にとどめます(ビルドを実行した場合は、ウェブサイトが更新されたことと貼り付けた file:// の行を含めます)。fill/git end-turn には進みません。

policy.notebooks が true で、export-ml-notebook がインストール済みであり、この実行で最新のノートブックをすでに書き出していない場合は、python -m skore_skills notebook fill data_analysis/data_analysis.py を実行します。policy.site も true の場合は --html を付けます。run-path のステップ 3 で生成したノートブックは最新です。ユーザーが Close を選んだからという理由だけで、再度 fill を実行しないでください。成果物がすでにこの人間が編集したファイルから作成されている場合は、materialize.py を再実行しないでください。それ以外の場合は、スキップしたことを 1 行で示します。jupytext/nbformat/nbconvert が不足している場合は、add-python-package を挙げてスキップしたことを 1 行で示します。ターンを失敗させず、pixi add も実行しないでください。

次に、policy.site が true で export-ml-site がインストール済みの場合は、永続ファイルがディスクに保存された後に python -m skore_skills site build --if-stale を実行します。それ以外の場合は、スキップしたことを 1 行で示します。site build が mkdocs-material is required でエラーになった場合は、mkdocs-material 用に add-python-package を読み込み(agent)、もう一度だけビルドします。pixi add/uv add は実行しないでください。そのスキルが見つからない場合、または再試行しても失敗する場合は、エラーを 1 行で示します。ビルドエラーは挙げますが、データ分析のターンを失敗させないでください。ビルドを実行した場合は、ウェブサイトが更新されたことを伝え、その出力にある file:// の行をそのまま貼り付けます。Markdown ファイルや html/data_analysis.html の名前は挙げないでください。

python -m skore_skills git end-turn --stage data_analysis を実行します。JSON の action が invoke の場合は、status.skills.persist-ml-git が true の場合にのみ persist-ml-git を読み込み、停止します。そのスキルは triage に戻ります。persist がない場合は、保留中の staged パスを挙げて停止します。それ以外の場合は、status.skills.triage-ml-task が true の場合にのみ triage-ml-task を読み込み、それ以外は停止します。git commit は実行しないでください。

コメント