CommunityCodierung & Entwicklunggithub.com

grahama1970/agent-ecosystem

Kanonische Karte und gemeinsame Verträge für das Agent-Governance-Ökosystem: der pi.receipt_envelope.v1-Grenzenvelope, der Komponentengraph und die Regeln, welche Komponente welches Schema besitzt. Verwenden Sie dies beim Verdrahten einer Fähigkeit oder Erweiterung in die gemeinsame Receipt-Welt, beim Fragen, wie shame, triage-error, tau, ask, project-watchdog, ops-herdr, ponytail und Memory zusammenpassen, oder beim Validieren eines Envelopes.

Was ist agent-ecosystem?

Das Agent Ecosystem definiert eine geschichtete Governance-Schleife für KI-Agenten, bei der jede Komponente genau eine Aufgabe besitzt und sie nur über typisierte JSON-Verträge, nicht durch Import von Zustandsmaschinen, koppelt. Das unveränderliche `$shame`-Ziel stellt sicher, dass Projekt-Agenten explizite Anweisungen nicht ignorieren können, indem es Instruktionsgehorsam und Abschlussberichte in pydantic-validierte Verträge, deterministische Erweiterungsgates und beibehaltene agentische Evaluierungen umwandelt. Das System umfasst Komponenten wie shame (Status), triage-error (Fehlervokabular), tau (DAG-Ausführung) und ask (Absichtskompilierung), die durch den `pi.receipt_envelope.v1` an autoritätswechselnden Grenzen kommunizieren. Es unterstützt plattformunabhängige Agenten-Workflows mit strikten Validierungsregeln, gemeinsamen JSON-Feld-Konventionen und einer Mitgliedschaftstabelle, die genau definiert, welche Komponente welche Schemas besitzt, ausgibt und konsumiert.

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

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Vorschau

Aus dem Skill-README

Agent-Governance-Ökosystem

Dokumentation

Agent Ecosystem

Eine geschichtete Governance-Schleife. Jede Komponente besitzt genau eine Aufgabe; sie koppeln nur durch typisierte JSON-Verträge, niemals durch Import der Zustandsmaschinen der jeweils anderen.

Das unveränderliche $shame-Ziel ist shame-deterministic-instruction-obedience-v1 (skills/shame/immutable_goal.json): Es soll Projekt-Agenten unmöglich gemacht werden, explizite Anweisungen zu ignorieren, indem Instruktionsgehorsam und Abschlussberichte in typisierte pydantic-validierte Verträge, deterministische Erweiterungsgates und beibehaltene agentische Evaluierungen umgewandelt werden. Prosa ist nur zur Anzeige und kann nicht über Erfolg entscheiden. Jedes unten genannte Ökosystem-Mitglied MUSS dieses Ziel an seiner Grenze bewahren.

Der Graph

Agent-Governance-Ökosystem

Gerendert mit $create-svg (scene.yml ist die Quelle; neu generieren mit skills/create-svg/run.sh render skills/agent-ecosystem/scene.yml skills/agent-ecosystem/ecosystem.svg). Das maschinenlesbare Mitgliederverzeichnis ist members.json (validiert von scripts/membership.py validate; beibehaltene Evaluierung hält es aktuell). erzeugt sie, das obige SVG und der folgende Mermaid-Block sind NICHT-NORMATIVE Illustrationen; die Besitztabelle und die ## Ecosystem-Abschnitte der Mitglieder sind die normative Topologie.

flowchart TB
    subgraph SHAPE[Erzeugungsformung]
        PONY[ponytail\nYAGNI-Leiter, keine Receipts]
    end
    subgraph TURN[Zug-Ebene - Pi-Sitzung]
        SHAME[shame extension\npi.agent_status.v1\nvalidieren, kompilieren, schlucken]
        TRIAGE[triage-error\nFehlervokabular\ncode, cause, next_command]
    end
    subgraph WORK[Workflow-Ebene]
        ASK[ask\nkompiliert Absicht zu DAG-Verträgen]
        TAU[tau\nführt DAGs aus, besitzt Akzeptanz\ntypisierte Knoten-Receipts, goal_hash]
    end
    subgraph OPS[Betriebsebene]
        WD[project-watchdog\nCron-Dispatch, Leases,\nProof-Gates, Tick-Receipts]
        HERDR[ops-herdr bridge\nInbox, Quieszenz,\nTTL-Totbriefe]
    end
    MEM[(Memory\nTrainingsbeispiele,\nTriage-Auflösungen,\nProjektwissen)]

    PONY -.-> SHAME
    SHAME -->|failed.triage.code| TRIAGE
    SHAME -->|needs_* kompilierte Befehle| ASK
    ASK -->|tau.dag_contract.v1| TAU
    TAU -->|Knoten-Receipts / handoff v2 trägt Status| SHAME
    WD -->|ticket_repair via ask| ASK
    WD -->|liest Urteile| TAU
    HERDR -->|Totbrief-Triage-Codes| TRIAGE
    SHAME -->|beschriftete Beispiele| MEM
    TRIAGE -->|geprägte Codes| MEM
    TAU -->|Export fehlerhafter Knoten-Receipts nach Ausführung| MEM

