Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
kochetkov-ma avatar

Brewcode:Standards Review

  • 18 installs
  • 29 repo stars
  • Updated August 2, 2026
  • kochetkov-ma/claude-brewcode

Perform code quality reviews and enforce project-specific coding standards via Brewcode

About

Brewcode skill for automated code quality reviews and standards checking. Solo developers use this to enforce consistent coding standards and catch quality issues before merging or shipping code.

  • Code review automation
  • Standards enforcement
  • Quality gates

Brewcode:Standards Review by the numbers

  • 18 all-time installs (skills.sh)
  • Ranked #748 of 1,352 Code Review & Quality skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/kochetkov-ma/claude-brewcode --skill brewcodestandards-review

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs18
repo stars29
Last updatedAugust 2, 2026
Repositorykochetkov-ma/claude-brewcode

What it does

Perform code quality reviews and enforce project-specific coding standards via Brewcode

Who is it for?

Developers enforcing code standards

When should I use this skill?

Code review and quality checks

Files

SKILL.mdMarkdownGitHub ↗

Standards Review

Review Priorities

PrioritySourceFocus
1Existing codeSearch FIRST, import instead of creating
2CLAUDE.mdProject standards, conventions, patterns
3rules/*.mdStrict rules with numbers — check ALL [avoid#N], [bp#N]
4references/{stack}.mdStack-specific guidelines from this skill

---

Phase 0: User Confirmation

BEFORE any analysis, ask the user using AskUserQuestion tool:

"Run /simplify at the end for an additional review pass (efficiency, concurrency, hot-paths)? This will increase execution time."
OptionValue
A"Yes - run /simplify after report"
B"No - standards review only"

Remember the answer. If "Yes" - execute Phase 7 after Phase 6. If "No" - stop after Phase 6.

---

Input

InputExampleAction
Empty/standards-reviewBranch vs main/master
Commitabc123Single commit
Foldersrc/main/java/...Folder contents

Arguments: $ARGUMENTS

Phase 1: Detect Tech Stack

Check project root for stack indicators:

Files PresentStackReference
pom.xml, build.gradle, build.gradle.ktsJava/Kotlinreferences/java-kotlin.md
package.json with react/typescriptTypeScript/Reactreferences/typescript-react.md
pyproject.toml, setup.py, requirements.txtPythonreferences/python.md
ACTION: When stack confirmed → READ references/{stack}.md (relative to this skill directory) and use as expert guidelines.

Multi-stack: If multiple detected, read ALL matching references, process each separately.

Unknown stack: Use only project's .claude/rules/ — skip stack reference.

Phase 2: Get Files

Based on detected stack, use appropriate patterns:

StackPatternsCommand
Java/Kotlin*.java, *.ktgit diff --name-only ... -- '*.java' '*.kt'
TypeScript/React*.ts, *.tsx, *.js, *.jsxgit diff --name-only ... -- '*.ts' '*.tsx'
Python*.pygit diff --name-only ... -- '*.py'

Commands by input type:

# Commit
git diff --name-only {COMMIT}^..{COMMIT} -- {PATTERNS} | head -50

# Branch (auto-detect main/master)
MAIN=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@' || echo "main")
git diff --name-only ${MAIN}...HEAD -- {PATTERNS} | head -50

# Folder
find {FOLDER} -type f \( {FIND_PATTERNS} \) | head -50

Phase 3: Load Context

SourceFilesCondition
Stack referencereferences/{stack}.mdBased on Phase 1 detection
Project rules.claude/rules/avoid.md, .claude/rules/best-practice.md, .claude/rules/*-avoid.md, .claude/rules/*-best-practice.md, .claude/rules/*.mdMay not exist
Project standardsCLAUDE.md, .claude/CLAUDE.mdMay not exist

Search-First Protocol

Before reviewing code: identify new utilities/helpers/patterns/abstractions → search via grepai_search, check common locations → decide based on similarity.

Common Locations by Stack:

StackSearch Paths
Java/Kotlin**/util/, **/common/, **/shared/, **/core/
TypeScript/React**/components/common/, **/shared/, **/hooks/, **/utils/
Python**/utils/, **/common/, **/lib/, **/helpers/

Similarity Decision Matrix:

SimilarityDecisionAction
90-100%REUSEImport existing
70-89%EXTENDAdd params/config to existing
50-69%CONSIDEREvaluate effort vs benefit
<50%KEEP_NEWJustified new code

Dynamic Agent Resolution

Before spawning expert agents, check for project team agents:

1. If .claude/teams/ exists — read team.md for agent roster with domains 2. If team has code-quality/standards domain agents — prefer over generic reviewer/Explore 3. Priority: team agent > project agent > plugin agent > system agent 4. If agent refuses (Task Acceptance Protocol) — re-delegate to suggested colleague (max 2 retries)

Always fall back to plugin agents when no project agents match the task domain.

Phase 4: Expert Analysis

Step 4.1: Group Files by Type

From Phase 2 file list, group by pattern matching:

Java/Kotlin:

