Skip to main content
Glama

ESEKL — Empirical Software Engineering Knowledge Layer

ESEKLは、本番グレードのオープンソースシステムの研究を、構造化されたエージェント利用可能なツール群へと変えるプロジェクトです。これはModel Context Protocol(MCP)サーバーとして配布され、それが唯一のサポート対象の配布手段です。

分散システム(キュー処理、ブローカー、ストリーミングパイプライン)に取り組むエージェントは、日常的に行動不変条件を幻覚し、本番障害モードを誤って引用し、実証的な根拠なしに検証プランを生成します。ESEKLはこのギャップを解消します。成熟したオープンソースシステムの機械的な検査から得られた、来歴追跡・根拠ラベル付きの知識を、タスクに即したMCPツールを通じて提供し、生のコンテキストをそのままダンプするのではなく、プログレッシブな開示をとのぞまします。

現在のコーパスは、キュー、ブローカー、ストリーミングシステム(asynq、bullmq、pgmq、river、goqite、litequeue、nats-server、nsq、blazingmq、redpanda、rabbitmq、artemis、rocketmq)をカバーしています。


エージェントへのメリット

ESEKLがない場合、ジョブキューに取り組むコーディングやプランニングのエージェントは、行動契約を幻覚化するか、数千行の生ソースを閲覧してパターンを抽出しなければなりません。両方の経路は失敗します。幻覚化は不正確な不変条件を生み、生ファイルの閲覧は、エージェントが関連する根拠に到達する前にコンテキストウィンドウを飽和させます。

ESEKLが提供するもの:

  • 行動不変条件:コーパス全体のソースの直接検査から抽出され、それぞれが導出方法(SOURCE_OBSERVED、TEST_OBSERVED、HISTORY_SUPPORTED)のラベルを持ちます。

  • 障害モードの連鎖:実際の本番バグと回帰コミットからでた、それを閉じた正確なコミットハッシュとテスト関数まで遡れます。

  • 実装パケット — 本番ファイルから抽出された具体的なSQLクエリ、Luaスクリプト、Go/TypeScriptスニペット — を、基盤とメカニズムのフィルタと共に提供し、エージェントが必要とする実装のクラスに正確に一致させます。

  • 設計上の批評:コーパス横断の不変条件に照らし、欠落したフェンシング保証、クロックドリフトのリスク、ポイズンジョブの分離ギャップを表面化します。

  • 逆説的な検証プラン:実証的な障害証拠から生成され、テストスートにすぐ組み込める内容です。

すべての結果には、その知識のエピステマへのラベルが付きます。エージェントがリポジトリ横断の抽象化をモデル推論と適害することはありません。


Related MCP server: PactAI MCP

アーキテクチャ:EKUの開発方法

flowchart TD
    A["Tier 0: Raw Codebase\n(factory/<repo>)"]
    B["Tier 1: Atomic Observations\n(eku_middleware/eku_store/evidence/observations.json)\nExact file path, line range, verbatim snippet,\nlanguage, substrate"]
    C["Tier 2: Repo-Local EKUs\n(eku_middleware/eku_store/repo_ekus/<repo>.json)\nConcrete mechanism, source snippet,\ntest provenance, failure provenance\nEpistemic: REPO_LOCAL"]
    D["Tier 3: Domain EKUs\n(eku_middleware/eku_store/synthesized_queue_ekus.json)\nCross-repository behavioral invariants,\ndesign contracts, falsification audits\nEpistemic: DOMAIN_ABSTRACTION"]
    E["MCP Server\n(esekl mcp)\nProgressively discloses\nTier 1-3 via 20 tools"]
    F["Agent\n(Claude, Codex, AGY, etc.)"]

    A -->|"Mechanical inspection\nAST + grep + test suite link"| B
    B -->|"RepoEKU authoring\nvalidate_evidence_ledger.py"| C
    C -->|"Cross-corpus synthesis\nClaim matrix + keyword groups"| D
    D --> E
    C --> E
    B --> E
    E -->|"JSON-RPC 2.0 / stdio"| F

