Skip to main content
Glama

ESEKL — Empirical Software Engineering Knowledge Layer

ESEKL verwandelt produktionsreife Open-Source-Systemen in eine Sammlung strukturierter, von Agenten nutzbarer Werkzeuge. Es wird als Model Context Protocol (MCP)-Server ausgeliefert. Das ist der einzige unterstützte Auslieferungsmechanismus.

Agenten, die an verteilten Systemen arbeiten — Queue-Prozessoren, Broker, Streaming-Pipelines — halluzinieren routinemäßig Verhaltensinvarianten, zitieren produktionsbedingte Fehlerbilder falsch und generieren Verifikationspläne ohne jede empirische Grundlage. ESEKL schließt diese Lücke. Es bietet herkunftsverfolgbares, evidenzmarkiertes Wissen, gewonnen aus mechanischer Inspektion ausgereifter Open-Source-Systeme, das über aufgabenformige MCP-Tools bereitgestellt wird, die eine schrittweise Offenlegung erzwingen statt eines rohen Kontext-Dumps.

Der aktuelle Korpus deckt Queue-, Broker- und Streaming-Systeme ab: asynq, bullmq, pgmq, river, goqite, litequeue, nats-server, nsq, blazingmq, redpanda, rabbitmq, artemis und rocketmq.


Wie es Agenten hilft

Ohne ESEKL muss ein Programmier- oder Planungsagent, der an Job-Warteschlangen arbeitet, entweder Verhaltensverträge halluzinieren oder Tausende von Zeilen Rohquellcode durchblättern, um Muster zu extrahieren. Beide Wege scheitern: Halluzination erzeugt falsche Invarianten; das Durchstöbern roher Quellcode sucht das Kontextfenster, bevor der Agent die relevante Evidenz erreicht.

ESEKL bietet:

  • Verhaltensinvarianten, destilliert aus der direkten Quellcode-Inspektion über den gesamten Korpus, jeweils gekennzeichnet mit der Herkunft (SOURCE_OBSERVED, TEST_OBSERVED, HISTORY_SUPPORTED).

  • Fehlerpfad-Ketten aus realen Produktions-Bugs und Fix-Kommitts, eindeutig zu exakter Commit-Hash und zu der Testfunktion zurückverfolgbar, die sie geschlossen hat.

  • Implementierungspakete — konkrete SQL-Abfragen, Lua-Skripte und Go-/TypeScript-Ausschnitte aus Produktionsdateien — ausgeliefert mit Substrat- und Mechanismusfiltern, sodass der Agent genau die Implementierungsklasse erhält, auf die er hin arbeitet.

  • Designkritik gegenüber den korpusübergreifenden Invarianten, die fehlende Fencing-Garantien, Clock-Drift-Risiken und Lücken bei der Isolation von Gift-Jobs (Poison Jobs) in der vorgeschlagenen Architektur des Agenten aufspürt.

  • Adversarische Verifikationspläne, generiert aus empirischen Fehlerbeweisen, bereit, um Test-Suites anzutreiben.

Jedes Ergebnis versehen mit einem epistemischen Label. Agenten verwechseln eine repoübergreifende Abstraktionen nie mit einem Modell-Schluss.


Related MCP server: PactAI MCP

Architektur: Wie EKUs entstehen

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

Das Verzeichnis hält die auf Commits festgepinnten Quellcode-Checkouts der Repositories. Die Inspektion ist mechanisch: Quell-Dateipfade, Zeilenbereiche, wörtliche Code-Ausschnitte und Testfunktionsnamen werden als Atomare Atomare Beobachtungen erfasst. Diese Beobachtungen werden zu Repo-Local EKUs — konkretem, nachweisebarenrecords, die einem einzelnen Repository zugeordnet sind — zusammengefasst und dann zu Domain EKUs hochsynthetisiert, die korpusübergreifende Verhaltensinvarianz</ mit expliziten Falschsnachweis-Audits objekten. Der MCP-Server liest den static-Store so bereit und stellt ihn über Tools mit progressive Offenlegung bereit. Agenten interagieren limit nur mit diesen Werkzeugen; sie sehen nie den reinen Store.

Der Wissensspeicher (eku_store/) wird gebündelt direkt im npm-Paket mitgeliefert. Kein zusätzlicher Schritt erforderlich. Die MCP-Konfiguration einmal eintragen, und jede Maschine, die npx ausführen kann, hat sofort den gesamten Korpus.


Installation

Es ist kein Installationsschritt erforderlich.

Das Verzeichnis eku_store/ ist direkt im npm-Paket esekl gebündelt. Wenn npx esekl mcp startet, löst der Server den Store aus dem Paketverzeichnis — keine lokale Kopie, kein init, keine projektspezifische Einrichtung.

Binden Sie den MCP-Server über eine der folgenden Konfigurationen an Ihren Agent-Host an.


MCP-Konfiguration

Dieser JSON-Block funktioniert auf jeder Maschine, für jedes Projekt, ohne Pfade und ohne vorherige Einrichtung:

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

Reihenfolge zur Auflösung des Stores (erster Treffer gewinnt):

  1. --store-root=<path> – explizite Überschreibung, für erfahrene Lernende.

  2. ~/.esekl/store – falls esekl init ausgeführt wurde, für einen vollständig offline oder benutzerdefinierten Korpus.

  3. <package_dir>/eku_store – im Paket gebündelt, immer verfügbar, keine Einrichtung erforderlich.

Claude Desktop

