Cadence

A stack-agnostic, self-improving AI development framework as a Claude Code plugin.

View the Project on GitHub nik190799/cadence

Recipe — Python

A starter cadence.yaml for a typical Python project.

commands:
  format: ["ruff format --check ."]
  lint:   ["ruff check .", "mypy ."]
  test:   ["pytest"]

boundaries:
  - where: "src/myapp/features/**"
    forbidden:
      - "src/myapp/data/sources/**"
      - "src/myapp/data/repositories/**"
    reason: "Features must read via narrow providers in src/myapp/app/providers"

  - where: "src/myapp/data/sources/**"
    forbidden:
      - "src/myapp/features/**"
      - "src/myapp/app/**"
    reason: "Data sources are leaf-level"

  - where: "**/*"
    forbidden:
      - "src/myapp/data/models/**"
    reason: "Models live in src/myapp/domain/models; data/models is forbidden"

Notes

Suggested first ADRs

  1. Dependency injection approach (constructor injection / functools.partial / a DI framework)
  2. Error handling pattern (exceptions / Result types / per-call try)
  3. Async vs sync boundary (where async starts and ends)