factoryディレクトリには、コミット句固定されたソースリポジトリのチェックアウトが格納されています。検査は機械的です。ソースファイルパス、行範囲、逐語的なコードスニペット、テスト関数名がアトミック観察として取得されます。これらの観察結果は、単一のリポジトリに紐づく具体的で証拠をもつ記録であるRepo-Local EKUにグループ化され、その後、明示的な反証監査を備えたコーパス横断的な行動不変条件を保持するDomain EKUへと集約されます。MCPサーバーは静的ストアを読み取り、プログレッシブな開示ツールを通じて提供します。エージェントはこれらのツールだけを操作し、生のストアには決して直接アクセスしません。

ナレッジストア(eku_store/)はnpmパッケージ内に同梱されています。初期化ステップは不要です。MCP設定を一度追加するだけで、npxを実行できるすべてのマシンが、即時に完全なコーパスを利用できます。


インストール

インストールステップは不要です。

eku_store/ ディレクトリは esekl npmパッケージ内に直接同梱されています。npx esekl mcp が起動すると、サーバーはパッケージディレクトリからストアを解決します。ローカルコピー、initコマンド、プロジェクトごとの設定はすべて不要です。

以下のいずれかの設定で、MCPサーバーをエージェントホストに配線します。


MCP設定

この単一のJSONブロックは、すべてのマシン・すべてのプロジェクトで動作し、パスも事前設定も不要です:

{
  "mcpServers": {
    "esekl": {
      "command": "npx",
      "args": ["-y", "esekl", "mcp"]
    }
  }
}

ストアの解決順序(最初に一致したものが優先):

  1. --store-root=<path> — 上級者向けの明示的なだ上書き。

  2. ~/.esekl/store — 完全オフラインまたはカスタムコーパスのために esekl init を実行した場合。

  3. <package_dir>/eku_store — パッケージに同梱されており、常に利用可能。セットアップ不要。

Claude Desktop

~/.config/claude/claude_desktop_config.json(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json)を編集し、上記のブロックを追加します。Claude Desktopを再起動してください。

AGY (Antigravity)

上記のブロックをAGY MCP設定ファイルに追加してください。ほとんどのAGY構成では再起動は不要です。

Codex CLI

~/.codex/config.toml に追加:

[mcp_servers.esekl]
command = "npx"
args = ["-y", "esekl", "mcp"]

JSON形式の mcpServers 設定を受け入れるCodex環境では、上記のJSONブロックを使用してください。


ツールサーフェス

MCPサーバーは、3つの階層にまたがる20個のツールを提供します。

検出とナビゲーション(6ツール)

Tool

Required Args

Purpose

get_capabilities

なし

コーパスのメタデータ:ドメイン、EKU総数、リポジトリ、カバレッジ比率。

list_dossiers

なし

言語とストレージエンジンでフィルタリングされた、ページ管理されたリポジトリズモ一覧。

get_dossier_summary

repo

1つのリポジトリの重要なメカニズムとエッジ条件を簡潔にまとめたもの。

list_research_threads

なし

リンクされたDomain EKU IDを伴うリポジトリ横断の障害テーマ。

get_dossier_slice

repo, sliceType

architecture、state_machine、lease_management、failure_recovery、concurrency_control のいずれかの構造化スライスを取得します。

compare_engines

repoA, repoB

2つのエンジンをメカニズム、不変条件、ストレージ基盤の観点で横並び比較する。

証拠と階層的検索(12ツール)

ツール

必須引数

説明

search_evidence

query

EKUs、主張、観察記録、障害にわたる多要素検索。layerフィルタ対応。

get_eku

ekuId

完全なDomain EKU:行動不変条件、設計契約、検証契約、コーパス統計。

list_repo_ekus

なし

メカニズムとオブジェクトタイプのフィルタ付き、ページされたRepo-Local EKUsの一覧。

get_repo_eku

repoEkuId

正確なソース行、SQL/Luaスニペット、テストスートの由来を含む完全なRepofitLocal EKU。

