CtrlK
BlogDocsLog inGet started
Tessl Logo

hexagonal-architecture

Design, implement, and refactor Ports & Adapters systems with clear domain boundaries, dependency inversion, and testable use-case orchestration across TypeScript, Java, Kotlin, and Go services. Use when introducing or refactoring toward Ports and Adapters, or when domain logic has become entangled with I/O.

64

Quality

76%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Medium

Suggest reviewing before use

Fix and improve this skill with Tessl

tessl review fix ./skills/hexagonal-architecture/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, genuinely actionable skill body with executable TypeScript examples, a clear step sequence, and strong migration/testing guidance. Its weaknesses are token efficiency (re-explains known concepts and duplicates testing/anti-pattern guidance) and the absence of progressive disclosure — a large single file where language mappings and the migration playbook could be one-level-deep references.

Suggestions

Cut the Core Concepts definitions and opening premise paragraph (Claude already knows hexagonal architecture) and merge the Step 6 testing bullets into the Testing Guidance section to remove duplication.

Move the Multi-Language Mapping and Migration Playbook/Refactoring sections into one-level-deep reference files (e.g. references/language-mapping.md, references/migration.md) with clear 'See X' pointers, keeping SKILL.md as a lean overview.

Make the TypeScript example fully copy-paste runnable by including the Order domain class (create, markAuthorized, rehydrate), or explicitly note it as elided.

DimensionReasoningScore

Conciseness

Mostly efficient but includes unnecessary explanation Claude already knows — the Core Concepts section defines domain model, use cases, ports, and adapters, and the opening paragraph restates the pattern's premise; testing guidance is duplicated (Step 6 'Test per boundary' vs. the full 'Testing Guidance' section), and anti-patterns overlap the Best Practices Checklist. Not 4 because the duplication and known-concept explanation are more than minor trimming; not 2 because the body is dense with prescriptive, non-generic content (module layout, language mappings, migration playbook).

3 / 5

Actionability

Mostly executable: complete TypeScript port/use-case/adapter/composition-root code, a concrete module layout tree, and specific package structures per language. Not 5 because the main example references undefined domain pieces (Order.create, markAuthorized, rehydrate) and the Java/Kotlin/Go mappings are prose-only without runnable snippets — minor gaps.

4 / 5

Workflow Clarity

Clear 6-step sequence plus a 7-step migration playbook with explicit checkpoints: characterization tests before extraction, 'Rollback path: keep a reversible toggle... until production behavior is verified', and test-per-boundary guidance. Not 5 because there is no explicit error-recovery feedback loop (validate → fix → retry) around the migration steps; not 3 because validation and rollback checkpoints are explicitly present.

4 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, assets/), and the ~270-line body inlines substantial content that would sit better one level deep — the four-language Multi-Language Mapping and the full Migration Playbook/Refactoring sections are natural reference files. Section headers and structure are good, but everything is inline with no navigation to detail files. Not 4 because clearly separable material is inlined in a single large file; not 2 because sections are well-headed and coherent, not a wall of text.

3 / 5

Total

14

/

20

Passed

Description

88%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: concrete multi-action capability statement, explicit 'Use when...' triggers including a natural pain-point phrase, third-person voice, and a distinct niche. The only gap is missing common synonyms (hexagonal/clean/onion architecture) that users might naturally say when they need this skill.

DimensionReasoningScore

Specificity

Lists multiple concrete actions ("Design, implement, and refactor") with specific capabilities ("clear domain boundaries, dependency inversion, and testable use-case orchestration") and concrete scope across "TypeScript, Java, Kotlin, and Go services" — comprehensive, comparable to the anchor-5 PDF example. Not 4 because coverage of actions plus targeted ecosystems leaves no notable gaps.

5 / 5

Completeness

Explicitly answers both: what ("Design, implement, and refactor Ports & Adapters systems with clear domain boundaries...") and when ("Use when introducing or refactoring toward Ports and Adapters, or when domain logic has become entangled with I/O") with a concrete pain-point trigger phrase. Matches the anchor-5 example structure directly.

5 / 5

Trigger Term Quality

Good natural keywords — "Ports & Adapters", "refactoring", "domain logic has become entangled with I/O" — but misses common synonyms users would say, notably "hexagonal architecture" itself (only in the name field, not the description) plus "clean architecture" / "onion architecture". Not 5 because these common variations are absent; not 3 because the included triggers are natural user phrasings, not jargon-only.

4 / 5

Distinctiveness Conflict Risk

Clear niche with distinct triggers (Ports & Adapters, domain-logic/I/O entanglement), but the word "refactor" and the broad software-design territory create minor overlap risk with closely related skills (general refactoring, clean-architecture, or testing skills). Not 5 because of that minor overlap; not 3 because the trigger phrases are far more specific than anchor-3 examples.

4 / 5

Total

18

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository
affaan-m/ECC
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.