Get the FREE Ultimate OpenClaw Setup Guide →

solid-code-review

Scanned
npx machina-cli add skill serpro69/claude-starter-kit/solid-code-review --openclaw
Files (1)
SKILL.md
6.3 KB

SOLID Code Review

Overview

Perform a structured review of the current git changes with focus on SOLID, architecture, removal candidates, and security risks. Default to review-only output unless the user asks to implement changes.

Severity Levels

LevelNameDescriptionAction
P0CriticalSecurity vulnerability, data loss risk, correctness bugMust block merge
P1HighLogic error, significant SOLID violation, performance regressionShould fix before merge
P2MediumCode smell, maintainability concern, minor SOLID violationFix in this PR or create follow-up
P3LowStyle, naming, minor suggestionOptional improvement

Workflow

1) Preflight context

  • Use git status -sb, git diff --stat, and git diff to scope changes.
  • If needed, use serena mcp, rg or grep to find related modules, usages, and contracts.
  • Identify entry points, ownership boundaries, and critical paths (auth, payments, data writes, network).

Edge cases:

  • No changes: If git diff is empty, inform user and ask if they want to review staged changes or a specific commit range.
  • Large diff (>500 lines): Summarize by file first, then review in batches by module/feature area.
  • Mixed concerns: Group findings by logical feature, not just file order.

2) Detect primary language

From the git diff --stat output in step 1, identify the primary language of changed files by extension:

ExtensionsReference set
.goreference/go/
.js, .ts, .jsx, .tsx, .mjs, .cjsreference/js_ts/
.py, .pywreference/python/
.javareference/java/
.kt, .ktsreference/kotlin/
  • Single language: Use that language's reference directory for all subsequent steps.
  • Mixed languages: Load references from each relevant directory.
  • No match: Skip language-specific reference loading; apply only the general guidance in each step.

Use {lang} below to refer to the detected reference directory.

3) SOLID + architecture smells

  • Load reference/{lang}/solid-checklist.md for specific prompts.
  • Look for:
    • SRP: Overloaded modules with unrelated responsibilities.
    • OCP: Frequent edits to add behavior instead of extension points.
    • LSP: Subclasses that break expectations or require type checks.
    • ISP: Wide interfaces with unused methods.
    • DIP: High-level logic tied to low-level implementations.
  • When you propose a refactor, explain why it improves cohesion/coupling and outline a minimal, safe split.
  • If refactor is non-trivial, propose an incremental plan instead of a large rewrite.

4) Removal candidates + iteration plan

  • Load reference/{lang}/removal-plan.md for template.
  • Identify code that is unused, redundant, or feature-flagged off.
  • Distinguish safe delete now vs defer with plan.
  • Provide a follow-up plan with concrete steps and checkpoints (tests/metrics).

5) Security and reliability scan

  • Load reference/{lang}/security-checklist.md for coverage.
  • Check for:
    • XSS, injection (SQL/NoSQL/command), SSRF, path traversal
    • AuthZ/AuthN gaps, missing tenancy checks
    • Secret leakage or API keys in logs/env/files
    • Rate limits, unbounded loops, CPU/memory hotspots
    • Unsafe deserialization, weak crypto, insecure defaults
    • Race conditions: concurrent access, check-then-act, TOCTOU, missing locks
  • Call out both exploitability and impact.

6) Code quality scan

  • Load reference/{lang}/code-quality-checklist.md for coverage.
  • Check for:
    • Error handling: swallowed exceptions, overly broad catch, missing error handling, async errors
    • Performance: N+1 queries, CPU-intensive ops in hot paths, missing cache, unbounded memory
    • Boundary conditions: null/undefined handling, empty collections, numeric boundaries, off-by-one
  • Flag issues that may cause silent failures or production incidents.

7) Output format

Structure your review as follows:

## Code Review Summary

**Files reviewed**: X files, Y lines changed
**Overall assessment**: [APPROVE / REQUEST_CHANGES / COMMENT]

---

## Findings

### P0 - Critical

(none or list)

### P1 - High

- **[file:line]** Brief title
  - Description of issue
  - Suggested fix

### P2 - Medium

...

### P3 - Low

...

---

## Removal/Iteration Plan

(if applicable)

## Additional Suggestions

(optional improvements, not blocking)

Inline comments: Use this format for file-specific findings:

::code-comment{file="path/to/file" line="42" severity="P1"}
Description of the issue and suggested fix.
::

Clean review: If no issues found, explicitly state:

  • What was checked
  • Any areas not covered (e.g., "Did not verify database migrations")
  • Residual risks or recommended follow-up tests

8) Next steps confirmation

After presenting findings, ask user how to proceed:

---

## Next Steps

I found X issues (P0: ..., P1: ..., P2: ..., P3: ...).

**How would you like to proceed?**

1. **Fix all** - I'll implement all suggested fixes
2. **Fix P0/P1 only** - Address critical and high priority issues
3. **Fix specific items** - Tell me which issues to fix
4. **No changes** - Review complete, no implementation needed

Please choose an option or provide specific instructions.

Important: Do NOT implement any changes until user explicitly confirms. This is a review-first workflow.

Source

git clone https://github.com/serpro69/claude-starter-kit/blob/master/.github/templates/claude/skills/solid-code-review/SKILL.mdView on GitHub

Overview

Performs a structured review of current git changes with a senior engineer lens, focusing on SOLID, architecture, removal candidates, and security risks. It defaults to review-only output unless you request to implement changes, guiding teams toward safer, more maintainable code.

How This Skill Works

It starts with preflight using git status and diff to scope changes, then detects the primary language by file extension. It loads SOLID and architecture prompts, checks for SRP, OCP, LSP, ISP, and DIP smells, identifies removal candidates, and runs a security and reliability scan to surface concrete improvements.

When to Use It

  • Review changes touching core modules or critical paths (auth, payments, data writes) for SOLID violations.
  • Assess new or modified code for security risks using the built in checklist.
  • Plan incremental refactors instead of large rewrites when SOLID gaps appear.
  • Identify unused or feature flagged off code as removal candidates with a clear iteration plan.
  • Prepare PRs with actionable improvements and accompanying tests and metrics.

Quick Start

  1. Step 1: Run the review on the current git changes using git status -sb and git diff --stat.
  2. Step 2: Determine the primary language from file extensions and load the appropriate SOLID and security references.
  3. Step 3: Apply SOLID, architecture, removal, and security checks to surface actionable recommendations.

Best Practices

  • Always run preflight diffs (git status, git diff) and group findings by feature.
  • Prioritize P0 and P1 findings for immediate attention before merge.
  • Propose minimal safe splits for refactors to improve cohesion and reduce coupling.
  • Document rationale and attach concrete tests for each suggestion.
  • Cross-check against the removal plan and the security checklist before final notes.

Example Use Cases

  • Auth service SRP violation due to mixing authentication logic with data access; extract auth to a dedicated service.
  • DIP violation by tying business rules to a concrete repository implementation; propose interfaces and adapters.
  • Security risk like improper input handling that could enable injection; recommend input validation and sanitization.
  • Unnecessary code path behind a feature flag causing maintenance debt; suggest removal or gating with tests.
  • Dead code discovered after feature toggle; propose safe deletion with accompanying tests and metrics.

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers