Communitygithub.com

API-Versionierungsstrategie

Auswahl und Betrieb einer HTTP-API-Versionierungsstrategie, die Clients nicht zerstört – datumsbasierte Pinned-Versionen (Stripe-Modell), das Deprecation-/Sunset-Header-Paar (RFC 9745 + RFC 8594), URI- vs. Header- vs. Media-Type-Ansätze und das Version-Transformer-Pattern. Fundiert durch Stripes veröffentlichte Architektur und IETF-RFCs.

Was ist API-Versionierungsstrategie?

Diese Fähigkeit befähigt KI-Agenten (wie Claude Code, Cursor oder Codex), eine robuste API-Versionierungsstrategie zu entwerfen und zu implementieren, die auf jahrelanger Praxis bei Stripe und IETF-Standards basiert. Sie behandelt das Kernproblem öffentlicher APIs: Wie führt man breaking Changes durch, ohne tausende Clients zu zerstören? Der Agent lernt das Stripe-Modell der datumsbasierten, pro API-Key gepinnten Versionen kennen, das kleine, häufige Änderungen ermöglicht, ohne Clients auf einen neuen Versionsbaum zu zwingen. Die Fähigkeit bietet eine Entscheidungsmatrix, um zwischen URI-Segmenten (z. B. `/v1/`), benutzerdefinierten Headern (`Stripe-Version`), Accept-Medientypen und rein additiver Evolution zu wählen. Sie enthält detaillierte Anleitungen für die Implementierung der obligatorischen `Deprecation`- und `Sunset`-Header (RFC 9745 und RFC 8594), um Clients eine klare End-of-Life-Ankündigung zu geben. Das Herzstück ist das Version-Transformer-Pattern – eine invertierte Pipeline, die alle breaking Changes als unabhängige Module speichert und auf Anfrage die Antwort für jede gepinnte Version rekonstruiert. Dies hält den Kerncode modern und vermeidet verteilte if/else-Abfragen. Die Fähigkeit unterscheidet klar zwischen internen und öffentlichen APIs, da interne Dienste oft mit rein additiven Änderungen und Koordination auskommen, während öffentliche APIs die volle Zeremonie benötigen. Sie enthält Anti-Patterns (z. B. Daten ohne Sunset löschen), Qualitätsgates in Checklistenform und eine Novize/Experte/Timeline-Matrix, die den Reifegrad einer Organisation messbar macht. Der Agent kann diese Regeln direkt in CI/CD-Pipelines, API-Gateway-Konfigurationen oder Code-Generierungs-Workflows integrieren.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/curiositech/windags-skills/tree/HEAD/skills/api-versioning-strategy

In Ihrer bevorzugten KI fragen

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

Dokumentation

Was macht API-Versionierungsstrategie?

TL;DR: Datumsbasierte, pro API-Key gepinnte Versionen (Stripe-Modell) schlagen /v1/, /v2/ für langlebige öffentliche APIs, weil sie kleine breaking Changes erlauben, ohne Clients auf einen neuen Baum zu zwingen. Für interne APIs reichen additive Evolution plus die Deprecation- und Sunset-Header (RFC 9745, RFC 8594) meistens aus. Immer ankündigen, immer an einem Datum auslaufen lassen, niemals einfach entfernen.


Schnellnavigation nach Problem

SymptomAbschnitt
"Muss ein Feld brechen, habe aber 100.000 API-Keys"Datumsbasierte Pinned-Versionen
"Soll ich /v1/ oder Accept: application/vnd.foo.v2+json verwenden?"Strategievergleich
"Wie sage ich Clients, dass ein Endpunkt verschwindet?"Deprecation + Sunset
"Sechs Versionen im Code zu pflegen bringt uns um"Version-Transformer
"Interne API – brauchen wir überhaupt Versionierung?"Interne vs. öffentliche APIs

Entscheidungsdiagramm

