common-accessibility
Enforce WCAG 2.2 AA compliance with semantic HTML, ARIA roles, keyboard navigation, and color contrast standards for web UIs. Use…
Choose distributed integration and evolution patterns by the constraint each removes: outbox, CQRS, event sourcing, saga orchestration or choreography, leader election, sidecar, anti-corruption layer, and strangler-fig migration. Use when services must stay consistent across a
Claude Code
$ npx -y skills add hoangnguyen0403/agent-skills-standard --skill system-design-integration-patterns --agent claude-code
Codex
$ npx skills add hoangnguyen0403/agent-skills-standard --skill system-design-integration-patterns -a codex -y
Cursor
$ npx skills add hoangnguyen0403/agent-skills-standard --skill system-design-integration-patterns -a cursor -y
Gemini CLI
$ npx skills add hoangnguyen0403/agent-skills-standard --skill system-design-integration-patterns -a gemini-cli -y
GitHub Copilot
$ npx skills add hoangnguyen0403/agent-skills-standard --skill system-design-integration-patterns -a github-copilot -y
OpenCode
$ npx skills add hoangnguyen0403/agent-skills-standard --skill system-design-integration-patterns -a opencode -y
Windsurf
$ npx skills add hoangnguyen0403/agent-skills-standard --skill system-design-integration-patterns -a windsurf -y
name: system-design-integration-patterns
description: "Choose distributed integration and evolution patterns by the constraint each removes: outbox, CQRS, event sourcing, saga orchestration or choreography, leader election, sidecar, anti-corruption layer, and strangler-fig migration. Use when services must stay consistent across a boundary."
metadata:
triggers:
keywords:
- cqrs
- event sourcing
- saga
- durable execution
- workflow replay
- reconciliation
- outbox
- leader election
- sidecar
- strangler fig
- backends for frontends
- anti-corruption layer
- choreographyEach pattern buys one guarantee and charges operational complexity. Adopt on evidence, not on architecture fashion.
| Constraint observed | Pattern | Cost accepted | | --- | --- | --- | | A write must update the database and publish an event atomically | Transactional outbox | A relay (poller or CDC) to run and monitor | | Read shape and write shape have diverged and one model serves neither | CQRS | Two models, sync lag, doubled tests | | The sequence of changes is itself the product (audit, replay, temporal queries) | Event sourcing | Projections, event versioning, no easy delete | | A business process crosses services and needs recoverable coordination | Saga or durable workflow | Persisted progress, retries, reconciliation, and only feasible compensations | | Exactly one instance may run a job or own a resource | Leader election (lease-based) | Fencing tokens; split-brain handling | | Cross-cutting concerns repeated in every service | Sidecar or ambassador | Another process per pod to operate | | A legacy or third-party model would infect the domain | Anti-corruption layer | A translation layer to maintain | | Each client surface needs a different aggregate shape | Backends-for-frontends | One backend per surface, owned by that team | | A monolith must be replaced without a rewrite freeze | Strangler fig | Dual routing and a live seam until the last slice moves |
The portable standards layer for AI coding agents. Sync once, then work in your own runtime.
Enforce WCAG 2.2 AA compliance with semantic HTML, ARIA roles, keyboard navigation, and color contrast standards for web UIs. Use…
Define deterministic guardrails for agent tool calls — protected paths, test-file locks during bug fixes, post-edit formatters,…
Apply REST API conventions — HTTP semantics, status codes, versioning, pagination, and OpenAPI standards for any framework. Use…
Audit structural debt, logic leakage, and monolithic components across Web, Mobile, and Backend codebases. Use when reviewing…
Draws architecture diagrams as editable draw.io files with a fixed house style, C4 levels, evidence-tagged shapes, and optional…
Enforce SOLID principles, guard-clause style, function size limits, and intention-revealing naming across all languages. Use when…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.