mcpField
S
skill-system-postgres

skill-system-postgres

github.com/arthur0824haoエージェントワークフロー63 回インストール
リポジトリ

skill-system-postgres について

skill-system-postgresは、スキルシステムの可観測性、ポリシー、グラフ、更新、投影データを保存するPostgreSQLの状態ストアです。Agentや関連スキルが状態を記録・参照するためのもので、処理自体は実行しません。

主な機能

  1. 01スキルポリシープロファイル
  2. 02実行記録とイベントログ
  3. 03スキル依存グラフ
  4. 04更新ジョブの状態とログ
  5. 05ルール・プロジェクトグラフの投影

活用シーン

  1. 01Agentのスキル実行を記録
  2. 02許可されたスキル操作の確認
  3. 03スキル依存関係の追跡
  4. 04更新と投影状態の管理

インストール

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

$npx skills add https://github.com/arthur0824hao/skills --skill skill-system-postgres

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

同梱ファイル

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

SKILL.behavior.yaml
SKILL.spec.yaml
init.sql
migrate-v2.sql
migrate-v3-graph.sql
migrate-v4-control-plane.sql
migrate-v5-rule-model.sql
migrate-v6-project-graph.sql
migrate-v7-behavior-graph.sql
scripts/
architecture_graph.py
migrate_behavior_graph.py
projection_engine.py
rule_projection.py
test_architecture_graph.py
test_migrate_behavior_graph.py
test_projection_authority_contract.py
test_projection_engine.py
test_rule_projection.py

詳細

スキルシステム(Postgres の状態)

スキルシステムの可観測性、ポリシー、グラフ、更新/コントロールプレーンの状態、標準ルール階層のプロジェクション、プロジェクトアーキテクチャグラフのプロジェクションに関するデータベーススキーマです。

インストール

# Replace 'postgres' with your PostgreSQL superuser if needed (e.g. your OS username)
psql -U postgres -d agent_memory -v ON_ERROR_STOP=1 -f init.sql
# Replace 'postgres' with your PostgreSQL superuser if needed
& "C:\Program Files\PostgreSQL\18\bin\psql.exe" -U postgres -d agent_memory -v "ON_ERROR_STOP=1" -f init.sql

既存の v1 インストールでは、migrate-v2.sql も実行してください。

グラフとコントロールプレーンの拡張機能については、次も実行してください。

psql -U postgres -d agent_memory -v ON_ERROR_STOP=1 -f migrate-v3-graph.sql
psql -U postgres -d agent_memory -v ON_ERROR_STOP=1 -f migrate-v4-control-plane.sql
psql -U postgres -d agent_memory -v ON_ERROR_STOP=1 -f migrate-v5-rule-model.sql
psql -U postgres -d agent_memory -v ON_ERROR_STOP=1 -f migrate-v6-project-graph.sql

テーブル

  • skill_system.policy_profiles — 効果の許可リスト(スキルに許可される操作)
  • skill_system.runs — 実行記録(目標、エージェント、ステータス、所要時間、メトリクス)
  • skill_system.run_events — ステップ単位のイベントログ(どのスキルが、どの操作を行い、どのような結果になったか)
  • skill_system.skill_graph_nodes / skill_system.skill_graph_edges — スキルのグローバル依存関係グラフ
  • skill_system.refresh_jobs / skill_system.refresh_job_events — キューに登録された更新ジョブとジョブログ
  • skill_system.artifact_versions — 生成されたアーティファクトのバージョンレジストリ
  • skill_system.rule_sets / skill_system.rule_entries — 標準ルール階層とプロジェクションされたルールエントリ
  • skill_system.project_nodes / skill_system.project_edges — 標準リポジトリアーキテクチャグラフとプロジェクションされた関係

使用方法

エージェントは Router スキルの指示に従って、これらのテーブルに書き込みます。このスキルは何も実行せず、状態を保存するだけです。