flowchart TD
  A[Muss API-Verhalten ändern] --> B{Nur additiv?<br/>neues Feld, neuer Endpunkt, neuer optionaler Parameter}
  B -->|Ja| C[Einfach ausrollen<br/>keine Versionierung nötig]
  B -->|Nein, breaking| D{API ist öffentlich<br/>+ viele undurchsichtige Clients?}
  D -->|Nein, intern/wenige Clients| E[Migration koordinieren<br/>+ Deprecation/Sunset-Header]
  D -->|Ja, öffentlich| F{Kannst du pro Anfrage<br/>einen Kompatibilitätslayer bereitstellen?}
  F -->|Ja, habe einen Transformer| G[Datumsbasierte Pinned-Version<br/>Stripe-Modell]
  F -->|Nein, großer Rewrite| H[Major-Version URI-Bump<br/>/v1 → /v2]
  E --> I[Setze Deprecation: @timestamp<br/>+ Sunset: HTTP-date<br/>+ Link: rel=deprecation]
  G --> I
  H --> I

1. Datumsbasierte Pinned-Versionen (Stripe-Modell)

Stripe hat seine Architektur in API-Versionierung bei Stripe veröffentlicht:

Wenn ein Benutzer zum ersten Mal eine API-Anfrage stellt, wird sein Konto automatisch auf die aktuellste verfügbare Version fixiert, und von da an wird jeder API-Aufruf implizit dieser Version zugeordnet.

[Versionen sind] rollierende Versionen, die nach dem Datum ihrer Veröffentlichung benannt sind (z.B. 2017-05-24).

Die Schlüsseleigenschaften:

EigenschaftWarum es funktioniert
Standardversion pro Konto (beim ersten Aufruf gesetzt)Neue Kunden werden automatisch auf die neueste Version fixiert; bestehende Kunden werden nicht unterbrochen, wenn du eine Änderung ausrollst
Stripe-Version-Header überschreibt die Pinning pro AnfrageErmöglicht schrittweise Client-Migration: SDK kann sich für eine neue Version entscheiden, bevor das Konto es tut
Datumsbasierte Namen (2024-04-10)Vermittelt Aktualität; keine Debatte darüber, was "v3" bedeutet; erlaubt beliebig viele kleine Brüche, anstatt sie für einen großen Knall v3 aufzusparen
Dashboard-Upgrade-PfadKunde kann den Unterschied einsehen und dann die Standardversion seines Kontos aktualisieren

Dies ist der einzige Ansatz, der für wirklich langlebige öffentliche APIs skaliert (Stripe hat Versionen, die ein Jahrzehnt zurückreichen). Es kostet dich interne Komplexität (das Transformer-Pattern in §4), erspart deinen Kunden aber den ewigen /v1/ → /v2/-Migrationszyklus.


2. Versionierungsstrategie-Vergleich

StrategieWo die Version lebtProContraAm besten geeignet für
URI-Segment (/v1/, /v2/)PfadCache-freundlich (verschiedene URL = verschiedener Cache-Eintrag); keine Client-KonfigurationKeine kleinen Brüche möglich; erzwingt eine Baumgabelung; URLs sind keine "stabilen Ressourcen-Identifikatoren" mehr (laut Fielding)Interne APIs, öffentliche APIs, die selten brechen
Benutzerdefinierter Header (Stripe-Version: 2024-04-10)AnforderungsheaderViele Versionen günstig; Granularität pro AnfrageURLs können nicht mit eingebauter Version geteilt werden; schwerer im Browser-Adressfeld zu testenÖffentliche APIs in großem Maßstab
Accept-Medientyp (Accept: application/vnd.foo.v2+json)Standard Accept-Header"Spezifikationskonform" laut HTTP; nutzt die Content-Negotiation-MechanismenUmständlich zu setzen; Tooling-Unterstützung variiert; Debuggen mit curl ist ausführlichHypermedia-APIs, tiefgehend RESTful-Designs
Abfrageparameter (?version=2)URLEinfach zu testen; in Logs sichtbarVerschmutzt URL; semantisch falsch (Version ist keine Ressourceneigenschaft)Nur schnelles Prototyping
Keine Versionierung, nur additivn/aKein Overhead; keine Client-KoordinationNie eine breaking Change ohne neuen Endpunkt möglichInterne Microservices mit gemeinsamem Deploy