list_keyword_groups

なし

Repo-Local EKUs を集約する横断的なキーワードと基盤のファセットグループ。

get_keyword_group

groupId

構成要素であるRepo-Local EKsと関連するDomain EKUsを含む完全なキーワードグループ。

trace_domain_eku

ekuId

Domain EKUを、それを支えるRepo-Local EKUs、キーワードグループ、そのまの観察記録までゆっくり遡ります。

get_failure_patterns

problemStatement

問題説明に関連する二次の障害パターンと脆弱性のシグネチャ。

get_failure_chains

なし

因果の障害連鎖:トリガー、不変条件の破綻、最終的障害、回帰テストの状態。

get_implementation_evidence

なし

Repo-Local EKUsから導き出され、基盤とメカニズムでフィルタリングされた動的な実装パケット。

explain_provenance

evidenceId

任意のIDを、正確なPATH、行範囲、コミットハッシュ、スニペットSHA-256、テスト関数まで追跡する。

get_data_quality_report

なし

Repo-Local EKUsとDomain EKUsにわたる診断監査で、欠落フィールドと壊れた参照を表面化します。

設計批評と検証(2ツール)

ツール

必須引数

説明

compare_design_against_evidence

proposedDesign

提案されたアーキテクチャを実証不変条件に対して評價し、一致するEKUs、欠落した保証、そして「約束すべきでないもの」の契約を返します。

generate_originalverification_plan

requirementOrDesign

実証的な証拠と過去の失敗に直接マップされた、敵対的なテストスートを生成します。


結果の構造

get_eku

{
  "id": "EKU-QUEUE-015",
  "title": "Fenced Domain Result Promotion & Outbox Emission",
  "objectType": "BEHAVIORAL_INVARIANT",
  "claimId": "CLM-015",
  "problem": "A queue can fence stale completion of the job row while still allowing a superseded worker to write authoritative domain results or emit an outbox event.",
  "behavioralInvariant": "Ownership fencing must guard every authoritative side-effecting state mutation, including domain result promotion or outbox emission, not only queue-row completion.",
  "designContract": "Before committing a result row, payment ledger projection, or sendable outbox record, the storage transaction must prove current job ownership by token/generation.",
  "verificationContract": [
    "Worker A owns generation 1 and pauses.",
    "Worker B owns generation 2 and completes.",
    "Worker A attempts domain result promotion and queue completion.",
    "Both stale writes affect zero authoritative rows and emit stale-owner telemetry."
  ],
  "supportingEvidence": ["OBS-BULLMQ-002", "OBS-LITEQUEUE-002"],
  "historicalEvidence": ["HIST-RIVER-003"],
  "corpusStats": {
    "corpusSize": 13,
    "applicable": 7,
    "supports": 2,
    "counterexamples": 3
  }
}

get_repo_eku

{
  "repoEku": {
    "id": "REKU-RIVER-001",
    "repository": "river",
    "mechanism": "Relational Lock-Free Dequeue (FOR UPDATE SKIP LOCKED)",
    "claim": "PostgreSQL FOR UPDATE SKIP LOCKED allows concurrent worker pools to acquire non-overlapping available jobs without table-level locking.",
    "localContext": "River implements its primary job queue inside PostgreSQL. It relies on FOR UPDATE SKIP LOCKED in its sqlc query to scale Go worker goroutines.",
    "sourceProvenance": {
      "filePath": "riverdriver/riverpgxv5/internal/dbsqlc/river_job.sql",
      "lineRange": [45, 55],
      "queryOrCodeSnippet": "SELECT id, args, attempt, state FROM river_job WHERE state = 'available' ORDER BY priority ASC, scheduled_at ASC LIMIT $1 FOR UPDATE SKIP LOCKED;"
    },
    "testProvenance": {
      "filePath": "internal/jobexecutor/job_executor_test.go",
      "testName": "TestJobExecutor"
    },
    "epistemicStatus": "REPO_LOCAL"
  }
}

explain_provenance