{
  "schema_version": "2.0",
  "id": "skill-system-postgres",
  "version": "1.4.0",
  "capabilities": ["skill-policy-check", "skill-run-log", "skill-graph", "skill-refresh-control", "skill-rule-model", "skill-project-graph", "skill-projection-engine"],
  "effects": ["db.read", "db.write"],
  "operations": {
    "check-policy": {
      "description": "Check if a skill's effects are allowed by the active policy profile.",
      "input": {
        "policy_name": { "type": "string", "required": true, "description": "Policy profile name (e.g. dev)" },
        "effects": { "type": "json", "required": true, "description": "Array of effect strings to check" }
      },
      "output": {
        "description": "Whether all effects are allowed",
        "fields": { "allowed": "boolean", "blocked_effects": "array" }
      },
      "entrypoints": {
        "agent": "Query skill_system.policy_profiles WHERE name = policy_name"
      }
    },
    "log-run": {
      "description": "Log a skill execution run for observability.",
      "input": {
        "skill_id": { "type": "string", "required": true },
        "operation": { "type": "string", "required": true },
        "status": { "type": "string", "required": true },
        "duration_ms": { "type": "integer", "required": false }
      },
      "output": {
        "description": "Run ID",
        "fields": { "run_id": "integer" }
      },
      "entrypoints": {
        "agent": "INSERT INTO skill_system.runs and skill_system.run_events"
      }
    },
    "migrate-graph": {
      "description": "Apply migrate-v3-graph.sql to create graph nodes/edges schema.",
      "input": {
        "action": { "type": "string", "required": false, "description": "apply or check" }
      },
      "output": {
        "description": "Migration status and table list",
        "fields": { "status": "string", "tables": "array" }
      },
      "entrypoints": {
        "agent": "Apply migrate-v3-graph.sql via psql"
      }
    },
    "migrate-control-plane": {
      "description": "Apply migrate-v4-control-plane.sql to create refresh jobs, refresh job events, and artifact versions tables.",
      "input": {
        "action": { "type": "string", "required": false, "description": "apply or check" }
      },
      "output": {
        "description": "Migration status and table list",
        "fields": { "status": "string", "tables": "array" }
      },
      "entrypoints": {
        "agent": "Apply migrate-v4-control-plane.sql via psql"
      }
    },
    "migrate-rule-model": {
      "description": "Apply migrate-v5-rule-model.sql to create canonical rule hierarchy tables.",
      "input": {
        "action": { "type": "string", "required": false, "description": "apply or check" }
      },
      "output": {
        "description": "Migration status and table list",
        "fields": { "status": "string", "tables": "array" }
      },
      "entrypoints": {
        "agent": "Apply migrate-v5-rule-model.sql via psql"
      }
    },
    "project-rules": {
      "description": "Sync canonical rule hierarchy into PostgreSQL and deterministic markdown rule projections.",
      "input": {
        "write_files": { "type": "boolean", "required": false, "description": "Write note rule projections after syncing" }
      },
      "output": {
        "description": "Rule model summary and written projection paths",
        "fields": { "rule_model": "json", "written_files": "array" }
      },
      "entrypoints": {
        "unix": ["python3", "scripts/rule_projection.py", "--write-files"],
        "agent": "Run scripts/rule_projection.py to upsert canonical rule rows and write deterministic note projections"
      }
    },
    "migrate-project-graph": {
      "description": "Apply migrate-v6-project-graph.sql to create canonical project graph tables.",
      "input": {
        "action": { "type": "string", "required": false, "description": "apply or check" }
      },
      "output": {
        "description": "Migration status and table list",
        "fields": { "status": "string", "tables": "array" }
      },
      "entrypoints": {
        "agent": "Apply migrate-v6-project-graph.sql via psql"
      }
    },
    "project-architecture": {
      "description": "Sync canonical repo architecture graph into PostgreSQL and write note/architecture_map.md.",
      "input": {
        "write_file": { "type": "boolean", "required": false, "description": "Write architecture_map after syncing" }
      },
      "output": {
        "description": "Architecture graph summary and written projection path",
        "fields": { "architecture_graph": "json", "written_file": "string" }
      },
      "entrypoints": {
        "unix": ["python3", "scripts/architecture_graph.py", "--write-file"],
        "agent": "Run scripts/architecture_graph.py to upsert project graph rows and write deterministic note/architecture_map.md"
      }
    },
    "run-projection-engine": {
      "description": "Refresh deterministic markdown projections with GENERATED_START / GENERATED_END managed blocks.",
      "input": {},
      "output": {
        "description": "Projection targets refreshed by the engine",
        "fields": { "written_files": "array" }
      },
      "entrypoints": {
        "unix": ["python3", "scripts/projection_engine.py"],
        "agent": "Run scripts/projection_engine.py after canonical PostgreSQL models are up to date"
      }
    }
  },
  "stdout_contract": {
    "last_line_json": true,
    "note": "Migration operations remain agent-executed SQL; scripts/rule_projection.py returns a JSON payload."
  }
}

コメント