axm-init — Project scaffolding, quality checks & governance tools
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:
--workspaceand--memberare 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:
--authorandgit 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
- Getting started
- Scaffold a project
- Check project quality
- Reserve a package name
- Use via MCP and Python entry points
- Published 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)
| File | Size | Uploaded | |
|---|---|---|---|
| axm_init-0.16.0.tar.gz | 839.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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