GroupPatternFocus
entities**/entity/*.java, **/model/*.ktEntity suffix, DI, Lombok
services**/service/*.java, **/service/*.ktStream API, constructor injection
tests**/*Test.java, **/*Test.ktAssertJ, BDD comments, no logs
buildpom.xml, build.gradle, build.gradle.ktsDependencies, plugins, versions

TypeScript/React:

GroupPatternFocus
styles**/styles.ts, **/*.styled.tsTheme tokens, no hardcoded colors
components**/*.tsxHooks, functional components
tests**/*.test.tsx, **/*.spec.tsJest patterns, coverage
buildpackage.json, tsconfig*.json, vite.config.*, webpack.config.*Dependencies, scripts, bundler config

Python:

GroupPatternFocus
modules**/*.py (non-test)Type hints, docstrings
tests**/test_*.py, **/*_test.pypytest patterns
configs**/config*.py, **/settings*.pyEnvironment handling
buildpyproject.toml, setup.py, setup.cfg, requirements*.txtDependencies, tool configs

Step 4.2: Spawn Experts (haiku per group)

For each non-empty group, spawn parallel haiku agent:

Template:

Task(subagent_type="Explore", model="haiku", prompt="
## Standards Review - {EXPERT_TYPE}

**Stack:** {STACK}
**SEARCH-FIRST:** Use grepai_search for finding existing code before flagging duplicates.

**Files:** {FILE_LIST}

**Project Rules:**
{RULES_CONTENT}

**Stack Guidelines:**
{STACK_REFERENCE_CONTENT}

**Output JSON:**
{
  \"changes\": [{
    \"location\": \"file:15-20\",
    \"description\": \"...\",
    \"existing\": \"path/to/similar|null\",
    \"reuse\": \"REUSE|EXTEND|CONSIDER|KEEP_NEW\",
    \"rating\": \"good|warning|bad\"
  }],
  \"violations\": [{
    \"file\": \"path\",
    \"line\": 42,
    \"rule\": \"avoid#5|best-practice#3|stack:entity-suffix\",
    \"issue\": \"...\",
    \"fix\": \"...\",
    \"severity\": \"error|warning|info\"
  }]
}
")

---

Phase 5: Validation (sonnet)

Task(subagent_type="reviewer", model="sonnet", prompt="
Validate EACH finding from expert analysis.
Read actual code at file:line locations.
Verify rule actually applies in context.

**Findings:** {AGGREGATED_JSON}

**Output:** [
  {\"id\": \"1\", \"verdict\": \"CONFIRM|REJECT\", \"reason\": \"...\"}
]
")

Phase 6: Report

Create Report Directory

TIMESTAMP=$(date +"%Y%m%d-%H%M%S")
REPORT_DIR=".claude/reports/${TIMESTAMP}_standards-review"
mkdir -p "${REPORT_DIR}"

REPORT.md Structure

# Standards Review Report

**Generated:** {TIMESTAMP}
**Stack:** {DETECTED_STACK}
**Scope:** {INPUT_TYPE} - {INPUT_VALUE}
**Files Reviewed:** {COUNT}

## Summary

| Category | Count | Severity |
|----------|-------|----------|
| Violations | X | Y errors, Z warnings |
| Reuse Opportunities | X | - |
| Good Patterns | X | - |

## Violations

### Errors

| File | Line | Rule | Issue | Fix |
|------|------|------|-------|-----|
| path | 42 | avoid#5 | Description | Suggested fix |

### Warnings

| File | Line | Rule | Issue | Fix |
|------|------|------|-------|-----|

## Reuse Opportunities

| New Code | Existing | Similarity | Action |
|----------|----------|------------|--------|
| path:15-20 | util/X.java | 85% | EXTEND |

## Good Patterns Found

| File | Pattern | Description |
|------|---------|-------------|
| path | stream-api | Proper use of Stream API |

## Reuse Statistics

| Metric | Value |
|--------|-------|
| Total new code blocks | X |
| Reusable (>70%) | Y |
| Reuse rate | Z% |

## Legend

**Severity:** error (must fix), warning (should fix), info (consider)
**Reuse:** REUSE (import), EXTEND (modify existing), CONSIDER (evaluate), KEEP_NEW (justified)
**Rating:** good (exemplary), warning (suboptimal), bad (violation)

Phase 7: Simplify Pass (conditional)

Execute ONLY if user answered "Yes" in Phase 0.

After Phase 6 report is written, invoke:

Skill(skill="simplify", args="{INPUT_VALUE}")

Where {INPUT_VALUE} is the same scope used in this review (commit, branch, or folder from Phase 2).

If user answered "No" in Phase 0 - skip this phase entirely.

Error Handling

ConditionAction
No files foundExit: "No files to review for {SCOPE}"
>50 filesWarn user, suggest narrowing scope
Unknown stackContinue with project rules only
No rules foundContinue with stack reference only
All compliantReport: "All code compliant with standards"

Related skills

Code Review & Qualitytestingfrontend

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.