Communityコーディング&開発github.com

grahama1970/agent-ecosystem

エージェントガバナンスエコシステムの正準マップと共有契約:pi.receipt_envelope.v1境界エンベロープ、コンポーネントグラフ、各コンポーネントが所有するスキーマのルール。スキルや拡張機能を共有レシートの世界に配線する際、shame、triage-error、tau、ask、project-watchdog、ops-herdr、ponytail、Memoryの関係を問い合わせる際、またはエンベロープを検証する際に使用します。

agent-ecosystem とは?

Agent Ecosystemは、エージェントガバナンスエコシステムのための分散型アーキテクチャを定義する正準マップかつ共有契約のセットです。各コンポーネントは単一の責務を所有し、型付きJSONコントラクトを通じてのみ結合します。このスキルは主にClaude Code環境での使用を想定しており、shame(状態検証)、triage-error(障害分類)、tau(DAG実行)などのコンポーネント間のインタラクションを定型化します。中心となる不変目標は「shame-deterministic-instruction-obedience-v1」であり、エージェントが明示的な指示を無視できないようにするためのものです。pi.receipt_envelope.v1エンベロープを使用して権限変更境界でのペイロードをラップし、コンポーネント間のやり取りを追跡可能にします。このスキルは、複数のエージェントシステムを統合する際の標準的な契約とトポロジを提供し、フォールトトレラントなシステム構築を支援します。

対応✓Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/grahama1970/agent-skills/tree/main/skills/agent-ecosystem

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

プレビュー

スキル README より

Agent-governance ecosystem

ドキュメント

Agent Ecosystem

一つの階層化されたガバナンスループ。各コンポーネントは正確に一つの関心事を所有し、互いのステートマシンをインポートすることなく、型付きJSONコントラクトを通じてのみ結合します。

不変の$shame目標はshame-deterministic-instruction-obedience-v1 (skills/shame/immutable_goal.json)です:プロジェクトエージェントが明示的な指示を無視できないようにするために、指示遵守と完了報告を型付きpydantic検証済みコントラクト、決定論的拡張ゲート、および保持されたエージェンティック評価に変換します。散文は表示のみであり、成功を決定することはできません。以下に名前を挙げるすべてのエコシステムメンバーは、その境界でこの目標を保持しなければなりません。

グラフ

Agent-governance ecosystem

$create-svgでレンダリング(scene.ymlがソース; skills/create-svg/run.sh render skills/agent-ecosystem/scene.yml skills/agent-ecosystem/ecosystem.svgで再生成)。機械可読なメンバーシップマニフェストはmembers.json(scripts/membership.py validateで検証;保持された評価が最新状態を維持)です。上記のSVGと以下のmermaidブロックは非規範的な図解であり、所有権テーブルとメンバーの## Ecosystemセクションが規範的なトポロジです。

flowchart TB
    subgraph SHAPE[Generation shaping]
        PONY[ponytail\nYAGNI ladder, no receipts]
    end
    subgraph TURN[Turn layer - Pi session]
        SHAME[shame extension\npi.agent_status.v1\nvalidate, compile, swallow]
        TRIAGE[triage-error\nfailure vocabulary\ncode, cause, next_command]
    end
    subgraph WORK[Workflow layer]
        ASK[ask\ncompiles intent to DAG contracts]
        TAU[tau\nexecutes DAGs, owns acceptance\ntyped node receipts, goal_hash]
    end
    subgraph OPS[Operations layer]
        WD[project-watchdog\ncron dispatch, leases,\nproof gates, tick receipts]
        HERDR[ops-herdr bridge\ninbox, quiescence,\nTTL dead-letters]
    end
    MEM[(Memory\ntraining examples,\ntriage resolutions,\nproject knowledge)]

    PONY -.-> SHAME
    SHAME -->|failed.triage.code| TRIAGE
    SHAME -->|needs_* compiled commands| ASK
    ASK -->|tau.dag_contract.v1| TAU
    TAU -->|node receipts / handoff v2 carries status| SHAME
    WD -->|ticket_repair via ask| ASK
    WD -->|reads verdicts| TAU
    HERDR -->|dead-letter triage codes| TRIAGE
    SHAME -->|labeled examples| MEM
    TRIAGE -->|minted codes| MEM
    TAU -->|post-run export of bad node receipts| MEM

所有権テーブル

コンポーネント所有するもの発行するもの消費するもの$shame不変目標のためのMUST条件
プロジェクトエージェントターン境界における指示遵守pi.agent_status.v1レポートオペレーター指示、ツール結果、レシートガードされた作業を型付きステータスデータとして報告し、continuing.not_done[].next_commandをエージェント実行可能な未完了作業に使用し、散文/コミット/レビューアの意見を完了証明と決して扱わないこと。
triage-error障害語彙(failure_codes.json){code, cause, next_command}任意のレイヤーからの生のエラーテキスト一つの生のシグナルを一つのカタログまたはミントされたコードにマッピングすること;曖昧な終端ラベルが有効な決定になってはならない。
shameターンステータス(pi.agent_status.v1)およびshame.immutable_goal.v1ステータスオブジェクト、不変目標、訓練例トリアージコード、人間のラベルステータスの真実をpydantic検証済み、散文表示のみ、評価ゲート付きに保つこと。
lazy-report-shame-shame-shame拡張機能Pi message_end強制拒否パケット、レンダリングされたステータス、フォローアップコマンド最終ステータスJSON、継続台帳欠落/無効なステータスJSONを拒否し、モデル作成のステータス散文を取り除き、検証済みデータからレンダリングし、コンパイルされた継続/エスカレーションコマンドをキューイングすること。
status-json-check.mjs最終ステータス抽出とバリデーター呼び出し検証済みステータスオブジェクトを含むチェッカー結果アシスタントテキスト正規表現、散文見出し、マークダウン、HTML、またはLLM判断でステータスの有効性を判断してはならない。
agent_status_schema.pypydanticステータスの合法性パース成功/失敗最終ステータスJSONextra=forbid、型付きステートペイロード、正準トリアージコード、およびcontinuingでのみnot_doneを使用して、無効なステータス状態を表現不可能にすること。
compile-status-command.mjs型付きステータスからコマンドへのコンパイル正確なフォローアップコマンドまたはコマンドなしpydantic検証済みステータスオブジェクトcontinuing/needs_*ペイロードを機械的にコンパイルし、ターミナル/人間の状態を自動コマンドなしにコンパイルすること。
agentic-evals保持された回帰証明準備完了レポートフィクスチャとコマンド正規表現/散文ステータスポリシーが戻る場合、またはpydanticステータス不変条件が弱められた場合に失敗すること。
ask意図からDAGへのコンパイルtau.dag_contract.v1、リカバリーパケットステータスエスカレーションペイロード非形式的なエスカレーション散文の代わりに型付きneeds_*ペイロードを消費すること。
tauDAG実行と受理ノードレシート、tau.agent_handoff.v1/v2、目標ハッシュDAGコントラクト、埋め込みステータスオブジェクト不変目標ハッシュと型付き受理レシートを所有すること;レビューアの散文は受理を置き換えることができない。
project-watchdogスケジュールされたディスパッチティックレシート、証明ゲート、ロック、継続台帳GitHubチケット、tauの判定チケット/ゲート/次のステップが未解決のままdoneが失敗できるよう、機械可読な未解決作業を公開すること。
ops-herdrセッション間のトランスポート受信箱レコード、デッドレタートリアージコードセッション間の障害/状態をトリアージコード付きの型付き受信箱またはデッドレターレコードとして運ぶこと。
ponytail生成のミニマリズムponytail: 債務コメント(レシートではない)レシート世界からの何もないステータス、レシート、証明、または評価要件をオーバーライドしてはならない。
Memory想起ストア/リコール読み返し応答(エンベロープレシートではない;リコールは観測であり、決してラップされない)すべての永続的なものshameの例、トリアージ解決、およびプロジェクト知識を読み返し付きで保存すること;リコールは観測であり、完了レシートではない。
agent-ecosystemコンポーネント所有権とレシート境界pi.receipt_envelope.v1検証境界ペイロード所有権マップを公開し、権限変更境界でのエンベロープラッピングを要求すること。
goal-helper証明中心の目標形状不変目標プロンプト/チェックリスト人間の目標テキスト成功を一次証明、完了基準、許可された範囲、禁止されたドリフト、リトライ予算、および停止条件に結び付けること。