Wähle, indem du deine Einschränkung auswählst:

  • "Wir machen häufig winzige Brüche" → datumsbasierter Header (Stripe)
  • "Wir machen alle 5 Jahre einen großen Rewrite" → URI-Segment (/v1/, /v2/)
  • "Wir brechen nie, fügen nur hinzu" → keine Versionierung + additive Evolution

3. Das Deprecation/Sunset-Header-Paar

Zwei IETF-RFCs decken das Lebenszyklus-Signal ab:

Sunset-Header — RFC 8594

Der Sunset-Wert ist ein HTTP-Datum-Zeitstempel, wie in Abschnitt 7.1.1.1 von [RFC7231] definiert, und SOLLTE ein Zeitstempel in der Zukunft sein.

Sunset: Sat, 31 Dec 2026 23:59:59 GMT

Zeigt an, dass "die Ressource voraussichtlich zu einem bestimmten Zeitpunkt in der Zukunft nicht mehr erreichbar sein wird." Clients SOLLTEN den Zeitstempel als Hinweis behandeln, nicht als festen Vertrag.

Deprecation-Header — RFC 9745

Deprecation: @1735689599
Sunset: Sun, 31 Dec 2026 23:59:59 GMT
Link: <https://api.example.com/docs/migrate-v1-to-v2>; rel="deprecation"

Der Deprecation-Wert ist ein Unix-Zeitstempel (Sekunden, mit @-Präfix gemäß Structured Fields). Er kann in der Vergangenheit ("bereits veraltet") oder Zukunft ("wird veraltet sein") liegen. Die MUSS-Regeln:

  • MUSS das Structured-Field-Datumsformat gemäß RFC 9651 verwenden
  • Sunset DARF NICHT früher als Deprecation sein — die Spezifikation ist explizit; es ist eine zeitliche Ordnungsbeschränkung
  • SOLLTE einen Link mit rel="deprecation" enthalten, der auf Migrationsdokumentation verweist

Das Senden von Deprecation ändert nicht das Verhalten der Ressource — es ist ein Signal, keine Verschlechterung. Server SOLLTEN die Ressource bis zum Sunset-Datum funktionsfähig halten (abgesehen von Notfällen).

Empfohlener Zeitplan

T+0      Erste Deprecation: Header in Produktion gesendet
T+30d    Öffentliche Ankündigung (Changelog, E-Mail, Dokumentation)
T+90d    Antwort-Logs/Metriken zur Nutzung des veralteten Pfades hinzufügen
T+180d   Sunset-Datum 90 Tage im Voraus festgelegt
T+270d   Sunset-Datum erreicht — Endpunkt gibt 410 Gone mit Migrationslink zurück

Für kleinere breaking Changes auf einer auf einer Major-Version fixierten API: 6 Monate sind der Median. Für vollständige v1 → v2-Sunsets: 12-24 Monate.


4. Das Version-Transformer-Pattern

Stripes interne Architektur löst das Problem "wir haben 50 Versionen in Produktion":

[Das System verwendet] API-Ressourcenklassen, die aktuelle API-Antwortstrukturen definieren, kombiniert mit Versionsänderungsmodulen, die rückwärtsinkompatible Transformationen kapseln. Bei der Verarbeitung von Antworten geht das System zeitlich rückwärts und wendet jedes Versionsänderungsmodul an, das es auf dem Weg findet, bis die Zielversion erreicht ist.

Die Form:

// Ressource: die kanonische (neueste) Darstellung
const charge = {
  id: 'ch_123',
  amount: 1000,
  payment_method_details: { card: { brand: 'visa', last4: '4242' } },
}

// Jede breaking Change ist ein Transformer-Modul:
const v_2024_03_01 = {
  // Entfernt 'card'-Verschachtelung unter payment_method_details, flacht Felder ab
  apply(resource) {
    return {
      ...resource,
      card_brand: resource.payment_method_details?.card?.brand,
      card_last4: resource.payment_method_details?.card?.last4,
    }
  },
}