{
  "evidenceId": "OBS-BULLMQ-002",
  "type": "OBSERVATION",
  "repository": "taskforcesh/bullmq",
  "commitHash": "c06b51cd3aacd0d9ee65e2544220c89f24d2479c",
  "filePath": "src/commands/moveToFinished-12.lua",
  "lineRange": { "start": 40, "end": 44 },
  "sourceUrl": "https://github.com/taskforcesh/bullmq/blob/c06b51cd3aacd0d9ee65e2544220c89f24d2479c/src/commands/moveToFinished-12.lua#L40-L44",
  "snippetSha256": "4b68e98da6984e1b00ad99e74d1c448bb5bbcb110cb16246473133604f32616f",
  "epistemicStatus": "SOURCE_OBSERVED"
}

compare_design_against_evidence

{
  "matchingEkus": ["EKU-QUEUE-015", "EKU-QUEUE-016", "EKU-QUEUE-017"],
  "missingInvariants": [
    {
      "invariant": "Storage-Time Lease Evaluation",
      "severity": "CRITICAL",
      "risk": "Caller-supplied VM timestamps allow clock drift across container hosts to cause premature lease expiration or duplicate execution.",
      "recommendedFix": "Use database server time (e.g. clock_timestamp()) exclusively in lease recovery queries."
    }
  ],
  "whatNotToPromise": [
    "Never promise true exactly-once delivery over external network boundaries without partner idempotency keys.",
    "Never promise constant latency during unmetered enterprise batch spikes; enforce admission semaphores and HTTP 429/503."
  ],
  "epistemicClassification": {
    "empiricalEvidenceCount": 8,
    "modelInferredPoints": 2
  }
}

リポジトリ構成

eku_middleware/          npm package root (published as esekl)
  bin/                   CLI and MCP server entry points
  src/                   MCP server implementation
  eku_store/             Static knowledge store — ships bundled inside the package
    evidence/            Atomic observations and historical failure records
    repo_ekus/           Repo-Local EKUs per repository
    synthesized_queue_ekus.json   Cross-corpus Domain EKUs
    claim_matrix.json             Claim-to-corpus coverage matrix
    schema/              JSON schema and specification for RepoEKUs
    release/             factory_repo_lock.json — commit-pinned source provenance
  mcp_contract.md        Full JSON-RPC contract with input/output schemas

analyzer/                Validation scripts (not shipped in npm package)
factory/                 Local raw repository cache for research rounds (git-ignored)

認識論的なラベル

すべての結果ıvingツールには明示的なラベルが付いています。エージェントがこれらを剥がし、説明、または無視することはできません。

ラベル

意味

SOURCE_OBSERVED

本番ソースファイルとAST構造の機械的な直接検査による。

TEST_OBSERVED

対象リポジトリ内の回帰テストスースイートの直接調査による。

HISTORY_SUPPORTED

検証された実際の本番インシデント、バグ修正、または問題コミット。

DOCUMENTED

アーキテクチャ文書または公式仕様の記述に基づく。

MODEL_INFERRED

観察結果をまたいだ高次の総酸化による。

CROSS_REPO_ABSTRACTION

2つ以上のコードベースで検証された一般的な行動特性。

SYNTHESIZED_ADVICE

実証的な不変条件から導き出された実行可能なアーキテクチャ診断、指針。


MCPフルコントラクト

全20ツールの完全な入出力スキーマ:eku_middleware/mcp_contract.md

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to search code by meaning, explore codebase structure, store and query knowledge with temporal facts, and read source code through a set of MCP tools.
    310 npm
    7
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Serves coding agents with project-specific knowledge (decisions, conventions, constraints) over MCP and provides verification verdicts on whether code still complies.
    365 npm
    AGPL 3.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that enables verified agents to retrieve from, propose changes to, and share capabilities around a human-owned Markdown/Git knowledge base, ensuring curation, exact-byte approval, and Git-based promotion.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables MCP agents to maintain durable, evidence-aware project knowledge, retrieve precise excerpts on demand, and track decisions, conflicts, and revisions across sessions.
    1
    Apache 2.0