pi.receipt_envelope.v1 - 境界エンベロープ

ペイロードをエンベロープでラップするのは、権限変更境界でのみ行います:ディスパッチ、ハンドオフ、受理、エスカレーション、クロージャ、永続的障害。内部オブジェクトはラップされないままです(レビュー済みYAGNI判定:ユニバーサルイベントバスなし、すべてのアーティファクトにエンベロープなし)。

{
  "schema": "pi.receipt_envelope.v1",
  "receipt_id": "stable-id",
  "payload_schema": "pi.agent_status.v1",
  "producer": "shame",
  "emitted_at": "RFC3339",
  "goal_hash": "sha256:<64hex> (optional)",
  "parent_refs": [
    {"receipt_id": "id", "expected_schema": "s", "expected_producer": "p", "digest": "sha256:<64hex> (optional)"}
  ],
  "triage_code": "catalog or minted code (optional)",
  "payload": {}
}

以下のコマンドで検証:

skills/agent-ecosystem/run.sh validate <envelope.json>
echo '{...}' | skills/agent-ecosystem/run.sh validate -

scripts/receipt_envelope.py(pydantic、extra=forbid)で強制されるルール:

  • triage_codeが存在する場合、triage-errorカタログコードまたはミントされた*_unclassified_<8hex>コードでなければならない – pi.agent_status.v1.failureと同じルール。
  • goal_hashとparent_refs[].digestはsha256: + 64の小文字16進数でなければならない。
  • parent_refsはgoal_hashを必要とする:共有目標のない証拠エッジは信頼されず、検証に失敗する。
  • PydanticはSTRUCTUREのみを証明する。参照RESOLUTIONは別個のコンシューマー側のステップであり、4つの必須チェックがある:参照されたレシートが存在すること;そのスキーマがexpected_schemaと等しいこと;そのプロデューサーがexpected_producerと等しいこと;そしてresolved_parent.goal_hash == envelope.goal_hash(存在するハッシュは、比較されるまで共有目標ではない)。ダイジェスト検証はdigestが設定されている場合に適用される。構造的に有効なエンベロープはまだ信頼されたものではない。
  • payload.schemaはラップされたすべてのペイロードで必須であり、エンベロープのpayload_schemaと等しくなければならない;匿名ペイロードは検証に失敗する。
  • 任意のextra=forbidスキーマへのフィールドセット変更は、構造的に破壊的変更となる;新しいスキーマバージョンを必要とし、インプレース編集は決して行わない。

共有JSONフィールド規約

以下のフィールドは実際の共有インターフェースです。コンポーネントがフィールドを「共有する」とは、所有者と同じ名前、形状、およびセマンティクスを発行または検証することを意味します。

フィールド形状所有者共有元
schemaバージョン付きID、例:pi.agent_status.v1各スキーマの所有者すべてのコントラクトオブジェクト;バージョンアップは追加または新名
code(トリアージ)カタログエントリまたは<prefix>_unclassified_<8hex>triage-errorshame failure.triage.code、エンベロープtriage_code、herdrデッドレター、askリカバリーパケット
cause / next_commandプレーン文字列 / 正確な実行可能コマンドtriage-errorトリアージ分類のすべてのコンシューマー;next_commandはshameのcontinuing継続フィールドでもある
goal_hashsha256: + 64の小文字16進数tau(不変目標パケット)shameステータス(オプション)、エンベロープ(オプション)、すべてのtauノードレシート
verified[]{command, result}ペアshameステータスオブジェクトが埋め込まれている場所のdone状態証明
proof[]具体的なパス/URL/ID;pi.agent_status.v1のローカルパスはdoneが通過する前に存在しなければならないshameステータスオブジェクト;watchdog証明ゲートは同じアーティファクトに名前を付ける
parent_refs[]{receipt_id, expected_schema, expected_producer, digest?}agent-ecosystemエンベロープエスカレーション証拠(needs_webgptのアドホックパスを置き換える)
producer / receipt_id / emitted_at文字列 / 安定ID / RFC3339agent-ecosystemエンベロープ境界ラップされた任意のレシート
payload_schemaバージョン付きID;ペイロードが宣言する場合はpayload.schemaと等しくなければならないagent-ecosystemエンベロープ境界ラップされた任意のレシート
終端判定PASS FAIL BLOCKED NEEDS_ATTENTIONtauaskが参加、watchdog証明ゲート、ストリームモニター
recoverable / not_thisブール / 除外リストtriage-errorカタログリトライとエスカレーションを決定するコンシューマー

