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.
Houndarr-specific Python conventions on top of the global python skill.
$ npx skills add av1155/houndarr --skill houndarr-python -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install av1155/houndarr houndarr-python --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/av1155/houndarr.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/houndarr-python .claude/skills/houndarr-python && 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 "houndarr-python" agent skill from https://github.com/av1155/houndarr/tree/main/.agents/skills/houndarr-python into .claude/skills/houndarr-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "houndarr-python", 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/av1155/houndarr/tree/main/.agents/skills/houndarr-pythonType 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 av1155/houndarr --skill houndarr-python -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install av1155/houndarr houndarr-python --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/av1155/houndarr.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/houndarr-python .agents/skills/houndarr-python && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "houndarr-python" agent skill from https://github.com/av1155/houndarr/tree/main/.agents/skills/houndarr-python into .agents/skills/houndarr-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "houndarr-python", 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 av1155/houndarr --skill houndarr-python -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install av1155/houndarr houndarr-python --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/av1155/houndarr.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/houndarr-python .cursor/skills/houndarr-python && 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 "houndarr-python" agent skill from https://github.com/av1155/houndarr/tree/main/.agents/skills/houndarr-python into .cursor/skills/houndarr-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "houndarr-python", 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/av1155/houndarr.git --path .agents/skills/houndarr-python--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 av1155/houndarr --skill houndarr-python -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install av1155/houndarr houndarr-python --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/av1155/houndarr.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/houndarr-python .gemini/skills/houndarr-python && 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 "houndarr-python" agent skill from https://github.com/av1155/houndarr/tree/main/.agents/skills/houndarr-python into .gemini/skills/houndarr-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "houndarr-python", 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 av1155/houndarr houndarr-pythonInstalls 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 av1155/houndarr --skill houndarr-python -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/av1155/houndarr.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/houndarr-python .github/skills/houndarr-python && 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 "houndarr-python" agent skill from https://github.com/av1155/houndarr/tree/main/.agents/skills/houndarr-python into .github/skills/houndarr-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "houndarr-python", 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 av1155/houndarr --skill houndarr-python -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install av1155/houndarr houndarr-python --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/av1155/houndarr.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/houndarr-python .opencode/skills/houndarr-python && 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 "houndarr-python" agent skill from https://github.com/av1155/houndarr/tree/main/.agents/skills/houndarr-python into .opencode/skills/houndarr-python/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "houndarr-python", 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.
houndarr-pythonHoundarr-specific Python conventions on top of the global python skill.
Houndarr Python is an agent skill from av1155/houndarr. Houndarr-specific Python conventions on top of the global python skill. Loads when reading or editing .py files in this repo. Covers the noqa/nosec suppression table, the AppSettings-as-plain-dataclass decision, the frozen-dataclass-with-slots invariant for domain models, the per-module logger pattern, and the background-task error-handling shape.
Its SKILL.md is about 1.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. It works with Python. The repository describes itself as: Self-hosted arr companion for controlled missing, cutoff, and upgrade searches. The licence is AGPL-3.0.
Read from SKILL.md and the folder at commit 9b39fdb. 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.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom 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.
Houndarr Python loads about 1.2k tokens when it runs. Until then it costs about 91 tokens; SKILL.md has 484 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 av1155/houndarr at commit 9b39fdb, republished under its AGPL-3.0 licence (© av1155). 484 words, ~1,211 tokens.
.claude/skills/houndarr-python/SKILL.md (or your agent's skills folder).Apply alongside the global python skill. The global skill covers PEP 604
unions, lowercase generics, mypy strict, naming, etc. This skill adds the
Houndarr-specific decisions that are not generic Python good-practice.
from __future__ import annotations is mandatory in every .py file that
contains code. Empty __init__.py package markers are exempt. isort runs
via Ruff with known-first-party = ["houndarr"].
| Kind | Style | Example |
|---|---|---|
| Classes / dataclasses | PascalCase | SonarrClient, AppSettings |
| Functions / methods | snake_case | create_instance, run_instance_search |
| Private helpers | _leading_underscore | _write_log, _render |
| Constants | UPPER_SNAKE_CASE | SESSION_MAX_AGE_SECONDS, SCHEMA_VERSION |
| Module-level state | _leading_underscore | _db_path, _runtime_settings |
| Enums | StrEnum, lowercase values | InstanceType.sonarr |
| Type aliases | PascalCase or Literal | RunNowStatus = Literal["accepted", "not_found", "disabled"] |
AppSettings is a plain dataclass, not Pydantic. Pydantic is used only
at the *arr wire boundary (src/houndarr/clients/_wire_models/), never for
internal domain models or config. get_settings() is a lazy singleton and
the only deliberately-mutable dataclass (env overrides applied in-place).slots=True. Domain models (MissingEpisode,
LibraryMovie, etc.) live next to the client that builds them; Instance
composes seven frozen sub-structs and is itself frozen and slotted. Callers
evolve through dataclasses.replace.Every module that logs uses logger = logging.getLogger(__name__) at module
level. Root logger is configured in __main__.py via logging.basicConfig().
No alternative logging libraries (structlog, loguru) are used.
except asyncio.CancelledError: raise first, then
broad except Exception with # noqa: BLE001; log + continue/retry.response.raise_for_status() in _get() / _post();
callers catch httpx.HTTPError or httpx.TransportError.False (never leaks info).status_code=422 for
validation errors; use HTTPException in API routes.Args:, Returns:, Raises: sections.Read docs/commenting-standard.md
at least once per session before writing or editing code in this repo. It
codifies the full commenting standard (per-language rules for Python,
HTML/Jinja2, CSS, JS, SQL, YAML, shell, Markdown) plus the universal
principles. Core rule: comments explain why, code explains what.
noqa / nosec suppressions| Code | Reason |
|---|---|
SIM117 | Nested async with required by aiosqlite pattern |
S104 | Intentional bind to 0.0.0.0 for self-hosted server |
B008 | FastAPI Depends() in function defaults |
S608 + nosec | Dynamic SQL with explicit column allowlist (4 files). Use bare # nosec (no test ID) per bandit#1204: the test-ID form emits a spurious WARNING nosec encountered (B608), but no failed test per f-string interpolation on bandit 1.7.3+ |
BLE001 | Broad exception in background loops (always with logging) |
A002 | Parameter names type / id shadowing builtins (FastAPI form / function signature convention) |
SLF001 | Test fixtures and __main__.py accessing private module state |
PLW0603 | Module-level global reassignment (singletons); the PLW rule family is not currently selected in ruff config, so these comments are defensive / inert |
S101 | Defensive assert in adapters and instance validation; also globally ignored in ruff config. Per-file comments are defensive. |
ANN rules (per-file-ignores in pyproject.toml).collections.abc.AsyncGenerator, not typing.AsyncGenerator.# type: ignore[assignment]; never bare # type: ignore.© av1155, AGPL-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 .agents/skills/houndarr-python of av1155/houndarr.
Open the folder on GitHubat commit 9b39fdb
Houndarr Python 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 |
|---|---|---|---|---|---|---|
| Houndarr Python this skillav1155/houndarr | 292 | — | ~1.2k | Automated safety check: Pass | AGPL-3.0 | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Summarise Ecosystem Resultsastral-sh/ruff | 50k | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Minimizing Ty Ecosystem Changesastral-sh/ruff | 50k | — | ~4.6k | Automated safety check: Pass | MIT | |
| Merge Dependabot PRsonyx-dot-app/onyx | 32k | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Code Graph Mermaid Diagramstrailofbits/skills | 7.4k | 1 repos | ~1.7k | Automated safety check: Pass | CC-BY-SA-4.0 |
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.
astral-sh/ruff
A skill your agent uses when a user says "summarise ecosystem results", "summarize this ty ecosystem report", "what changed in this ecosystem run?", or asks to summarise or summarize ty ecosystem…
astral-sh/ruff
A skill your agent uses when a user says "minimize this ty ecosystem change", "reproduce this ecosystem result", "investigate a primer difference", "investigate a mypyprimer difference"…
onyx-dot-app/onyx
Triages and lands a batch of open Dependabot PRs in the Onyx repo, where main is gated exclusively by GitHub's merge queue: approves and enqueues green PRs, closes superseded duplicates, fixes…
trailofbits/skills
Generates Mermaid diagrams from Trailmark code graphs, including call graphs, class hierarchies, module dependency maps, complexity heatmaps and attack surface data flows.
Jeffallan/claude-skills
Walks through designing, building and polishing a command-line tool: user workflow and command hierarchy, implementation in commander, click, typer or cobra, completions and cross-platform testing.
av1155/houndarr
Bump Houndarr version and prepare a release PR. An agent skill from av1155/houndarr.
av1155/houndarr
Run Houndarr's full quality gate (ruff lint, ruff format check, mypy, bandit, pytest) and report results in a single table.
av1155/houndarr
Houndarr's source layout and architectural patterns at file granularity.
av1155/houndarr
Houndarr's CHANGELOG.md style guide and entry rules. An agent skill from av1155/houndarr.
av1155/houndarr
Houndarr's pytest patterns. An agent skill from av1155/houndarr.
av1155/houndarr
Verify probabilistic, distributional, or random behaviour empirically before changing search-engine code.
Works with
Categories
Houndarr-specific Python conventions on top of the global python skill. Houndarr Python is an agent skill from av1155/houndarr. Houndarr-specific Python conventions on top of the global python skill.
Houndarr Python fits situations like: development work in your project.
Run `npx skills add av1155/houndarr --skill houndarr-python -a claude-code`. Or copy the skill folder (.agents/skills/houndarr-python in av1155/houndarr) into .claude/skills/houndarr-python in your project. Claude Code loads it when a task matches its description.
Run `npx skills add av1155/houndarr --skill houndarr-python -a codex`. Or copy the skill folder (.agents/skills/houndarr-python in av1155/houndarr) into .agents/skills/houndarr-python 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 av1155/houndarr --skill houndarr-python -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/houndarr-python, .gemini/skills/houndarr-python, .github/skills/houndarr-python and .opencode/skills/houndarr-python in your project.
SKILL.md names no scripts, command-line tools or credentials: Houndarr Python is instructions for the agent only. Our summary lists: Python 3.
SKILL.md names 1 domain. As links in the text: github.com. 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.
Houndarr Python is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.2k tokens (SKILL.md is roughly 4.8k 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 Houndarr Python: Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Summarise Ecosystem Results (astral-sh/ruff, 50k stars), Minimizing Ty Ecosystem Changes (astral-sh/ruff, 50k stars) and Merge Dependabot PRs (onyx-dot-app/onyx, 32k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
av1155 (a GitHub user) maintains it in av1155/houndarr, which has 292 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 5, 2026.
Source: av1155/houndarr on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.