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.2.0        # or: pipx install aufsicht==0.2.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.2.2.tar.gz (175.7 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.2.2-py3-none-any.whl (110.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aufsicht-0.2.2.tar.gz
Algorithm Hash digest
SHA256 b37df1a7596ac92e0a463f5fe42fd81ba729490529f4a89e66c94351561f37e7
MD5 90b6212c3d7c3a4d80ad9a0c058100f7
BLAKE2b-256 402cf259d848c4d09e97234148711c322bed2cdf0ac4b12f408d5234491603d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aufsicht-0.2.2.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.2.2-py3-none-any.whl.

File metadata

  • Download URL: aufsicht-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 110.4 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.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e61faf1c98c13d304798b2ca789a210f07fcbb8125f13b25dcff4449f5e19045
MD5 7a4a35cb151bdc930db51a3a3959735c
BLAKE2b-256 62f834c2eb0dd859f22992dc6a831975a7452b27af04836234faf09ad02f9994

See more details on using hashes here.

Provenance

The following attestation bundles were made for aufsicht-0.2.2-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

This release

0.2.2 This release

2 files

0.2.0

2 files

0.1.0

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