triage-error 規約(ここでは規範的、実装はそちら)

  1. 一つの生シグナルはONEの{code, cause, next_command}にマッピングされる;レイヤー境界での汎用コードはバグであり、分類ではない。
  2. カタログエントリはskills/triage-error/failure_codes.jsonに{code, layer, match[], cause, next_command, recoverable, not_this[]}として存在する。マッチングは決定論的:正規化は正確に" ".join(text.lower().split())(小文字、すべての空白連続は単一スペースに圧縮、両端トリム);エントリはそのmatch[]トークン(これも小文字化)のいずれかが正規化されたシグナルの部分文字列である場合にマッチ;--layerが指定された場合、異なるlayerのエントリはスキップ;ファイル順で最初にマッチしたエントリが勝ち。決して正規表現、LLM判断ではない。終端分類として禁止(これらは症状であり原因ではなく、基礎となるシグナルから再トリアージされなければならない):NEEDS_ATTENTION、BLOCKED、browser_handler_timeout、unknown_error、generic_failure、および任意の裸の終端判定語。
  3. マッチしないシグナルは<layer-or-unknown>_unclassified_<8hex>をミントする。ここで8つの16進文字は正規化されたシグナルテキストのsha256の最初の8文字であり、同じシグナルは常に同じコードをミントする。ミンティングはチケット + agentic-eval + memoryループを開く。再発しきい値:同じミントコードの2回目の観測で、プロモーションまたはエイリアスがトリガーされる。エイリアス表現:カタログファイルのトップレベルaliasesマップはミントコード -> 正準コードをマッピング;ミンティングは正規化されたシグナルに対して決定論的であるため、再発するシグナルは同じコードを再ミントし、分類器はマップを通じて正準エントリに解決する(aliased_fromとして記録);ミントコードは二番目の正準IDではない。チケット/評価/メモリの副作用はミントコードごとに冪等(コード文字列によってキー付け)。
  4. 障害を命名するすべてのエコシステムコンポーネントは、カタログまたはミントされたコードを使用する。pydanticバリデーター(ステータススキーマ、エンベロープ)の両方がパース時にこれを強制するため、曖昧なラベルが有効なオブジェクトに存在することはできない。

設計上の裁定(外部レビューより)

  1. 厳密性はDECISIONSに適用され、観測には適用されない。生の証拠は寛容に保ち、受理された結果は厳格に保つ。型付きのunknown観測は合法である;曖昧な決定は違法である。
  2. ミントされた*_unclassified_*コードは暫定的なライフサイクルを得る:再発したらカタログにプロモートするか既存のコードにエイリアスする;決して拡散させない。
  3. スキーマ変更は追加的;形状を破る変更は新しいバージョン(tau.agent_handoff.v2パターン)を得る、決してインプレース編集ではない。
  4. 構築しないもの:ユニバーサルガバナンスイベントバス;ponytailコメント、Memoryリコール、または内部リトライのレシート。

メンバーシップ

スキルまたは拡張機能は、そのSKILL.mdに## Ecosystemセクションを追加することでエコシステムに参加し、生成するスキーマ、消費するスキーマ、およびエンベロープにラップする境界イベントを命名します。現在のメンバー:shame、triage-error、tau、ask、project-watchdog、ops-herdr。Ponytailは設計上隣接しています。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

grahama1970/acceptance-contract

Turn a client brief, zip bundle, directory, or single requirements file into a typed acceptance-contract bundle with extracted requirements, acceptance checks, open questions, an immutable-goal draft, and a create-report-backed decision report. Use when users say acceptance contract, brief to requirements, freeze the goal, create immutable goal, amend immutable goal, build a Battle requirements bundle, or extract requirements from this bundle.

grahama1970/agentic-evals

Agentic evaluation of skills using multi-trial fixtures, deterministic command assertions, trajectory checks, safety constraints, and evidence-backed readiness scoring. Use when users ask for agentic evals, multi-trial skill evaluation, skill trajectory validation, or readiness scoring for a skill workflow.

