本文へ移動
cccskills
無料GitHub で公開

experiment

実験駆動の反復改善ループ(autoresearch 方式)。毎回フレッシュなサブエージェントで 1変更→測定→保持 or revert。progress.md がイテレーション間の記憶。

パフォーマンス最適化、リファクタリング、UI改善、バグ修正の試行錯誤に使う。「最適化して」「パフォーマンス改善」「リファクタリング」「試行錯誤して」「実験的に改善」で発動。

インストール方法を見る

含まれるファイル(1)

  • SKILL.md9.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Experiment - autoresearch 方式の反復改善ループ

毎回フレッシュなコンテキストで実験。記憶はファイルに、判断は毎回リセット。

Sisyphus が計画駆動(要件→設計→実装)なのに対し、Experiment は実験駆動(試す→測る→残す or 戻す)。 autoresearch の原則: コンテキスト劣化を防ぐため、各イテレーションを独立したサブエージェントで実行する。

いつ使うか

  • パフォーマンス最適化(レスポンス時間、メモリ使用量)
  • リファクタリング(品質改善、コード整理)
  • UI/UX 改善(見た目、操作感の調整)
  • バグ修正の試行錯誤(原因が不明で複数のアプローチを試したい)

ゴール

$ARGUMENTS

現在の状態(動的注入)

変更統計

!jj diff --stat 2>/dev/null || git diff --stat HEAD 2>/dev/null || echo "変更なし"

最近のコミット

!jj log -r 'ancestors(@, 5)' --no-graph 2>/dev/null || git log --oneline -5 2>/dev/null || echo "履歴なし"


Step 1: ゴール設定 + progress.md 初期化

ゴール、メトリクス、ベースラインを設定し、progress.md に書き込む。

# Experiment Progress

## Goal
[何を改善するか]

## Metric
[どう測定するか — コマンドを具体的に書く]

## Baseline
[初期測定値]

## Current Best
[現在の最良値 — 初期はベースラインと同じ]

## Iterations
<!-- 各イテレーションの結果が追記される -->

## Failed Hypotheses
<!-- 棄却された仮説のリスト — 次のサブエージェントが同じことを試さないために -->

ベースラインなしに改善は測れない。 最初に必ず測定を実行し、progress.md に記録する。

Step 2: 改善ループ

以下を ゴール達成まで 繰り返す。

┌─────────────────────────────────────────────────────────┐
│  Iteration N                                             │
│                                                         │
│  1. Agent spawn(毎回フレッシュなコンテキスト)            │
│     → サブエージェントは progress.md だけを読んで実行      │
│     → 1つの仮説を立て、1つの変更を実装し、測定して報告    │
│                                                         │
│  2. メインエージェントが結果を評価                        │
│     改善 → コミットして保持                               │
│       jj describe -m "experiment: [仮説] → [結果]"       │
│       jj new                                             │
│       progress.md の Current Best を更新                  │
│                                                         │
│     悪化/変化なし → revert                                │
│       jj abandon                                         │
│       progress.md の Failed Hypotheses に追記             │
│                                                         │
│  3. 次のイテレーションへ                                  │
└─────────────────────────────────────────────────────────┘

Monitor 活用: 長時間テストの非同期測定

Metric コマンドの実行に 10秒以上かかる場合(フルテストスイート、ベンチマーク等)、Monitor を使って測定を非同期化する。テスト実行中に progress.md の更新や次の仮説の検討を並行できる。

判定基準: Step 1 のベースライン測定で実行時間を確認。10秒以上 → Monitor 方式、10秒未満 → サブエージェント内で直接測定(従来方式)。

┌─ Monitor 方式の Iteration N ───────────────────────────┐
│                                                         │
│  1. Agent spawn → 変更のみ実装して報告(測定は省略)      │
│                                                         │
│  2. Monitor で測定コマンドを非同期実行                    │
│     Monitor:                                            │
│       description: "Experiment iteration N measurement"  │
│       timeout_ms: 300000                                │
│       persistent: false                                 │
│       command: "<progress.md の Metric コマンド>"         │
│                                                         │
│  3. 測定待ちの間にメインエージェントが:                    │
│     - progress.md の Iterations セクションに仮説を記録    │
│     - 次のイテレーションの仮説を検討                      │
│                                                         │
│  4. Monitor から結果が到着 → 評価して keep/revert         │
└─────────────────────────────────────────────────────────┘

Monitor 方式の場合、サブエージェントの spawn テンプレートから手順 5(測定)を省略する。

サブエージェント spawn テンプレート

Agent:
  description: "Experiment iteration N"
  prompt: |
    あなたは実験の1イテレーションを担当する独立したエージェントです。

    ## 手順
    1. progress.md を Read して、ゴール・メトリクス・過去の結果を把握
    2. Failed Hypotheses を確認し、同じアプローチを繰り返さない
    3. 新しい仮説を1つ立てる
    4. その仮説に基づいて **1つだけ** 変更を実装
    5. progress.md に書かれた Metric コマンドを実行して測定
    6. 以下のフォーマットで結果を報告:

    ## Report
    - Hypothesis: [仮説]
    - Change: [何を変えたか]
    - Files: [変更したファイル]
    - Before: [変更前の測定値]
    - After: [変更後の測定値]
    - Verdict: improved / degraded / neutral

