Skip to content

Commit 2c869e2

Browse files
Merge branch 'main' into claude/zealous-knuth-urnNU
2 parents 65ece56 + e763d82 commit 2c869e2

38 files changed

Lines changed: 2894 additions & 233 deletions

.github/workflows/echidna-verify.yml

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ jobs:
9393
submodules: recursive
9494

9595
- name: Cache pack
96-
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
96+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v4
9797
with:
9898
path: |
9999
~/.pack
@@ -116,17 +116,31 @@ jobs:
116116
git clone --depth 1 https://github.com/stefan-hoeck/idris2-pack.git "$HOME/idris2-pack"
117117
cd "$HOME/idris2-pack"
118118
# Use the bootstrap script in non-interactive mode
119-
bash install.bash </dev/null || echo "::warning::pack install had warnings"
119+
# pack's install.bash prompts for the scheme binary; feeding newlines
120+
# makes the prompt take its detected default (chezscheme) instead of
121+
# hitting EOF (which aborts the bootstrap and leaves pack uninstalled).
122+
yes '' | bash install.bash || echo "::warning::pack install had warnings"
123+
# pack installs its launcher into ~/.local/bin (newer layout) and/or
124+
# ~/.pack/bin (older); add both so `pack` resolves on PATH.
125+
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
120126
echo "$HOME/.pack/bin" >> "$GITHUB_PATH"
121-
export PATH="$HOME/.pack/bin:$PATH"
122-
pack install-api idris2
127+
export PATH="$HOME/.local/bin:$HOME/.pack/bin:$PATH"
128+
# `install-api` is not a pack subcommand; `install-app idris2`
129+
# installs the idris2 executable into the pack bin dir so the
130+
# subsequent `idris2 --check` resolves. The base library (Prelude,
131+
# base, contrib) ships with idris2, so no .ipkg is needed for a
132+
# standalone --check.
133+
pack install-app idris2
123134
idris2 --version
124135
125-
- name: Type-check A2ML.Proofs
136+
- name: Type-check A2ML core (Proofs + v1.1 profiles/base-vocab)
126137
run: |
127138
export PATH="$HOME/.pack/bin:$PATH"
128139
cd a2ml
129140
idris2 --check src/A2ML/Proofs.idr 2>&1 | tee ../idris2-a2ml.log
141+
# v1.1 additive core: checking Profiles.idr transitively type-checks
142+
# BaseVocab.idr and TypedCore.idr (its imports).
143+
idris2 --check src/A2ML/Profiles.idr 2>&1 | tee -a ../idris2-a2ml.log
130144
131145
- name: Upload log
132146
if: always()
@@ -147,7 +161,7 @@ jobs:
147161
submodules: recursive
148162

149163
- name: Cache pack
150-
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
164+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v4
151165
with:
152166
path: |
153167
~/.pack
@@ -167,10 +181,21 @@ jobs:
167181
sudo apt-get install -y build-essential libgmp-dev chezscheme
168182
git clone --depth 1 https://github.com/stefan-hoeck/idris2-pack.git "$HOME/idris2-pack"
169183
cd "$HOME/idris2-pack"
170-
bash install.bash </dev/null || echo "::warning::pack install had warnings"
184+
# pack's install.bash prompts for the scheme binary; feeding newlines
185+
# makes the prompt take its detected default (chezscheme) instead of
186+
# hitting EOF (which aborts the bootstrap and leaves pack uninstalled).
187+
yes '' | bash install.bash || echo "::warning::pack install had warnings"
188+
# pack installs its launcher into ~/.local/bin (newer layout) and/or
189+
# ~/.pack/bin (older); add both so `pack` resolves on PATH.
190+
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
171191
echo "$HOME/.pack/bin" >> "$GITHUB_PATH"
172-
export PATH="$HOME/.pack/bin:$PATH"
173-
pack install-api idris2
192+
export PATH="$HOME/.local/bin:$HOME/.pack/bin:$PATH"
193+
# `install-api` is not a pack subcommand; `install-app idris2`
194+
# installs the idris2 executable into the pack bin dir so the
195+
# subsequent `idris2 --check` resolves. The base library (Prelude,
196+
# base, contrib) ships with idris2, so no .ipkg is needed for a
197+
# standalone --check.
198+
pack install-app idris2
174199
idris2 --version
175200
176201
- name: Type-check AVOW proofs

