skill-system-evolution について
蓄積したインサイトデータを基に、soul プロファイルやワークフローレシピを進化させるスキルです。根拠に基づいて慎重に変更し、比較やロールバックができるバージョン付きスナップショットを保存します。
主な機能
- 01根拠に基づくプロファイル更新
- 02ワークフローレシピの更新
- 03バージョン付きスナップショット
- 04バージョンの一覧・比較・固定
- 05過去のスナップショットへの復元
- 06安全制約と承認チェック
活用シーン
- 01セッションのインサイトを基にsoulプロファイルを更新
- 02観察した問題に基づいてレシピを調整
- 03プロファイルやレシピの変更を監査
- 04過去のプロファイルやレシピを復元
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ arthur0824hao/ skills --skill skill-system-evolutionインストール後、Claude Code で/skill-system-evolutionを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
SKILL.behavior.yamlSKILL.spec.yamlprompts/evolution-planning.mdrecipe-evolution.mdschema/evolution-plan.yamlevolution-snapshot.yamlscripts/evolve-recipes.mdevolve-soul.mdlist-versions.mdrollback.md詳細
スキルシステムの進化
インサイトの結果を使用して、ソウルプロファイルとワークフローレシピを進化させる、バージョン管理された進化エンジンです。
このスキルはシステムのACT部分です。蓄積された観察データを読み取り、証拠に基づいて変更の妥当性を判断し、慎重に変更を適用して、変更ごとにバージョン付きスナップショットを記録します。
主な概念
-
インサイト = OBSERVE
- セッションからファセットを抽出し、バッファーに蓄積します。
- これは
skill-system-insightが担当します。
-
進化 = ACT
- 蓄積されたデータを読み取り、変更を判断します。
- 強い証拠がある場合にのみ変更を適用します。
- 常にバージョン付きの監査スナップショットを保存します。
-
進化のたびにバージョン付きスナップショットを作成します
- スナップショットを記録せずに変更することはありません。
- スナップショットは Postgres(
agent_memories)に保存され、一覧表示やロールバックが可能です。
-
ユーザーはバージョンの一覧表示、比較、ロールバック、固定を行えます
list-versionsで履歴を確認できます。rollbackは以前のスナップショットを復元します(ロールバック自体も独立したスナップショットとして記録されます)。- 固定は、スナップショットへの追加タグ(例:
pin:true)または独立したメモリレコードとして表します(実装方法は運用者が選択します)。
アーキテクチャ
読み取り
- インサイトのファセット:
agent_memories.category = 'insight-facet'(一般ログ)- 型付きテーブル:
insight_facets→get_recent_facets('{user}', 50)を使用 - タグには
user:<user>が含まれます
- ソウルの状態(二重マトリックス):
agent_memories.category = 'soul-state'(一般ログ)- 型付きテーブル:
soul_states→get_soul_state('{user}')を使用 - タグには
user:<user>とmatrixが含まれます
書き込み
- 進化スナップショット:
agent_memories.category = 'evolution-snapshot'(一般ログ)- 型付きテーブル:
evolution_snapshots→insert_evolution_snapshot()を使用 - 各スナップショットは、完全なアーティファクトの YAML/markdown を
snapshot_dataに保存します
- ソウルプロファイル(ファイルシステム):
../skill-system-soul/profiles/<user>.md
- ワークフローレシピ(ファイルシステム):
../skill-system-workflow/recipes/*.yaml(または.yml)
バージョンタグ
バージョンタグの形式:
v{N}_{target}_{timestamp}
例:v3_soul_20260211
ユーザーと対象ごとに推奨されるバージョン管理アルゴリズム:
- タグが
user:<user>およびtarget:<target>のスナップショットについて、N = 1 + max(既存のN)とします。 - 該当するスナップショットがない場合は、
N = 1から開始します。 - タイムスタンプには現地の日付(YYYYMMDD)を使用します。時刻による区別が必要な場合は、
_HHMMを追加します。
運用上の制約
- ユーザーごとの進化パスは1日最大1回です。
- 対象(ソウル/レシピ/両方)をまたいで適用されます。最新の
evolution-snapshotの日付を制限の判定に使用します。
- 対象(ソウル/レシピ/両方)をまたいで適用されます。最新の
- 透明性:変更内容とその理由を必ず説明します。
- 提案する変更にはすべて、ファセットまたは状態コンテキストから得た証拠文字列を含める必要があります。
- 安全性:ソウルプロファイルから中核的な安全制約を削除することはできません。
- 進化後のプロファイルには、誠実に不確実性を示すこと、権威を捏造しないこと、有害または違法な指示を拒否することという基本的な安全要件を維持する必要があります。
- ユーザーの承認:重大な変更には確認が必要です。
- 提案する性格の各次元について、
abs(proposed_value - current_value) > 0.5の場合、自動的に適用してはいけません。 - 代わりに進化計画を提示し、明示的な承認を求めてください。
- 提案する性格の各次元について、
skill-system-insight との関係
新規インストールでは、skill-system-evolution がインサイトスキルの統合処理に取って代わります。
skill-system-insightは、引き続きファセットとマトリックス更新のソースとして機能します。- レイヤー3のプロファイル生成(統合)はここで行い、バージョン管理することで、変更の監査と取り消しが可能になります。
ストレージパターン(agent_memories + 型付きテーブル)
進化スナップショットは、エピソード記憶として agent_memories に、さらに型付きの evolution_snapshots テーブルにも保存されます(insert_evolution_snapshot() による二重書き込み)。
memory_type = 'episodic'category = 'evolution-snapshot'tagsには次の値が含まれます。user:<user>target:<target>。target はsoul、recipe、またはbothです。version:<version_tag>
SQL テンプレートの例(型付きテーブルを推奨):
-- Rate limit check (typed table)
SELECT id, created_at, trigger_reason
FROM evolution_snapshots
WHERE user_id = '<user>'
AND created_at >= (NOW() - INTERVAL '24 hours')
ORDER BY created_at DESC
LIMIT 1;
-- Store an evolution snapshot (typed — dual-writes to agent_memories)
SELECT insert_evolution_snapshot(
'<user>', '<version_tag>', '<target>', '<trigger>',
'<changes JSONB>', '<snapshot_data>', '<full YAML>',
NULL, 'evolution-agent'
);
-- List recent snapshots (typed table)
SELECT * FROM get_evolution_history('<user>', 50);
従来の agent_memories のみを使ったクエリも引き続き動作します(後方互換性あり)。
-- Rate limit check (max 1/day): any snapshot in last 24h?
SELECT id, created_at, title
FROM agent_memories
WHERE category = 'evolution-snapshot'
AND 'user:<user>' = ANY(tags)
AND created_at >= (NOW() - INTERVAL '24 hours')
ORDER BY created_at DESC
LIMIT 1;
-- Store an evolution snapshot
SELECT store_memory(
'episodic',
'evolution-snapshot',
ARRAY['user:<user>', 'target:<target>', 'version:<version_tag>'],
'Evolution Snapshot: <version_tag>',
'<full evolution-snapshot YAML as text>',
'{"version_tag": "<version_tag>", "target": "<target>", "timestamp": "<iso>"}',
'evolution-agent',
NULL,
8.0
);
-- List recent snapshots for a user (most recent first)
SELECT id, created_at, title
FROM agent_memories
WHERE category = 'evolution-snapshot'
AND 'user:<user>' = ANY(tags)
ORDER BY created_at DESC
LIMIT 50;
操作
-
evolve-soul- マトリックスに十分なデータがあるか(バッファーしきい値)、および/または統合が保留中かどうかを確認します。
- 保留中のマトリックス更新を適用します。
- 根拠(直近 50 件のファセット)を使って新しい Layer 3 プロファイルを合成し、バージョン管理します。
-
evolve-recipes- ワークフローのファセットを分析して、摩擦や成果を検出します。
- 慎重なレシピ変更を提案し、バージョン管理します。
-
list-versions- ユーザーの進化履歴を一覧表示します。必要に応じて target で絞り込めます。
-
rollback- soul または recipes の以前のバージョンを復元します。
- ロールバックを新しいスナップショットとして記録します。
{
"schema_version": "2.0",
"id": "skill-system-evolution",
"version": "1.0.0",
"capabilities": ["evolution-soul", "evolution-recipes", "evolution-list", "evolution-rollback"],
"effects": ["db.read", "db.write", "fs.read", "fs.write"],
"operations": {
"evolve-soul": {
"description": "Evolve soul profile from accumulated insight data. Creates versioned snapshot.",
"input": {
"user": {"type": "string", "required": true, "description": "User handle"}
},
"output": {
"description": "Evolution result with version tag",
"fields": {"version_tag": "string", "changes": "array", "profile_path": "string"}
},
"entrypoints": {
"agent": "Follow scripts/evolve-soul.md procedure"
}
},
"evolve-recipes": {
"description": "Evolve workflow recipes based on effectiveness data from insight facets.",
"input": {
"user": {"type": "string", "required": true, "description": "User handle"}
},
"output": {
"description": "Recipe evolution result with version tag",
"fields": {"version_tag": "string", "recipes_changed": "array"}
},
"entrypoints": {
"agent": "Follow scripts/evolve-recipes.md procedure"
}
},
"list-versions": {
"description": "List all evolution snapshots for a user.",
"input": {
"user": {"type": "string", "required": true},
"target": {"type": "string", "required": false, "description": "Filter: soul | recipe | all"}
},
"output": {
"description": "Array of version snapshots",
"fields": {"versions": "array of {tag, target, timestamp, summary}"}
},
"entrypoints": {
"agent": "Follow scripts/list-versions.md procedure"
}
},
"rollback": {
"description": "Restore a previous evolution version.",
"input": {
"user": {"type": "string", "required": true},
"version_tag": {"type": "string", "required": true, "description": "Version tag to restore"}
},
"output": {
"description": "Rollback result",
"fields": {"status": "ok | error", "restored_from": "string"}
},
"entrypoints": {
"agent": "Follow scripts/rollback.md procedure"
}
}
},
"stdout_contract": {
"last_line_json": false,
"note": "Agent-executed procedures; versioned snapshots stored in agent_memories."
}
}