From onion-lasagna-kit
Use when reviewing an Onion Lasagna project, checking layer boundaries, validating by-the-book structure, or auditing existing code for architecture drift
How this skill is triggered — by the user, by Claude, or both
Slash command
/onion-lasagna-kit:onion-lasagna-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Review Onion Lasagna projects by checking dependency direction, boundary wrapping, validation placement, and test coverage. Findings come first; praise is secondary.
Review Onion Lasagna projects by checking dependency direction, boundary wrapping, validation placement, and test coverage. Findings come first; praise is secondary.
Before judging, inspect real files and exports. Use rg, find, sed, and package index.ts files. Do not assume exports, package entry points, or folder conventions.
Load ../../references/layer-checklist.md when the request is a review, audit, "by the book" check, or migration assessment.
Start broad, then inspect matches before judging:
rg -n "from ['\\\"].*(drizzle|schema|infra|presentation|http|graphql)" --glob '*domain*' .
rg -n "new .*Client|axios|fetch\\(" --glob '*app*' --glob '*use-case*' .
rg -n "repository\\.|Repository" --glob '*handler*' --glob '*resolver*' --glob '*route*' .
rg -n "extends BaseOutboundAdapter|createInfraError|InfraError" .
rg -n "describe\\(|it\\(" --glob '*use-case*' --glob '*tests*' .
| Symptom | Problem | Fix |
|---|---|---|
| Domain imports Drizzle or HTTP code | Inner layer depends on outer layer | Move persistence mapping to infra |
| Use case imports SDK client | App layer bypasses outbound port | Add port and adapter |
| Handler queries repository | Presentation owns business flow | Call a use case through route mapping |
| Repository leaks raw errors | Infra boundary is porous | Wrap with BaseOutboundAdapter or explicit InfraError |
| Validation only happens in handler | Domain invariant can be bypassed | Validate external input at edge and invariants in domain factories |
Use this structure:
## Findings
- [Severity] `path/file.ts`: problem. Why it violates Onion Lasagna. Fix. Verification.
## Good Parts
- Specific pattern that matches Onion Lasagna well.
## Test Gaps
- Missing or weak verification.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub cosmneo/onion-lasagna --plugin onion-lasagna-kit