esekl
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"| FDas 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):
--store-root=<path>– explizite Überschreibung, für erfahrene Lernende.~/.esekl/store– fallsesekl initausgeführt wurde, für einen vollständig offline oder benutzerdefinierten Korpus.<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 |
| keine | Korpus-Metadaten: Domäne, Gesamtzahl der EKUs, Repositories, Abdeckungsraten. |
| keine | Paginierte Repository-Dossier-Liste mit Sprach- und Storage-Engine-Filtern. |
|
| Kompakte Zusammenfassung der zentralen Mechanismen und Randbedingungen eines Repository. |
| keine | Repo-übergreifende Fehlermuster-Themen mit verknüpften Domain-EKU-IDs. |
|
| Strukturierter Ausschnitt eines Dossiers: |
|
| Side-by-Side-Vergleich von zwei Engines über Mechanismen, Invarianten und Storage-Substratelement. |
Evidenz und Schicht-Retrieval (12 Tools)
Tool | Erforderliche Argumente | Zweck |
|
| Mehrfaktoren-Suche über EKUs, Claims, Observations und Fehlern hinweg; unterstützt einen |
|
| Vollständige Domain-EKU mit Verhaltensinvariante, Design-Verhaltensvertrag, Verifikationsvertrag, Korpusstatistik. |
| keine | Paginierte Liste der Repo-Lokalen EKUs mit Mechanismus- und Objekttyp-Filtern. |
|
| Vollständigte Woche: -Lokale EKU mit Original-Zeilennummern, SQL-/Lua-Snippets und Testfunktion. |
| keine | Querschnittliche Schlagwort- und Substratumfelder aggregierender Repo-Lokaler EKUs. |
|
| Vollständige Schlagwortgruppe mit beteiligten RepoEKUs und verknüpften Domain-EKUs. |
|
| Zeichnet eine Domain-EKU zu den unterstützenden Repo- Lokale EKUs, Keyword-Gruppen und Rohbeobachtungen zurück. |
|
| Beispielbilder und Service-Templates zweiter Ordnung in Bezug auf die Problembeschreibung. |
| keine | Kausale Fehlermuster: Auslöser, Invariantenbruch, Endfehler, Regressions-Teststatus. |
| keine | Dynamische Implementierungspakete, abgeleitet aus Repo-lokalen EKUs, gefiltert nach Substrat und Mechanismus. |
|
| Spuren jede ID zurück zum exakten Dateipfad, dem Zeilenbereich, dem Commit-Hash, dem SHA-256 der Snippets und der Testfunktion. |
| keine | Datenqualitätsprüfung über beide Arten von EKUs, identifiziert fehlende Pflichtfelder und kaputte Referenzen. |
Designkritik und Verifikation (2 Tools)
Tool | Erforderliche Argumente | Zweck |
|
| Bewertet eine Architektur gegen empirische Invarianten und liefert übereinstimmende EKU-Verweise, fehlende Garantien und der Verträge „was nicht versprochen werden darf”. |
|
| 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 |
| Direkte, mechanische Untersuchung der produktiven Quell-Dateien und Baumstrukturen. |
| Direkte Untersuchung der Regressionstests im Ziel-Repository. |
| Nachgewiesener realer Produktionsvorfall, Bugfix oder Commit. |
| Architektonische Dokumentation oder offizielles Spezifikations-Datum. |
| Hochrangige Synthese, formuliert über eine Reihe von einzelnen Fehlermeldungen. |
| Allgemeingültige und über zwei oder mehr Codeworks validiert; Eigenschaft. |
| 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
This server cannot be deployed
Maintenance
Related MCP Connectors
Shared, peer-validated knowledge archive for AI agents — search, contribute, and validate via MCP
Tamper-evident proof creation and verification for AI agents via MCP, A2A, and REST.
Experimental MCP for discovering and purchasing explicitly published, versioned Agent knowledge.
Team docs served to AI agents over MCP - search, Markdown reads, version pinning, read audit.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables 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 npm7MIT
- AlicenseNot gradedqualityBmaintenanceServes coding agents with project-specific knowledge (decisions, conventions, constraints) over MCP and provides verification verdicts on whether code still complies.365 npmAGPL 3.0
- AlicenseNot gradedqualityAmaintenanceAn 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
- AlicenseNot gradedqualityAmaintenanceEnables MCP agents to maintain durable, evidence-aware project knowledge, retrieve precise excerpts on demand, and track decisions, conflicts, and revisions across sessions.1Apache 2.0