Skip to main content

logo

myArch: A Systematic Development Framework

Pipeline Status Test Coverage License pre-commit pyrefly ruff

myArch has two deliberately distinct index domains:

  • arch.Quad is the preferred name for the original fixed, four-place architectonic address. arch.Idx remains its compatibility name.
  • arch.idx.Idx is the definitive arbitrary-depth document index: numeric, alphabetic, Roman, symbolic, dotted or compact, optionally marked and wrapped.

They are not subtypes of one another. A Quad admits the empty root and abstract a / b halves and has a special four-branch ancestry; a document idx is a non-empty, arbitrary-depth sequence whose rendering policy is independent of its place. Keeping them separate makes those invariants visible instead of weakening either model.

The arch executable is both an agent-oriented linter and a human-oriented terminal workspace. Arguments select a deterministic CLI operation; bare arch on a real terminal opens the PyRatatui browser.

$ arch check docs src
$ arch --json plan docs | jq '.plans[] | select(.changed)'
$ arch apply --dry-run --diff docs
$ arch apply docs
$ arch                         # TUI when stdin/stdout are terminals

$ arch format --check src docs # report non-canonical configured header blocks
$ arch format --diff src docs  # print patches, never write
$ arch format src docs         # atomically format them
$ arch spec --input headers.yaml --output headers.yaml

The safety rule is structural: a file containing no recognized idx is never modified, even by --operation reindex --insertion all. In a partially indexed file, the default observed insertion scope fills only hierarchy depths already represented in that file. Every write is planned first, content-hash checked, and atomically replaced without normalizing newlines or the final newline.

Configuration is layered as command flags, an explicit --config, the nearest .arch.yaml, ~/.config/my/arch.yaml, then built-ins. Higher-precedence path rules are tried first:

default_spec: decimal
insertion: observed

specs:
  decimal:
    styles: [number]
    separator: '.'
  doctrine:
    styles: [number, alpha-lower, roman-lower]
    separator: '.'
    marker: '.'
    max_depth: 6

paths:
  - path: /absolute/path/to/canon.md
    spec: doctrine
  - regex: '^journal/[0-9]{4}/'
    spec: doctrine
  - glob: 'docs/**'
    spec: decimal

ignore:
  - 'vendor/**'

See the idx guide, design explanation, and rendered API page for document indexes; see the Header formatting guide for HeaderSpec, arch format, and the keyboard-first profile editor.


Release files for my-arch 1.0.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 my-arch 1.0.0
File Size Uploaded
my_arch-1.0.0.tar.gz 150.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for my-arch 1.0.0
File Interpreter ABI Platform
my_arch-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 325.5 kB

Release files / my_arch-1.0.0.tar.gz

Download URL my_arch-1.0.0.tar.gz
Size 150.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9935e741ac5cfd6c06297f35013d89eedc71f7a770ede9fdc4d8e715a732def1
BLAKE2b-256 checksum
How to use checksums
4dbec5698d077b6055458cee2e7eb8c95b1101b8e3bdf6443f8f021256b01199
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / my_arch-1.0.0-py3-none-any.whl

Download URL my_arch-1.0.0-py3-none-any.whl
Size 175.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6fa3000eb71ccf28c648938889af591ddea38c01357bb7151d57cc278614afa6
BLAKE2b-256 checksum
How to use checksums
c03004ea7ccd90ce4de223a28dd2fde754bae2a1ecbc22aac9d3357da5426163
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

1.0.0 This release

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