Besitztabelle

KomponenteBesitztGibt ausKonsumiertMUSS für das unveränderliche $shame-Ziel
Projekt-AgentenInstruktionsgehorsam an der Zug-Grenzepi.agent_status.v1-BerichteOperatoranweisungen, Tool-Ergebnisse, ReceiptsMUSS bewachte Arbeit als typisierte Statusdaten melden, continuing.not_done[].next_command für agentenausführbare unerledigte Arbeit verwenden und niemals Prosa/Commits/Reviewer-Meinung als Abschlussnachweis behandeln.
triage-errorFehlervokabular (failure_codes.json){code, cause, next_command}roher Fehlertext aus jeder EbeneMUSS ein rohes Signal auf einen Katalog- oder geprägten Code abbilden; vage terminale Bezeichnungen können keine gültigen Entscheidungen werden.
shameZug-Status (pi.agent_status.v1) und shame.immutable_goal.v1Statusobjekte, unveränderliches Ziel, TrainingsbeispieleTriage-Codes, menschliche BeschriftungenMUSS Statuswahrheit pydantic-validiert, nur zur Prosa-Anzeige und evaluierungsbewertet halten.
lazy-report-shame-shame-shame extensionPi message_end-DurchsetzungAblehnungspakete, gerenderter Status, Folgekommandosendgültiger Status JSON, FortsetzungsjournaleMUSS fehlenden/ungültigen Status JSON ablehnen, vom Modell verfassten Status-Prosa entfernen, aus validierten Daten rendern und kompilierte Fortsetzungs-/Eskalationsbefehle in die Warteschlange stellen.
status-json-check.mjsEndstatus-Extraktion und Validator-AufrufPrüfergebnis mit validiertem StatusobjektAssistententextDARF Statusgültigkeit nicht mit Regex, Prosa-Überschriften, Markdown, HTML oder LLM-Urteil entscheiden.
agent_status_schema.pypydantic-Status-LegalitätParse bestanden/nicht bestandenendgültiger Status JSONMUSS ungültige Statuszustände mit extra=forbid, typisierten Zustands-Payloads, kanonischen Triage-Codes und not_done nur bei continuing undarstellbar machen.
compile-status-command.mjsTypisierte Status-zu-Befehl-Kompilierunggenauer Folgekommando oder kein Befehlpydantic-valides StatusobjektMUSS continuing/needs_*-Payloads mechanisch kompilieren und terminale/menschliche Zustände zu keinem Autobefehl kompilieren.
agentic-evalsbeibehaltene RegressionsnachweiseBereitschaftsberichteFixtures und BefehleMUSS fehlschlagen, wenn Regex/Prosa-Statusrichtlinie zurückkehrt oder pydantic-Statusinvarianten geschwächt werden.
askAbsichts-zu-DAG-Kompilierungtau.dag_contract.v1, WiederherstellungspaketeStatus-Eskalations-PayloadsMUSS typisierte needs_*-Payloads anstelle von informeller Eskalationsprosa konsumieren.
tauDAG-Ausführung und AkzeptanzKnoten-Receipts, tau.agent_handoff.v1/v2, Ziel-HashesDAG-Verträge, eingebettete StatusobjekteMUSS unveränderliche Ziel-Hashes und typisierte Akzeptanz-Receipts besitzen; Reviewer-Prosa kann Akzeptanz nicht ersetzen.
project-watchdoggeplanter DispatchTick-Receipts, Proof-Gates, Sperren, FortsetzungsjournaleGitHub-Tickets, tau-UrteileMUSS maschinenlesbare offene Arbeit bereitstellen, sodass done fehlschlagen kann, während Tickets/Gates/nächste Schritte ungelöst bleiben.
ops-herdrsitzungsübergreifender TransportInbox-Datensätze, TotbriefeTriage-CodesMUSS sitzungsübergreifende Fehler/Zustände als typisierte Inbox- oder Totbriefdatensätze mit Triage-Codes transportieren.
ponytailErzeugungsminimalismusponytail:-Schuldenkommentare (keine Receipts)nichts aus der Receipt-WeltDARF Status-, Receipt-, Proof- oder Evaluierungsanforderungen nicht überschreiben.
MemoryAbrufSpeichern/Abrufen Rückleseantworten (keine Envelope-Receipts; Abrufe sind Beobachtungen, niemals verpackt)alles dauerhafteMUSS shame-Beispiele, Triage-Auflösungen und Projektwissen mit Rücklese speichern; Abrufe sind Beobachtungen, keine Abschluss-Receipts.
agent-ecosystemKomponentenbesitz und Receipt-Grenzenpi.receipt_envelope.v1-ValidierungGrenz-PayloadsMUSS die Besitzkarte veröffentlichen und Envelope-Verpackung an autoritätswechselnden Grenzen verlangen.
goal-helpernachweiszentrierte Zielformunveränderliches Ziel-Prompt/Checklistemenschlicher ZieltextMUSS Erfolg an primären Nachweis, Abschlusskriterien, erlaubten Umfang, verbotene Abweichung, Wiederholungsbudget und Stoppbedingung binden.

