Skip to main content

aufsicht

Deterministic, reusable quality guardrails for existing Python repositories, built so AI coding agents cannot silently degrade them.

aufsicht (German for oversight / supervision — the only non-English identifier in the system) implements the Python AI Code Quality Guardrails specification v5.1 (Tier 1) and the distribution layer from the aufsicht distribution spec v1. Both documents, plus the Tier 3 mutation-testing addendum, live verbatim in spec/.

The three layers

Layer 1   runner        this package. All gate logic. Versioned, pinned, never
                        regenerated per repository.
Layer 2   init          `aufsicht init` — deterministic bootstrap: probes,
                        writes .quality/, verifies, refuses.
Layer 3   skill         delivery via an agent harness. Zero gate logic, zero
                        policy. Runs install/bootstrap.sh and reads init's
                        output. That is all.

The invariant: no policy above Layer 1. Thresholds, rule lists and mechanisms live in the runner and in .quality/ inside each guarded repository — never in the skill, never in prose an agent paraphrases.

Install

uv tool install aufsicht==0.1.0        # or: pipx install aufsicht==0.1.0
cd /path/to/existing/repo
aufsicht init                          # detect → probe → propose → write → verify

init branches (never commits to the default branch), writes .quality/, a CI workflow, an AGENTS.md section — configuration and nothing else. The repository's pyproject.toml dependencies and lockfile are provably untouched: the runner is a standalone tool, not a project dependency (distribution spec §3).

Command surface

aufsicht fast      quality-fast   read-only, diff-scoped, < 15 s (v5.1 §5)
aufsicht full      quality-full   read-only, whole repo, per-rule ratchets
aufsicht fix       quality-fix    MAY mutate — never in validation or CI
aufsicht init      Layer 2 installer
aufsicht upgrade   prints the .quality/ diff a runner upgrade would apply,
                   writes nothing

Exit codes (v5.1 §15): 0 pass, 1 hard gate, 2 regression only, 3 tooling error. Init exit codes (distribution spec §5.2): 0 installed, 1 refused, 2 installed with warnings, 3 tooling error.

What the gate does

Tier 1 — no baseline artifact, three mechanisms (v5.1 §4):

  • absolute — test failures, circular imports (pyscn structured analysis minus allowlist), pip-audit findings, guardrail integrity
  • diff-scoped — Ruff errors/format, enumerated Ruff S rules, C901 complexity (changed-file scope — measured, see src/aufsicht/probe_facts.py), Pyright on changed files, Semgrep anti-evasion rules, suppression-comment added-line scan
  • per-rule count ratchet — Ruff, Pyright, pyscn dead code, deptry, Xenon aggregate, grouped by rule id with a <no-rule> bucket for null rule ids

Analyzer versions come from .quality/toolchain.lock (protected path, v5.1 §11.2) and run from runner-managed environments keyed on lockfile hash. A ratchet never compares diagnostics produced by different versions of the same analyzer (v5.1 §4.4).

Self-hosting

This repository runs its own guardrails (.quality/, .github/workflows/aufsicht.yml). src/aufsicht/** is documented in AGENTS.md as the product rather than a protected path — its control is code review plus the self-test suite (distribution spec §7).

Development

uv sync
uv run pytest

The self-test suite (v5.1 §18, distribution spec §8) executes every case against generated scratch repositories — real git history, real merge base, real violation, real CLI invocation.

License

Apache-2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aufsicht-0.1.0.tar.gz (163.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aufsicht-0.1.0-py3-none-any.whl (106.8 kB view details)

Uploaded Python 3

File details

Details for the file aufsicht-0.1.0.tar.gz.

File metadata

  • Download URL: aufsicht-0.1.0.tar.gz
  • Upload date:
  • Size: 163.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for aufsicht-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3ad395638143a7ce012877b1a5e1fae5da1edf144b6116bf86e8ae1a3185b517
MD5 ecf80366f0c5cf3e71e7097f7e0f1618
BLAKE2b-256 5a0cc8c34fb776ee33c1b159b36251f90c49e8e0b08058b691515350453b925a

See more details on using hashes here.

Provenance

The following attestation bundles were made for aufsicht-0.1.0.tar.gz:

Publisher: aufsicht.yml on code-factorio/aufsicht

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aufsicht-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aufsicht-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 106.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for aufsicht-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 375fed6546d90932331b1205316291ca39901f51448dddd3d8a5543a5048a777
MD5 dcdc776d4cf84ff4bab7ae9f02ffba2d
BLAKE2b-256 430a790782bf167a5f0d6b2b2b05f1979b1fe63e0756751f725b04a12421562a

See more details on using hashes here.

Provenance

The following attestation bundles were made for aufsicht-0.1.0-py3-none-any.whl:

Publisher: aufsicht.yml on code-factorio/aufsicht

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.2

2 files

0.2.0

2 files

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page