hexagonal-architecture

Enforce hexagonal boundaries with explicit ports and adapters across TypeScript, Java, Kotlin, and Go.

Updated Apr 2, 2026
One-click install
npx skills add https://github.com/richardnpaul/everything-vscode-copilot --skill hexagonal-architecture-richardnpaul
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: hexagonal-architecture
Source: https://github.com/richardnpaul/everything-vscode-copilot/tree/main/.github/skills/hexagonal-architecture
Command: npx skills add https://github.com/richardnpaul/everything-vscode-copilot --skill hexagonal-architecture-richardnpaul

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Hexagonal architecture decouples business logic from frameworks and infrastructure by enforcing clear domain boundaries through ports, adapters, and a composition root, enhancing maintainability and testability.

Core Features & Use Cases

  • Defines inbound and outbound ports to model capabilities and dependencies.
  • Implements use cases with pure orchestration, orchestrating domain rules and coordinating adapters.
  • Provides an explicit composition root to wire concrete adapters to ports, enabling multi-language implementations (TypeScript, Java, Kotlin, Go).

Quick Start

Describe how to apply hexagonal architecture to a new feature and outline the ports, adapters, and a composition root.

Frequently Asked Questions about hexagonal-architecture

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I decouple business logic from infrastructure using hexagonal architecture?

Hexagonal architecture decouples business logic from infrastructure by enforcing clear domain boundaries through explicit inbound and outbound ports, adapter implementations, and a composition root for wiring, which enhances maintainability and testability.

What is the best way to structure domain-driven design use cases for maintainable domain logic?

The best way to structure domain-driven design use cases is through pure orchestration, where use cases orchestrate domain rules and coordinate adapters without coupling to frameworks, keeping the domain logic maintainable and testable.

Can I apply ports and adapters architecture across TypeScript, Java, Kotlin, and Go implementations?

Yes, you can apply ports and adapters architecture across TypeScript, Java, Kotlin, and Go by using an explicit composition root to wire concrete adapters to ports, enabling multi-language service architectures.

How do I wire concrete adapters to inbound and outbound ports at the composition root?

You wire concrete adapters to inbound and outbound ports at the composition root by explicitly mapping infrastructure implementations to the defined port interfaces, ensuring dependencies point inward toward the domain.

When do I need hexagonal boundaries with explicit ports and adapters for my service architecture?

You need hexagonal boundaries with explicit ports and adapters when your service architecture requires maintainable domain logic, testable use cases, and decoupled infrastructure to prevent framework lock-in.

Does hexagonal architecture require boundary-driven verification for decoupled adapters?

Yes, hexagonal architecture requires boundary-driven verification to ensure decoupled adapters correctly fulfill port contracts, validating that domain logic remains isolated from infrastructure dependencies.