agentleFS
pavelzbornikpavelzbornik/whisperX-FastAPI/app/CLAUDE.md

whisperX-FastAPI / app

CLAUDE.md188 starsChanged 7 months agoMITArchived repositoryView on GitHub

Code standards that apply across all app/ subfolders. Use Python 3.10+ union syntax throughout: For untyped third-party APIs (whisperx, torch, numpy), add # type: ignore[attr-defined] on the offending line. All code must pass with zero errors/warnings: Ruff is the single formatter/linter — never run flake8, isort, or black directly. pydocstyle is enforced via pre-commit. Every public function, method, and class needs a PEP 257-compliant docstring. One-liners are fine for simple functions: get_settings() returns a cached Settings singleton (pydantic-settings). Use it…

We split this CLAUDE.md into the rules it gives an agent

2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use Python 3.10+ union syntax throughout:

    line 7
  2. Distinctive:

    All code must pass with zero errors/warnings:

    line 17

≈ “Common” is an estimate: at least 1 in 5 of the 25,680 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
CLAUDE.md

app

Code standards that apply across all app/ subfolders.

Type Annotations

Use Python 3.10+ union syntax throughout:

  • str | None not Optional[str]
  • dict[str, Any], list[str] not Dict, List
  • collections.abc.Generator / collections.abc.Callable — never typing.Generator / typing.Callable

For untyped third-party APIs (whisperx, torch, numpy), add # type: ignore[attr-defined] on the offending line.

Static Analysis

All code must pass with zero errors/warnings:

uv run mypy app/        # disallow_untyped_defs = true; must show "Success: no issues found"
uv run ruff check .     # replaces flake8 + isort
uv run ruff format .    # replaces black

Ruff is the single formatter/linter — never run flake8, isort, or black directly.

Docstrings

pydocstyle is enforced via pre-commit. Every public function, method, and class needs a PEP 257-compliant docstring. One-liners are fine for simple functions:

def get_task_id(self) -> str:
    """Return the task's unique identifier."""

Settings

get_settings() returns a cached Settings singleton (pydantic-settings). Use it for all new code. The legacy Config class in app/core/config.py is deprecated — do not reference it in new code. See docs/CONFIGURATION_MIGRATION.md for migration guidance.

Pre-commit

Running uv run pre-commit run --all-files executes: mypy, ruff, yamllint, hadolint, shellcheck, codespell, pydocstyle, and gitleaks. All must pass before a PR is opened.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.