Skip to content

Commit 6bab86d

Browse files
chore: .scm -> .a2ml for 6a2 files (canonical location) + Justfile make -> just (#29)
## Summary Two related fixes per estate language/build policy: 1. **`.scm` → `.a2ml` for the 6a2 metadata files**, relocated from repo root into the canonical `.machine_readable/6a2/` location. 2. **`make` → `just` in the Justfile**: existing recipes called `make` for inter-recipe orchestration, but Makefiles are forbidden estate-wide (per `hypatia-rules/rsr-self-compliance.a2ml @forbidden_files` `Makefile` "Use Justfile") — and there's no Makefile in this repo regardless, so `make` calls would simply fail. ## What changed ### `.scm` → `.a2ml`, root → `.machine_readable/6a2/` Per the user-confirmed estate rule (2026-04-30): *".a2ml is canonical; .scm is reserved for Guix-related files only."* The 6a2 metadata files were at the repo root with `.scm` extensions — they are now at the canonical RSR location with `.a2ml` extensions. | Old | New | |---|---| | `STATE.scm` | `.machine_readable/6a2/STATE.a2ml` | | `META.scm` | `.machine_readable/6a2/META.a2ml` | | `ECOSYSTEM.scm` | `.machine_readable/6a2/ECOSYSTEM.a2ml` | | `AGENTIC.scm` | `.machine_readable/6a2/AGENTIC.a2ml` | | `NEUROSYM.scm` | `.machine_readable/6a2/NEUROSYM.a2ml` | | `PLAYBOOK.scm` | `.machine_readable/6a2/PLAYBOOK.a2ml` | **Content format unchanged.** A2ML is a format family; the S-expression / SRFI-30 surface used by these files (per the `playbook-a2ml/spec/PLAYBOOK-FORMAT-SPEC.adoc` schema reference at the top of each) is a legitimate A2ML dialect alongside the TOML-like dialect used elsewhere. Only the file extension changes; the canonical S-expression Scheme content is preserved. ### Pre-existing duplicate STATE.a2ml The repo previously had `.machine_readable/6a2/STATE.a2ml` as a "secondary short-form companion" (per its own header), with the top-level `STATE.scm` marked as the canonical authority. The maintainer's note in that file explicitly planned the migration: > _"To migrate to a single canonical surface in a future session, the (lifecycle ...) block should be moved into PLAYBOOK.scm (a sibling of STATE.scm, in the (define ...) module shape) and this file then deleted. That migration is parked, not blocking."_ This PR executes that parked migration: - The unique `(lifecycle ...)` block from the old secondary `STATE.a2ml` is appended to the new `.machine_readable/6a2/PLAYBOOK.a2ml` (with a header comment noting the migration source). - The new canonical `.machine_readable/6a2/STATE.a2ml` is the content from the former top-level `STATE.scm`. ### Headers updated The first line of each moved file's header was updated from `<NAME>.scm` to `<NAME>.a2ml` to match the new filename. Cross-references *within* the file content (e.g. `audit-output/STATE.scm`, `META.scm pre-action-checks`) are deliberately left as-is in this PR — they are content-prose references that need separate judgement on path/extension and are scoped for a follow-up. ### Justfile: `make` → `just` Several recipes called `make build-tests`, `make test-core`, etc. — invoking the `make` binary against a non-existent Makefile. These are now `just build-tests`, `just test-core`, etc., correctly invoking sibling Just recipes. No change in semantics for any working recipe; broken recipes (silently failing on missing Makefile) now actually run. ## Why two fixes in one PR Both are small, both are policy-alignment, both relate to "what canonical builds look like for echo-types." Splitting them into two PRs would be over-process. Each is reviewable independently in the diff. ## Out of scope (follow-up PRs) - The full RSR floor (28 missing files: CHANGELOG.md / CODE_OF_CONDUCT.md / SECURITY.md / CONTRIBUTING.md / EXPLAINME.adoc / QUICKSTARTs / TOPOLOGY.adoc / 0-AI-MANIFEST.a2ml / stapeln.toml / Containerfile / dotfiles / contractiles/ etc.) — separate PR. - Conversion of `README.md` / `roadmap.adoc` / `roadmap-gates.adoc` / `DOCUMENTATION_STATUS.md` etc. to canonical RSR shapes — separate PR. - The mandatory 4 RSR workflows (`hypatia-scan.yml`, `mirror.yml`, `scorecard.yml`, `rsr-antipattern.yml` per `hypatia-rules/rsr-self-compliance.a2ml @required_workflows`) — currently this repo has only `agda.yml`. Separate PR. - Prose `.scm` references inside the migrated 6a2 files (path-and-extension dual update) — separate small PR after this lands. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 8efd686 commit 6bab86d

8 files changed

Lines changed: 287 additions & 530 deletions

File tree

AGENTIC.scm renamed to .machine_readable/6a2/AGENTIC.a2ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
;;; ============================================================
2-
;;; AGENTIC.scm — gating rules for echo-types operational requests
2+
;;; AGENTIC.a2ml — gating rules for echo-types operational requests
33
;;; ============================================================
44
;;;
55
;;; Format: agentic-a2ml (S-expression, SRFI-30 conventions)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
;;; ============================================================
2-
;;; ECOSYSTEM.scm — echo-types relationships across the
2+
;;; ECOSYSTEM.a2ml — echo-types relationships across the
33
;;; hyperpolymath repository constellation
44
;;; ============================================================
55
;;;

META.scm renamed to .machine_readable/6a2/META.a2ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
;;; ============================================================
2-
;;; META.scm — echo-types architecture decisions from EI-2
2+
;;; META.a2ml — echo-types architecture decisions from EI-2
33
;;; ============================================================
44
;;;
55
;;; Format: meta-a2ml (S-expression, SRFI-30 conventions)

NEUROSYM.scm renamed to .machine_readable/6a2/NEUROSYM.a2ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
;;; ============================================================
2-
;;; NEUROSYM.scm — formal-evidence semantics for EI-2 termination
2+
;;; NEUROSYM.a2ml — formal-evidence semantics for EI-2 termination
33
;;; ============================================================
44
;;;
55
;;; Format: neurosym-a2ml (S-expression, SRFI-30 conventions)

PLAYBOOK.scm renamed to .machine_readable/6a2/PLAYBOOK.a2ml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
;;; ============================================================
2-
;;; PLAYBOOK.scm — operational procedures for echo-types sessions
2+
;;; PLAYBOOK.a2ml — operational procedures for echo-types sessions
33
;;; ============================================================
44
;;;
55
;;; Format: playbook-a2ml (S-expression, SRFI-30 conventions)
@@ -265,6 +265,26 @@
265265
(role . "If a 6a2 schema question arises that this PLAYBOOK doesn't resolve.")
266266
(hours . "asynchronous"))))
267267

