Component review
Review low-level component and class design — SOLID, cohesion, pattern correctness, interface design, method contracts, aggregate integrity, and domain-model health inside a PR, branch, namespace, or module. Make sure to use this skill whenever the user asks to review class design, check SOLID, audit a component, check if a pattern is used correctly, or says things like "component review", "class review", "prüfe das klassen design", "are these classes clean", "review the service", "solid check". Use this skill for DETAIL REVIEW only — module boundaries and dependency structure belong in `architecture-review`.From its SKILL.md
npx -y skills add lx-wnk/skills --skill component-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.8 KB, as published. Nobody here has run it
Component Review (Detail Level)
Audit class- and method-level design of a scoped target. Report findings — never modify code.
Scope
In scope: SOLID (per class), cohesion inside a class, pattern correctness, interface segregation, method signatures, aggregate invariants, error model, testability seams, naming that leaks abstractions.
Out of scope: module boundaries, dependency cycles, layer violations (→ architecture-review), code formatting, style, line-level null checks.
Examples
# Review a PR's component design
/component-review pr 42
# Review a branch
/component-review branch feat/order-service
# Review a specific namespace/module
/component-review namespace src/Order
# Review current uncommitted changes
/component-review
Workflow
flowchart TD
A["Parse target mode"] --> B["Load project context"]
B --> C["Detect stack + idioms"]
C --> D["Research current patterns"]
D --> E["Run checks"]
E --> F["Report findings"]
Phase 1: Parse Target
From $ARGUMENTS:
pr <N>→gh pr diff <N>,gh pr view <N> --json headRefName,files, read files viagit show <branch>:<file>branch <name>→git diff main...<name>, read files from branchnamespace <path>→ recursive read under<path>- empty →
git diff HEADfor uncommitted changes
Phase 2: Load Project Context
Check in order, stop at first hit:
.agent-context/layer1-bootstrap.md,layer2-project-core.md.agent-context/decisions.json→ ADRs that constrain class designdocs/architecture/**/*.mdCLAUDE.md,AGENTS.md,CONTRIBUTING.md- Manifest files for stack detection
Never block on missing context — infer from surrounding code.
Phase 3: Detect Stack & Idioms
- Language, framework, version from manifests
- Existing patterns in surrounding files — the review baseline is the codebase's own conventions, not abstract ideals
- Read nearby tests to understand the real contract
Phase 4: Research Current Best Practices
Use WebFetch or Context7 for version-sensitive rules:
- Framework DI and lifecycle (Symfony, Spring, NestJS)
- Language-specific idioms (Go error wrapping, Rust ownership, Vue Composition API, Java sealed types)
Don't apply generic OO dogma if the ecosystem has moved on.
Phase 5: Checks
Run each relevant check and record findings with file:line:
1. Single Responsibility (per class)
- Can you describe the class in one sentence without "and"?
- Are private methods clearly serving one public contract?
2. Open/Closed & Extensibility
- Are new variants added via new types, or by editing the same class?
- Flag
switchon type tags or string enums that will keep growing.
3. Liskov & Interface Segregation
- Do subclasses honor the parent contract (no surprise throws, no empty overrides)?
- Are interfaces narrow enough that callers only depend on what they use?
4. Dependency Inversion
- Are collaborators injected, or instantiated with
new? - Are infrastructure concerns leaking into domain classes?
5. Pattern Correctness
- If a named pattern is used, is it used correctly? (Strategy without behavior variation = not a Strategy)
- Is there a simpler pattern or plain function that would do?
6. Cohesion Inside a Class
- Fields only used by some methods → hint of hidden class
- Temporal coupling (must call A before B) → signal for missing abstraction
7. Method Signatures
- Boolean flags that toggle behavior → two methods instead
- Primitive obsession → candidate for a value object
- Output parameters, tuple returns that should be a type
8. Aggregate / Invariant Integrity
- Can domain invariants be violated by calling methods in a legal order?
- Are mutations funneled through the aggregate root?
9. Error Model
- Exceptions vs. result types — consistent with the codebase?
- Are errors silently swallowed or generically re-thrown?
10. Testability Seams
- Can the class be tested without patching globals or network?
- Are seams (ports, factories) at sensible places?
11. Naming That Leaks
- Names that reveal the wrong abstraction (
OrderManager,UserUtil,DataHelper) → symptom of unclear responsibility
Phase 6: Report
Host-rendered findings (optional, in addition to the report below)
Some hosts render findings as a typed, clickable list (Claude Code: ReportFindings). Feature-detect it; if absent, skip silently and note host rendering: not available under Files reviewed.
Component findings qualify only when they name a file and line and a concrete failure scenario — an LSP violation that throws on a legal subtype, a mutable default that leaks state between calls. Pure design judgements (naming, cohesion, pattern fit) stay in the Markdown report. Never invent a failure scenario to make a design finding eligible. Emit once, most-severe first, after the checks are complete; do not repeat those entries as chat text.
Report
Output in the user's language:
## Component Review — <scope>
**Risk Level:** LOW | MEDIUM | HIGH | CRITICAL
**Detected stack:** <stack>
**Files reviewed:** <N>
## Critical (must fix)
- **<Title>** — `path/to/file.ext:line`
- Problem: <what is wrong>
- Principle: <SRP / LSP / DIP / …>
- Suggested direction: <high-level fix, not code>
## Warnings (should fix)
- ...
## Suggestions (nice to have)
- ...
## Patterns Observed
- <Pattern> — used correctly / misused / missing
## Suggested Next Steps
1. ...
2. ...
Rules
- Read-only. Never modify source files.
- Detail level only. If the findings are really about module boundaries, recommend
architecture-review. - Evidence-based. Every finding needs a concrete
file:linereference. - Respect local idioms. Match the codebase's existing style — don't import dogma from another ecosystem.
- Severity over volume. Fewer high-signal findings beat many nitpicks.
- Ignore style. Linters and formatters own formatting.
- Fallback, don't block. Missing context layers → infer from code.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most review quality skills give
Counted across 1,273 of the 2,403 authors here whose files we hold, read 2026-09-06
- Ask one question at a timein 63 of 1273, across 62 files
- Provide a recommended answer for each questionin 47 of 1273, across 45 files
- Rank findings by severityin 44 of 1273
- Use parameterized queries for database accessin 38 of 1273, across 20 files
- Validate all user input with schemasin 33 of 1273, across 15 files
- Store secrets in environment variablesin 32 of 1273, across 14 files
- Explore the codebase to answer questionsin 31 of 1273, across 29 files
- Store tokens in httpOnly cookiesin 30 of 1273, across 12 files
- Implement rate limiting on API endpointsin 30 of 1273, across 12 files
- Sanitize user-provided HTMLin 29 of 1273, across 11 files
- Return generic error messages to usersin 28 of 1273, across 10 files
- Cite file and line for every findingin 28 of 1273, across 25 files
Said here and by no other author read
- Audit class and method design of a scoped target
- Use codebase conventions as the review baseline
- Infer missing context from surrounding code
- Recommend architecture-review for module boundary issues
- Match existing codebase idioms and patterns
- Emit findings once after completing all checks
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.