const v_2023_10_15 = {
  // Benennt 'amount' in 'amount_cents' um
  apply(resource) {
    const { amount, ...rest } = resource
    return { ...rest, amount_cents: amount }
  },
}

// Pipeline wendet Transformer in umgekehrt chronologischer Reihenfolge an,
// bis die angeforderte Version erreicht ist
function transform(resource, requestedVersion) {
  const chain = transformers.filter(t => t.date > requestedVersion)
  return chain.reduceRight((r, t) => t.apply(r), resource)
}

Die Vorteile:

  • Kerncode bleibt modern — jeder Endpunkt wird gegen das neueste Schema geschrieben; keine if (version < ...)-Abfragen mehr in der Geschäftslogik.
  • Jeder Bruch ist eine Datei — einfach zu reviewen, einfach isoliert zu testen, einfach zu löschen, wenn der letzte Benutzer darüber hinaus fixiert ist.
  • Telemetrie — du kannst zählen, welche Transformer pro Tag ausgelöst werden, um Einstellungen anhand der tatsächlichen Nutzung zu planen.

Der Preis: das Framework für die Transformer zu bauen. Es lohnt sich, wenn du >3 breaking Changes pro Jahr und >10.000 API-Konsumenten hast; für eine <50-Kunden-interne API ist es übertrieben.


5. Interne vs. öffentliche APIs

Die Asymmetrie ist wichtig:

InternÖffentlich
Koordinierter Deploy möglich?Ja — atomarer AustauschNein — Clients deployen unabhängig
Schema-EvolutionAdditiv + Slack-NachrichtStrenge Versionierung + E-Mail + Dashboards + Blogbeitrag
Sunset-FensterTage bis Wochen6-24 Monate
VersionierungsbedarfOft keine — nur Deprecation-HeaderZwingend erforderlich
Beste StrategieAdditive Evolution; URI-Version nur bei RewriteDatumsbasierte Header (wenn Skala es rechtfertigt), URI für große Rewrites

Die Falle: Unternehmen behandeln alle APIs als "öffentlich" und bauen die schwere Versionierungsinfrastruktur für eine API, die nur von 3 internen Diensten genutzt wird. Die umgekehrte Falle: Eine durchgesickerte interne API hat externe Konsumenten und du kannst sie eigentlich nicht brechen.

Abwehr: Mache "öffentlich" zu einem binären Tag für den Dienst. Öffentliche Dienste erhalten die vollständige Versionierungszeremonie; interne Dienste nicht, aber erhalten aggressive Überwachung, wer sie aufruft.


Anti-Patterns

Anti-PatternWarum es beißtLösung
/v1/ auf /v2/ für eine breaking Change erhöhenZwingt Clients, alles für ein Feld zu migrierenDatumsbasierte Version ODER additive Evolution
Endpunkte ohne Sunset-Header entfernenClients brechen ohne Warnung; Support-Tickets explodierenEntfernung immer mit Deprecation 90+ Tage vorher kombinieren
Deprecation ohne Link sendenClients wissen, dass es veraltet ist, aber nicht, was zu tun istImmer Link: <migrations-dok>; rel="deprecation" einfügen
Pro Kunde fest codierte VersionsausnahmenWird unwartbar; Verhalten nicht nachvollziehbarTransformer-Pattern verwenden; "Ausnahmen" werden zu Version-Fixes
Interne APIs wie öffentliche versionierenProzess-Overhead ohne NutzenAdditive Evolution + atomare Deploys + Slack
Semver (v1.2.3) auf REST-APIs verwendenImpliziert Bedeutung, die nicht zutrifft (was ist ein "Patch" für ein JSON-Schema?)Datumsbasierte Namen oder nur Major (v1)
Sunset-Datum ohne DurchsetzungEndpunkt lebt ewig, Code verrottetKalendererinnerung; CI-Test, der 7 Tage vor Sunset fehlschlägt, um Maßnahmen zu erzwingen

