method-optimize skill
scripts交差検証と実験トラッキングを用いて、モデル、プロンプト、またはパイプラインを改善するための、制約付きでメトリクスに基づいた実験ループを実行します。
- GitHubスター
- 6
- ファイル
- 18
- 最終コミット
- 2026年10月31日
- ライセンス
- MIT
- 許可されたツール
- —
method-optimize skillは何をしますか
method-optimizeはAgent Skillsです。 交差検証と実験トラッキングを用いて、モデル、プロンプト、またはパイプラインを改善するための、制約付きでメトリクスに基づいた実験ループを実行します。.
skillのSKILL.mdから生成された要約。
method-optimize skill について
method-optimizeは、制御された実験を通じて、モデル、プロンプト、またはワークフローのパフォーマンスを向上させます。この機能は、テストセットに触れることなく結果の妥当性を確保するため、トレーニングセットまたは検証セットに対して交差検証を行う、制約付きでメトリクスに基づいたループを実行します。特徴量と正規化がトレーニングフォールド内でのみ適合されることを保証することで、データリークを防ぎます。
開発者は、最適化仕様のYAMLを提供するか、特定の目標を記述することでこのSKILLを使用します。プロセスは、実行を管理するために measure.sh、parallel-probe.sh、experiment-worktree.sh などのバンドルされたシェルスクリプトに依存しています。また、mlflow、wandb、dvc などの実験トラッキングツールと統合し、すべての仮説、ハイパーパラメータの変更、およびメトリクスをログに記録します。このSKILLは、ベースラインの確立や仮説の生成から、シリアルまたはパラレルモードでの実験バッチの実行まで、ライフサイクル全体を管理し、最終的に最適な候補と残留リスクの要約を生成します。
エージェントができること
- 1自動トラッキングによる実験の実行開発者は、ハイパーパラメータとメトリクスの外部トラッキングプラットフォームへのログ記録を自動化できます。
- 2機械学習におけるデータリークの防止モデルの最適化が、誤ってテストセットの情報を使用しないようにします。
- 3中断された最適化タスクの再開セッションの中断後、最後に成功したチェックポイントから長時間実行される実験ループを続行します。
skill の SKILL.md から作成されています。すべてのユースケースは、その引用と照合されています。
method-optimize skillのインストール方法
各コマンドはskillフォルダをクライアントのskillsディレクトリにコピーします。読み込むには、クライアントを再起動するか新しいセッションを開始してください。プラグインにmethod-optimize skillをインストールする
/plugin marketplace add sajor2000/methodsmith /plugin install methodsmith@methodsmith
Claude Codeにmethod-optimize skillをインストールする
~/.claude/skills/method-optimize/SKILL.md
$ npx degit sajor2000/methodsmith/plugins/methodsmith/skills/method-optimize ~/.claude/skills/method-optimizeClaude Code (project)にmethod-optimize skillをインストールする
.claude/skills/method-optimize/SKILL.md
$ npx degit sajor2000/methodsmith/plugins/methodsmith/skills/method-optimize .claude/skills/method-optimizeCodexにmethod-optimize skillをインストールする
~/.agents/skills/method-optimize/SKILL.md
$ npx degit sajor2000/methodsmith/plugins/methodsmith/skills/method-optimize ~/.agents/skills/method-optimizeGemini CLIにmethod-optimize skillをインストールする
~/.gemini/skills/method-optimize/SKILL.md
$ npx degit sajor2000/methodsmith/plugins/methodsmith/skills/method-optimize ~/.gemini/skills/method-optimizeClaude.aiにmethod-optimize skillをインストールする
npx degit sajor2000/methodsmith/plugins/methodsmith/skills/method-optimize method-optimize && zip -r method-optimize.zip method-optimize # claude.ai → Customize → Skills → + → Create skill → Upload a skill → method-optimize.zip
SKILL.md
GitHubで表示Iterative Optimization Loop
Skill Value
- Problem it solves: Optimization work drifts when success metrics, samples, judges, and stopping criteria are unclear.
- Use when: The user wants to optimize a prompt, workflow, model behavior, or scored process.
- Output: An optimization spec, scored iterations, winning candidate, and residual risks.
- Ask only if: Only when objective, sample set, scoring rubric, or acceptable tradeoff is unclear, or at the resume, baseline-approval, new-dependency, and wrap-up decision points.
- Do not do: Do not optimize without a measurable target or representative cases.
- Interaction: Check repo/config/chat evidence first. Ask one decision-changing question at a time; use the current harness's blocking question UI when available, otherwise present numbered choices and wait.
Data Science Guardrails
- Cross-validation awareness. Never optimize on the test set. Every iteration evaluates via cross-validation on the training set (or a held-out validation split); the test set is scored once, for the final locked result, in Phase 4. The best CV score after many iterations is optimistic by selection (Cawley & Talbot, JMLR 2010): report the held-out test score as the estimate, use nested CV or a fresh split when the test set is small or absent, and on small data compare candidates by paired per-fold differences.
- Data leakage guard. Before measuring each experiment, verify features do not use the outcome; normalization, encoding, imputation, feature selection, and oversampling (e.g., SMOTE) are fit inside training folds only; thresholds never see the test set; one patient's encounters stay in one fold; predictors exist at prediction time; and temporal ordering holds for time-series splits (Kapoor & Narayanan, Patterns 2023, PMID 37720327). On a leakage signal, abort with a FAIL verdict (log
degeneratewith the reason) instead of recording the metric. - Experiment tracking integration. When
method-ml-trackis configured (mlflow, wandb, dvc, or offline-YAML), log each iteration there (hypothesis, hyperparameters changed, metrics, kept/reverted). - SAP alignment check. If a SAP exists (default
analysis/sap.md, or any markdown file withsap_versionin frontmatter), confirm the optimization target aligns with its primary endpoint. If it differs, warn before starting and require explicit user confirmation. - Reproducibility seeds. Record every random seed that affects the metric (CV split, model initialization, resampling, judge
sample_seed) in the spec; hold them fixed across baseline and experiments.
Input
<optimization_input> #$ARGUMENTS </optimization_input>
If the input above is empty, ask: "What would you like to optimize? Describe the goal, or provide a path to an optimization spec YAML file."
Bundled Scripts
Phases 1 and 3 run measure.sh, parallel-probe.sh, and experiment-worktree.sh from this skill's scripts/. The shell starts in the user's project: in every block replace the <absolute path ...> placeholder with the directory this SKILL.md was loaded from. If a block prints method-optimize: ... not found, fix SKILL_DIR and rerun; never use a relative scripts/ path or skip the step. The scripts need bash, git, and timeout/gtimeout or Python 3 (python3, python, py); they fail clearly when missing.
References
Read each references/ file at the step that names it. Also: references/example-hard-spec.yaml and references/example-judge-spec.yaml when starting a first spec; references/usage-guide.md when the user asks what this skill is for or how to choose hard vs judge; references/judge-prompt-template.md for judge scoring (Phases 1.3 and 3.3).
First run: start from an example spec with execution.mode: serial, execution.max_concurrent: 1, stopping.max_iterations: 4, stopping.max_hours: 1, no new dependencies until the baseline and harness are trusted, and in judge mode sample_size: 10, batch_size: 5, max_total_cost_usd: 5.
Persistence Discipline
The experiment log on disk is the single source of truth; results that exist only in conversation will be lost. State lives under .context/methodsmith/method-optimize/<spec-name>/ (gitignored local scratch; not preserved by commits or pushes).
- Write each result to disk immediately after measurement, read it back with the native file-read tool, and confirm it before the next step. Retry once; if it fails twice, alert the user.
- Re-read from disk at every phase boundary and before every decision.
- During Phase 3 the log is append-only: append entries, update
bestin place only on a new best, never rewrite the whole file. - Measure -> write to disk -> verify -> then show the user. Never the reverse.
Checkpoints CP-0 (spec) through CP-5 (final summary) are named at the step that writes them.
On Resume (Phase 0.4): treat the log as ground truth; recover measured-but-unlogged experiments from worktree result.yaml markers; continue from the last logged iteration. Present the Phase 1.7 gate again unless this session saw the user approve it.
Phase 0: Setup
0.1-0.2 Load or Create Spec
If the input is a spec path (.yaml/.yml), validate it per references/spec-validation.md against references/optimize-spec-schema.yaml; on failure, report the errors and ask the user to fix them.
If the input is a description, read references/spec-design.md and follow it (hard vs judge, sampling and rubric, remaining fields), validate it per references/spec-validation.md, then save and get approval (CP-0).
0.3 Search Prior Learnings
Dispatch method-learnings-researcher for prior optimization work on similar topics.
0.4 Run Identity Detection
Run git rev-parse --verify "optimize/<spec-name>". If the branch exists, look for .context/methodsmith/method-optimize/<spec-name>/experiment-log.yaml and ask with the platform's blocking question tool:
- Resume: follow On Resume above
- Fresh start: archive the old branch to
optimize-archive/<spec-name>/archived-<timestamp>, clear the experiment log, start from scratch
0.5 Create Optimization Branch and Scratch Space
Run git checkout -b "optimize/<spec-name>" (switch to the existing branch when resuming), then mkdir -p .context/methodsmith/method-optimize/<spec-name>/.
Phase 1: Measurement Scaffolding
HARD GATE: the user must approve the baseline and parallel readiness before Phase 2.
1.1 Clean-Tree Gate
Filter git status --porcelain against scope.mutable and scope.immutable. If any in-scope file has uncommitted changes, report them and ask the user to commit or stash. Do not continue until in-scope files are clean.
1.2 Build or Validate Measurement Harness
If measurement.command already exists, run it once:
SKILL_DIR="<absolute path of the directory containing this SKILL.md>";
if [ ! -f "$SKILL_DIR/scripts/measure.sh" ]; then echo "method-optimize: scripts/measure.sh not found under SKILL_DIR=$SKILL_DIR" >&2; exit 1; fi;
bash "$SKILL_DIR/scripts/measure.sh" "<measurement.command>" <timeout_seconds> "<measurement.working_directory or .>"
Validate that the JSON has numeric or boolean values for every degenerate gate and diagnostic; otherwise report what is missing and ask the user to fix the harness.
If the agent must build the harness: analyze what to measure; write an evaluation script (e.g., evaluate.py, evaluate.R) that scores on CV folds or a validation split with fixed seeds and never reads the test set; add it to scope.immutable; run it through measure.sh (block above), validate the output, and present harness and output to the user.
1.3 Establish Baseline
Run the harness on the current code. With stability mode repeat, run it repeat_count times, aggregate with the configured method (median, mean, min, max), and if variance exceeds noise_threshold, warn and suggest a larger repeat_count. Record baseline (timestamp, gates, diagnostics) per the log schema. If the primary type is judge, also score the baseline per the Judge scoring section of references/loop-details.md.
1.4 Parallelism Readiness Probe
SKILL_DIR="<absolute path of the directory containing this SKILL.md>";
if [ ! -f "$SKILL_DIR/scripts/parallel-probe.sh" ]; then echo "method-optimize: scripts/parallel-probe.sh not found under SKILL_DIR=$SKILL_DIR" >&2; exit 1; fi;
bash "$SKILL_DIR/scripts/parallel-probe.sh" "<project_directory>" "<measurement.command>" "<measurement.working_directory>" <shared_files...>
Present blockers with mitigations. The probe inspects only the measurement command, its working directory, and declared shared files; GPU use forces serial mode.
1.5 Worktree Budget Check
SKILL_DIR="<absolute path of the directory containing this SKILL.md>";
if [ ! -f "$SKILL_DIR/scripts/experiment-worktree.sh" ]; then echo "method-optimize: scripts/experiment-worktree.sh not found under SKILL_DIR=$SKILL_DIR" >&2; exit 1; fi;
bash "$SKILL_DIR/scripts/experiment-worktree.sh" count
If count + execution.max_concurrent would exceed 12 (a default disk-pressure cap, not a hard limit), warn and suggest cleanup or a lower max_concurrent. Do not block.
1.6 Write Baseline to Disk (CP-1)
Before presenting results, create experiment-log.yaml per references/experiment-log-schema.yaml (spec, run_id, started_at, baseline, experiments: [], best seeded from the baseline with iteration: 0 and spend totals at 0). Read it back and confirm the baseline values match.
1.7 User Approval Gate
Present with the platform's blocking question tool: baseline gates, diagnostics, judge scores, seeds; log path; probe blockers and mitigations; clean-tree status; worktree use; and spend (estimated cost per experiment, judge cap metric.judge.max_total_cost_usd, whole-run cap stopping.max_total_cost_usd). Say plainly which spend is capped; with neither cap, only iteration and hour limits bound it.
Options:
- Proceed: approve baseline and parallel config, move to Phase 2
- Adjust spec: change settings, then rerun Phase 1 so the baseline matches
- Fix issues: the user resolves blockers first
Do not proceed to Phase 2 until the user explicitly approves. If the primary type is judge and metric.judge.max_total_cost_usd is null, call it out as uncapped judge spend and require explicit approval.
Phase 2: Hypothesis Generation
After approval, read references/hypothesis-generation.md and follow it: generate a backlog of hypotheses (default 10-30; scale to the search space and budget, dropping any that need the outcome, test-set data, or future information), pre-approve new dependencies with the blocking question tool, and write the backlog (CP-2).
Phase 3: Optimization Loop
Repeat in batches until a stopping criterion is met.
3.1 Batch Selection
- Exclude
dep_status: needs_approvalfrom the runnable backlog serialmode:batch_size = 1; otherwisemin(runnable_backlog_size, execution.max_concurrent)- Shrink the batch until its estimated worker and judge cost fits every configured spend cap; if not even one fits, stop with "spend cap reached" (3.6)
- Prefer diversity across categories; within a category, high priority first
If no hypotheses remain or none are runnable, go to Phase 4.
3.2 Dispatch Experiments
serial mode runs one experiment to completion before selecting the next; parallel mode dispatches the full batch concurrently. Fill references/experiment-prompt-template.md with: iteration and spec name; hypothesis and category; current best and baseline metrics; mutable and immutable scope; constraints and approved dependencies; the last 10 experiments as concise summaries.
Worktree backend: create the worktree with experiment-worktree.sh create (optimize-exp/<spec_name>/exp-<NNN>), apply port parameterization if configured (env vars for the measurement script), then dispatch a subagent with the filled prompt in that worktree:
SKILL_DIR="<absolute path of the directory containing this SKILL.md>";
if [ ! -f "$SKILL_DIR/scripts/experiment-worktree.sh" ]; then echo "method-optimize: scripts/experiment-worktree.sh not found under SKILL_DIR=$SKILL_DIR" >&2; exit 1; fi;
WORKTREE_PATH=$(bash "$SKILL_DIR/scripts/experiment-worktree.sh" create "<spec_name>" <exp_index> "optimize/<spec_name>" <shared_files...>);
echo "$WORKTREE_PATH"
Codex backend: read references/codex-dispatch.md and follow it. In an active coding task, dispatch through the platform subagent primitive, never nested codex exec.
3.3 Collect and Persist Results
Process experiments as they complete. For each, immediately:
- Leakage check (Guardrail 2) on its diff. On a signal, record
degeneratewith the reason, write CP-3, and move on. - Measure in its worktree (with
repeat, runrepeat_counttimes and aggregate as in 1.3; note excess variance in learnings):SKILL_DIR="<absolute path of the directory containing this SKILL.md>"; if [ ! -f "$SKILL_DIR/scripts/measure.sh" ]; then echo "method-optimize: scripts/measure.sh not found under SKILL_DIR=$SKILL_DIR" >&2; exit 1; fi; bash "$SKILL_DIR/scripts/measure.sh" "<measurement.command>" <timeout_seconds> "<worktree_path>/<measurement.working_directory or .>" <env_vars...> - Write
result.yamlwith the raw metrics in the worktree. - Degenerate gates: if any
metric.degenerate_gatescheck fails, markdegenerateand skip judging. - Score:
harduses the metric from the measurement output;judgefollows the Judge scoring section ofreferences/loop-details.md. - Append the entry (CP-3): iteration, hypothesis, outcome
measured, metrics, learnings. Verify it is on disk before moving on.
On a crash, timeout, or malformed output, follow the Errors section of references/loop-details.md.
3.4-3.5 Evaluate Batch and Update State (CP-4)
After every experiment in the batch is measured and logged, read references/batch-evaluation.md and follow it: rank against the current best, keep the winner (commit only mutable-scope changes, merge), handle runner-ups (Runner-up merges section of references/loop-details.md), revert the rest, then write and verify outcomes, best, spend totals, strategy-digest.md, and the refreshed backlog before reporting progress (Progress reporting section of references/loop-details.md).
3.6 Check Stopping Criteria
Stop if ANY holds:
- Target reached:
stopping.target_reachedis true,metric.primary.targetis set, and the primary metric reaches it (>=for maximize,<=for minimize) - Max iterations: experiments run >=
stopping.max_iterations - Max hours: time since Phase 3 started >=
stopping.max_hours - Spend cap reached: recorded spend plus the next dispatch's estimate would pass
metric.judge.max_total_cost_usdorstopping.max_total_cost_usd. Check it before every dispatch that costs money, including Phase 2 research and judge passes - Plateau: no improvement for
stopping.plateau_iterationsconsecutive experiments - Manual stop: save state, then go to Phase 4
- Empty backlog: no hypotheses remain or can be generated
Otherwise return to 3.1.
Phase 4: Wrap-Up
Read references/wrap-up.md and follow it: present deferred hypotheses, summarize results, offer next steps, lock the final result on the held-out test set (when one exists), and write CP-5 once the user picks an option that does not return to Phase 3.
このスキルのファイル
18method-optimize skillに関する質問
Claude Codeにmethod-optimize skillをインストールするには
npx degit sajor2000/methodsmith/plugins/methodsmith/skills/method-optimize ~/.claude/skills/method-optimizeを実行してください。Claude Codeは~/.claude/skills(すべてのプロジェクト)または.claude/skills(単一プロジェクト)からskillsを読み込み、説明がタスクに一致する場合にskillを使用します。
method-optimize skillはどのクライアントで使用できますか
Agent Skills形式を読み込むすべてのクライアントで使用できます: Claude Code、Codex、Gemini CLI、claude.ai(ZIPとしてアップロード)。skill内のスクリプトは、クライアントがコード実行を許可した場合にのみ実行されます。
テストセットを使用して最適化できますか?
いいえ、テストセットを使用して最適化することは決してしないでください。各イテレーションでは、トレーニングセットまたは保持された検証分割に対して交差検証を行い、テストセットは最終結果のスコアリングに一度だけ使用されます。
データリークにはどのように対処しますか?
このSKILLは、特徴量が結果を使用していないこと、および正規化や補完などのすべての前処理ステップがトレーニングフォールド内でのみ適合されていることを検証します。リークの兆候が検出された場合、実行は中止され、FAIL判定が下されます。
以前の最適化実行を再開する必要がある場合はどうすればよいですか?
このSKILLは既存の最適化ブランチを検出し、ディスク上の実験ログを信頼できる唯一の情報源として使用して、測定済みの実験を復元し、最後にログに記録されたイテレーションから続行します。