Skip to main content

AXM Logo

axm-init — Project scaffolding, quality checks & governance tools

CI axm-audit axm-init Coverage PyPI Python 3.12+ Docs


axm-init scaffolds projects, checks their governance artefacts and reserves PyPI names. Its three AXMTools are available through the shared axm CLI and an MCP server with the package installed.

Features

  • 🚀 Scaffold — Generate Python projects, workspaces and member packages; additional templates support Node/Svelte and research projects
  • 📋 Check — Score any project against the AXM gold standard (context-selected checks, A–F grade)
  • 📦 Reserve — Claim a package name on PyPI before you're ready to publish

Installation

Requires Python 3.12 or newer. Install the shared CLI with this provider:

uv tool install --with axm-init axm

For a dependency inside an existing uv project, use uv add axm-init, then invoke uv run axm ....

Quick Start

# Scaffold a new project
axm init_scaffold my-project \
  --org axm-protocols \
  --author "Your Name" --email "you@example.com"

# Check the generated project against AXM standards
axm init_check my-project

The first command creates my-project; the second reports its applicable checks, score and grade. The score depends on the generated files and the check context; scaffolding does not guarantee a perfect score.

Usage

CLI Commands

axm init_scaffold

Scaffold a Python project with src layout, PEP 621 metadata, CI and docs.

Option Short Default Description
PATH . Directory to initialize
--org required GitHub org or username
--author required Author name
--email required Author email
--name dir name Project name
--license Apache-2.0 License (MIT, Apache-2.0, EUPL-1.2)
--license-holder --org License holder
--description One-line description
--workspace False Scaffold a UV workspace instead of a standalone package
--member Scaffold a member sub-package with this name
--check-pypi False Verify PyPI availability first
--json-output False Output as JSON

Note: --workspace and --member are mutually exclusive.

axm init_check

Score a project against the context- and framework-selected AXM checks.

Option Short Default Description
PATH . Directory to check
--category all Filter to one category
--verbose False Show all checks including passed
--json-output False Output as JSON
--agent False Compact agent-friendly output

Python categories: pyproject, ci, tooling, docs, structure, deps, changelog, workspace, paper, experiment. Node/React/Svelte use their own registries.

axm init_reserve

Reserve a package name on PyPI with a minimal placeholder. Preview without publishing:

axm init_reserve my-cool-lib --author "Your Name" --email "you@example.com" --dry-run
Option Short Default Description
NAME required Package name to reserve
--author git config Author name (required)
--email git config Author email (required)
--dry-run False Skip actual publish
--json-output False Output as JSON

Note: --author and --email fall back to git config user.name / user.email. Fallback occurs only if both flags are omitted. If one is supplied, the other must be supplied too; an incomplete identity is rejected.

See the complete CLI reference for framework and protocol options, output schemas and exit policy. The generated CLI has no short aliases.

Workspace Support

axm-init detects five project contexts and adapts checks accordingly:

Context Detection Behavior
STANDALONE No [tool.uv.workspace] All checks enabled
WORKSPACE Has [tool.uv.workspace] at root CI, tooling, and workspace checks enabled
MEMBER Resolved uv workspace member Shared checks redirected to root; inapplicable checks skipped
PAPER Research markers Paper form invariants
EXPERIMENT Root manifest mapping with contract_version and id Experiment form invariants

Per-Package Check Exclusions

Workspace members can exclude inapplicable checks via pyproject.toml. Each entry is a prefix of a canonical check name — the category.function_name_without_check_ form shown in the report (e.g. ci.ci_steps_executable). A bare category like "ci" excludes the whole category:

[tool.axm-init]
exclude = ["ci.ci_steps_executable", "tooling.makefile"]

Scaffold Modes

# Standalone package (default)
axm init_scaffold my-project --org myorg --author A --email e@e.com

# UV workspace
axm init_scaffold my-workspace --workspace --org myorg --author A --email e@e.com

# Member sub-package (run from inside workspace)
axm init_scaffold --member my-lib --org myorg --author A --email e@e.com

The --member flag auto-detects the workspace root, creates the package under packages/<name>/, and attempts to patch root files (Makefile, mkdocs.yml, pyproject.toml, CI workflows). Inspect skipped_root_files and failed_root_files in the JSON result: a created member does not guarantee that every root integration succeeded.

CI Check Badge

Python project templates include an automated check badge workflow. It publishes score data to gh-pages after a successful workflow run on main.

push → axm init_check → badge JSON → gh-pages → shields.io

The README badge resolves once the workflow has published its JSON. Repository permissions and workflow execution must allow publication to gh-pages.

Existing projects can add the badge too — copy .github/workflows/axm-quality.yml from a scaffolded project and add the badge markup. See the howto guide for details.

Documentation

The MkDocs home page is docs/index.md, separate from this README.

Development

This package is part of the axm-forge workspace.

git clone https://github.com/axm-protocols/axm-forge.git
cd axm-forge
uv sync --all-packages --all-groups
uv run --package axm-init --directory packages/axm-init pytest -x -q

With the docs dependencies installed, build the standalone documentation from packages/axm-init using mkdocs build --strict.

License

Licensed under Apache-2.0. See LICENSE.

Release files for axm-init 0.16.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for axm-init 0.16.0
File Size Uploaded
axm_init-0.16.0.tar.gz 839.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for axm-init 0.16.0
File Interpreter ABI Platform
axm_init-0.16.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / axm_init-0.16.0.tar.gz

Download URL axm_init-0.16.0.tar.gz
Size 839.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7b7481cf83b43b22e5c504bdb26b5e22e881a34f181e028b80d5d40f53aec139
BLAKE2b-256 checksum
How to use checksums
6d2fa816ee5e6f217e4b3197241586ef8cc9ed1552de27663b8ee3a3b1404a72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / axm_init-0.16.0-py3-none-any.whl

Download URL axm_init-0.16.0-py3-none-any.whl
Size 239.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5e861648bbf188cc2e0785fcaabd1bf304979dd36edfd14ddcaa919ecd9e638a
BLAKE2b-256 checksum
How to use checksums
e98879c99483489f8e1f8fa0007092fba5bc42c4f4cc59e2fad8bf8afaac199a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release history Release notifications | RSS feed

0.17.0

2 release files

This release

0.16.0 This release

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page