explore-ml-data について
プロジェクト単位の探索的データ分析を行い、Notebook、HTML レポート、簡潔な分析文書、JOURNAL の索引行を作成するスキルです。後続のモデリングに向けたデータ把握に使えます。
主な機能
- 01プロジェクト単位の探索的分析
- 02Notebook と HTML レポートの生成
- 03レポートを埋め込むデータ概要
- 04重複とターゲットの分析
活用シーン
- 01モデリング前のデータセット把握
- 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.mdextra_analyses.mdtemplates/data_analysis.mddata_analysis.pydatetime.pydrift.pyfamily.pyjoin_coverage.pymaterialize.pytarget_classification.pytarget_multioutput_regression.pytarget_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 に基づいて推論すること、スクラッチのリサーチメモを作成する場合があること、ローカル分析を行う前に測定方法の選択ボードで停止することを伝えます。
必須のゲートが未完了の場合は、実行される可能性のある作業をプレビューしますが、ノートブックへの書き込みや実行は行いません。
手順(実行経路)
-
まず
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を実行します。このファイルは実行しないでください。 -
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を読みます。 -
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のみです。 -
templates/data_analysis.mdを元にdata_analysis/data_analysis.mdを作成します。概要(ファミリーごとに iframe を1つ、 それ以外は記載しない)、モデリングへの示唆(特徴量エンジニアリングの 候補を含める)、未解決の疑問を記述します。レポートと図は埋め込み、 リンクにはしません。または HTML iframe (<iframe src="<slug>.html" …>)は、裏付けとなる示唆の横に配置し、 概要には置きません。概要には TableReport のみを記載します。extras["pngs"]とextras["htmls"]のすべてのパスを埋め込み、 それぞれに、これらの JSON ファイル(またはノートブックの要約表)の数値を 引用する一文を添えます。そのような一文の根拠にならない図は保存しないでください。 主張は両方の JSON ファイルと HTML に基づかせます。列を捏造しないでください。 -
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も実行しないでください。 -
継続ボード — ユーザーがすでにターンを終了している場合 (「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 はパスとしてのみ名前を挙げてもかまいません。
継続ボードはすでに尋ねてあります。選ばれた項目に対応してください。続けるか終了するかを尋ねず、この選択についてボードを繰り返さないでください。
-
事前定義オプション — レシピファイル
references/extra_analyses.md(パスのみ。チャットで「extra-analyses」と言わないでください)。独自のallow_multipleボードを使用します。質問の最終行は正確に次のとおりです。選びたいものをすべて選択してください。 この行の後には何も書かないでください。図のセルを実行する前に、インストールされていればplot-ml-figureを読み込んでください。 -
クエリ — ユーザーの分析リクエストを待ちます。セルを追加してください(図がある場合は
plot-ml-figureを読み込みます)。定型の調査アンケートではありません。その後、更新手順を実行します。 -
自動探索 — インストールされていれば、ステージ
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ボードを提示します。ツールが実行されなかった場合は、上記と同様に要約します。未加工の列を削除するよう指示しないでください。 -
プロットの説明 — インストールされていれば
plot-ml-figureを読み込み、セルを追加します。 -
.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、その他のラッパーコマンドを挙げないでください。
- まず説明 — この段階の調査結果を 2~6 文で伝えます。モデリング上の示唆/JSON の事実(形状、ターゲット、モデリングに影響するリークや重複)に基づいて記述してください。列を捏造しないでください。
data_analysis.mdを貼り付けないでください。 - こちらを開く —
site buildを実行した、またはサイトが最新であるとの報告があった場合は、ウェブサイトが更新されたことを伝え、その出力にあるfile://の行をそのまま貼り付けます。Markdown ファイルやhtml/data_analysis.htmlの名前は挙げないでください。サイトをビルドしていない場合は、更新されたと主張せず、Markdown ファイルの名前も挙げないでください。この段階では Skore ロケーターを含めません。 - 正規化されたトークンはその次 — 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 は実行しないでください。