Skip to main content

Cuff check flow: bind the subject, observe the verifier, require fresh evidence

Cuff

Make claims checkable. Reject evidence when stale.

Cuff ties one completion claim to one exact subject, runs the verifier you choose, and checks whether the latest passing evidence still matches the current Git state.

It turns a completion statement into a durable, checkable record without deciding what should prove the work or what action should follow.

Requirements

  • Python 3.11 or newer;
  • uv on PATH (0.11.32 is the tested recommendation); and
  • an existing Git worktree. Its root is the only valid Cuff workspace.

Git is mandatory. Cuff never initializes a repository, selects another worktree, or stages, commits, fetches, pushes, releases, or deploys anything.

Install

Install a released version as a standard uv-managed tool:

uv tool install cuff-cli==0.2.0
cuff --version

For local development, install the checkout explicitly:

uv tool install --editable .

Cuff has no runtime dependencies. It is distributed as a standard wheel and source distribution; it contains no bundled Python or native executable.

Five-command quickstart

Run initialization at the exact Git worktree root:

cuff init --json
git add .fab7/cuff/project.json
git commit -m "Initialize Cuff"

The marker is exactly {"schema":1} and records live under .fab7/cuff/records/. An incompatible marker is never rewritten or migrated.

The preferred path atomically appends a claim and its observed evidence:

cuff seal \
  --work-item task-1 \
  --summary "Implementation complete" \
  --subject-path src \
  --json \
  -- python -m pytest

cuff check --work-item task-1 --json

The split path is available when the claim must exist before verification:

cuff claim \
  --work-item task-1 \
  --summary "Implementation complete" \
  --subject-path src \
  --json

cuff verify \
  --work-item task-1 \
  --claim rec_REPLACE_ME \
  --json \
  -- python -m pytest

The public surface is exactly:

cuff init
cuff claim
cuff verify
cuff seal
cuff check

Every claim, verification, seal, and check names its work item explicitly. Declared subjects use the complete {kind, ref, digest} identity; file and tree subjects use --subject-path and a Cuff-computed manifest digest.

Proof boundary

  • Claims and evidence are closed generation-1 JSONL records.
  • Every evidence record contains the HEAD commit observed before execution.
  • Verifier argv is executed literally without a shell.
  • Non-ledger dirtiness before or after verification records no evidence.
  • seal appends its linked pair in one locked atomic replacement.
  • check enforces subject freshness, commit ancestry, changed paths, non-ledger cleanliness, and append-only ledger changes.

Cuff treats verifier argv as opaque. It does not select the command, import an extension, interpret domain output, or grant merge, release, deployment, spend, or residual-risk authority.

Static host integrations

One native payload lives in plugins/cuff and contains both host manifests, Claude Code commands, and Codex skills. The shared fab7hq/fab7 marketplace owns registration; this repository owns the payload. The assets require the uv-managed cuff executable on PATH.

# Codex
codex plugin marketplace add fab7hq/fab7
codex plugin add cuff@fab7

# Claude Code
claude plugin marketplace add fab7hq/fab7
claude plugin install cuff@fab7 --scope user

Validate the built candidate and both host payloads without touching the normal host configuration:

uv build --out-dir ../sandbox/cuff-01/dist
uv run python tools/local_release_check.py --host all
uv run python tools/local_release_check.py --host all --prepare-auth \
  --candidate-commit COMMIT \
  --evidence-dir ../sandbox/cuff-01/e2e
# Log each CLI in using the isolated home paths printed by the prepare phase.
uv run python tools/local_release_check.py --host all --live --reuse-prepared \
  --candidate-commit COMMIT \
  --evidence-dir ../sandbox/cuff-01/e2e \
  --codex-model MODEL \
  --claude-model MODEL

See RUNBOOK.md for operations, the architecture overview for ownership, and the ledger contract for the record and gate invariants.

Development

uv sync --locked
uv run --locked python -m pytest
uv run --locked python -m compileall -q core/cuff
uv build
git diff --check

Community and support

Cuff is licensed under the Apache License 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

cuff_cli-0.2.0.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

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

cuff_cli-0.2.0-py3-none-any.whl (24.9 kB view details)

Uploaded Python 3

File details

Details for the file cuff_cli-0.2.0.tar.gz.

File metadata

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

File hashes

Hashes for cuff_cli-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7c2885a3190ed0e57346797bcd769ce8f3d7a0a7059efcedab2c7126be42df6c
MD5 e27f4f55c661a991ff73e4367106595c
BLAKE2b-256 fb8ced74fa82503c4ea82772e548a28dcba7ebeebc8a9f4c35df041d10058ba6

See more details on using hashes here.

Provenance

The following attestation bundles were made for cuff_cli-0.2.0.tar.gz:

Publisher: release.yaml on fab7hq/cuff

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

File details

Details for the file cuff_cli-0.2.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for cuff_cli-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b01fd17cbd96ce65f430cb111b9a54b9f31609ab1df9cd62bf7f1013b0c91163
MD5 accc956574663eea2dfd4e49c54d5a25
BLAKE2b-256 dd668605511d5f0b56f3575b4dd6eb9faecb755999940da1b473a109b46b0b31

See more details on using hashes here.

Provenance

The following attestation bundles were made for cuff_cli-0.2.0-py3-none-any.whl:

Publisher: release.yaml on fab7hq/cuff

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.1

2 files

This release

0.2.0 This release

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