pi.receipt_envelope.v1 - der Grenzenvelope

Verpacken Sie eine Payload NUR an autoritätswechselnden Grenzen in den Envelope: Dispatch, Übergabe, Akzeptanz, Eskalation, Abschluss, dauerhafter Fehler. Interne Objekte bleiben unverpackt (geprüftes YAGNI-Urteil: kein universeller Ereignisbus, kein Envelope auf jedem Artefakt).

{
  "schema": "pi.receipt_envelope.v1",
  "receipt_id": "stabile-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": "Katalog- oder geprägter Code (optional)",
  "payload": {}
}

Validieren mit:

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

Regeln, durchgesetzt von scripts/receipt_envelope.py (pydantic, extra=forbid):

  • triage_code, falls vorhanden, muss ein Katalogcode von triage-error oder ein geprägter *_unclassified_<8hex>-Code sein - dieselbe Regel wie pi.agent_status.v1.failure.
  • goal_hash und parent_refs[].digest müssen sha256: + 64 hexadezimale Kleinbuchstaben sein.
  • parent_refs erfordern goal_hash: Eine Beweiskante ohne gemeinsames Ziel ist nicht vertrauenswürdig und schlägt bei der Validierung fehl.
  • Pydantic bewegt nur die STRUKTUR. Die Referenzauflösung (REFERENCE RESOLUTION) ist ein separater Schritt auf der Konsumentenseite mit vier obligatorischen Prüfungen: Die referenzierte Receipt existiert; ihr Schema ist gleich expected_schema; ihr Produzent ist gleich expected_producer; und resolved_parent.goal_hash == envelope.goal_hash (ein vorhandener Hash ist erst dann ein gemeinsames Ziel, wenn er verglichen wird). Die Digestprüfung wird angewendet, wenn digest gesetzt ist. Ein strukturell gültiger Envelope ist noch kein vertrauenswürdiger.
  • payload.schema ist in jeder verpackten Payload ERFORDERLICH und muss dem Envelope payload_schema entsprechen; eine anonyme Payload schlägt bei der Validierung fehl.
  • Feldmengenänderungen an jedem extra=forbid-Schema sind konstruktionsbedingt brechend; sie erfordern eine neue Schemaversion, niemals eine direkte Änderung.

Gemeinsame JSON-Feldkonventionen

Die folgenden Felder sind die tatsächliche gemeinsame Oberfläche. Eine Komponente "teilt" ein Feld, wenn sie denselben Namen, dieselbe Form und dieselbe Semantik wie der Besitzer ausgibt oder validiert.

FeldFormBesitzerGeteilt von
schemaversionierte ID, z.B. pi.agent_status.v1jeder Schema-Besitzerjedes Vertragsobjekt; Versionssprünge sind additiv-oder-neuer-Name
code (Triage)Katalogeintrag oder <präfix>_unclassified_<8hex>triage-errorshame failure.triage.code, Envelope triage_code, herdr-Totbriefe, ask-Wiederherstellungspakete
cause / next_commandeinfacher String / genauer ausführbarer Befehltriage-errorjeder Konsument einer Triage-Klassifikation; next_command ist auch das shame continuing-Weitermach-Feld
goal_hashsha256: + 64 hexadezimale Kleinbuchstabentau (unveränderliches Zielpaket)shame-Status (optional), Envelope (optional), jeder tau-Knoten-Receipt
verified[]{command, result}-PaareshameNachweis im done-Zustand überall, wo ein Statusobjekt eingebettet ist
proof[]konkrete Pfade/URLs/IDs; lokale Pfade in pi.agent_status.v1 müssen existieren, bevor done durchgehtshameStatusobjekte; watchdog-Proof-Gates benennen dieselben Artefakte
parent_refs[]{receipt_id, expected_schema, expected_producer, digest?}agent-ecosystem EnvelopeEskalationsnachweise (ersetzt Ad-hoc-Pfade in needs_webgpt)
producer / receipt_id / emitted_atString / stabile ID / RFC3339agent-ecosystem Envelopejeder an der Grenze verpackte Receipt
payload_schemaversionierte ID; muss gleich payload.schema sein, wenn die Payload eine deklariertagent-ecosystem Envelopejeder an der Grenze verpackte Receipt
terminale UrteilePASS FAIL BLOCKED NEEDS_ATTENTIONtauask verbindet, watchdog-Proof-Gates, Stream-Monitore
recoverable / not_thisbool / Ausschlusslistetriage-error KatalogKonsumenten, die über Wiederholung vs. Eskalation entscheiden

