Agent skill

Backend Code Review

by langflow-ai in langflow-ai/langflow

Review backend code for quality, security, maintainability, and best practices based on established checklist rules.

MITAuto-check: notesDevelopment

Install Backend Code Review

skills CLI
$ npx skills add langflow-ai/langflow --skill backend-code-review -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install langflow-ai/langflow backend-code-review --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/langflow-ai/langflow.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/backend-code-review .claude/skills/backend-code-review && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
backend-code-review
GitHub stars
156k
Token cost
~3.5k tokens
SKILL.md length
1,623 words
Files
5 (incl. references)
Skills in repo
10
Repo updated
First seen
Licence
MIT

At a glance

Review backend code for quality, security, maintainability, and best practices based on established checklist rules.

  • Works in 7 steps: Security Review → Performance Review → Code Quality Review → …
  • The user requests a review
  • SKILL.md covers When to use this skill, How to use this skill, Checklist and General Review Rules, plus 1 more section
  • Calls make

What it does

Backend Code Review is an agent skill from langflow-ai/langflow. Review backend code for quality, security, maintainability, and best practices based on established checklist rules. Use when the user requests a review, analysis, or improvement of backend files (e.g., .py) under the src/backend/ directory. Do NOT use for frontend files (e.g., .tsx, .ts, .js). Supports pending-change review, code snippets review, and file-focused review.

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/architecture-rule.md`, `references/db-schema-rule.md` and `references/repositories-rule.md`).

It sits in Development, covering Code review, Customer feedback analysis and React components. The repository describes itself as: Langflow is a powerful tool for building and deploying AI-powered agents and workflows. The licence is MIT.

When your agent uses it

  • The user requests a review
  • Improvement of backend files (e.g.
  • .py) under the src/backend/ directory
  • Frontend files (e.g.

Example prompts

  • “/backend-code-review”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Security Review
  2. Performance Review
  3. Code Quality Review
  4. File Structure Review
  5. Testing Review
  6. Observability Review
  7. Pre-Commit Verification

What it can do on your machine

Read from SKILL.md and the folder at commit 504c02f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • make

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Backend Code Review loads about 3.5k tokens when it runs, and up to ~15k if it reads all its reference files. Until then it costs about 101 tokens; SKILL.md has 1,623 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~101
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~15k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:53
    rary server files (e.g., `/etc/passwd`, `.env`).

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from langflow-ai/langflow at commit 504c02f, republished under its MIT licence (© langflow-ai). 1,623 words, ~3,474 tokens.

Download SKILL.mdSave it as .claude/skills/backend-code-review/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
backend-code-review
description
Review backend code for quality, security, maintainability, and best practices based on established checklist rules. Use when the user requests a review, analysis, or improvement of backend files (e.g., `.py`) under the `src/backend/` directory. Do NOT use for frontend files (e.g., `.tsx`, `.ts`, `.js`). Supports pending-change review, code snippets review, and file-focused review.

Backend Code Review

When to use this skill

Use this skill whenever the user asks to review, analyze, or improve backend code (e.g., .py) under the src/backend/ directory. Supports the following review modes:

  • Pending-change review: when the user asks to review current changes (inspect staged/working-tree files slated for commit to get the changes).
  • Code snippets review: when the user pastes code snippets (e.g., a function/class/module excerpt) into the chat and asks for a review.
  • File-focused review: when the user points to specific files and asks for a review of those files (one file or a small, explicit set of files, e.g., src/backend/base/langflow/api/v1/flows.py).

Do NOT use this skill when:

  • The request is about frontend code or UI (e.g., .tsx, .ts, .js, src/frontend/).
  • The user is not asking for a review/analysis/improvement of backend code.
  • The scope is not under src/backend/ (unless the user explicitly asks to review backend-related changes outside src/backend/).

How to use this skill

Follow these steps when using this skill:

  1. Identify the review mode (pending-change vs snippet vs file-focused) based on the user's input. Keep the scope tight: review only what the user provided or explicitly referenced.
  2. Follow the rules defined in Checklist to perform the review. If no Checklist rule matches, apply General Review Rules as a fallback to perform the best-effort review.
  3. Compose the final output strictly following the Required Output Format.

Notes when using this skill:

  • Always include actionable fixes or suggestions (including possible code snippets).
  • Use best-effort File:Line references when a file path and line numbers are available; otherwise, use the most specific identifier you can.

Checklist

  • db schema design: if the review scope includes code/files under src/backend/base/langflow/services/database/models/ or Alembic migrations under src/backend/base/langflow/alembic/versions/, follow references/db-schema-rule.md to perform the review
  • architecture: if the review scope involves route/service/model layering, dependency direction, or moving responsibilities across modules, follow references/architecture-rule.md to perform the review
  • service abstraction: if the review scope contains table/model operations (e.g., select(...), session.execute(...), joins, CRUD) and is not already inside a service under src/backend/base/langflow/services/, follow references/repositories-rule.md to perform the review
  • sqlalchemy patterns: if the review scope involves SQLAlchemy/SQLModel session/query usage, db transaction/crud usage, session_scope() usage, or raw SQL usage, follow references/sqlalchemy-rule.md to perform the review

General Review Rules

1. Security Review

Check for:

  • SQL injection vulnerabilities (especially raw text() queries with string interpolation). Consequence: attacker can read/modify/delete any data in the database.
  • Server-Side Request Forgery (SSRF) in component HTTP calls. Consequence: attacker uses the server to scan internal networks or access cloud metadata endpoints.
  • Command injection (especially in subprocess or shell-executing components). Consequence: attacker gains shell access to the server.
  • Insecure deserialization (pickle, yaml.load without SafeLoader). Consequence: arbitrary code execution on the server.
  • Hardcoded secrets/credentials. Consequence: secrets leak via git history and are impossible to fully revoke.
  • Improper authentication/authorization (missing CurrentActiveUser dependency). Consequence: unauthenticated users can access protected endpoints.
  • Insecure direct object references (missing user_id scoping on queries). Consequence: user A can read/modify user B's flows, variables, API keys.
  • Path traversal in file storage operations. Consequence: attacker reads arbitrary server files (e.g., /etc/passwd, .env).
2. Performance Review

Check for:

  • N+1 queries (especially in loops calling session.execute()). Consequence: 100 flows = 101 DB queries instead of 2; page load goes from 50ms to 5s.
  • Missing database indexes on frequently queried columns. Consequence: full table scans on large datasets; queries degrade from O(log n) to O(n).
  • Memory leaks (unbounded caches, retained references in long-lived services). Consequence: server OOM after hours of operation; pods restart in production.
  • Blocking operations in async code (time.sleep(), synchronous I/O, CPU-bound work without run_in_executor). Consequence: entire event loop stalls; all concurrent requests hang until the blocking call completes.
  • Missing caching opportunities for expensive computations. Consequence: repeated computation of the same result on every request.
  • Large result sets loaded entirely into memory without pagination. Consequence: memory spike + slow response when user has 10K+ flows.
3. Code Quality Review

Check for:

  • Code forward compatibility with Python 3.10-3.13
  • Code duplication (DRY violations — extract when the exact same business rule is duplicated in 3+ places)
  • Functions doing too much (SRP violations — if you need "and" to describe it, split it)
  • Deep nesting / complex conditionals (prefer early returns and guard clauses)
  • Magic numbers/strings (extract to named constants or enums)
  • Poor naming: unclear abbreviations, misleading names, generic names (data, result, obj, temp). Functions should use verbs (get, create, validate). Booleans should use prefixes (is_, has_, can_, should_).
  • Missing error handling (bare except, swallowed exceptions, silent failures)
  • Incomplete type coverage (use strong typing, avoid Any where a concrete type is known)
  • Use Python 3.10+ union syntax (X | Y not Union[X, Y], X | None not Optional[X])
  • Use TYPE_CHECKING guard for imports only needed for type annotations (prevents circular imports)
  • Use Annotated[Type, Depends(...)] with project aliases (CurrentActiveUser, DbSession, DbSessionReadOnly) for FastAPI DI
  • Google-style docstrings (enforced by Ruff): Args:, Returns:, Raises: sections for public functions
  • Violations of SOLID principles
  • YAGNI violations (code that anticipates future needs without a present requirement)
  • Line length exceeding 120 characters (project Ruff config)
  • Comments that explain WHAT instead of WHY (comments should only explain reasoning, not restate code)
  • Commented-out code (use version control instead)
  • Boolean parameters that switch function behavior (split into two named functions instead)
  • Mutable shared state where immutable alternatives exist (prefer returning new objects over mutation)
4. File Structure Review

Check for:

  • Production files exceeding ~500 lines of code (excluding imports, types, and docstrings). Files above 600 lines are a red flag and should be split by responsibility. Why: Files above 500 lines have statistically higher defect rates and take longer to review. They signal multiple responsibilities (SRP violation). In Langflow, services like DatabaseService that grow beyond this limit should have their CRUD operations extracted to dedicated modules.
  • Test files exceeding ~1000 lines. Split by logical grouping if exceeded.
  • No more than 5 functions with different responsibilities in a single file (per AGENTS-example.md).
  • Each file has a single reason to exist and a single reason to change (SRP).
  • No generic file names: utils.py, helpers.py, misc.py, common.py as standalone files. Why: A file named utils.py becomes a dumping ground for unrelated functions. Within months it has 50+ functions covering formatting, validation, parsing, and HTTP calls — violating SRP. Each function group should be in a file named after its responsibility (formatting.py, validation.py).
Show full SKILL.md (597 more words)Show less
5. Testing Review

Check for:

  • Missing test coverage for new code paths
  • Tests that don't test behavior (testing implementation details)
  • Flaky test patterns (time-dependent, order-dependent, external-service-dependent)
  • Proper use of pytest.mark.asyncio for async tests
  • Excessive mocking (prefer real integrations per project conventions)
  • Coverage target: 80% (minimum acceptable: 75%)
  • Test anti-patterns: The Liar (passes but doesn't verify claimed behavior), The Mirror (asserts exactly what code does), The Giant (50+ lines setup), The Mockery (tests only mock setup), The Inspector (coupled to implementation), The Chain Gang (depends on execution order), The Flaky (inconsistent results)

Happy path tests are the foundation but are NOT enough. Tests MUST also challenge the code to find real defects:

  • Unexpected inputs: None, "", [], {}, 0, -1, UUID("00000000-0000-0000-0000-000000000000")
  • Boundary values: max length strings, exactly at the limit, one past the limit, zero items, max items
  • Malformed data: missing required fields, extra unexpected fields, wrong types, invalid formats
  • Error states: what happens when the database is down? When an external API returns 500? When the user doesn't exist?
  • What should NOT happen: verify that user A CANNOT access user B's flows. Verify that a deleted flow returns 404. Verify that invalid endpoint_name is rejected with 422.
  • Error messages and types: not just that it fails, but that it fails with the RIGHT exception and the RIGHT message
  • Concurrency: what happens when two requests try to update the same flow simultaneously?

Write tests based on REQUIREMENTS/SPEC, not on what the source code currently does. This is how you catch bugs where the code diverges from expected behavior.

When a test fails: first ask if the CODE is wrong, not the test. Do NOT silently change a failing assertion to match the current code without understanding WHY.

6. Observability Review

Check for:

  • Use the async logger from lfx.log.logger with a-prefixed methods (adebug, ainfo, awarning, aerror, aexception). Never use print() or stdlib logging.
  • Log at key decision points and boundaries, not inside tight loops
  • Include: operation name, relevant IDs, outcome (success/failure), duration if relevant
  • Correct log levels: ERROR (broken, needs attention), WARN (degraded but recoverable), INFO (significant events), DEBUG (diagnostic, off in prod)
  • ZERO PII TOLERANCE: Never log email addresses, user names, phone numbers, tokens, passwords. Only approved identifiers: user_id, flow_id, session_id
  • No print() statements — these go to production logs
  • Use {e!s} for string representation of exceptions in log messages
7. Pre-Commit Verification

For pending-change reviews, verify the author has run:

  • make format_backend (Ruff formatter) — inconsistent formatting creates noisy diffs that hide real changes in code review. Format first, review second.
  • make lint (MyPy type checking) — type errors caught at lint time are 10x cheaper to fix than runtime crashes in production. Langflow services use duck typing via Service base class; MyPy catches mismatches early.
  • make unit_tests (pytest) — a failing test means the change breaks existing behavior. Never merge with failing tests; investigate whether the code or the test is wrong.

Required Output Format

When this skill is invoked, the response must exactly follow one of the two templates:

Template A (any findings)
markdown
# Code Review Summary

Found <X> critical issues need to be fixed:

## 🔴 Critical (Must Fix)

### 1. <brief description of the issue>

FilePath: <path> line <line>
<relevant code snippet or pointer>

#### Explanation

<detailed explanation and references of the issue>

#### Suggested Fix

1. <brief description of suggested fix>
2. <code example> (optional, omit if not applicable)

---
... (repeat for each critical issue) ...

Found <Y> suggestions for improvement:

## 🟡 Suggestions (Should Consider)

### 1. <brief description of the suggestion>

FilePath: <path> line <line>
<relevant code snippet or pointer>

#### Explanation

<detailed explanation and references of the suggestion>

#### Suggested Fix

1. <brief description of suggested fix>
2. <code example> (optional, omit if not applicable)

---
... (repeat for each suggestion) ...

Found <Z> optional nits:

## 🟢 Nits (Optional)
### 1. <brief description of the nit>

FilePath: <path> line <line>
<relevant code snippet or pointer>

#### Explanation

<explanation and references of the optional nit>

#### Suggested Fix

- <minor suggestions>

---
... (repeat for each nits) ...

## ✅ What's Good

- <Positive feedback on good patterns>
  • If there are no critical issues or suggestions or optional nits or good points, just omit that section.
  • If the issue number is more than 10, summarize as "Found 10+ critical issues/suggestions/optional nits" and only output the first 10 items.
  • Don't compress the blank lines between sections; keep them as-is for readability.
  • If there is any issue that requires code changes, append a brief follow-up question to ask whether the user wants to apply the fix(es) after the structured output. For example: "Would you like me to use the Suggested fix(es) to address these issues?"
Template B (no issues)
markdown
## Code Review Summary
✅ No issues found.

© langflow-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (references) in .agents/skills/backend-code-review of langflow-ai/langflow.

  • SKILL.md
  • references/architecture-rule.md
  • references/db-schema-rule.md
  • references/repositories-rule.md
  • references/sqlalchemy-rule.md

Open the folder on GitHubat commit 504c02f

Compare with similar skills

Backend Code Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Backend Code Review compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Backend Code Review this skilllangflow-ai/langflow156k—~3.5kAutomated safety check: NotesMIT
Backend Code Reviewnazarli-shabnam/clevis170—~1.5kAutomated safety check: PassGPL-3.0
@pierre/diffs Code Renderingpierrecomputer/pierre6.2k2 repos~803Automated safety check: PassApache-2.0
Backend Code ReviewProgrammerAnthony/Anything-Extract139—~791Automated safety check: PassMIT
Code Review And Qualityhylarucoder/hai-stack380—~934Automated safety check: PassMIT
Best PracticesLeoYeAI/openclaw-master-skills2.2k—~4.5kAutomated safety check: PassMIT

Similar skills

  • Backend Code Review

    nazarli-shabnam/clevis

    Review backend code for quality, security, maintainability, and best practices based on established checklist rules.

    170 GitHub stars~1.5k tokensUpdated today
    DevelopmentAuto-check passed
  • @pierre/diffs Code Rendering

    pierrecomputer/pierre

    Guides an agent through using @pierre/diffs to render syntax-highlighted files and diffs, and to build editing and review surfaces in React or plain JavaScript.

    6.2k GitHub starsUsed in 2 repos~803 tokens
    DevelopmentAuto-check passed
  • Backend Code Review

    ProgrammerAnthony/Anything-Extract

    指导在项目(python项目)中队后端代码进行质量、安全、可维护性与最佳实践审查,基于既定规则清单。适用于用户请求对 backend/ 下后端文件(如 .py)进行审查、分析或改进。不用于前端文件(如 .tsx、.ts、.js)。支持待提交变更审查、代码片段审查、按文件审查。

    139 GitHub stars~791 tokensUpdated 4 mo ago
    DevelopmentAuto-check passed
  • Code Review And Quality

    hylarucoder/hai-stack

    Reviews a code change for correctness, security, maintainability, architecture, performance, and verification gaps, or performs a local code-smell review.

    380 GitHub stars~934 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Best Practices

    LeoYeAI/openclaw-master-skills

    Apply modern web development best practices for security, compatibility, code quality, and coding standards.

    2.2k GitHub stars~4.5k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Wp Block Development

    jorgerosal/wordpress-skills

    WordPress block editor code review and Gutenberg block development patterns for WordPress 6.x+.

    100 GitHub stars~12k tokensUpdated 4 mo ago
    Frontend & DesignAuto-check passed

More from langflow-ai/langflow

All 10 skills in this repo
  • Component Refactoring

    langflow-ai/langflow

    Refactor high-complexity React components in Langflow frontend.

    156k GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • E2E Testing

    langflow-ai/langflow

    Write and review Playwright E2E tests for Langflow. An agent skill from langflow-ai/langflow.

    156k GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Frontend Query Mutation

    langflow-ai/langflow

    Guide for implementing Langflow frontend query and mutation patterns with Axios and TanStack React Query v5.

    156k GitHub stars~979 tokensUpdated today
    Auto-check passed
  • Ibm A11y Level1 Audit

    langflow-ai/langflow

    Perform a scoped IBM Equal Access Level 1 compliance audit of a chosen Langflow frontend surface (routes, components, or a PR) and produce a findings report mapped to WCAG/IBM Level 1 criteria.

    156k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Frontend I18n

    langflow-ai/langflow

    Add, change, or review user-facing text in the Langflow frontend using the i18n system (i18next / react-i18next).

    156k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Ibm A11y PR Remediation

    langflow-ai/langflow

    Scan every frontend surface touched by the current PR/branch for IBM Equal Access Level 1 accessibility issues and fix all in-scope violations by default.

    156k GitHub stars~2k tokensUpdated today
    Auto-check passed

Categories

Questions about Backend Code Review

What does Backend Code Review do?

Review backend code for quality, security, maintainability, and best practices based on established checklist rules. Backend Code Review is an agent skill from langflow-ai/langflow. Review backend code for quality, security, maintainability, and best practices based on established checklist rules.

When should I use Backend Code Review?

Backend Code Review fits situations like: the user requests a review; improvement of backend files (e.g; .py) under the src/backend/ directory; frontend files (e.g.

How do I install Backend Code Review in Claude Code?

Run `npx skills add langflow-ai/langflow --skill backend-code-review -a claude-code`. Or copy the skill folder (.agents/skills/backend-code-review in langflow-ai/langflow) into .claude/skills/backend-code-review in your project. Claude Code loads it when a task matches its description.

How do I install Backend Code Review in Codex?

Run `npx skills add langflow-ai/langflow --skill backend-code-review -a codex`. Or copy the skill folder (.agents/skills/backend-code-review in langflow-ai/langflow) into .agents/skills/backend-code-review in your project. Codex loads it when a task matches its description.

Can I use Backend Code Review in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add langflow-ai/langflow --skill backend-code-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/backend-code-review, .gemini/skills/backend-code-review, .github/skills/backend-code-review and .opencode/skills/backend-code-review in your project.

What does Backend Code Review need to run?

Going by SKILL.md and its folder, Backend Code Review needs the command-line tools its instructions call (make). Our summary lists: Python 3.

Does Backend Code Review access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Backend Code Review safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Backend Code Review use?

Backend Code Review is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Backend Code Review use?

About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 12k tokens, read only when the agent opens those files.

What are the alternatives to Backend Code Review?

Skills that share tags, products or a category with Backend Code Review: Backend Code Review (nazarli-shabnam/clevis, 170 stars), @pierre/diffs Code Rendering (pierrecomputer/pierre, 6.2k stars), Backend Code Review (ProgrammerAnthony/Anything-Extract, 139 stars) and Code Review And Quality (hylarucoder/hai-stack, 380 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Backend Code Review?

langflow-ai (a GitHub organization) maintains it in langflow-ai/langflow, which has 155,554 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 7, 2026.

Source: langflow-ai/langflow on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.