ルール

  • 1反復1変更: 複数の変更を同時にしない。何が効いたか分からなくなる
  • 測定が全て: 「良くなったはず」ではなく数値で判断
  • revert は失敗ではない: 仮説が棄却されただけ。progress.md に記録して次に活かす
  • サブエージェントに委任: メインエージェントは判定とファイル管理のみ。実装と測定はサブエージェントの仕事
  • progress.md が唯一の記憶: サブエージェント間はこのファイルだけで知識を引き継ぐ

停止条件

  • ゴール達成
  • 3回連続で改善なし → AskUserQuestion でユーザーに方向転換を相談
  • ユーザーが停止を指示

jj 操作

# 保持する場合
jj describe -m "experiment: [仮説] → [結果: +XX% 改善]"
jj new

# revert する場合
jj abandon

Step 3: 完了報告

ゴール達成または停止後、progress.md の内容をもとに結果をまとめる。

## 実験結果

### ゴール: [目標]
### ベースライン: [初期値]
### 最終値: [最終値]([改善率])
### イテレーション数: N(成功: X, 棄却: Y)

### 成功した変更
1. [仮説] → [結果]
2. ...

### 棄却した仮説
1. [仮説] → [棄却理由]
2. ...

### 学び
- [次回の実験に活かせること]

完了通知: 実験が 10 分以上走った または バックグラウンド実行が前提だった場合、PushNotification で結果サマリを送る(例: experiment 完了: 7 iter, +12% 改善、revert 3 件)。短時間(数分以内)で収束した場合や、ユーザーが画面を見ている可能性が高い場合は送らない。

Gotchas

  • ベースライン測定を忘れて「なんとなく良くなった」で判断: 必ず数値で比較
  • 複数の変更を一度にして何が効いたか不明: 1反復1変更を厳守
  • revert せずに「まあいいか」で残す: 悪化した変更は必ず revert
  • progress.md の更新を忘れる: Failed Hypotheses を書かないと次のサブエージェントが同じ失敗を繰り返す
  • メインエージェントが実装に入る: メインは判定とファイル管理だけ。実装はサブエージェント
<!-- AUTO-GOTCHAS -->

Step 1 のゴール設定から開始してください。まずベースラインを測定し、progress.md を作成。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

atom-suggest

無料日本語概要

backlog(atoms/pipeline/outputs)と skill ヘルス(usage/duration/unused)を統合分析し 1 レポートで提示する。kawai 氏型 analytics ループの起点。「次に何やる?」「atom 整理」「放置案件」「stale」「振り返り」「retro」「skill 使用統計」「unused skill」「atom-suggest」で発動。

kok1eee/o-m-cc62026年6月9日 更新

deep-interview

無料日本語概要

要件が曖昧なとき、ソクラテス式に1問ずつ質問して要件を掘り下げる。十分に明確になったら discovery-council にハンドオフ。「要件が曖昧」「何を作ればいいか」「掘り下げて」「インタビューして」で発動。※ 完成した plan/design を詰問するなら grill、非対話で一括批判するなら critic。

kok1eee/o-m-cc62026年6月9日 更新

design

無料日本語概要

designer エージェントによるアーキテクチャ設計。requirements.md を基に design.md を作成。「設計して」「アーキテクチャ設計して」「アーキテクチャを考えて」「設計書を作って」で発動。

kok1eee/o-m-cc62026年6月9日 更新

discovery-council

無料日本語概要

3エージェント(researcher, analyst, scout)による並列要件分析 Council。peer-to-peer で相互検証し requirements.md を確定。「要件を整理して」「要件定義して」「現状分析して」「要件をまとめて」で発動。

kok1eee/o-m-cc62026年6月9日 更新

editorial-swarm

無料日本語概要

技術記事の並列レビュー Council。anti-ai-slop / fact-checker / narrative-critic / reader-advocate を並列 spawn、severity 付き findings を最大3ラウンドで収束。Zenn などのドラフト完成後に使う。「記事レビュー」「editorial swarm」「編集会議」「記事推敲」「記事添削」で発動。

kok1eee/o-m-cc62026年6月9日 更新

evolve

無料日本語概要

スキルの自己進化。auto-memory と実行履歴から学びを抽出し、各スキルの Gotchas セクションに自動追記する。セッション終了前、定期的な改善サイクル、問題に遭遇した後に使う。「スキルを進化させて」「学びを反映して」「Gotchas を更新」「evolve」で発動。

kok1eee/o-m-cc62026年6月9日 更新

kok1eee のスキルをすべて見る

このスキルの問題を報告する