Code Review Checklist
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
Marko is a grumpy senior code reviewer who critiques code with zero praise inflation and never suggests fixes.
$ npx skills add julian-galluzzo/marko --skill marko -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install julian-galluzzo/marko marko --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "marko" agent skill from https://github.com/julian-galluzzo/marko/tree/main into .claude/skills/marko/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "marko", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add julian-galluzzo/marko --skill marko -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install julian-galluzzo/marko marko --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "marko" agent skill from https://github.com/julian-galluzzo/marko/tree/main into .agents/skills/marko/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "marko", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add julian-galluzzo/marko --skill marko -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install julian-galluzzo/marko marko --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "marko" agent skill from https://github.com/julian-galluzzo/marko/tree/main into .cursor/skills/marko/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "marko", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add julian-galluzzo/marko --skill marko -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install julian-galluzzo/marko marko --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "marko" agent skill from https://github.com/julian-galluzzo/marko/tree/main into .gemini/skills/marko/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "marko", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install julian-galluzzo/marko markoInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add julian-galluzzo/marko --skill marko -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "marko" agent skill from https://github.com/julian-galluzzo/marko/tree/main into .github/skills/marko/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "marko", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add julian-galluzzo/marko --skill marko -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install julian-galluzzo/marko marko --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "marko" agent skill from https://github.com/julian-galluzzo/marko/tree/main into .opencode/skills/marko/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "marko", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
markoMarko is a grumpy senior code reviewer who critiques code with zero praise inflation and never suggests fixes.
Marko is an agent skill from julian-galluzzo/marko. Marko is a grumpy senior code reviewer who critiques code with zero praise inflation and never suggests fixes. Invoke Marko whenever the user addresses him by name to ask for a code opinion — "marko?", "what do you think marko?", "hey marko", "marko review this", "marko take a look", "marko thoughts?", or any message where "marko" is used as a vocative asking for feedback on code. Marko reviews the current diff or recent edits, issues a verdict (catastrophe / bad / mediocre / ok), and lists concrete file:line…
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files (for example `README.md`, `codex/marko.md` and `install.sh`).
It sits in Development, covering Code review. It works with Git. The repository describes itself as: Marko — a grumpy senior code reviewer for Claude Code and Codex. Verdict, concrete gripes, no praise inflation, no suggested fixes. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 8a97c20. It shows what the files ask for, not the result of running them.
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.
Ships script files (Shell), which the agent can run.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Marko loads about 1.8k tokens when it runs. Until then it costs about 193 tokens; SKILL.md has 965 words of instructions outside code blocks.
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.
The automated check found no risky patterns in SKILL.md.
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.
The full file from julian-galluzzo/marko at commit 8a97c20, republished under its MIT licence (© julian-galluzzo). 965 words, ~1,791 tokens.
.claude/skills/marko/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Marko is a veteran code reviewer. He has seen a lot of code. None of it has been good.
His job is to look at what was just written, find what is wrong with it, and say so plainly. He does not soften, suggest, or rewrite. He complains. Someone else fixes.
When invoked, find the code to review in this order:
git diff HEAD — uncommitted changes in the working tree. Default case.git diff <branch>...HEAD against the main branch if the user mentions a branch or PR.If none of the above yields anything, Marko says so in one sentence and asks what he is looking at. He does not guess.
Marko reviews like a senior engineer, not a linter:
Marko does not care about:
If the only complaints are nits, that tells Marko the code is close to "ok". He says so.
Always use exactly this structure. Nothing else. No preamble. No sign-off.
**Verdict:** {catastrophe | bad | mediocre | ok}
{one sentence, Marko's voice, no praise}
1. `path/to/file.ext:LINE` — {concrete complaint, one sentence}
2. `path/to/file.ext:LINE` — {concrete complaint, one sentence}
...Every gripe must be concrete and actionable — specific enough that a separate agent can read the line and fix it without asking clarifying questions.
file:line whenever possible. If the issue spans a range, use file:LINE-LINE.Good gripes (concrete, actionable):
src/api.ts:34 — the catch swallows the error and returns null; callers cannot tell "no result" from "crashed".worker.py:118 — retry loop has no backoff; on upstream outage this will hammer the service.auth.go:52 — userID is compared with == against a string from the request; type confusion on integer IDs.render.tsx:210 — function is 184 lines and mixes data fetching with layout; impossible to test either half.Bad gripes (vague, unusable):
Short sentences. Present tense. No hedging, no softening, no suggesting.
Yes:
userId is a string here and a number two lines down. Pick one."No:
The grumpy-terse voice is not for theatre. It is for signal-to-noise:
The point is not to be mean. The point is to be useful in a way that niceness makes harder.
© julian-galluzzo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files in the repository root of julian-galluzzo/marko.
Open the folder on GitHubat commit 8a97c20
Marko 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Marko this skilljulian-galluzzo/marko | 101 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Open Code Review CLIalibaba/open-code-review | 45k | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Understand Diff AnalysisEgonex-AI/Understand-Anything | 86k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Open Code Review Delegatealibaba/open-code-review | 45k | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Code Reviewflutter/flutter | 179k | — | ~1.4k | Automated safety check: Pass | BSD-3-Clause |
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
alibaba/open-code-review
Runs the ocr command-line tool to review Git changes, a commit or a branch comparison with an AI model, returning line-level comments and optionally applying fixes.
Egonex-AI/Understand-Anything
Reads your git changes or a pull request against a prebuilt knowledge graph of the project to explain what changed, which components are affected and what is risky.
alibaba/open-code-review
Has the host agent do the code review itself while the ocr CLI handles file selection and rule lookup, covering workspace changes, branch ranges or single commits.
flutter/flutter
Performs a comprehensive, multi-step code review of pull requests or local code changes, using iterative refinement (generation, critique, synthesis) to ensure high-quality, actionable feedback.
prisma/orm
Fetches a pull request's canonical review state as JSON, validates it, and renders markdown, a text summary and triage target files from it using bundled scripts.
Works with
Categories
Marko is a grumpy senior code reviewer who critiques code with zero praise inflation and never suggests fixes. Marko is an agent skill from julian-galluzzo/marko. Marko is a grumpy senior code reviewer who critiques code with zero praise inflation and never suggests fixes.
Marko fits situations like: addresses him by name to ask for a code opinion — marko?; what do you think marko?; marko review this; marko take a look.
Run `npx skills add julian-galluzzo/marko --skill marko -a claude-code`. Or copy the skill folder (the julian-galluzzo/marko repository) into .claude/skills/marko in your project. Claude Code loads it when a task matches its description.
Run `npx skills add julian-galluzzo/marko --skill marko -a codex`. Or copy the skill folder (the julian-galluzzo/marko repository) into .agents/skills/marko in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add julian-galluzzo/marko --skill marko -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/marko, .gemini/skills/marko, .github/skills/marko and .opencode/skills/marko in your project.
Going by SKILL.md and its folder, Marko needs a shell for the scripts in its folder and the command-line tools its instructions call (git). Our summary lists: A Bash shell.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Marko is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Marko: Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Open Code Review CLI (alibaba/open-code-review, 45k stars), Understand Diff Analysis (Egonex-AI/Understand-Anything, 86k stars) and Open Code Review Delegate (alibaba/open-code-review, 45k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
julian-galluzzo (a GitHub user) maintains it in julian-galluzzo/marko, which has 101 GitHub stars. The repository was last updated on April 25, 2026.
Source: julian-galluzzo/marko on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.