Files
barker/.agents/skills/strict-mypy/SKILL.md
Amritanshu 38a8656008 Added proper agents config for mcp servers and skills.
Added the menu category delete route.
Fix: Show blank vouchers in tables
Fix: In rare cases, the old settements can stick around. fixed it.
2026-08-10 08:25:12 +00:00

1.8 KiB

name, description
name description
strict-mypy Enforces strict MyPy type checking conventions matching the project's pyproject.toml configuration. Use whenever writing or modifying Python code.

Strict MyPy Typing Standards

This project uses a highly strict MyPy configuration (strict = true). When writing or refactoring Python code, you MUST adhere to the following rules to ensure the code passes type checking:

1. Absolute Signature Completeness

  • EVERY function and method must have fully typed arguments and a return type (disallow_untyped_defs, disallow_incomplete_defs).
  • ALWAYS specify -> None for functions and methods that do not return a value.
  • NEVER leave type hints partially defined (e.g., typing only some arguments).
  • Decorators must be completely type-hinted using typing.Callable or typing.ParamSpec (disallow_untyped_decorators).

2. No Implicit Optionals

  • arg: str = None is strictly forbidden.
  • You MUST explicitly union with None: arg: str | None = None (no_implicit_optional).

3. Strict Generics

  • NEVER use bare collections as types.
  • ALWAYS specify the inner types: use list[str], dict[str, int], or tuple[int, ...] instead of bare list, dict, or tuple (disallow_any_generics).

4. Restrictions on Any and Subclassing

  • Do not subclass from untyped external libraries or Any (disallow_subclassing_any).
  • Avoid using external types that have no stubs and resolve to Any (disallow_any_unimported).
  • Refrain from returning Any to avoid contaminating the type inference of calling functions (warn_return_any).

5. Pydantic Strictness

  • pydantic.mypy is active with strict initialization.
  • When instantiating Pydantic models, ensure you are passing exactly the expected typed arguments, as extra or untyped arguments will fail type checks (init_typed = true, init_forbid_extra = true).