.machine_readable/6a2/AGENTIC.a2ml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
33
#
44
# AGENTIC.a2ml — AI agent constraints and capabilities
5+
#
6+
# A2ML profile declaration (SPEC.adoc Section 8.1): validates this record
7+
# through the profile mechanism. Definition: a2ml/profiles/a2ml-agentic/.
8+
@profile(id=a2ml/agentic)
9+
510
[metadata]
611
version = "0.1.0"
712
last-updated = "2026-04-11"

.machine_readable/6a2/ECOSYSTEM.a2ml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
33
#
44
# ECOSYSTEM.a2ml — Standards ecosystem position
5+
#
6+
# A2ML profile declaration (SPEC.adoc Section 8.1): validates this record
7+
# through the profile mechanism. Definition: a2ml/profiles/a2ml-ecosystem/.
8+
@profile(id=a2ml/ecosystem)
9+
510
[metadata]
611
version = "1.0.0"
712
last-updated = "2026-04-11"

.machine_readable/6a2/META.a2ml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
33
#
44
# META.a2ml — Standards meta-level information
5+
#
6+
# A2ML profile declaration (SPEC.adoc Section 8.1): validates this record
7+
# through the profile mechanism. Definition: a2ml/profiles/a2ml-meta/.
8+
@profile(id=a2ml/meta)
9+
510
[metadata]
611
version = "1.0.0"
712
last-updated = "2026-05-15"

.machine_readable/6a2/NEUROSYM.a2ml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
33
#
44
# NEUROSYM.a2ml — Neurosymbolic integration metadata
5+
#
6+
# A2ML profile declaration (SPEC.adoc Section 8.1): validates this record
7+
# through the profile mechanism. Definition: a2ml/profiles/a2ml-neurosym/.
8+
@profile(id=a2ml/neurosym)
9+
510
[metadata]
611
version = "0.1.0"
712
last-updated = "2026-04-11"

.machine_readable/6a2/PLAYBOOK.a2ml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
33
#
44
# PLAYBOOK.a2ml — Operational playbook
5+
#
6+
# A2ML profile declaration (SPEC.adoc Section 8.1): validates this record
7+
# through the profile mechanism. Definition: a2ml/profiles/a2ml-playbook/.
8+
@profile(id=a2ml/playbook)
9+
510
[metadata]
611
version = "0.1.0"
712
last-updated = "2026-04-11"

.machine_readable/6a2/STATE.a2ml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
33
#
44
# STATE.a2ml — Standards project state
5+
#
6+
# A2ML profile declaration (SPEC.adoc Section 8.1): validates this record
7+
# through the profile mechanism. Definition: a2ml/profiles/a2ml-state/.
8+
@profile(id=a2ml/state)
9+
510
[metadata]
611
project = "standards"
712
version = "0.2.0"

.machine_readable/REGISTRY.a2ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ name = "A2ML — Attested Markup Language"
3232
stream = "foundation"
3333
home = "a2ml/"
3434
canonical_doc = "a2ml/README.adoc"
35-
source_hash = "sha256:b34ffe4d51c1715c4f2e51183d7a510865dc03e962fbeae121e3868fd88a718a"
35+
source_hash = "sha256:ffda43ed07bed095c7623d3c6a1d38c8f17a6b9e4eebaebe3bfde5aff62bcfb0"
3636
route = "the typed/verified machine-readable document format"
3737

