Review
SethGammon/Citadel
5-pass structured code review — correctness, security, performance, readability, consistency
Act as a skeptical senior engineer performing a detailed code review of the latest changes on the current branch (or a given PR) — best practices, maintainability, performance, security, and…
$ npx skills add matthiasn/lotti --skill skeptical-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install matthiasn/lotti skeptical-review --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/matthiasn/lotti.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/skeptical-review .claude/skills/skeptical-review && rm -rf skills-srcUse ~/.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/
Install the "skeptical-review" agent skill from https://github.com/matthiasn/lotti/tree/main/.claude/skills/skeptical-review into .claude/skills/skeptical-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skeptical-review", 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.
$skill-installer install https://github.com/matthiasn/lotti/tree/main/.claude/skills/skeptical-reviewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add matthiasn/lotti --skill skeptical-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install matthiasn/lotti skeptical-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/matthiasn/lotti.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/skeptical-review .agents/skills/skeptical-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "skeptical-review" agent skill from https://github.com/matthiasn/lotti/tree/main/.claude/skills/skeptical-review into .agents/skills/skeptical-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skeptical-review", 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 matthiasn/lotti --skill skeptical-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install matthiasn/lotti skeptical-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/matthiasn/lotti.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/skeptical-review .cursor/skills/skeptical-review && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "skeptical-review" agent skill from https://github.com/matthiasn/lotti/tree/main/.claude/skills/skeptical-review into .cursor/skills/skeptical-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skeptical-review", 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.
$ gemini skills install https://github.com/matthiasn/lotti.git --path .claude/skills/skeptical-review--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add matthiasn/lotti --skill skeptical-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install matthiasn/lotti skeptical-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/matthiasn/lotti.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/skeptical-review .gemini/skills/skeptical-review && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "skeptical-review" agent skill from https://github.com/matthiasn/lotti/tree/main/.claude/skills/skeptical-review into .gemini/skills/skeptical-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skeptical-review", 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 matthiasn/lotti skeptical-reviewInstalls 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 matthiasn/lotti --skill skeptical-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/matthiasn/lotti.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/skeptical-review .github/skills/skeptical-review && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "skeptical-review" agent skill from https://github.com/matthiasn/lotti/tree/main/.claude/skills/skeptical-review into .github/skills/skeptical-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skeptical-review", 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 matthiasn/lotti --skill skeptical-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install matthiasn/lotti skeptical-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/matthiasn/lotti.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/skeptical-review .opencode/skills/skeptical-review && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "skeptical-review" agent skill from https://github.com/matthiasn/lotti/tree/main/.claude/skills/skeptical-review into .opencode/skills/skeptical-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skeptical-review", 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.
skeptical-reviewAct as a skeptical senior engineer performing a detailed code review of the latest changes on the current branch (or a given PR) — best practices, maintainability, performance, security, and…
Skeptical Review is an agent skill from matthiasn/lotti. Act as a skeptical senior engineer performing a detailed code review of the latest changes on the current branch (or a given PR) — best practices, maintainability, performance, security, and readability. Objective and concise; only real issues, with a clear "no issues" verdict when the code is clean. Replaces CodeRabbit / Gemini Code Review.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Plain language and style rules and Code review. It works with Git. The repository describes itself as: A private logbook with a staff of personal AI assistants. Agents read what you record and propose what to do next — you approve the changes. End-to-end encrypted sync between… The licence is GPL-3.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit a80a35f. 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.
Shell commands in SKILL.md call:
gitghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, 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.
Skeptical Review loads about 2k tokens when it runs. Until then it costs about 90 tokens; SKILL.md has 997 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 matthiasn/lotti at commit a80a35f, republished under its GPL-3.0 licence (© matthiasn). 997 words, ~1,976 tokens.
.claude/skills/skeptical-review/SKILL.md (or your agent's skills folder).You are a skeptical senior engineer performing a detailed, professional code review. The bar is a practical, fair assessment a maintainer can act on directly, not a wall of generated nitpicks.
Treat $ARGUMENTS as optional. Resolve what to review in this order:
/skeptical-review 3413) — fetch the PR diff
via gh pr diff <n> and gh pr view <n> for title/description context./skeptical-review develop) — diff the
current branch against that base./skeptical-review lib/features/ai) — limit
the branch diff to that path.git diff main...HEAD plus uncommitted work
(git diff HEAD and untracked files via git status). Say explicitly
which of the two buckets each finding falls in when both exist.Before reviewing, print a one-paragraph scope statement: branch, base, number of files/insertions/deletions, and a one-line summary of what the change is trying to do (from commit messages / PR description). If the diff is empty, say so and stop.
Skip generated files (*.g.dart, *.freezed.dart, lib/l10n/app_localizations_*.dart)
except to verify they were regenerated when their sources changed. Treat
third_party/ as vendored: review it lighter — flag only correctness and
security issues, not style, and note divergence-from-upstream risk instead.
Work through the diff with these lenses, in this priority order:
const, provider
over-watching), N+1 queries, work in build() that belongs in a
provider/controller, unbounded growth (caches, listeners never disposed,
stream subscriptions leaked).This repo has house rules; a change violating them is a real finding, not a
nitpick. Verify against AGENTS.md (authoritative) — highlights:
test/mocks/mocks.dart), fallbacks, and makeTestableWidget /
setUpTestGetIt helpers; no Future.delayed/sleep/real timers; no
DateTime.now(); meaningful assertions only (findsOneWidget alone is
not a test). New/changed behavior in lib/ without matching test changes
is worth flagging.lib/l10n/, with app_en_GB.arb getting an entry only
where British spelling differs (list, exception and register rules in
knowledge/conventions/localization.md); generated l10n Dart files never
hand-edited.TextStyle constructors, or
ad-hoc colors — tokens (tokens.spacing.*, tokens.typography.*,
tokens.colors.*) are mandatory in UI code.skipLoadingOnReload or equivalent).changelog.d/YYYY-MM-DD-slug.md fragment
(only for user-visible changes). A PR that edits CHANGELOG.md, the flatpak
metainfo, or the version: line in pubspec.yaml is a finding, not a
courtesy — those three belong to the release alone.Do not re-run the analyzer or tests as part of the review by default — this is a reading review. If a finding hinges on runtime behavior you cannot determine by reading (e.g. "does this provider rebuild?"), say so and mark the finding as needing verification rather than asserting it.
Deliver the review as a single final message:
Verdict line — one sentence: overall assessment (e.g. "Solid change with two real issues and one suggestion" or "Clean — no issues found").
Scope statement — the paragraph described above.
Findings, ordered by severity, each formatted as:
### <severity> — <one-line summary>
`path/to/file.dart:123`
Why it's a problem: <one or two sentences>
Suggestion: <concrete fix or better approach; short code sketch if it helps>Severity levels: Blocker (must fix before merge — bugs, security, data loss), Should fix (real maintainability/performance cost), Consider (worthwhile improvement, author's call). Do not pad lower tiers to seem thorough — an empty tier is fine.
What's done well — one short paragraph max, only if genuinely noteworthy (patterns worth repeating), never as filler praise.
Keep the whole review proportional to the diff: a 20-line diff gets a short review. If the real issues would make a long list, the change needs a rewrite conversation, not a list; say that instead.
© matthiasn, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/skeptical-review of matthiasn/lotti.
Open the folder on GitHubat commit a80a35f
Skeptical 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Skeptical Review this skillmatthiasn/lotti | 1.2k | — | ~2k | Automated safety check: Pass | GPL-3.0 | |
| ReviewSethGammon/Citadel | 924 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Code Walkthroughtestdouble/han | 281 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 4 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Open Code Review CLIalibaba/open-code-review | 46k | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Open Code Review Delegatealibaba/open-code-review | 46k | — | ~2.3k | Automated safety check: Pass | Apache-2.0 |
SethGammon/Citadel
5-pass structured code review — correctness, security, performance, readability, consistency
testdouble/han
Walks a person through code changes one step at a time in conversation, starting at the entry point and following the flow that changes, showing a small chunk per step and explaining it in plain…
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.
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.
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.
matthiasn/lotti
Add, complete, or audit a locale across a Flutter application's ARB catalogs and a localized Docusaurus manual, including generated localization code, locale selectors, native platform declarations…
matthiasn/lotti
Maintain a Docusaurus product manual whose prose, navigation, localized page trees, screenshots, coverage metadata, and release build must stay aligned with the application.
matthiasn/lotti
Capture in-app screenshots of a widget or flow at mobile + desktop sizes — offline, deterministic, real fonts and icons — using the reusable screenshot harness.
matthiasn/lotti
A skill your agent uses for authorized Lotti maintainer work that needs private durable task tracking, issue dependencies, blocker management, multi-session handoff, or shared agent memory.
matthiasn/lotti
Run a multi-agent design review on a UI surface — capture reproducible baseline screenshots, then rate them with a panel of design experts (one agent per craft dimension) and, optionally, a panel of…
matthiasn/lotti
Cut a Lotti release — assemble the changelog.d/ fragments into CHANGELOG.md and the Flathub metainfo, bump the version, open the release PR, then tag.
Works with
Categories
Act as a skeptical senior engineer performing a detailed code review of the latest changes on the current branch (or a given PR) — best practices, maintainability, performance, security, and…. Skeptical Review is an agent skill from matthiasn/lotti. Act as a skeptical senior engineer performing a detailed code review of the latest changes on the current branch (or a given PR) — best practices, maintainability, performance, security, and readability.
Skeptical Review fits situations like: tasks that involve Plain language and style rules; tasks that involve Code review.
Run `npx skills add matthiasn/lotti --skill skeptical-review -a claude-code`. Or copy the skill folder (.claude/skills/skeptical-review in matthiasn/lotti) into .claude/skills/skeptical-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add matthiasn/lotti --skill skeptical-review -a codex`. Or copy the skill folder (.claude/skills/skeptical-review in matthiasn/lotti) into .agents/skills/skeptical-review 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 matthiasn/lotti --skill skeptical-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/skeptical-review, .gemini/skills/skeptical-review, .github/skills/skeptical-review and .opencode/skills/skeptical-review in your project.
Going by SKILL.md and its folder, Skeptical Review needs the command-line tools its instructions call (git and gh).
SKILL.md contains no URLs. Its commands use git and gh, 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.
Skeptical Review is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k 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 Skeptical Review: Review (SethGammon/Citadel, 924 stars), Code Walkthrough (testdouble/han, 281 stars), Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars) and Open Code Review CLI (alibaba/open-code-review, 46k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
matthiasn (a GitHub user) maintains it in matthiasn/lotti, which has 1,199 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 10, 2026.
Source: matthiasn/lotti on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.