grahama1970/agent-inbox

File-based inter-agent messaging with headless dispatch. Check inbox, send bugs/requests to other projects, automatically spawn headless agents to fix bugs, and track progress via task-monitor.

grahama1970/agents-registry

Generate and query the centralized agent identity registry. Scans .pi/agents/*/AGENTS.md, parses frontmatter, outputs agents-registry.json and optionally syncs to /memory for semantic search.

grahama1970/agent-status

Artifact-driven status surfaces for long-running project-agent work. Maintains status.json, events.jsonl, proof manifests, and a stale-aware STATUS.html so humans can tell where the agent is, what passed, what is still unproven, and what decision or action is next — without dashboard theater.

grahama1970/align

Round-based context alignment before execution. Use when the human, project agent, WebGPT, scillm, ask, dogpile, memory, or project-knowledge may each hold different facts about a task; especially before ambiguous design, infographic, product workflow, high-stakes implementation, plan-iterate, project-infographic, or multi-review work.

grahama1970/analytics

Flexible data science analytics for any dataset. Auto-discovers schema, recommends charts, exports to create-figure. Works with JSONL, JSON, CSV from any source.

grahama1970/analyze-chatterbox-emotions

Evaluate generated Chatterbox voice files as voice-quality artifacts: affect match, arousal/valence proxies, pause placement, intelligibility inputs, clipping, loudness, and discontinuity flags. Use when reviewing Chatterbox emotional tags, pauses, Turbo/base affect delivery, Persona Dream utterance renders, or whether generated speech matches an intended product-facing affect.

grahama1970/analyze-elf

Reverse-engineer features from ELF binaries. Extracts CLI commands, state machines, protocols, Zod schemas, and data models. Automatically generates a /create-walkthrough prosecution brief with Mermaid diagrams. Uses /treesitter for AST analysis of bundled JS/TS source.

grahama1970/animation-vocabulary

Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.

grahama1970/anonymize-data

Anonymize supported CSV, JSON, UTF-8 text, and SQLite files using an explicit policy through the oai-trial project. Use for anonymize data, pseudonymize exports, redact policy literals, or discover and explicitly approve fuzzy name aliases. The skill is a thin CLI/Docker interface, not another engine.

grahama1970/anvil

Heavy-duty "No-Vibes" debugging and hardening orchestrator. Use this for complex, stubborn bugs where `review-code` has failed, or for "Red Teaming" (hardening) a codebase. Runs multiple agents in parallel (Thunderdome) using git worktree isolation.

grahama1970/apple-design

Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.

grahama1970/argue

Multi-persona structured debate orchestrator. Personas research via /dogpile, consult colleagues via /ask, and argue toward nuanced synthesis on complex questions.

grahama1970/arxiv

Search arXiv for papers and extract knowledge into memory. Use `search` to find papers, `learn` to extract knowledge.

grahama1970/ask

Use when the user asks to query project memory, ask an oracle, use supported browser-backed reviewers, run Tau roundtable/single-handler workflows, ask Pi-native subagents from within Pi, run persona/deep-review workflows, generate image prompts, check OS/project health through composed skills, or run an ask DAG. This skill is the executable /ask runtime; do not replace it with an informal subagent, plain web search, or hand-written review; inside Pi, explicit Pi-native subagent targets are routed through the pi-subagents tool as an Ask target type.

grahama1970/assess

Step back and critically reassess project state. Use when asked to "assess", "step back", "fresh eyes", "check alignment", "sanity check", "health check", "prune documentation", or "evaluate what's working". Offers documentation pruning and doc-code alignment analysis. Offer to run after major changes (don't auto-run).

grahama1970/assistant

Shared GPT + classifier inference gateway for persona monitor tasks. Routes validation and classification through a 4-tier cascade: heuristic → classifier → local GPT → scillm.

grahama1970/assistant-lab

Self-improvement workbench for /assistant. All the tools needed to diagnose, train, evaluate, and promote models in a continuous loop. The "warm pond" where /assistant evolves its own inference stack.

grahama1970/batch-quality

Pre-flight validation and quality gates for batch LLM operations. ACTUALLY tests samples through LLM before burning tokens. Uses SPARTA contracts for DuckDB validation queries. Integrates with task-monitor for enforced quality gates.

関連スキル