Novize / Experte / Zeitplan

NovizeExperte
Erste breaking ChangeErhöht /v1 auf /v2, kopiert den gesamten BaumErwägt datumsbasiertes Pinning, bewertet, ob die Änderung wirklich breaking ist
Clients über Einstellung informierenE-Mail-ExplosionDeprecation + Sunset-Header + Link + E-Mail + Dashboard-Banner
5 Versionen warten5 if/else-Verzweigungen in jedem ControllerTransformer-Module, nur neuester Core-Code
Sunset-Durchsetzung"Wir kümmern uns später darum"Sunset-Datum im CI; Endpunkt wird am Datum zu 410 Gone
Interne API-ÄnderungGleiche Zeremonie wie öffentlich — langsamAdditive Evolution + atomarer Deploy; reserviert schwere Prozesse für öffentlich

Zeitplantest: Wie lange dauert es von "wir wollen Feld X entfernen" bis "Feld X ist in Produktion weg"? Eine Expertenorganisation hat eine einzige wiederholbare Antwort (z.B. 90 Tage). Eine Novizenorganisation hat keine Antwort, weil es keinen Prozess gibt.


Qualitätsgates

Eine Versionierungsänderung wird ausgeliefert, wenn:

  • Test: Das Entfernen oder Umbenennen eines extern sichtbaren Feldes wird durch eine mindestens N Tage alte Einstellungsankündigung gesteuert (wobei N das dokumentierte Sunset-Fenster ist).
  • Test: Jeder veraltete Endpunkt sendet Deprecation: @<unix-ts>- und Sunset: <HTTP-date>-Header, verifiziert in einem Integrationstest.
  • Test: Sunset-Wert ist niemals früher als Deprecation-Wert (gemäß RFC 9745 MUSS).
  • Test: Jede Einstellungsankündigung enthält einen Link: <docs-url>; rel="deprecation"-Header UND ein öffentliches Migrationsdokument, das unter dieser URL existiert (HEAD-Check im CI).
  • Test: Nutzungstelemetrie pro Version existiert — du kannst beantworten "wie viele Anfragen auf dem v2-Pfad gestern?" bevor du v2 löschst.
  • Test (nur datumsbasiert fixiert): Neue API-Keys standardmäßig auf die neueste Version; bestehende Keys behalten ihre Fixierung über Deploys hinweg.
  • Manuell: Sunset-Durchsetzungsplan: eine Kalendererinnerung, ein CI-Check oder eine automatisierte 410 Gone — etwas wird ausgelöst, wenn das Datum eintrifft.

NICHT für diese Fähigkeit

  • GraphQL-Schema-Evolution (verwende graphql-schema-evolution)
  • gRPC / Protobuf-Drahtkompatibilität (verwende protobuf-evolution-rules)
  • Datenbank-Schema-Versionierung (verwende zero-downtime-database-migration)
  • Bibliotheks-/SDK-Semver (verwende npm-package-versioning)
  • Event-Stream-Schema-Evolution (verwende kafka-schema-registry-design)

Quellen

Individual skills in this repo

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

curiositech/windags-skills

Expert in 2000s-era music visualization (Milkdrop, AVS, Geiss) and modern WebGL implementations. Specializes in Butterchurn integration, Web Audio API AnalyserNode FFT data, GLSL shaders for audio-reactive visuals, and psychedelic generative art. Activate on "Milkdrop", "music visualization", "WebGL visualizer", "Butterchurn", "audio reactive", "FFT visualization", "spectrum analyzer". NOT for simple bar charts/waveforms (use basic canvas), video editing, or non-audio visuals.

curiositech/windags-skills

Expert legal research agent for finding and scraping expungement data state by state. Knows authoritative sources, URL patterns, Firecrawl configuration, and 2026 legal landscape.

curiositech/windags-skills