3838
[[spec]]
@@ -41,7 +41,7 @@ name = "K9 Self-Validating Components"
4141
stream = "foundation"
4242
home = "k9-svc/"
4343
canonical_doc = "k9-svc/README.adoc"
44-
source_hash = "sha256:eae3b6a0f4e2da1afcfddfecf7a5c173d6c0ac090923c63fe9c14806b5a3b11b"
44+
source_hash = "sha256:6a9c2065fc29abdaaeef08c3e551f21c7408afd3c9a7cee4ed3e73460db443ab"
4545
route = "self-validating components with embedded contracts + deploy logic"
4646

4747
[[spec]]
@@ -266,7 +266,7 @@ name = "Standards Hypatia Rules"
266266
stream = "integration"
267267
home = "hypatia-rules/"
268268
canonical_doc = "hypatia-rules/README.adoc"
269-
source_hash = "sha256:707852684795e8474bc764473c36bc4d56fa139014ab3abbc0f550319637138c"
269+
source_hash = "sha256:a63e95c5e43ced2ee13c58014175da156c71ab731f01449e3a61b3e2f33bbe52"
270270
route = "the dogfooding rules that scan THIS repo (incl. drift detection)"
271271

272272
[[spec]]

.machine_readable/anchors/ANCHOR.a2ml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# ⚓ ANCHOR: standards
22
# This is the canonical authority for the standards repository.
3+
#
4+
# A2ML profile declaration (SPEC.adoc Section 8.1): validates this record
5+
# through the profile mechanism. Definition: a2ml/profiles/a2ml-anchor/.
6+
@profile(id=a2ml/anchor)
37

48
id: "org.hyperpolymath.standards"
59
version: "1.0.0"

a2ml/README.adoc

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ A2ML is a typed, attested markup format. It verifies structure and references.
5050

5151
== Documents
5252

53-
* link:SPEC.adoc[Spec: Surface Grammar + Typed Core]
53+
* link:SPEC.adoc[Spec (current normative, v1.1.0): Surface Grammar + Typed Core + Profiles]
54+
* link:VERSIONS.adoc[Specification Lineage (versions + era)]
55+
* link:archive/[Archived (frozen) prior specs]
5456
* link:docs/QUICKSTART.adoc[Module 0 Quickstart + FAQ]
5557
* link:docs/MODULES.adoc[Syntax Modules (Opt-in)]
5658
* link:docs/GRAMMAR.adoc[Grammar Appendix]
@@ -101,6 +103,8 @@ A2ML is a typed, attested markup format. It verifies structure and references.
101103
* link:RELEASE-NOTES-v0.1.0.adoc[v0.1.0 Release Notes]
102104
* link:RELEASE-NOTES-v0.5.0.adoc[v0.5.0 Release Notes]
103105
* link:RELEASE-NOTES-v0.6.0.adoc[v0.6.0 Release Notes]
106+
* link:RELEASE-NOTES-v1.0.0.adoc[v1.0.0 Release Notes]
107+
* link:RELEASE-NOTES-v1.1.0.adoc[v1.1.0 Release Notes]
104108

105109
== Announcement
106110

@@ -110,9 +114,13 @@ A2ML is a typed, attested markup format. It verifies structure and references.
110114

111115
== Status
112116

113-
* Draft specification, v0.6.0
114-
* Prototype parser + CLI + demo page available
115-
* Typed core stubs + core tests passing (prototype)
117+
* *Stable specification, v1.1.0* (era v1). See link:VERSIONS.adoc[VERSIONS.adoc]
118+
for the lineage; prior drafts (v0) and the frozen v1.0.0 release are under
119+
link:archive/[archive/].
120+
* v1.1.0 is additive over v1.0.0: profile mechanism, base record vocabulary,
121+
citation primitives, and canonical hashing — all inert under the base modes.
122+
* Prototype parser + CLI + demo page available.
123+
* Typed core + core tests passing (prototype).
116124

117125
== License
118126

0 commit comments

Comments
 (0)