Ändern Sie in ~/.config/claude/claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json) und fügen Sie den obigen Block hinzu. Starten Sie Claude Desktop neu.

AGY (Antigravity)

Fügen Sie den obigen Block in Ihre AGY-MCP-Konfigurationsdatei ein. Für die meisten AGY-Konfigurationen ist kein Neustart erforderlich.

Codex CLI

Fügen Sie in ~/.codex/config.toml hinzu:

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

Für Codex-Umgebungen, die eine JSON-mcpServers-Konfiguration akzeptieren, verwenden Sie den oberen JSON-Block.


Tool-Übersicht

Der MCP-Server bietet 20 Tools auf drei Ebenen an.

Entdeckung und Navigation (6 Tools)

Tool

Erforderliche Argumente

Zweck

get_capabilities

keine

Korpus-Metadaten: Domäne, Gesamtzahl der EKUs, Repositories, Abdeckungsraten.

list_dossiers

keine

Paginierte Repository-Dossier-Liste mit Sprach- und Storage-Engine-Filtern.

get_dossier_summary

repo

Kompakte Zusammenfassung der zentralen Mechanismen und Randbedingungen eines Repository.

list_research_threads

keine

Repo-übergreifende Fehlermuster-Themen mit verknüpften Domain-EKU-IDs.

get_dossier_slice

repo, sliceType

Strukturierter Ausschnitt eines Dossiers: architecture, state_machine, lease_management, failure_recovery oder concurrency_control.

compare_engines

repoA, repoB

Side-by-Side-Vergleich von zwei Engines über Mechanismen, Invarianten und Storage-Substratelement.

Evidenz und Schicht-Retrieval (12 Tools)

Tool

Erforderliche Argumente

Zweck

search_evidence

query

Mehrfaktoren-Suche über EKUs, Claims, Observations und Fehlern hinweg; unterstützt einen layer-Filter.

get_eku

ekuId

Vollständige Domain-EKU mit Verhaltensinvariante, Design-Verhaltensvertrag, Verifikationsvertrag, Korpusstatistik.

list_repo_ekus

keine

Paginierte Liste der Repo-Lokalen EKUs mit Mechanismus- und Objekttyp-Filtern.

get_repo_eku

repoEkuId

Vollständigte Woche: -Lokale EKU mit Original-Zeilennummern, SQL-/Lua-Snippets und Testfunktion.

list_keyword_groups

keine

Querschnittliche Schlagwort- und Substratumfelder aggregierender Repo-Lokaler EKUs.

get_keyword_group

groupId

Vollständige Schlagwortgruppe mit beteiligten RepoEKUs und verknüpften Domain-EKUs.

trace_domain_aktuell_epo

ekuId

Zeichnet eine Domain-EKU zu den unterstützenden Repo- Lokale EKUs, Keyword-Gruppen und Rohbeobachtungen zurück.

get_failure_patterns

problemStatement

Beispielbilder und Service-Templates zweiter Ordnung in Bezug auf die Problembeschreibung.

get_failure_chains

keine

Kausale Fehlermuster: Auslöser, Invariantenbruch, Endfehler, Regressions-Teststatus.

get_implementation_evidence

keine

Dynamische Implementierungspakete, abgeleitet aus Repo-lokalen EKUs, gefiltert nach Substrat und Mechanismus.

explain_provenance

evidenceId

Spuren jede ID zurück zum exakten Dateipfad, dem Zeilenbereich, dem Commit-Hash, dem SHA-256 der Snippets und der Testfunktion.

get_data_quality_report

keine

Datenqualitätsprüfung über beide Arten von EKUs, identifiziert fehlende Pflichtfelder und kaputte Referenzen.

Designkritik und Verifikation (2 Tools)

Tool

Erforderliche Argumente

Zweck

compare_design_against_evidence

proposedDesign

Bewertet eine Architektur gegen empirische Invarianten und liefert übereinstimmende EKU-Verweise, fehlende Garantien und der Verträge „was nicht versprochen werden darf”.

generate_verification_plan

anforderung_oder_design

Generiert teste Gegentest-Suiten, die direkt mit empirischen Belegen und historischen Fehlern abbilden.


Ergebnisformen

Abrufen der EU

{
  "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
  }
}

Abruf der 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"
  }
}

Erklärung der Provenienz

{
  "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"
}

Designvergleich gegen Evidenz

{
  "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
  }
}

Repo-Übersicht

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)

**

Epistemische Labels

Alle Tool-Ergebnisse tragen Befehle. Agenten dürfen sie dennoch nicht entfernen oder ignorieren.

Label

Bedeutung

SOURCE_OBSERVED

Direkte, mechanische Untersuchung der produktiven Quell-Dateien und Baumstrukturen.

TEST_OBSERVED

Direkte Untersuchung der Regressionstests im Ziel-Repository.

HISTORY_SUPPORTED

Nachgewiesener realer Produktionsvorfall, Bugfix oder Commit.

DOCUMENTED

Architektonische Dokumentation oder offizielles Spezifikations-Datum.

MODEL_INFERRED

Hochrangige Synthese, formuliert über eine Reihe von einzelnen Fehlermeldungen.

CROSS_REPO_ABSTRACTION

Allgemeingültige und über zwei oder mehr Codeworks validiert; Eigenschaft.

SYNTHESIZED_ADVICE

Handlungsorientierte, architektonische Empfehlung, abgeleitet aus empirischen Invarianten.

**

Vollständiger MCP-Vertrag

Vollständigen Ein- und Ausgabeschemata für alle 20 Tools: 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