Expert in 3D computer vision labeling tools, workflows, and AI-assisted annotation for LiDAR, point clouds, and sensor fusion. Covers SAM4D/Point-SAM, human-in-the-loop architectures, and vertical-specific training strategies. Activate on '3D labeling', 'point cloud annotation', 'LiDAR labeling', 'SAM 3D', 'SAM4D', 'sensor fusion annotation', '3D bounding box', 'semantic segmentation point cloud'. NOT for 2D image labeling (use clip-aware-embeddings), general ML training (use ml-engineer), video annotation without 3D (use computer-vision-pipeline), or VLM prompt engineering (use prompt-engineer).

curiositech/windags-skills

Implement WCAG 2.2 AA/AAA compliance with automated testing, keyboard navigation, screen reader support, and focus management. Activate on: accessibility audit, WCAG compliance, keyboard navigation, screen reader, aria attributes, axe-core, focus trap. NOT for: design-level accessibility review (use design-accessibility-auditor), color contrast only (use css-in-js-architect).

curiositech/windags-skills

Time-blind friendly planning, executive function support, and daily structure for ADHD brains. Specializes in realistic time estimation, dopamine-aware task design, and building systems that actually work for neurodivergent minds.

curiositech/windags-skills

Designs digital experiences for ADHD brains using neuroscience research and UX principles. Expert in reducing cognitive load, time blindness solutions, dopamine-driven engagement, and compassionate design patterns. Activate on 'ADHD design', 'cognitive load', 'accessibility', 'neurodivergent UX', 'time blindness', 'dopamine-driven', 'executive function'. NOT for general accessibility (WCAG only), neurotypical UX design, or simple UI styling without ADHD context.

curiositech/windags-skills

>- Apply crisis decision-making research to agent routing, uncertainty triage, and coordination failure analysis in time-pressured systems. Use when diagnosing handoff failures, analytical paralysis, or expert judgment under incomplete information. NOT for routine coding, simple CRUD design, or static single-agent tasks with complete information.

curiositech/windags-skills

Extend and modify the admin dashboard, developer portal, and operations console. Use when adding new admin tabs, metrics, monitoring features, or internal tools. Activates for dashboard development, analytics, user management, and internal tooling.

curiositech/windags-skills

Conversation patterns and interaction protocols for multi-agent systems. Covers request/response, pub/sub, blackboard, delegation chains, debate, critique, consensus, fan-out/fan-in, supervisor-worker, and peer negotiation. Deep analysis of AutoGen conversation patterns, CrewAI delegation, LangGraph state passing, and FIPA-ACL performatives. Teaches how to design what agents say to each other and in what order. Activate on: "agent conversation", "agent protocol", "multi-agent debate", "agent delegation", "supervisor worker pattern", "agent voting", "consensus protocol", "fan-out fan-in", "agent negotiation", "blackboard pattern", "agent dialogue", "conversation topology", "agent handoff". NOT for: wire format or serialization (use agent-interchange-formats), orchestration infrastructure (use agentic-infrastructure-2026), single agent behavior (use agentic-patterns).

curiositech/windags-skills

Meta-agent for creating new custom agents, skills, and MCP integrations. Expert in agent design, MCP development, skill architecture, and rapid prototyping. Activate on 'create agent', 'new skill', 'MCP server', 'custom tool', 'agent design'. NOT for using existing agents (invoke them directly), general coding (use language-specific skills), or infrastructure setup (use deployment-engineer).

curiositech/windags-skills

AI-powered calendar management and agent-based scheduling coordination. Covers calendar APIs (Google Calendar, CalDAV/iCal), AI scheduling assistants (Reclaim, Clockwise, Motion, Cal.com), building custom calendar agents with MCP, multi-calendar merging, timezone management, focus block protection, meeting fatigue detection, and agent-to-agent meeting negotiation protocols. Activate on: "calendar agent", "AI scheduling", "calendar coordination", "meeting scheduling", "calendar API", "focus time protection", "calendar optimization", "Google Calendar MCP", "Reclaim", "Clockwise", "Motion", "Cal.com", "smart scheduling", "calendar-aware agent", "timezone scheduling", "agent negotiation meetings". NOT for: manual calendar UI component design (use form-validation-architect), project management scheduling or Gantt charts (use project-management-guru-adhd), general time-tracking or pomodoro apps (use adhd-daily-planner for time-awareness), building the agent itself from scratch (use agent-creator).

