All work

myArch

A framework for organizing code and notes into self-similar hierarchies.

Source on GitLab Python · MPL-2.0 · v2.1.0
A Markdown outline with a missing top heading index and three second-level headings numbered 1, 2, and 4 out of sequence is repaired by arch check so the top heading becomes 1 and the three headings become 1.1, 1.2, and 1.3 nested beneath it, reproducing a real arch check --spec formal-markdown --diff run. 1 Field Guide 1 1.1 Introduction 2 1.2 Habitats 4 1.3 Conclusion

myArch gives structure an address. It numbers headings in documents to any depth (numeric, alphabetic, Roman, or symbolic) and organizes Python code into a four-level cell model, with commands to inspect the numbering, preview a repair, and apply it atomically.

It's the most philosophical project here, and if you're building agents you're gonna want some Architectonics. It comes with a terminal browser for exploring a tree.

$ arch check --spec formal-markdown --diff guide.md
--- ~/ai/scratch/demo-t/arch/guide.md
+++ ~/ai/scratch/demo-t/arch/guide.md
@@ -1,13 +1,13 @@
-# Field Guide
+# `1` Field Guide

-## `1` Introduction
+## `1.1` Introduction

 Some text.

-## `2` Habitats
+## `1.2` Habitats

 More text.

-## `4` Conclusion
+## `1.3` Conclusion

 Final text.
~/ai/scratch/demo-t/arch/guide.md:1:3: ARCH001 missing idx `1`
~/ai/scratch/demo-t/arch/guide.md:3:4: ARCH002 idx '`1`' is out of sequence; expected `1.1`
~/ai/scratch/demo-t/arch/guide.md:7:4: ARCH002 idx '`2`' is out of sequence; expected `1.2`
~/ai/scratch/demo-t/arch/guide.md:11:4: ARCH002 idx '`4`' is out of sequence; expected `1.3`
Two unrelated address systems in myArch. On the left, the same document-index ordinals 0, 1, 2 render four ways depending on the configured style: number gives 1.2.3, alpha-lower gives a.b.c, roman-upper gives I.II.III, and symbol gives ./-/+ using a slash separator so the alphabet\u2019s own dot is not ambiguous. On the right, arch.Quad is the fixed four-place architectonic address: Quad(\u201801a\u2019) has complexity 2 and is not concrete or actual since it ends in the abstract half a, while Quad(\u20180123\u2019) fills all four digit places and is both concrete and actual. The two domains are separate, not subtypes of one another, and nothing connects them. document index · arch.idx.Idx same ordinals [0, 1, 2] — four configured styles number 1.2.3 alpha-lower a.b.c roman-upper I.II.III symbol ./-/+ symbol’s / separator avoids its own alphabet’s dot arch.Quad · fixed four-place address 01a Quad('01a') complexity 2 · is_concrete False · is_actual False 0123 Quad('0123') complexity 4 · is_concrete True · is_actual True each place holds digit 0–3, or abstract half a / b