triage-error-Konventionen (normativ hier, implementiert dort)

  1. Ein rohes Signal wird auf EINEN {code, cause, next_command} abgebildet; ein generischer Code an einer Ebenengrenze ist ein Fehler, keine Klassifikation.
  2. Katalogeinträge leben in skills/triage-error/failure_codes.json mit {code, layer, match[], cause, next_command, recoverable, not_this[]}. Das Matching ist deterministisch: Normalisierung ist genau " ".join(text.lower().split()) (Kleinbuchstaben, alle Leerzeichenläufe auf einzelne Leerzeichen reduziert, Enden getrimmt); ein Eintrag matcht, wenn IRGENDEINER seiner match[]-Tokens (ebenfalls kleingeschrieben) ein Teilstring des normalisierten Signals ist; wenn --layer angegeben ist, werden Einträge mit einem anderen layer übersprungen; der ERSTE passende Eintrag in Dateireihenfolge gewinnt. Niemals Regex, niemals LLM-Urteil. Als terminale Klassifikationen verboten (sie sind Symptome, keine Ursachen, und müssen aus dem zugrunde liegenden Signal erneut triagiert werden): NEEDS_ATTENTION, BLOCKED, browser_handler_timeout, unknown_error, generic_failure, und jedes bloße terminale Urteilswort.
  3. Ungepaarte Signale prägen <layer-or-unknown>_unclassified_<8hex>, wobei die 8 Hex-Zeichen die ersten 8 von sha256 über den normalisierten Signaltext sind, sodass dasselbe Signal immer denselben Code prägt. Prägen öffnet den Ticket- + agentic-eval- + Memory-Loop. Wiederholungsschwelle: Die ZWEITE Beobachtung desselben geprägten Codes löst Promotion oder Aliasing aus. Alias-Darstellung: Eine aliases-Map auf oberster Ebene in der Katalogdatei bildet geprägten Code -> kanonischen Code; da das Prägen über dem normalisierten Signal deterministisch ist, prägt ein wiederkehrendes Signal denselben Code neu und der Klassifikator löst ihn über die Map zum kanonischen Eintrag auf (aufgezeichnet als aliased_from); der geprägte Code ist niemals eine zweite kanonische Identität. Die Ticket-/Eval-/Memory- Seiteneffekte sind idempotent pro geprägtem Code (schlüsselgebunden an die Code-Zeichenfolge).
  4. Jede Ökosystem-Komponente, die einen Fehler benennt, verwendet einen Katalog- oder geprägten Code. Sowohl pydantic-Validatoren (Statusschema, Envelope) setzen dies zur Parse-Zeit durch, sodass eine mehrdeutige Bezeichnung in einem gültigen Objekt nicht existieren kann.

Design-Entscheidungen (aus dem externen Review)

  1. Strenge gilt für ENTSCHEIDUNGEN, nicht für Beobachtungen. Behalten Sie rohe Beweise permissiv; halten Sie akzeptierte Ergebnisse streng. Eine typisierte unknown-Beobachtung ist legal; eine mehrdeutige Entscheidung nicht.
  2. Geprägte *_unclassified_*-Codes erhalten einen vorläufigen Lebenszyklus: Promoten Sie sie zum Katalog oder aliassen Sie zu einem vorhandenen Code, wenn sie wiederkehren; lassen Sie sie niemals ausufern.
  3. Schemaänderungen sind additiv; brechende Formänderungen erhalten eine neue Version (tau.agent_handoff.v2-Muster), niemals direkte Änderungen.
  4. Bauen Sie nicht: einen universellen Governance-Ereignisbus; Receipts für ponytail-Kommentare, Memory-Abrufe oder interne Wiederholungen.

Mitgliedschaft

Eine Fähigkeit oder Erweiterung tritt dem Ökosystem bei, indem sie einen ## Ecosystem-Abschnitt zu ihrer SKILL.md hinzufügt, der benennt: welche Schemas sie produziert, welche sie konsumiert und welche Grenzereignisse sie in den Envelope verpackt. Aktuelle Mitglieder: shame, triage-error, tau, ask, project-watchdog, ops-herdr. Ponytail ist konstruktionsbedingt benachbart.

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.

Verwandte Skills