curiositech/windags-skills

Build and adopt production AI agent infrastructure in 2026. Covers framework selection (LangGraph, CrewAI, AutoGen, MCP), orchestration patterns, evaluation, observability, memory systems, and tool use. Also covers the SOCIAL dimension: how to sell agent infrastructure internally, change management, measuring ROI, building trust in autonomous systems, and scaling adoption across teams. Activate on: "agent infrastructure", "agent framework comparison", "which agent framework", "sell AI tools internally", "agent adoption", "agent observability", "agent evaluation", "MCP architecture", "agentic mesh", "enterprise AI agents", "AI change management", "agent ROI". NOT for: building specific agents (use ai-engineer), designing agent behavior patterns (use agentic-patterns), prompt tuning (use prompt-engineer).

curiositech/windags-skills

Fundamental patterns for effective agentic behavior. Teaches decomposition, tool orchestration, error recovery, context management, quality self-assessment, and knowing when to stop. Model-agnostic principles that make any agent more effective regardless of domain. Activate on: "how should I structure this agent", "agentic workflow", "agent patterns", "multi-step task", "tool orchestration", "/agentic-patterns", "decompose this", "agent best practices", "chain of actions", "when should the agent stop", "agent loop design". NOT for: creating agent infrastructure (use agent-creator), building DAGs (use windags-architect), specific tool implementation.

curiositech/windags-skills

Automated discovery and matching of agent skills for dynamic task routing and capability assessment

curiositech/windags-skills

Cryptographic security for agentic systems — zero-trust agent networking, signed message envelopes (JWS/JWE), capability-based security (ocaps), Merkle tree audit trails, WASM sandboxing, and formal verification. Covers CLI dev tool security, mTLS between agents, permission boundaries (least privilege for AI agents), and supply chain security for skills/plugins. Activate on: "agent security", "zero trust agents", "secure agent communication", "capability-based security", "ocap", "signed messages between agents", "agent audit trail", "sandbox agent execution", "agent permissions", "mTLS agents", "cryptographic verification", "agent supply chain", "OWASP agentic", "prove agent did X", "tamper-proof agent logs". NOT for: application-level SAST scanning (use security-auditor), network firewall rules (use infrastructure), SOC2/HIPAA compliance (organizational), or prompt injection defense (use prompt-engineer).

curiositech/windags-skills

Data structures and serialization formats for agent-to-agent communication. Covers message envelopes, structured output schemas, capability declarations, task handoff payloads, error/retry signaling, and context windows as data structures. Deep comparison of A2A protocol, MCP, OpenAI function calling, and LangChain message types. Teaches when to use rigid schemas vs free-form with validation, typed vs untyped, streaming vs batch. Activate on: "agent message format", "agent communication schema", "agent-to-agent protocol", "A2A protocol", "MCP message format", "structured output for agents", "agent interop", "interchange format", "agent serialization", "task handoff format", "capability declaration". NOT for: what agents say to each other (use agent-conversation-protocols), orchestration topology (use multi-agent-coordination), building agent infrastructure (use agentic-infrastructure-2026).

curiositech/windags-skills

Logic-based agent programming language implementing BDI architecture for practical autonomous agent development

curiositech/windags-skills

>- Design AgentSpeak(L)-style BDI agents with context-guarded plans, selection functions, and intention stacks. Use for interruptible autonomy, agent policy, and multi-agent orchestration in dynamic environments. NOT for simple rule engines, static planners, or centralized workflows.

curiositech/windags-skills

Foundational concurrent computation model where actors communicate exclusively through asynchronous message passing

curiositech/windags-skills

license: Apache-2.0 NOT for unrelated tasks outside this domain.

Verwandte Skills