Skip to main content

Safety-first tool to generate tool-owned project files from intent.toml

Project description

Intent

Intent keeps project automation config in sync from a single intent.toml.

  • Source of truth: intent.toml
  • Reads: intent.toml, pyproject.toml
  • Generates tool-owned files: .github/workflows/ci.yml, justfile

Full reference: documentation.md

Install

From PyPI:

python -m pip install intent

From source:

python -m pip install -e .

Quick Start

  1. Initialize config:
intent init
  1. Generate files:
intent sync --write
  1. Verify drift in CI/pre-commit:
intent check --strict

Minimal intent.toml

[intent]
schema_version = 1

[python]
version = "3.12"

[commands]
test = "pytest -q"
lint = "ruff check ."

[ci]
install = "-e .[dev]"

[policy]
pack = "default"
strict = false

Common Commands

Command Purpose
intent init Create starter config.
intent init --from-existing Infer Python version from pyproject.toml when possible.
intent init --starter tox Generate tool-owned tox.ini starter (reuses existing intent.toml).
intent init --starter nox Generate tool-owned noxfile.py starter (reuses existing intent.toml).
intent sync Show config + version checks.
intent sync --dry-run Preview file changes without writing.
intent sync --write Write generated files.
intent sync --write --adopt Adopt matching non-owned generated files.
intent sync --write --force Force-overwrite non-owned generated files.
intent check Detect drift without writing.
intent check --format json Machine-readable drift report.
intent doctor Diagnose issues with actionable fixes.
intent reconcile --plan Preview Python-version reconciliation.
intent reconcile --apply --allow-existing Apply reconciliation including existing-file edits.

Safety Model

  • Writes only tool-owned files in normal sync flow.
  • Refuses unsafe overwrite unless explicitly requested.
  • Supports explicit ownership modes: strict, adopt, force.
  • Uses stable error codes (INTENTxxx) for automation.

Pre-commit Hook

repos:
  - repo: local
    hooks:
      - id: intent-check
        name: intent check
        entry: intent check --strict
        language: system
        pass_filenames: false

Release Note

Current package version in this repo is 0.1.0 (pyproject.toml). If 0.1.0 is already published on PyPI, bump version before upload.

License

MIT

Project details


Download files

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

Source Distribution

intent_cli-0.1.1.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

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

intent_cli-0.1.1-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file intent_cli-0.1.1.tar.gz.

File metadata

  • Download URL: intent_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for intent_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ef734b878d28db060ead74944158d4b174bf35ddca1a906f82aaedee5b548820
MD5 df871ecce60711d3f0d6b92e1b6f161f
BLAKE2b-256 cfa9e8ad2404e71bb1925a5fae2e4ce32c2270c4bd7ee68d6dbcdf344be207b2

See more details on using hashes here.

File details

Details for the file intent_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: intent_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for intent_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 25bdac4d49e632ce246e830e0227a1e707d7d9e4ce65f279d9387978c4b541ed
MD5 e1f90652598c7565b76491430176830b
BLAKE2b-256 af56b9c85b9b4e1e86220bf6931fe667422dc21fde999558fee801e351bdb4e3

See more details on using hashes here.

Supported by

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