268+
;;; ============================================================
269+
;;; Session lifecycle (migrated from former .machine_readable/6a2/STATE.a2ml
270+
;;; "secondary short-form companion" file as part of the 2026-04-30
271+
;;; .scm -> .a2ml migration. The original file's own header marked this
272+
;;; block as the only unique contribution it carried.)
273+
;;; ============================================================
274+
275+
(define lifecycle
276+
'((on-enter
277+
(step . "Read .machine_readable/6a2/STATE.a2ml first")
278+
(step . "Read .machine_readable/6a2/META.a2ml for permanent decisions")
279+
(step . "Check status.phase before starting any work")
280+
(step . "If user asks about EI-2: state TERMINATED; refer to ei-2 block in STATE"))
281+
(on-exit
282+
(step . "Update status.phase if changed")
283+
(step . "Update commits-pushed if any commits actually pushed")
284+
(step . "If new questions opened, add to open-questions block in STATE")
285+
(step . "If naming-traps encountered, add to naming-traps block in STATE")
286+
(step . "Never remove the ei-2 block; it is permanent record"))))
287+
268288
;;; ============================================================
269289
;;; END OF PLAYBOOK
270290
;;; ============================================================

.machine_readable/6a2/STATE.a2ml

Lines changed: 252 additions & 237 deletions
Large diffs are not rendered by default.

Justfile

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ build-all:
2020
@echo "🔨 Building all echo type modules and tests..."
2121
@echo "=========================================="
2222
just build-echo
23-
make build-tests
23+
just build-tests
2424
@echo "=========================================="
2525
@echo "✅ Build complete! All modules type-check successfully"
2626

@@ -57,11 +57,11 @@ test-stability:
5757
test-all:
5858
@echo "🧪 Running comprehensive test suite..."
5959
@echo "=========================================="
60-
make test-core
61-
make test-cno
62-
make test-thermo
63-
make test-cat
64-
make test-stability
60+
just test-core
61+
just test-cno
62+
just test-thermo
63+
just test-cat
64+
just test-stability
6565
@echo "=========================================="
6666
@echo "✅ All tests passed! Stability: 92/100"
6767

@@ -75,9 +75,9 @@ clean:
7575
verify:
7676
@echo "🔬 Full verification cycle..."
7777
@echo "=========================================="
78-
make clean
79-
make build-all
80-
make test-all
78+
just clean
79+
just build-all
80+
just test-all
8181
@echo "=========================================="
8282
@echo "✅ Verification complete! System stability: 92/100"
8383

@@ -103,5 +103,4 @@ stability-report:
103103

104104
# Default target
105105
default:
106-
make verify
107-
106+
just verify

STATE.scm

Lines changed: 0 additions & 277 deletions
This file was deleted.

0 commit comments

Comments
 (0)